From d3ccbbd1dab7dafc812b4bfe2d3e33783ebe842f Mon Sep 17 00:00:00 2001 From: Google APIs Date: Mon, 25 Mar 2024 09:33:13 -0700 Subject: [PATCH] feat: publish DEP proto PiperOrigin-RevId: 618868225 --- google/cloud/networkservices/v1/BUILD.bazel | 21 +- google/cloud/networkservices/v1/dep.proto | 734 ++++++++++++++++++ .../v1/networkservices_v1.yaml | 5 + 3 files changed, 758 insertions(+), 2 deletions(-) create mode 100644 google/cloud/networkservices/v1/dep.proto diff --git a/google/cloud/networkservices/v1/BUILD.bazel b/google/cloud/networkservices/v1/BUILD.bazel index 1c412df129685..cdcde1f9a6958 100644 --- a/google/cloud/networkservices/v1/BUILD.bazel +++ b/google/cloud/networkservices/v1/BUILD.bazel @@ -9,19 +9,23 @@ # * extra_protoc_file_parameters # The complete list of preserved parameters can be found in the source code. +# buildifier: disable=load-on-top + # This is an API workspace, having public visibility by default makes perfect sense. package(default_visibility = ["//visibility:public"]) ############################################################################## # Common ############################################################################## -load("@rules_proto//proto:defs.bzl", "proto_library") +# buildifier: disable=same-origin-load load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") proto_library( name = "networkservices_proto", srcs = [ "common.proto", + "dep.proto", "endpoint_policy.proto", "gateway.proto", "grpc_route.proto", @@ -36,9 +40,11 @@ proto_library( "//google/api:annotations_proto", "//google/api:client_proto", "//google/api:field_behavior_proto", + "//google/api:field_info_proto", "//google/api:resource_proto", "//google/longrunning:operations_proto", "@com_google_protobuf//:duration_proto", + "@com_google_protobuf//:empty_proto", "@com_google_protobuf//:field_mask_proto", "@com_google_protobuf//:timestamp_proto", ], @@ -57,6 +63,7 @@ proto_library_with_info( ############################################################################## # Java ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "java_gapic_assembly_gradle_pkg", @@ -85,9 +92,9 @@ java_gapic_library( rest_numeric_enums = True, service_yaml = "networkservices_v1.yaml", test_deps = [ + ":networkservices_java_grpc", "//google/cloud/location:location_java_grpc", "//google/iam/v1:iam_java_grpc", - ":networkservices_java_grpc", ], transport = "grpc+rest", deps = [ @@ -101,6 +108,8 @@ java_gapic_library( java_gapic_test( name = "networkservices_java_gapic_test_suite", test_classes = [ + "com.google.cloud.networkservices.v1.DepServiceClientHttpJsonTest", + "com.google.cloud.networkservices.v1.DepServiceClientTest", "com.google.cloud.networkservices.v1.NetworkServicesClientHttpJsonTest", "com.google.cloud.networkservices.v1.NetworkServicesClientTest", ], @@ -123,6 +132,7 @@ java_gapic_assembly_gradle_pkg( ############################################################################## # Go ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "go_gapic_assembly_pkg", @@ -177,6 +187,7 @@ go_gapic_assembly_pkg( ############################################################################## # Python ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", @@ -222,6 +233,7 @@ py_gapic_assembly_pkg( ############################################################################## # PHP ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "php_gapic_assembly_pkg", @@ -259,6 +271,7 @@ php_gapic_assembly_pkg( ############################################################################## # Node.js ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "nodejs_gapic_assembly_pkg", @@ -289,6 +302,7 @@ nodejs_gapic_assembly_pkg( ############################################################################## # Ruby ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "ruby_cloud_gapic_library", @@ -335,6 +349,7 @@ ruby_gapic_assembly_pkg( ############################################################################## # C# ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "csharp_gapic_assembly_pkg", @@ -345,6 +360,7 @@ load( csharp_proto_library( name = "networkservices_csharp_proto", + extra_opts = [], deps = [":networkservices_proto"], ) @@ -381,6 +397,7 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "cc_grpc_library", diff --git a/google/cloud/networkservices/v1/dep.proto b/google/cloud/networkservices/v1/dep.proto new file mode 100644 index 0000000000000..a97669c323748 --- /dev/null +++ b/google/cloud/networkservices/v1/dep.proto @@ -0,0 +1,734 @@ +// Copyright 2023 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.networkservices.v1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/field_info.proto"; +import "google/api/resource.proto"; +import "google/cloud/networkservices/v1/common.proto"; +import "google/longrunning/operations.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/empty.proto"; +import "google/protobuf/field_mask.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.NetworkServices.V1"; +option go_package = "cloud.google.com/go/networkservices/apiv1/networkservicespb;networkservicespb"; +option java_multiple_files = true; +option java_outer_classname = "DepProto"; +option java_package = "com.google.cloud.networkservices.v1"; +option php_namespace = "Google\\Cloud\\NetworkServices\\V1"; +option ruby_package = "Google::Cloud::NetworkServices::V1"; + +// Service describing handlers for resources. +service DepService { + option (google.api.default_host) = "networkservices.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Lists `LbTrafficExtension` resources in a given project and location. + rpc ListLbTrafficExtensions(ListLbTrafficExtensionsRequest) + returns (ListLbTrafficExtensionsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/lbTrafficExtensions" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets details of the specified `LbTrafficExtension` resource. + rpc GetLbTrafficExtension(GetLbTrafficExtensionRequest) + returns (LbTrafficExtension) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/lbTrafficExtensions/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a new `LbTrafficExtension` resource in a given project and + // location. + rpc CreateLbTrafficExtension(CreateLbTrafficExtensionRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/lbTrafficExtensions" + body: "lb_traffic_extension" + }; + option (google.api.method_signature) = + "parent,lb_traffic_extension,lb_traffic_extension_id"; + option (google.longrunning.operation_info) = { + response_type: "LbTrafficExtension" + metadata_type: "OperationMetadata" + }; + } + + // Updates the parameters of the specified `LbTrafficExtension` resource. + rpc UpdateLbTrafficExtension(UpdateLbTrafficExtensionRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1/{lb_traffic_extension.name=projects/*/locations/*/lbTrafficExtensions/*}" + body: "lb_traffic_extension" + }; + option (google.api.method_signature) = "lb_traffic_extension,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "LbTrafficExtension" + metadata_type: "OperationMetadata" + }; + } + + // Deletes the specified `LbTrafficExtension` resource. + rpc DeleteLbTrafficExtension(DeleteLbTrafficExtensionRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/lbTrafficExtensions/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "OperationMetadata" + }; + } + + // Lists `LbRouteExtension` resources in a given project and location. + rpc ListLbRouteExtensions(ListLbRouteExtensionsRequest) + returns (ListLbRouteExtensionsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/lbRouteExtensions" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets details of the specified `LbRouteExtension` resource. + rpc GetLbRouteExtension(GetLbRouteExtensionRequest) + returns (LbRouteExtension) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/lbRouteExtensions/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a new `LbRouteExtension` resource in a given project and location. + rpc CreateLbRouteExtension(CreateLbRouteExtensionRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/lbRouteExtensions" + body: "lb_route_extension" + }; + option (google.api.method_signature) = + "parent,lb_route_extension,lb_route_extension_id"; + option (google.longrunning.operation_info) = { + response_type: "LbRouteExtension" + metadata_type: "OperationMetadata" + }; + } + + // Updates the parameters of the specified `LbRouteExtension` resource. + rpc UpdateLbRouteExtension(UpdateLbRouteExtensionRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1/{lb_route_extension.name=projects/*/locations/*/lbRouteExtensions/*}" + body: "lb_route_extension" + }; + option (google.api.method_signature) = "lb_route_extension,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "LbRouteExtension" + metadata_type: "OperationMetadata" + }; + } + + // Deletes the specified `LbRouteExtension` resource. + rpc DeleteLbRouteExtension(DeleteLbRouteExtensionRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/lbRouteExtensions/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "OperationMetadata" + }; + } +} + +// The part of the request or response for which the extension is called. +enum EventType { + // Unspecified value. Do not use. + EVENT_TYPE_UNSPECIFIED = 0; + + // If included in `supported_events`, + // the extension is called when the HTTP request headers arrive. + REQUEST_HEADERS = 1; + + // If included in `supported_events`, + // the extension is called when the HTTP request body arrives. + REQUEST_BODY = 2; + + // If included in `supported_events`, + // the extension is called when the HTTP response headers arrive. + RESPONSE_HEADERS = 3; + + // If included in `supported_events`, + // the extension is called when the HTTP response body arrives. + RESPONSE_BODY = 4; + + // If included in `supported_events`, + // the extension is called when the HTTP request trailers arrives. + REQUEST_TRAILERS = 5; + + // If included in `supported_events`, + // the extension is called when the HTTP response trailers arrives. + RESPONSE_TRAILERS = 6; +} + +// Load balancing schemes supported by the `LbTrafficExtension` resource and +// `LbRouteExtension` resource. +// For more information, refer to [Choosing a load +// balancer](https://cloud.google.com/load-balancing/docs/backend-service). +enum LoadBalancingScheme { + // Default value. Do not use. + LOAD_BALANCING_SCHEME_UNSPECIFIED = 0; + + // Signifies that this is used for Internal HTTP(S) Load Balancing. + INTERNAL_MANAGED = 1; + + // Signifies that this is used for External Managed HTTP(S) Load + // Balancing. + EXTERNAL_MANAGED = 2; +} + +// A single extension chain wrapper that contains the match conditions and +// extensions to execute. +message ExtensionChain { + // Conditions under which this chain is invoked for a request. + message MatchCondition { + // Required. A Common Expression Language (CEL) expression that is used to + // match requests for which the extension chain is executed. + // + // For more information, see + // [CEL matcher language + // reference](https://cloud.google.com/service-extensions/docs/cel-matcher-language-reference). + string cel_expression = 1 [(google.api.field_behavior) = REQUIRED]; + } + + // A single extension in the chain to execute for the matching request. + message Extension { + // Required. The name for this extension. + // The name is logged as part of the HTTP request logs. + // The name must conform with RFC-1034, is restricted to lower-cased + // letters, numbers and hyphens, and can have a maximum length of 63 + // characters. Additionally, the first character must be a letter and the + // last a letter or a number. + string name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The `:authority` header in the gRPC request sent from Envoy + // to the extension service. + // Required for Callout extensions. + string authority = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The reference to the service that runs the extension. + // + // Currently only callout extensions are supported here. + // + // To configure a callout extension, `service` must be a fully-qualified + // reference + // to a [backend + // service](https://cloud.google.com/compute/docs/reference/rest/v1/backendServices) + // in the format: + // `https://www.googleapis.com/compute/v1/projects/{project}/regions/{region}/backendServices/{backendService}` + // or + // `https://www.googleapis.com/compute/v1/projects/{project}/global/backendServices/{backendService}`. + string service = 3 [(google.api.field_behavior) = REQUIRED]; + + // Optional. A set of events during request or response processing for which + // this extension is called. This field is required for the + // `LbTrafficExtension` resource. It's not relevant for the + // `LbRouteExtension` resource. + repeated EventType supported_events = 4 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies the timeout for each individual message on the + // stream. The timeout must be between 10-1000 milliseconds. Required for + // Callout extensions. + google.protobuf.Duration timeout = 5 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Determines how the proxy behaves if the call to the extension + // fails or times out. + // + // When set to `TRUE`, request or response processing continues without + // error. Any subsequent extensions in the extension chain are also + // executed. When set to `FALSE` or the default setting of `FALSE` is used, + // one of the following happens: + // * If response headers have not been delivered to the downstream client, + // a generic 500 error is returned to the client. The error response can be + // tailored by configuring a custom error response in the load balancer. + // + // * If response headers have been delivered, then the HTTP stream to the + // downstream client is reset. + bool fail_open = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. List of the HTTP headers to forward to the extension + // (from the client or backend). If omitted, all headers are sent. + // Each element is a string indicating the header name. + repeated string forward_headers = 7 + [(google.api.field_behavior) = OPTIONAL]; + } + + // Required. The name for this extension chain. + // The name is logged as part of the HTTP request logs. + // The name must conform with RFC-1034, is restricted to lower-cased letters, + // numbers and hyphens, and can have a maximum length of 63 characters. + // Additionally, the first character must be a letter and the last a letter or + // a number. + string name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Conditions under which this chain is invoked for a request. + MatchCondition match_condition = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. A set of extensions to execute for the matching request. + // At least one extension is required. + // Up to 3 extensions can be defined for each extension chain + // for `LbTrafficExtension` resource. + // `LbRouteExtension` chains are limited to 1 extension per extension chain. + repeated Extension extensions = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// `LbTrafficExtension` is a resource that lets the extension service modify the +// headers and payloads of both requests and responses without impacting the +// choice of backend services or any other security policies associated with the +// backend service. +message LbTrafficExtension { + option (google.api.resource) = { + type: "networkservices.googleapis.com/LbTrafficExtension" + pattern: "projects/{project}/locations/{location}/lbTrafficExtensions/{lb_traffic_extension}" + plural: "lbTrafficExtensions" + singular: "lbTrafficExtension" + }; + + // Required. Identifier. Name of the `LbTrafficExtension` resource in the + // following format: + // `projects/{project}/locations/{location}/lbTrafficExtensions/{lb_traffic_extension}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IDENTIFIER + ]; + + // Output only. The timestamp when the resource was created. + google.protobuf.Timestamp create_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The timestamp when the resource was updated. + google.protobuf.Timestamp update_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. A human-readable description of the resource. + string description = 9 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Set of labels associated with the `LbTrafficExtension` resource. + // + // The format must comply with [the requirements for + // labels](https://cloud.google.com/compute/docs/labeling-resources#requirements) for Google Cloud + // resources. + map labels = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Required. A list of references to the forwarding rules to which this + // service extension is attached to. At least one forwarding rule is required. + // There can be only one `LBTrafficExtension` resource per forwarding rule. + repeated string forwarding_rules = 5 [(google.api.field_behavior) = REQUIRED]; + + // Required. A set of ordered extension chains that contain the match + // conditions and extensions to execute. Match conditions for each extension + // chain are evaluated in sequence for a given request. The first extension + // chain that has a condition that matches the request is executed. + // Any subsequent extension chains do not execute. + // Limited to 5 extension chains per resource. + repeated ExtensionChain extension_chains = 7 + [(google.api.field_behavior) = REQUIRED]; + + // Required. All backend services and forwarding rules referenced by this + // extension must share the same load balancing scheme. Supported values: + // `INTERNAL_MANAGED`, `EXTERNAL_MANAGED`. For more information, refer to + // [Choosing a load + // balancer](https://cloud.google.com/load-balancing/docs/backend-service). + LoadBalancingScheme load_balancing_scheme = 8 + [(google.api.field_behavior) = REQUIRED]; +} + +// Message for requesting list of `LbTrafficExtension` resources. +message ListLbTrafficExtensionsRequest { + // Required. The project and location from which the `LbTrafficExtension` + // resources are listed, specified in the following format: + // `projects/{project}/locations/{location}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "networkservices.googleapis.com/LbTrafficExtension" + } + ]; + + // Optional. Requested page size. The server might return fewer items than + // requested. If unspecified, the server picks an appropriate default. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A token identifying a page of results that the server returns. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Filtering results. + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Hint for how to order the results. + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// Message for response to listing `LbTrafficExtension` resources. +message ListLbTrafficExtensionsResponse { + // The list of `LbTrafficExtension` resources. + repeated LbTrafficExtension lb_traffic_extensions = 1; + + // A token identifying a page of results that the server returns. + string next_page_token = 2; + + // Locations that could not be reached. + repeated string unreachable = 3; +} + +// Message for getting a `LbTrafficExtension` resource. +message GetLbTrafficExtensionRequest { + // Required. A name of the `LbTrafficExtension` resource to get. Must be in + // the format + // `projects/{project}/locations/{location}/lbTrafficExtensions/{lb_traffic_extension}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "networkservices.googleapis.com/LbTrafficExtension" + } + ]; +} + +// Message for creating a `LbTrafficExtension` resource. +message CreateLbTrafficExtensionRequest { + // Required. The parent resource of the `LbTrafficExtension` resource. Must be + // in the format `projects/{project}/locations/{location}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "networkservices.googleapis.com/LbTrafficExtension" + } + ]; + + // Required. User-provided ID of the `LbTrafficExtension` resource to be + // created. + string lb_traffic_extension_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. `LbTrafficExtension` resource to be created. + LbTrafficExtension lb_traffic_extension = 3 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server can ignore + // the request if it has already been completed. The server guarantees + // that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and the + // request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, ignores the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + string request_id = 4 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OPTIONAL + ]; +} + +// Message for updating a `LbTrafficExtension` resource. +message UpdateLbTrafficExtensionRequest { + // Required. Used to specify the fields to be overwritten in the + // `LbTrafficExtension` resource by the update. + // The fields specified in the update_mask are relative to the resource, not + // the full request. A field is overwritten if it is in the mask. If the + // user does not specify a mask, then all fields are overwritten. + google.protobuf.FieldMask update_mask = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. `LbTrafficExtension` resource being updated. + LbTrafficExtension lb_traffic_extension = 2 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server can ignore + // the request if it has already been completed. The server guarantees + // that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and the + // request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, ignores the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + string request_id = 3 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OPTIONAL + ]; +} + +// Message for deleting a `LbTrafficExtension` resource. +message DeleteLbTrafficExtensionRequest { + // Required. The name of the `LbTrafficExtension` resource to delete. Must be + // in the format + // `projects/{project}/locations/{location}/lbTrafficExtensions/{lb_traffic_extension}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "networkservices.googleapis.com/LbTrafficExtension" + } + ]; + + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server can ignore + // the request if it has already been completed. The server guarantees + // that for at least 60 minutes after the first request. + // + // For example, consider a situation where you make an initial request and the + // request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, ignores the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + string request_id = 2 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OPTIONAL + ]; +} + +// `LbRouteExtension` is a resource that lets you control where traffic is +// routed to for a given request. +message LbRouteExtension { + option (google.api.resource) = { + type: "networkservices.googleapis.com/LbRouteExtension" + pattern: "projects/{project}/locations/{location}/lbRouteExtensions/{lb_route_extension}" + plural: "lbRouteExtensions" + singular: "lbRouteExtension" + }; + + // Required. Identifier. Name of the `LbRouteExtension` resource in the + // following format: + // `projects/{project}/locations/{location}/lbRouteExtensions/{lb_route_extension}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IDENTIFIER + ]; + + // Output only. The timestamp when the resource was created. + google.protobuf.Timestamp create_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The timestamp when the resource was updated. + google.protobuf.Timestamp update_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. A human-readable description of the resource. + string description = 9 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Set of labels associated with the `LbRouteExtension` resource. + // + // The format must comply with [the requirements for + // labels](https://cloud.google.com/compute/docs/labeling-resources#requirements) for Google Cloud + // resources. + map labels = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Required. A list of references to the forwarding rules to which this + // service extension is attached to. At least one forwarding rule is required. + // There can be only one `LbRouteExtension` resource per forwarding rule. + repeated string forwarding_rules = 5 [(google.api.field_behavior) = REQUIRED]; + + // Required. A set of ordered extension chains that contain the match + // conditions and extensions to execute. Match conditions for each extension + // chain are evaluated in sequence for a given request. The first extension + // chain that has a condition that matches the request is executed. + // Any subsequent extension chains do not execute. + // Limited to 5 extension chains per resource. + repeated ExtensionChain extension_chains = 7 + [(google.api.field_behavior) = REQUIRED]; + + // Required. All backend services and forwarding rules referenced by this + // extension must share the same load balancing scheme. Supported values: + // `INTERNAL_MANAGED`, `EXTERNAL_MANAGED`. For more information, refer to + // [Choosing a load + // balancer](https://cloud.google.com/load-balancing/docs/backend-service). + LoadBalancingScheme load_balancing_scheme = 8 + [(google.api.field_behavior) = REQUIRED]; +} + +// Message for requesting list of `LbRouteExtension` resources. +message ListLbRouteExtensionsRequest { + // Required. The project and location from which the `LbRouteExtension` + // resources are listed, specified in the following format: + // `projects/{project}/locations/{location}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "networkservices.googleapis.com/LbRouteExtension" + } + ]; + + // Optional. Requested page size. The server might return fewer items than + // requested. If unspecified, the server picks an appropriate default. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A token identifying a page of results that the server returns. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Filtering results. + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Hint for how to order the results. + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// Message for response to listing `LbRouteExtension` resources. +message ListLbRouteExtensionsResponse { + // The list of `LbRouteExtension` resources. + repeated LbRouteExtension lb_route_extensions = 1; + + // A token identifying a page of results that the server returns. + string next_page_token = 2; + + // Locations that could not be reached. + repeated string unreachable = 3; +} + +// Message for getting a `LbRouteExtension` resource. +message GetLbRouteExtensionRequest { + // Required. A name of the `LbRouteExtension` resource to get. Must be in the + // format + // `projects/{project}/locations/{location}/lbRouteExtensions/{lb_route_extension}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "networkservices.googleapis.com/LbRouteExtension" + } + ]; +} + +// Message for creating a `LbRouteExtension` resource. +message CreateLbRouteExtensionRequest { + // Required. The parent resource of the `LbRouteExtension` resource. Must be + // in the format `projects/{project}/locations/{location}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "networkservices.googleapis.com/LbRouteExtension" + } + ]; + + // Required. User-provided ID of the `LbRouteExtension` resource to be + // created. + string lb_route_extension_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. `LbRouteExtension` resource to be created. + LbRouteExtension lb_route_extension = 3 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server can ignore + // the request if it has already been completed. The server guarantees + // that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and the + // request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, ignores the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + string request_id = 4 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OPTIONAL + ]; +} + +// Message for updating a `LbRouteExtension` resource. +message UpdateLbRouteExtensionRequest { + // Required. Used to specify the fields to be overwritten in the + // `LbRouteExtension` resource by the update. + // The fields specified in the update_mask are relative to the resource, not + // the full request. A field is overwritten if it is in the mask. If the + // user does not specify a mask, then all fields are overwritten. + google.protobuf.FieldMask update_mask = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. `LbRouteExtension` resource being updated. + LbRouteExtension lb_route_extension = 2 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server can ignore + // the request if it has already been completed. The server guarantees + // that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and the + // request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, ignores the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + string request_id = 3 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OPTIONAL + ]; +} + +// Message for deleting a `LbRouteExtension` resource. +message DeleteLbRouteExtensionRequest { + // Required. The name of the `LbRouteExtension` resource to delete. Must be in + // the format + // `projects/{project}/locations/{location}/lbRouteExtensions/{lb_route_extension}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "networkservices.googleapis.com/LbRouteExtension" + } + ]; + + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server can ignore + // the request if it has already been completed. The server guarantees + // that for at least 60 minutes after the first request. + // + // For example, consider a situation where you make an initial request and the + // request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, ignores the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + string request_id = 2 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OPTIONAL + ]; +} diff --git a/google/cloud/networkservices/v1/networkservices_v1.yaml b/google/cloud/networkservices/v1/networkservices_v1.yaml index 7b0a45ae99b01..6ad715732a54f 100644 --- a/google/cloud/networkservices/v1/networkservices_v1.yaml +++ b/google/cloud/networkservices/v1/networkservices_v1.yaml @@ -5,6 +5,7 @@ title: Network Services API apis: - name: google.cloud.location.Locations +- name: google.cloud.networkservices.v1.DepService - name: google.cloud.networkservices.v1.NetworkServices - name: google.iam.v1.IAMPolicy - name: google.longrunning.Operations @@ -123,6 +124,10 @@ authentication: oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform + - selector: 'google.cloud.networkservices.v1.DepService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform - selector: 'google.cloud.networkservices.v1.NetworkServices.*' oauth: canonical_scopes: |-