@@ -164,6 +164,65 @@ service DepService {
164164 };
165165 }
166166
167+ // Lists `LbEdgeExtension` resources in a given project and location.
168+ rpc ListLbEdgeExtensions (ListLbEdgeExtensionsRequest )
169+ returns (ListLbEdgeExtensionsResponse ) {
170+ option (google.api.http ) = {
171+ get : "/v1/{parent=projects/*/locations/*}/lbEdgeExtensions"
172+ };
173+ option (google.api.method_signature ) = "parent" ;
174+ }
175+
176+ // Gets details of the specified `LbEdgeExtension` resource.
177+ rpc GetLbEdgeExtension (GetLbEdgeExtensionRequest ) returns (LbEdgeExtension ) {
178+ option (google.api.http ) = {
179+ get : "/v1/{name=projects/*/locations/*/lbEdgeExtensions/*}"
180+ };
181+ option (google.api.method_signature ) = "name" ;
182+ }
183+
184+ // Creates a new `LbEdgeExtension` resource in a given project and location.
185+ rpc CreateLbEdgeExtension (CreateLbEdgeExtensionRequest )
186+ returns (google.longrunning.Operation ) {
187+ option (google.api.http ) = {
188+ post : "/v1/{parent=projects/*/locations/*}/lbEdgeExtensions"
189+ body : "lb_edge_extension"
190+ };
191+ option (google.api.method_signature ) =
192+ "parent,lb_edge_extension,lb_edge_extension_id" ;
193+ option (google.longrunning.operation_info ) = {
194+ response_type : "LbEdgeExtension"
195+ metadata_type : "OperationMetadata"
196+ };
197+ }
198+
199+ // Updates the parameters of the specified `LbEdgeExtension` resource.
200+ rpc UpdateLbEdgeExtension (UpdateLbEdgeExtensionRequest )
201+ returns (google.longrunning.Operation ) {
202+ option (google.api.http ) = {
203+ patch : "/v1/{lb_edge_extension.name=projects/*/locations/*/lbEdgeExtensions/*}"
204+ body : "lb_edge_extension"
205+ };
206+ option (google.api.method_signature ) = "lb_edge_extension,update_mask" ;
207+ option (google.longrunning.operation_info ) = {
208+ response_type : "LbEdgeExtension"
209+ metadata_type : "OperationMetadata"
210+ };
211+ }
212+
213+ // Deletes the specified `LbEdgeExtension` resource.
214+ rpc DeleteLbEdgeExtension (DeleteLbEdgeExtensionRequest )
215+ returns (google.longrunning.Operation ) {
216+ option (google.api.http ) = {
217+ delete : "/v1/{name=projects/*/locations/*/lbEdgeExtensions/*}"
218+ };
219+ option (google.api.method_signature ) = "name" ;
220+ option (google.longrunning.operation_info ) = {
221+ response_type : "google.protobuf.Empty"
222+ metadata_type : "OperationMetadata"
223+ };
224+ }
225+
167226 // Lists `AuthzExtension` resources in a given project and location.
168227 rpc ListAuthzExtensions (ListAuthzExtensionsRequest )
169228 returns (ListAuthzExtensionsResponse ) {
@@ -904,6 +963,214 @@ message DeleteLbRouteExtensionRequest {
904963 ];
905964}
906965
966+ // `LbEdgeExtension` is a resource that lets the extension service influence
967+ // the selection of backend services and Cloud CDN cache keys by modifying
968+ // request headers.
969+ message LbEdgeExtension {
970+ option (google.api.resource ) = {
971+ type : "networkservices.googleapis.com/LbEdgeExtension"
972+ pattern : "projects/{project}/locations/{location}/lbEdgeExtensions/{lb_edge_extension}"
973+ plural : "lbEdgeExtensions"
974+ singular : "lbEdgeExtension"
975+ };
976+
977+ // Required. Identifier. Name of the `LbEdgeExtension` resource in the
978+ // following format:
979+ // `projects/{project}/locations/{location}/lbEdgeExtensions/{lb_edge_extension}`.
980+ string name = 1 [
981+ (google.api.field_behavior ) = REQUIRED ,
982+ (google.api.field_behavior ) = IDENTIFIER
983+ ];
984+
985+ // Output only. The timestamp when the resource was created.
986+ google.protobuf.Timestamp create_time = 2
987+ [(google.api.field_behavior ) = OUTPUT_ONLY ];
988+
989+ // Output only. The timestamp when the resource was updated.
990+ google.protobuf.Timestamp update_time = 3
991+ [(google.api.field_behavior ) = OUTPUT_ONLY ];
992+
993+ // Optional. A human-readable description of the resource.
994+ string description = 9 [(google.api.field_behavior ) = OPTIONAL ];
995+
996+ // Optional. Set of labels associated with the `LbEdgeExtension` resource.
997+ //
998+ // The format must comply with [the requirements for
999+ // labels](https://cloud.google.com/compute/docs/labeling-resources#requirements)
1000+ // for Google Cloud resources.
1001+ map <string , string > labels = 4 [(google.api.field_behavior ) = OPTIONAL ];
1002+
1003+ // Required. A list of references to the forwarding rules to which this
1004+ // service extension is attached. At least one forwarding rule is required.
1005+ // Only one `LbEdgeExtension` resource can be associated with a forwarding
1006+ // rule.
1007+ repeated string forwarding_rules = 5 [(google.api.field_behavior ) = REQUIRED ];
1008+
1009+ // Required. A set of ordered extension chains that contain the match
1010+ // conditions and extensions to execute. Match conditions for each extension
1011+ // chain are evaluated in sequence for a given request. The first extension
1012+ // chain that has a condition that matches the request is executed.
1013+ // Any subsequent extension chains do not execute.
1014+ // Limited to 5 extension chains per resource.
1015+ repeated ExtensionChain extension_chains = 6
1016+ [(google.api.field_behavior ) = REQUIRED ];
1017+
1018+ // Required. All forwarding rules referenced by this extension must
1019+ // share the same load balancing scheme.
1020+ // Supported values: `EXTERNAL_MANAGED`.
1021+ LoadBalancingScheme load_balancing_scheme = 7
1022+ [(google.api.field_behavior ) = REQUIRED ];
1023+ }
1024+
1025+ // Message for requesting list of `LbEdgeExtension` resources.
1026+ message ListLbEdgeExtensionsRequest {
1027+ // Required. The project and location from which the `LbEdgeExtension`
1028+ // resources are listed. These values are specified in the following format:
1029+ // `projects/{project}/locations/{location}`.
1030+ string parent = 1 [
1031+ (google.api.field_behavior ) = REQUIRED ,
1032+ (google.api.resource_reference ) = {
1033+ child_type : "networkservices.googleapis.com/LbEdgeExtension"
1034+ }
1035+ ];
1036+
1037+ // Optional. Requested page size. The server might return fewer items than
1038+ // requested. If unspecified, the server picks an appropriate default.
1039+ int32 page_size = 2 [(google.api.field_behavior ) = OPTIONAL ];
1040+
1041+ // Optional. A token identifying a page of results that the server returns.
1042+ string page_token = 3 [(google.api.field_behavior ) = OPTIONAL ];
1043+
1044+ // Optional. Filtering results.
1045+ string filter = 4 [(google.api.field_behavior ) = OPTIONAL ];
1046+
1047+ // Optional. Hint about how to order the results.
1048+ string order_by = 5 [(google.api.field_behavior ) = OPTIONAL ];
1049+ }
1050+
1051+ // Message for response to listing `LbEdgeExtension` resources.
1052+ message ListLbEdgeExtensionsResponse {
1053+ // The list of `LbEdgeExtension` resources.
1054+ repeated LbEdgeExtension lb_edge_extensions = 1 ;
1055+
1056+ // A token identifying a page of results that the server returns.
1057+ string next_page_token = 2 ;
1058+
1059+ // Locations that could not be reached.
1060+ repeated string unreachable = 3 ;
1061+ }
1062+
1063+ // Message for getting a `LbEdgeExtension` resource.
1064+ message GetLbEdgeExtensionRequest {
1065+ // Required. A name of the `LbEdgeExtension` resource to get. Must be in the
1066+ // format
1067+ // `projects/{project}/locations/{location}/lbEdgeExtensions/{lb_edge_extension}`.
1068+ string name = 1 [
1069+ (google.api.field_behavior ) = REQUIRED ,
1070+ (google.api.resource_reference ) = {
1071+ type : "networkservices.googleapis.com/LbEdgeExtension"
1072+ }
1073+ ];
1074+ }
1075+
1076+ // Message for creating a `LbEdgeExtension` resource.
1077+ message CreateLbEdgeExtensionRequest {
1078+ // Required. The parent resource of the `LbEdgeExtension` resource. Must be in
1079+ // the format `projects/{project}/locations/{location}`.
1080+ string parent = 1 [
1081+ (google.api.field_behavior ) = REQUIRED ,
1082+ (google.api.resource_reference ) = {
1083+ child_type : "networkservices.googleapis.com/LbEdgeExtension"
1084+ }
1085+ ];
1086+
1087+ // Required. User-provided ID of the `LbEdgeExtension` resource to be created.
1088+ string lb_edge_extension_id = 2 [(google.api.field_behavior ) = REQUIRED ];
1089+
1090+ // Required. `LbEdgeExtension` resource to be created.
1091+ LbEdgeExtension lb_edge_extension = 3
1092+ [(google.api.field_behavior ) = REQUIRED ];
1093+
1094+ // Optional. An optional request ID to identify requests. Specify a unique
1095+ // request ID so that if you must retry your request, the server can ignore
1096+ // the request if it has already been completed. The server guarantees
1097+ // that for 60 minutes since the first request.
1098+ //
1099+ // For example, consider a situation where you make an initial request and the
1100+ // request times out. If you make the request again with the same request
1101+ // ID, the server ignores the second request This prevents
1102+ // clients from accidentally creating duplicate commitments.
1103+ //
1104+ // The request ID must be a valid UUID with the exception that zero UUID is
1105+ // not supported (00000000-0000-0000-0000-000000000000).
1106+ string request_id = 4 [
1107+ (google.api.field_info ).format = UUID4 ,
1108+ (google.api.field_behavior ) = OPTIONAL
1109+ ];
1110+ }
1111+
1112+ // Message for updating a `LbEdgeExtension` resource.
1113+ message UpdateLbEdgeExtensionRequest {
1114+ // Optional. Used to specify the fields to be overwritten in the
1115+ // `LbEdgeExtension` resource by the update.
1116+ // The fields specified in the `update_mask` are relative to the resource, not
1117+ // the full request. A field is overwritten if it is in the mask. If the
1118+ // user does not specify a mask, then all fields are overwritten.
1119+ google.protobuf.FieldMask update_mask = 1
1120+ [(google.api.field_behavior ) = OPTIONAL ];
1121+
1122+ // Required. `LbEdgeExtension` resource being updated.
1123+ LbEdgeExtension lb_edge_extension = 2
1124+ [(google.api.field_behavior ) = REQUIRED ];
1125+
1126+ // Optional. An optional request ID to identify requests. Specify a unique
1127+ // request ID so that if you must retry your request, the server can ignore
1128+ // the request if it has already been completed. The server guarantees
1129+ // that for 60 minutes since the first request.
1130+ //
1131+ // For example, consider a situation where you make an initial request and the
1132+ // request times out. If you make the request again with the same request
1133+ // ID, the server ignores the second request This prevents
1134+ // clients from accidentally creating duplicate commitments.
1135+ //
1136+ // The request ID must be a valid UUID with the exception that zero UUID is
1137+ // not supported (00000000-0000-0000-0000-000000000000).
1138+ string request_id = 3 [
1139+ (google.api.field_info ).format = UUID4 ,
1140+ (google.api.field_behavior ) = OPTIONAL
1141+ ];
1142+ }
1143+
1144+ // Message for deleting a `LbEdgeExtension` resource.
1145+ message DeleteLbEdgeExtensionRequest {
1146+ // Required. The name of the `LbEdgeExtension` resource to delete. Must be in
1147+ // the format
1148+ // `projects/{project}/locations/{location}/lbEdgeExtensions/{lb_edge_extension}`.
1149+ string name = 1 [
1150+ (google.api.field_behavior ) = REQUIRED ,
1151+ (google.api.resource_reference ) = {
1152+ type : "networkservices.googleapis.com/LbEdgeExtension"
1153+ }
1154+ ];
1155+
1156+ // Optional. An optional request ID to identify requests. Specify a unique
1157+ // request ID so that if you must retry your request, the server can ignore
1158+ // the request if it has already been completed. The server guarantees
1159+ // that for 60 minutes after the first request.
1160+ //
1161+ // For example, consider a situation where you make an initial request and the
1162+ // request times out. If you make the request again with the same request
1163+ // ID, the server ignores the second request This prevents
1164+ // clients from accidentally creating duplicate commitments.
1165+ //
1166+ // The request ID must be a valid UUID with the exception that zero UUID is
1167+ // not supported (00000000-0000-0000-0000-000000000000).
1168+ string request_id = 2 [
1169+ (google.api.field_info ).format = UUID4 ,
1170+ (google.api.field_behavior ) = OPTIONAL
1171+ ];
1172+ }
1173+
9071174// `AuthzExtension` is a resource that allows traffic forwarding
9081175// to a callout backend service to make an authorization decision.
9091176message AuthzExtension {
0 commit comments