Skip to content

Commit 9841522

Browse files
Google APIscopybara-github
authored andcommitted
feat: Add support for LbEdgeExtension resource in NetworkServices API
PiperOrigin-RevId: 827499725
1 parent 97763d6 commit 9841522

File tree

1 file changed

+267
-0
lines changed

1 file changed

+267
-0
lines changed

google/cloud/networkservices/v1/dep.proto

Lines changed: 267 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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.
9091176
message AuthzExtension {

0 commit comments

Comments
 (0)