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.cloud.servicedirectory.v1; 18 19import "google/api/annotations.proto"; 20import "google/api/client.proto"; 21import "google/api/field_behavior.proto"; 22import "google/api/resource.proto"; 23import "google/cloud/servicedirectory/v1/endpoint.proto"; 24import "google/cloud/servicedirectory/v1/namespace.proto"; 25import "google/cloud/servicedirectory/v1/service.proto"; 26import "google/iam/v1/iam_policy.proto"; 27import "google/iam/v1/policy.proto"; 28import "google/protobuf/empty.proto"; 29import "google/protobuf/field_mask.proto"; 30 31option cc_enable_arenas = true; 32option csharp_namespace = "Google.Cloud.ServiceDirectory.V1"; 33option go_package = "cloud.google.com/go/servicedirectory/apiv1/servicedirectorypb;servicedirectorypb"; 34option java_multiple_files = true; 35option java_outer_classname = "RegistrationServiceProto"; 36option java_package = "com.google.cloud.servicedirectory.v1"; 37option php_namespace = "Google\\Cloud\\ServiceDirectory\\V1"; 38option ruby_package = "Google::Cloud::ServiceDirectory::V1"; 39 40// Service Directory API for registering services. It defines the following 41// resource model: 42// 43// - The API has a collection of 44// [Namespace][google.cloud.servicedirectory.v1.Namespace] 45// resources, named `projects/*/locations/*/namespaces/*`. 46// 47// - Each Namespace has a collection of 48// [Service][google.cloud.servicedirectory.v1.Service] resources, named 49// `projects/*/locations/*/namespaces/*/services/*`. 50// 51// - Each Service has a collection of 52// [Endpoint][google.cloud.servicedirectory.v1.Endpoint] 53// resources, named 54// `projects/*/locations/*/namespaces/*/services/*/endpoints/*`. 55service RegistrationService { 56 option (google.api.default_host) = "servicedirectory.googleapis.com"; 57 option (google.api.oauth_scopes) = 58 "https://www.googleapis.com/auth/cloud-platform"; 59 60 // Creates a namespace, and returns the new namespace. 61 rpc CreateNamespace(CreateNamespaceRequest) returns (Namespace) { 62 option (google.api.http) = { 63 post: "/v1/{parent=projects/*/locations/*}/namespaces" 64 body: "namespace" 65 }; 66 option (google.api.method_signature) = "parent,namespace,namespace_id"; 67 } 68 69 // Lists all namespaces. 70 rpc ListNamespaces(ListNamespacesRequest) returns (ListNamespacesResponse) { 71 option (google.api.http) = { 72 get: "/v1/{parent=projects/*/locations/*}/namespaces" 73 }; 74 option (google.api.method_signature) = "parent"; 75 } 76 77 // Gets a namespace. 78 rpc GetNamespace(GetNamespaceRequest) returns (Namespace) { 79 option (google.api.http) = { 80 get: "/v1/{name=projects/*/locations/*/namespaces/*}" 81 }; 82 option (google.api.method_signature) = "name"; 83 } 84 85 // Updates a namespace. 86 rpc UpdateNamespace(UpdateNamespaceRequest) returns (Namespace) { 87 option (google.api.http) = { 88 patch: "/v1/{namespace.name=projects/*/locations/*/namespaces/*}" 89 body: "namespace" 90 }; 91 option (google.api.method_signature) = "namespace,update_mask"; 92 } 93 94 // Deletes a namespace. This also deletes all services and endpoints in 95 // the namespace. 96 rpc DeleteNamespace(DeleteNamespaceRequest) returns (google.protobuf.Empty) { 97 option (google.api.http) = { 98 delete: "/v1/{name=projects/*/locations/*/namespaces/*}" 99 }; 100 option (google.api.method_signature) = "name"; 101 } 102 103 // Creates a service, and returns the new service. 104 rpc CreateService(CreateServiceRequest) returns (Service) { 105 option (google.api.http) = { 106 post: "/v1/{parent=projects/*/locations/*/namespaces/*}/services" 107 body: "service" 108 }; 109 option (google.api.method_signature) = "parent,service,service_id"; 110 } 111 112 // Lists all services belonging to a namespace. 113 rpc ListServices(ListServicesRequest) returns (ListServicesResponse) { 114 option (google.api.http) = { 115 get: "/v1/{parent=projects/*/locations/*/namespaces/*}/services" 116 }; 117 option (google.api.method_signature) = "parent"; 118 } 119 120 // Gets a service. 121 rpc GetService(GetServiceRequest) returns (Service) { 122 option (google.api.http) = { 123 get: "/v1/{name=projects/*/locations/*/namespaces/*/services/*}" 124 }; 125 option (google.api.method_signature) = "name"; 126 } 127 128 // Updates a service. 129 rpc UpdateService(UpdateServiceRequest) returns (Service) { 130 option (google.api.http) = { 131 patch: "/v1/{service.name=projects/*/locations/*/namespaces/*/services/*}" 132 body: "service" 133 }; 134 option (google.api.method_signature) = "service,update_mask"; 135 } 136 137 // Deletes a service. This also deletes all endpoints associated with 138 // the service. 139 rpc DeleteService(DeleteServiceRequest) returns (google.protobuf.Empty) { 140 option (google.api.http) = { 141 delete: "/v1/{name=projects/*/locations/*/namespaces/*/services/*}" 142 }; 143 option (google.api.method_signature) = "name"; 144 } 145 146 // Creates an endpoint, and returns the new endpoint. 147 rpc CreateEndpoint(CreateEndpointRequest) returns (Endpoint) { 148 option (google.api.http) = { 149 post: "/v1/{parent=projects/*/locations/*/namespaces/*/services/*}/endpoints" 150 body: "endpoint" 151 }; 152 option (google.api.method_signature) = "parent,endpoint,endpoint_id"; 153 } 154 155 // Lists all endpoints. 156 rpc ListEndpoints(ListEndpointsRequest) returns (ListEndpointsResponse) { 157 option (google.api.http) = { 158 get: "/v1/{parent=projects/*/locations/*/namespaces/*/services/*}/endpoints" 159 }; 160 option (google.api.method_signature) = "parent"; 161 } 162 163 // Gets an endpoint. 164 rpc GetEndpoint(GetEndpointRequest) returns (Endpoint) { 165 option (google.api.http) = { 166 get: "/v1/{name=projects/*/locations/*/namespaces/*/services/*/endpoints/*}" 167 }; 168 option (google.api.method_signature) = "name"; 169 } 170 171 // Updates an endpoint. 172 rpc UpdateEndpoint(UpdateEndpointRequest) returns (Endpoint) { 173 option (google.api.http) = { 174 patch: "/v1/{endpoint.name=projects/*/locations/*/namespaces/*/services/*/endpoints/*}" 175 body: "endpoint" 176 }; 177 option (google.api.method_signature) = "endpoint,update_mask"; 178 } 179 180 // Deletes an endpoint. 181 rpc DeleteEndpoint(DeleteEndpointRequest) returns (google.protobuf.Empty) { 182 option (google.api.http) = { 183 delete: "/v1/{name=projects/*/locations/*/namespaces/*/services/*/endpoints/*}" 184 }; 185 option (google.api.method_signature) = "name"; 186 } 187 188 // Gets the IAM Policy for a resource (namespace or service only). 189 rpc GetIamPolicy(google.iam.v1.GetIamPolicyRequest) 190 returns (google.iam.v1.Policy) { 191 option (google.api.http) = { 192 post: "/v1/{resource=projects/*/locations/*/namespaces/*}:getIamPolicy" 193 body: "*" 194 additional_bindings { 195 post: "/v1/{resource=projects/*/locations/*/namespaces/*/services/*}:getIamPolicy" 196 body: "*" 197 } 198 }; 199 } 200 201 // Sets the IAM Policy for a resource (namespace or service only). 202 rpc SetIamPolicy(google.iam.v1.SetIamPolicyRequest) 203 returns (google.iam.v1.Policy) { 204 option (google.api.http) = { 205 post: "/v1/{resource=projects/*/locations/*/namespaces/*}:setIamPolicy" 206 body: "*" 207 additional_bindings { 208 post: "/v1/{resource=projects/*/locations/*/namespaces/*/services/*}:setIamPolicy" 209 body: "*" 210 } 211 }; 212 } 213 214 // Tests IAM permissions for a resource (namespace or service only). 215 rpc TestIamPermissions(google.iam.v1.TestIamPermissionsRequest) 216 returns (google.iam.v1.TestIamPermissionsResponse) { 217 option (google.api.http) = { 218 post: "/v1/{resource=projects/*/locations/*/namespaces/*}:testIamPermissions" 219 body: "*" 220 additional_bindings { 221 post: "/v1/{resource=projects/*/locations/*/namespaces/*/services/*}:testIamPermissions" 222 body: "*" 223 } 224 }; 225 } 226} 227 228// The request message for 229// [RegistrationService.CreateNamespace][google.cloud.servicedirectory.v1.RegistrationService.CreateNamespace]. 230message CreateNamespaceRequest { 231 // Required. The resource name of the project and location the namespace 232 // will be created in. 233 string parent = 1 [ 234 (google.api.field_behavior) = REQUIRED, 235 (google.api.resource_reference) = { 236 type: "locations.googleapis.com/Location" 237 } 238 ]; 239 240 // Required. The Resource ID must be 1-63 characters long, and comply with 241 // <a href="https://www.ietf.org/rfc/rfc1035.txt" target="_blank">RFC1035</a>. 242 // Specifically, the name must be 1-63 characters long and match the regular 243 // expression `[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?` which means the first 244 // character must be a lowercase letter, and all following characters must 245 // be a dash, lowercase letter, or digit, except the last character, which 246 // cannot be a dash. 247 string namespace_id = 2 [(google.api.field_behavior) = REQUIRED]; 248 249 // Required. A namespace with initial fields set. 250 Namespace namespace = 3 [(google.api.field_behavior) = REQUIRED]; 251} 252 253// The request message for 254// [RegistrationService.ListNamespaces][google.cloud.servicedirectory.v1.RegistrationService.ListNamespaces]. 255message ListNamespacesRequest { 256 // Required. The resource name of the project and location whose namespaces 257 // you'd like to list. 258 string parent = 1 [ 259 (google.api.field_behavior) = REQUIRED, 260 (google.api.resource_reference) = { 261 type: "locations.googleapis.com/Location" 262 } 263 ]; 264 265 // Optional. The maximum number of items to return. 266 int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; 267 268 // Optional. The next_page_token value returned from a previous List request, 269 // if any. 270 string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; 271 272 // Optional. The filter to list results by. 273 // 274 // General `filter` string syntax: 275 // `<field> <operator> <value> (<logical connector>)` 276 // 277 // * `<field>` can be `name` or `labels.<key>` for map field 278 // * `<operator>` can be `<`, `>`, `<=`, `>=`, `!=`, `=`, `:`. Of which `:` 279 // means `HAS`, and is roughly the same as `=` 280 // * `<value>` must be the same data type as field 281 // * `<logical connector>` can be `AND`, `OR`, `NOT` 282 // 283 // Examples of valid filters: 284 // 285 // * `labels.owner` returns namespaces that have a label with the key 286 // `owner`, this is the same as `labels:owner` 287 // * `labels.owner=sd` returns namespaces that have key/value 288 // `owner=sd` 289 // * `name>projects/my-project/locations/us-east1/namespaces/namespace-c` 290 // returns namespaces that have name that is alphabetically later than the 291 // string, so "namespace-e" is returned but "namespace-a" is not 292 // * `labels.owner!=sd AND labels.foo=bar` returns namespaces that have 293 // `owner` in label key but value is not `sd` AND have key/value `foo=bar` 294 // * `doesnotexist.foo=bar` returns an empty list. Note that namespace 295 // doesn't have a field called "doesnotexist". Since the filter does not 296 // match any namespaces, it returns no results 297 // 298 // For more information about filtering, see 299 // [API Filtering](https://aip.dev/160). 300 string filter = 4 [(google.api.field_behavior) = OPTIONAL]; 301 302 // Optional. The order to list results by. 303 // 304 // General `order_by` string syntax: `<field> (<asc|desc>) (,)` 305 // 306 // * `<field>` allows value: `name` 307 // * `<asc|desc>` ascending or descending order by `<field>`. If this is 308 // left blank, `asc` is used 309 // 310 // Note that an empty `order_by` string results in default order, which is 311 // order by `name` in ascending order. 312 string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; 313} 314 315// The response message for 316// [RegistrationService.ListNamespaces][google.cloud.servicedirectory.v1.RegistrationService.ListNamespaces]. 317message ListNamespacesResponse { 318 // The list of namespaces. 319 repeated Namespace namespaces = 1; 320 321 // Token to retrieve the next page of results, or empty if there are no 322 // more results in the list. 323 string next_page_token = 2; 324} 325 326// The request message for 327// [RegistrationService.GetNamespace][google.cloud.servicedirectory.v1.RegistrationService.GetNamespace]. 328message GetNamespaceRequest { 329 // Required. The name of the namespace to retrieve. 330 string name = 1 [ 331 (google.api.field_behavior) = REQUIRED, 332 (google.api.resource_reference) = { 333 type: "servicedirectory.googleapis.com/Namespace" 334 } 335 ]; 336} 337 338// The request message for 339// [RegistrationService.UpdateNamespace][google.cloud.servicedirectory.v1.RegistrationService.UpdateNamespace]. 340message UpdateNamespaceRequest { 341 // Required. The updated namespace. 342 Namespace namespace = 1 [(google.api.field_behavior) = REQUIRED]; 343 344 // Required. List of fields to be updated in this request. 345 google.protobuf.FieldMask update_mask = 2 346 [(google.api.field_behavior) = REQUIRED]; 347} 348 349// The request message for 350// [RegistrationService.DeleteNamespace][google.cloud.servicedirectory.v1.RegistrationService.DeleteNamespace]. 351message DeleteNamespaceRequest { 352 // Required. The name of the namespace to delete. 353 string name = 1 [ 354 (google.api.field_behavior) = REQUIRED, 355 (google.api.resource_reference) = { 356 type: "servicedirectory.googleapis.com/Namespace" 357 } 358 ]; 359} 360 361// The request message for 362// [RegistrationService.CreateService][google.cloud.servicedirectory.v1.RegistrationService.CreateService]. 363message CreateServiceRequest { 364 // Required. The resource name of the namespace this service will belong to. 365 string parent = 1 [ 366 (google.api.field_behavior) = REQUIRED, 367 (google.api.resource_reference) = { 368 type: "servicedirectory.googleapis.com/Namespace" 369 } 370 ]; 371 372 // Required. The Resource ID must be 1-63 characters long, and comply with 373 // <a href="https://www.ietf.org/rfc/rfc1035.txt" target="_blank">RFC1035</a>. 374 // Specifically, the name must be 1-63 characters long and match the regular 375 // expression `[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?` which means the first 376 // character must be a lowercase letter, and all following characters must 377 // be a dash, lowercase letter, or digit, except the last character, which 378 // cannot be a dash. 379 string service_id = 2 [(google.api.field_behavior) = REQUIRED]; 380 381 // Required. A service with initial fields set. 382 Service service = 3 [(google.api.field_behavior) = REQUIRED]; 383} 384 385// The request message for 386// [RegistrationService.ListServices][google.cloud.servicedirectory.v1.RegistrationService.ListServices]. 387message ListServicesRequest { 388 // Required. The resource name of the namespace whose services you'd 389 // like to list. 390 string parent = 1 [ 391 (google.api.field_behavior) = REQUIRED, 392 (google.api.resource_reference) = { 393 type: "servicedirectory.googleapis.com/Namespace" 394 } 395 ]; 396 397 // Optional. The maximum number of items to return. 398 int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; 399 400 // Optional. The next_page_token value returned from a previous List request, 401 // if any. 402 string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; 403 404 // Optional. The filter to list results by. 405 // 406 // General `filter` string syntax: 407 // `<field> <operator> <value> (<logical connector>)` 408 // 409 // * `<field>` can be `name` or `annotations.<key>` for map field 410 // * `<operator>` can be `<`, `>`, `<=`, `>=`, `!=`, `=`, `:`. Of which `:` 411 // means `HAS`, and is roughly the same as `=` 412 // * `<value>` must be the same data type as field 413 // * `<logical connector>` can be `AND`, `OR`, `NOT` 414 // 415 // Examples of valid filters: 416 // 417 // * `annotations.owner` returns services that have a annotation with the 418 // key `owner`, this is the same as `annotations:owner` 419 // * `annotations.protocol=gRPC` returns services that have key/value 420 // `protocol=gRPC` 421 // * 422 // `name>projects/my-project/locations/us-east1/namespaces/my-namespace/services/service-c` 423 // returns services that have name that is alphabetically later than the 424 // string, so "service-e" is returned but "service-a" is not 425 // * `annotations.owner!=sd AND annotations.foo=bar` returns services that 426 // have `owner` in annotation key but value is not `sd` AND have 427 // key/value `foo=bar` 428 // * `doesnotexist.foo=bar` returns an empty list. Note that service 429 // doesn't have a field called "doesnotexist". Since the filter does not 430 // match any services, it returns no results 431 // 432 // For more information about filtering, see 433 // [API Filtering](https://aip.dev/160). 434 string filter = 4 [(google.api.field_behavior) = OPTIONAL]; 435 436 // Optional. The order to list results by. 437 // 438 // General `order_by` string syntax: `<field> (<asc|desc>) (,)` 439 // 440 // * `<field>` allows value: `name` 441 // * `<asc|desc>` ascending or descending order by `<field>`. If this is 442 // left blank, `asc` is used 443 // 444 // Note that an empty `order_by` string results in default order, which is 445 // order by `name` in ascending order. 446 string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; 447} 448 449// The response message for 450// [RegistrationService.ListServices][google.cloud.servicedirectory.v1.RegistrationService.ListServices]. 451message ListServicesResponse { 452 // The list of services. 453 repeated Service services = 1; 454 455 // Token to retrieve the next page of results, or empty if there are no 456 // more results in the list. 457 string next_page_token = 2; 458} 459 460// The request message for 461// [RegistrationService.GetService][google.cloud.servicedirectory.v1.RegistrationService.GetService]. 462// This should not be used for looking up a service. Instead, use the `resolve` 463// method as it contains all endpoints and associated annotations. 464message GetServiceRequest { 465 // Required. The name of the service to get. 466 string name = 1 [ 467 (google.api.field_behavior) = REQUIRED, 468 (google.api.resource_reference) = { 469 type: "servicedirectory.googleapis.com/Service" 470 } 471 ]; 472} 473 474// The request message for 475// [RegistrationService.UpdateService][google.cloud.servicedirectory.v1.RegistrationService.UpdateService]. 476message UpdateServiceRequest { 477 // Required. The updated service. 478 Service service = 1 [(google.api.field_behavior) = REQUIRED]; 479 480 // Required. List of fields to be updated in this request. 481 google.protobuf.FieldMask update_mask = 2 482 [(google.api.field_behavior) = REQUIRED]; 483} 484 485// The request message for 486// [RegistrationService.DeleteService][google.cloud.servicedirectory.v1.RegistrationService.DeleteService]. 487message DeleteServiceRequest { 488 // Required. The name of the service to delete. 489 string name = 1 [ 490 (google.api.field_behavior) = REQUIRED, 491 (google.api.resource_reference) = { 492 type: "servicedirectory.googleapis.com/Service" 493 } 494 ]; 495} 496 497// The request message for 498// [RegistrationService.CreateEndpoint][google.cloud.servicedirectory.v1.RegistrationService.CreateEndpoint]. 499message CreateEndpointRequest { 500 // Required. The resource name of the service that this endpoint provides. 501 string parent = 1 [ 502 (google.api.field_behavior) = REQUIRED, 503 (google.api.resource_reference) = { 504 type: "servicedirectory.googleapis.com/Service" 505 } 506 ]; 507 508 // Required. The Resource ID must be 1-63 characters long, and comply with 509 // <a href="https://www.ietf.org/rfc/rfc1035.txt" target="_blank">RFC1035</a>. 510 // Specifically, the name must be 1-63 characters long and match the regular 511 // expression `[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?` which means the first 512 // character must be a lowercase letter, and all following characters must 513 // be a dash, lowercase letter, or digit, except the last character, which 514 // cannot be a dash. 515 string endpoint_id = 2 [(google.api.field_behavior) = REQUIRED]; 516 517 // Required. A endpoint with initial fields set. 518 Endpoint endpoint = 3 [(google.api.field_behavior) = REQUIRED]; 519} 520 521// The request message for 522// [RegistrationService.ListEndpoints][google.cloud.servicedirectory.v1.RegistrationService.ListEndpoints]. 523message ListEndpointsRequest { 524 // Required. The resource name of the service whose endpoints you'd like to 525 // list. 526 string parent = 1 [ 527 (google.api.field_behavior) = REQUIRED, 528 (google.api.resource_reference) = { 529 type: "servicedirectory.googleapis.com/Service" 530 } 531 ]; 532 533 // Optional. The maximum number of items to return. 534 int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; 535 536 // Optional. The next_page_token value returned from a previous List request, 537 // if any. 538 string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; 539 540 // Optional. The filter to list results by. 541 // 542 // General `filter` string syntax: 543 // `<field> <operator> <value> (<logical connector>)` 544 // 545 // * `<field>` can be `name`, `address`, `port`, or `annotations.<key>` for 546 // map field 547 // * `<operator>` can be `<`, `>`, `<=`, `>=`, `!=`, `=`, `:`. Of which `:` 548 // means `HAS`, and is roughly the same as `=` 549 // * `<value>` must be the same data type as field 550 // * `<logical connector>` can be `AND`, `OR`, `NOT` 551 // 552 // Examples of valid filters: 553 // 554 // * `annotations.owner` returns endpoints that have a annotation with the 555 // key `owner`, this is the same as `annotations:owner` 556 // * `annotations.protocol=gRPC` returns endpoints that have key/value 557 // `protocol=gRPC` 558 // * `address=192.108.1.105` returns endpoints that have this address 559 // * `port>8080` returns endpoints that have port number larger than 8080 560 // * 561 // `name>projects/my-project/locations/us-east1/namespaces/my-namespace/services/my-service/endpoints/endpoint-c` 562 // returns endpoints that have name that is alphabetically later than the 563 // string, so "endpoint-e" is returned but "endpoint-a" is not 564 // * `annotations.owner!=sd AND annotations.foo=bar` returns endpoints that 565 // have `owner` in annotation key but value is not `sd` AND have 566 // key/value `foo=bar` 567 // * `doesnotexist.foo=bar` returns an empty list. Note that endpoint 568 // doesn't have a field called "doesnotexist". Since the filter does not 569 // match any endpoints, it returns no results 570 // 571 // For more information about filtering, see 572 // [API Filtering](https://aip.dev/160). 573 string filter = 4 [(google.api.field_behavior) = OPTIONAL]; 574 575 // Optional. The order to list results by. 576 // 577 // General `order_by` string syntax: `<field> (<asc|desc>) (,)` 578 // 579 // * `<field>` allows values: `name`, `address`, `port` 580 // * `<asc|desc>` ascending or descending order by `<field>`. If this is 581 // left blank, `asc` is used 582 // 583 // Note that an empty `order_by` string results in default order, which is 584 // order by `name` in ascending order. 585 string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; 586} 587 588// The response message for 589// [RegistrationService.ListEndpoints][google.cloud.servicedirectory.v1.RegistrationService.ListEndpoints]. 590message ListEndpointsResponse { 591 // The list of endpoints. 592 repeated Endpoint endpoints = 1; 593 594 // Token to retrieve the next page of results, or empty if there are no 595 // more results in the list. 596 string next_page_token = 2; 597} 598 599// The request message for 600// [RegistrationService.GetEndpoint][google.cloud.servicedirectory.v1.RegistrationService.GetEndpoint]. 601// This should not be used to lookup endpoints at runtime. Instead, use 602// the `resolve` method. 603message GetEndpointRequest { 604 // Required. The name of the endpoint to get. 605 string name = 1 [ 606 (google.api.field_behavior) = REQUIRED, 607 (google.api.resource_reference) = { 608 type: "servicedirectory.googleapis.com/Endpoint" 609 } 610 ]; 611} 612 613// The request message for 614// [RegistrationService.UpdateEndpoint][google.cloud.servicedirectory.v1.RegistrationService.UpdateEndpoint]. 615message UpdateEndpointRequest { 616 // Required. The updated endpoint. 617 Endpoint endpoint = 1 [(google.api.field_behavior) = REQUIRED]; 618 619 // Required. List of fields to be updated in this request. 620 google.protobuf.FieldMask update_mask = 2 621 [(google.api.field_behavior) = REQUIRED]; 622} 623 624// The request message for 625// [RegistrationService.DeleteEndpoint][google.cloud.servicedirectory.v1.RegistrationService.DeleteEndpoint]. 626message DeleteEndpointRequest { 627 // Required. The name of the endpoint to delete. 628 string name = 1 [ 629 (google.api.field_behavior) = REQUIRED, 630 (google.api.resource_reference) = { 631 type: "servicedirectory.googleapis.com/Endpoint" 632 } 633 ]; 634} 635