// Copyright 2020 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. syntax = "proto3"; package google.cloud.servicedirectory.v1; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/servicedirectory/v1/service.proto"; option cc_enable_arenas = true; option csharp_namespace = "Google.Cloud.ServiceDirectory.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/servicedirectory/v1;servicedirectory"; option java_multiple_files = true; option java_outer_classname = "LookupServiceProto"; option java_package = "com.google.cloud.servicedirectory.v1"; option php_namespace = "Google\\Cloud\\ServiceDirectory\\V1"; option ruby_package = "Google::Cloud::ServiceDirectory::V1"; // Service Directory API for looking up service data at runtime. service LookupService { option (google.api.default_host) = "servicedirectory.googleapis.com"; option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; // Returns a [service][google.cloud.servicedirectory.v1.Service] and its // associated endpoints. // Resolving a service is not considered an active developer method. rpc ResolveService(ResolveServiceRequest) returns (ResolveServiceResponse) { option (google.api.http) = { post: "/v1/{name=projects/*/locations/*/namespaces/*/services/*}:resolve" body: "*" }; } } // The request message for // [LookupService.ResolveService][google.cloud.servicedirectory.v1.LookupService.ResolveService]. // Looks up a service by its name, returns the service and its endpoints. message ResolveServiceRequest { // Required. The name of the service to resolve. string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { type: "servicedirectory.googleapis.com/Service" } ]; // Optional. The maximum number of endpoints to return. Defaults to 25. // Maximum is 100. If a value less than one is specified, the Default is used. // If a value greater than the Maximum is specified, the Maximum is used. int32 max_endpoints = 2 [(google.api.field_behavior) = OPTIONAL]; // Optional. The filter applied to the endpoints of the resolved service. // // General filter string syntax: // () // can be "name" or "metadata." for map field. // can be "<, >, <=, >=, !=, =, :". Of which ":" means HAS and is // roughly the same as "=". // must be the same data type as the field. // can be "AND, OR, NOT". // // Examples of valid filters: // * "metadata.owner" returns Endpoints that have a label with the // key "owner", this is the same as "metadata:owner" // * "metadata.protocol=gRPC" returns Endpoints that have key/value // "protocol=gRPC" // * "metadata.owner!=sd AND metadata.foo=bar" returns // Endpoints that have "owner" field in metadata with a value that is not // "sd" AND have the key/value foo=bar. string endpoint_filter = 3 [(google.api.field_behavior) = OPTIONAL]; } // The response message for // [LookupService.ResolveService][google.cloud.servicedirectory.v1.LookupService.ResolveService]. message ResolveServiceResponse { Service service = 1; }