network_services.proto 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460
  1. // Copyright 2022 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. syntax = "proto3";
  15. package google.cloud.networkservices.v1;
  16. import "google/api/annotations.proto";
  17. import "google/api/client.proto";
  18. import "google/cloud/networkservices/v1/endpoint_policy.proto";
  19. import "google/cloud/networkservices/v1/gateway.proto";
  20. import "google/cloud/networkservices/v1/grpc_route.proto";
  21. import "google/cloud/networkservices/v1/http_route.proto";
  22. import "google/cloud/networkservices/v1/mesh.proto";
  23. import "google/cloud/networkservices/v1/service_binding.proto";
  24. import "google/cloud/networkservices/v1/tcp_route.proto";
  25. import "google/cloud/networkservices/v1/tls_route.proto";
  26. import "google/longrunning/operations.proto";
  27. option csharp_namespace = "Google.Cloud.NetworkServices.V1";
  28. option go_package = "google.golang.org/genproto/googleapis/cloud/networkservices/v1;networkservices";
  29. option java_multiple_files = true;
  30. option java_package = "com.google.cloud.networkservices.v1";
  31. option php_namespace = "Google\\Cloud\\NetworkServices\\V1";
  32. option ruby_package = "Google::Cloud::NetworkServices::V1";
  33. service NetworkServices {
  34. option (google.api.default_host) = "networkservices.googleapis.com";
  35. option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform";
  36. // Lists EndpointPolicies in a given project and location.
  37. rpc ListEndpointPolicies(ListEndpointPoliciesRequest) returns (ListEndpointPoliciesResponse) {
  38. option (google.api.http) = {
  39. get: "/v1/{parent=projects/*/locations/*}/endpointPolicies"
  40. };
  41. option (google.api.method_signature) = "parent";
  42. }
  43. // Gets details of a single EndpointPolicy.
  44. rpc GetEndpointPolicy(GetEndpointPolicyRequest) returns (EndpointPolicy) {
  45. option (google.api.http) = {
  46. get: "/v1/{name=projects/*/locations/*/endpointPolicies/*}"
  47. };
  48. option (google.api.method_signature) = "name";
  49. }
  50. // Creates a new EndpointPolicy in a given project and location.
  51. rpc CreateEndpointPolicy(CreateEndpointPolicyRequest) returns (google.longrunning.Operation) {
  52. option (google.api.http) = {
  53. post: "/v1/{parent=projects/*/locations/*}/endpointPolicies"
  54. body: "endpoint_policy"
  55. };
  56. option (google.api.method_signature) = "parent,endpoint_policy,endpoint_policy_id";
  57. option (google.longrunning.operation_info) = {
  58. response_type: "EndpointPolicy"
  59. metadata_type: "google.cloud.networkservices.v1.OperationMetadata"
  60. };
  61. }
  62. // Updates the parameters of a single EndpointPolicy.
  63. rpc UpdateEndpointPolicy(UpdateEndpointPolicyRequest) returns (google.longrunning.Operation) {
  64. option (google.api.http) = {
  65. patch: "/v1/{endpoint_policy.name=projects/*/locations/*/endpointPolicies/*}"
  66. body: "endpoint_policy"
  67. };
  68. option (google.api.method_signature) = "endpoint_policy,update_mask";
  69. option (google.longrunning.operation_info) = {
  70. response_type: "EndpointPolicy"
  71. metadata_type: "google.cloud.networkservices.v1.OperationMetadata"
  72. };
  73. }
  74. // Deletes a single EndpointPolicy.
  75. rpc DeleteEndpointPolicy(DeleteEndpointPolicyRequest) returns (google.longrunning.Operation) {
  76. option (google.api.http) = {
  77. delete: "/v1/{name=projects/*/locations/*/endpointPolicies/*}"
  78. };
  79. option (google.api.method_signature) = "name";
  80. option (google.longrunning.operation_info) = {
  81. response_type: "google.protobuf.Empty"
  82. metadata_type: "google.cloud.networkservices.v1.OperationMetadata"
  83. };
  84. }
  85. // Lists Gateways in a given project and location.
  86. rpc ListGateways(ListGatewaysRequest) returns (ListGatewaysResponse) {
  87. option (google.api.http) = {
  88. get: "/v1/{parent=projects/*/locations/*}/gateways"
  89. };
  90. option (google.api.method_signature) = "parent";
  91. }
  92. // Gets details of a single Gateway.
  93. rpc GetGateway(GetGatewayRequest) returns (Gateway) {
  94. option (google.api.http) = {
  95. get: "/v1/{name=projects/*/locations/*/gateways/*}"
  96. };
  97. option (google.api.method_signature) = "name";
  98. }
  99. // Creates a new Gateway in a given project and location.
  100. rpc CreateGateway(CreateGatewayRequest) returns (google.longrunning.Operation) {
  101. option (google.api.http) = {
  102. post: "/v1/{parent=projects/*/locations/*}/gateways"
  103. body: "gateway"
  104. };
  105. option (google.api.method_signature) = "parent,gateway,gateway_id";
  106. option (google.longrunning.operation_info) = {
  107. response_type: "Gateway"
  108. metadata_type: "google.cloud.networkservices.v1.OperationMetadata"
  109. };
  110. }
  111. // Updates the parameters of a single Gateway.
  112. rpc UpdateGateway(UpdateGatewayRequest) returns (google.longrunning.Operation) {
  113. option (google.api.http) = {
  114. patch: "/v1/{gateway.name=projects/*/locations/*/gateways/*}"
  115. body: "gateway"
  116. };
  117. option (google.api.method_signature) = "gateway,update_mask";
  118. option (google.longrunning.operation_info) = {
  119. response_type: "Gateway"
  120. metadata_type: "google.cloud.networkservices.v1.OperationMetadata"
  121. };
  122. }
  123. // Deletes a single Gateway.
  124. rpc DeleteGateway(DeleteGatewayRequest) returns (google.longrunning.Operation) {
  125. option (google.api.http) = {
  126. delete: "/v1/{name=projects/*/locations/*/gateways/*}"
  127. };
  128. option (google.api.method_signature) = "name";
  129. option (google.longrunning.operation_info) = {
  130. response_type: "google.protobuf.Empty"
  131. metadata_type: "google.cloud.networkservices.v1.OperationMetadata"
  132. };
  133. }
  134. // Lists GrpcRoutes in a given project and location.
  135. rpc ListGrpcRoutes(ListGrpcRoutesRequest) returns (ListGrpcRoutesResponse) {
  136. option (google.api.http) = {
  137. get: "/v1/{parent=projects/*/locations/*}/grpcRoutes"
  138. };
  139. option (google.api.method_signature) = "parent";
  140. }
  141. // Gets details of a single GrpcRoute.
  142. rpc GetGrpcRoute(GetGrpcRouteRequest) returns (GrpcRoute) {
  143. option (google.api.http) = {
  144. get: "/v1/{name=projects/*/locations/*/grpcRoutes/*}"
  145. };
  146. option (google.api.method_signature) = "name";
  147. }
  148. // Creates a new GrpcRoute in a given project and location.
  149. rpc CreateGrpcRoute(CreateGrpcRouteRequest) returns (google.longrunning.Operation) {
  150. option (google.api.http) = {
  151. post: "/v1/{parent=projects/*/locations/*}/grpcRoutes"
  152. body: "grpc_route"
  153. };
  154. option (google.api.method_signature) = "parent,grpc_route,grpc_route_id";
  155. option (google.longrunning.operation_info) = {
  156. response_type: "GrpcRoute"
  157. metadata_type: "google.cloud.networkservices.v1.OperationMetadata"
  158. };
  159. }
  160. // Updates the parameters of a single GrpcRoute.
  161. rpc UpdateGrpcRoute(UpdateGrpcRouteRequest) returns (google.longrunning.Operation) {
  162. option (google.api.http) = {
  163. patch: "/v1/{grpc_route.name=projects/*/locations/*/grpcRoutes/*}"
  164. body: "grpc_route"
  165. };
  166. option (google.api.method_signature) = "grpc_route,update_mask";
  167. option (google.longrunning.operation_info) = {
  168. response_type: "GrpcRoute"
  169. metadata_type: "google.cloud.networkservices.v1.OperationMetadata"
  170. };
  171. }
  172. // Deletes a single GrpcRoute.
  173. rpc DeleteGrpcRoute(DeleteGrpcRouteRequest) returns (google.longrunning.Operation) {
  174. option (google.api.http) = {
  175. delete: "/v1/{name=projects/*/locations/*/grpcRoutes/*}"
  176. };
  177. option (google.api.method_signature) = "name";
  178. option (google.longrunning.operation_info) = {
  179. response_type: "google.protobuf.Empty"
  180. metadata_type: "google.cloud.networkservices.v1.OperationMetadata"
  181. };
  182. }
  183. // Lists HttpRoute in a given project and location.
  184. rpc ListHttpRoutes(ListHttpRoutesRequest) returns (ListHttpRoutesResponse) {
  185. option (google.api.http) = {
  186. get: "/v1/{parent=projects/*/locations/*}/httpRoutes"
  187. };
  188. option (google.api.method_signature) = "parent";
  189. }
  190. // Gets details of a single HttpRoute.
  191. rpc GetHttpRoute(GetHttpRouteRequest) returns (HttpRoute) {
  192. option (google.api.http) = {
  193. get: "/v1/{name=projects/*/locations/*/httpRoutes/*}"
  194. };
  195. option (google.api.method_signature) = "name";
  196. }
  197. // Creates a new HttpRoute in a given project and location.
  198. rpc CreateHttpRoute(CreateHttpRouteRequest) returns (google.longrunning.Operation) {
  199. option (google.api.http) = {
  200. post: "/v1/{parent=projects/*/locations/*}/httpRoutes"
  201. body: "http_route"
  202. };
  203. option (google.api.method_signature) = "parent,http_route,http_route_id";
  204. option (google.longrunning.operation_info) = {
  205. response_type: "HttpRoute"
  206. metadata_type: "google.cloud.networkservices.v1.OperationMetadata"
  207. };
  208. }
  209. // Updates the parameters of a single HttpRoute.
  210. rpc UpdateHttpRoute(UpdateHttpRouteRequest) returns (google.longrunning.Operation) {
  211. option (google.api.http) = {
  212. patch: "/v1/{http_route.name=projects/*/locations/*/httpRoutes/*}"
  213. body: "http_route"
  214. };
  215. option (google.api.method_signature) = "http_route,update_mask";
  216. option (google.longrunning.operation_info) = {
  217. response_type: "HttpRoute"
  218. metadata_type: "google.cloud.networkservices.v1.OperationMetadata"
  219. };
  220. }
  221. // Deletes a single HttpRoute.
  222. rpc DeleteHttpRoute(DeleteHttpRouteRequest) returns (google.longrunning.Operation) {
  223. option (google.api.http) = {
  224. delete: "/v1/{name=projects/*/locations/*/httpRoutes/*}"
  225. };
  226. option (google.api.method_signature) = "name";
  227. option (google.longrunning.operation_info) = {
  228. response_type: "google.protobuf.Empty"
  229. metadata_type: "google.cloud.networkservices.v1.OperationMetadata"
  230. };
  231. }
  232. // Lists TcpRoute in a given project and location.
  233. rpc ListTcpRoutes(ListTcpRoutesRequest) returns (ListTcpRoutesResponse) {
  234. option (google.api.http) = {
  235. get: "/v1/{parent=projects/*/locations/*}/tcpRoutes"
  236. };
  237. option (google.api.method_signature) = "parent";
  238. }
  239. // Gets details of a single TcpRoute.
  240. rpc GetTcpRoute(GetTcpRouteRequest) returns (TcpRoute) {
  241. option (google.api.http) = {
  242. get: "/v1/{name=projects/*/locations/*/tcpRoutes/*}"
  243. };
  244. option (google.api.method_signature) = "name";
  245. }
  246. // Creates a new TcpRoute in a given project and location.
  247. rpc CreateTcpRoute(CreateTcpRouteRequest) returns (google.longrunning.Operation) {
  248. option (google.api.http) = {
  249. post: "/v1/{parent=projects/*/locations/*}/tcpRoutes"
  250. body: "tcp_route"
  251. };
  252. option (google.api.method_signature) = "parent,tcp_route,tcp_route_id";
  253. option (google.longrunning.operation_info) = {
  254. response_type: "TcpRoute"
  255. metadata_type: "google.cloud.networkservices.v1.OperationMetadata"
  256. };
  257. }
  258. // Updates the parameters of a single TcpRoute.
  259. rpc UpdateTcpRoute(UpdateTcpRouteRequest) returns (google.longrunning.Operation) {
  260. option (google.api.http) = {
  261. patch: "/v1/{tcp_route.name=projects/*/locations/*/tcpRoutes/*}"
  262. body: "tcp_route"
  263. };
  264. option (google.api.method_signature) = "tcp_route,update_mask";
  265. option (google.longrunning.operation_info) = {
  266. response_type: "TcpRoute"
  267. metadata_type: "google.cloud.networkservices.v1.OperationMetadata"
  268. };
  269. }
  270. // Deletes a single TcpRoute.
  271. rpc DeleteTcpRoute(DeleteTcpRouteRequest) returns (google.longrunning.Operation) {
  272. option (google.api.http) = {
  273. delete: "/v1/{name=projects/*/locations/*/tcpRoutes/*}"
  274. };
  275. option (google.api.method_signature) = "name";
  276. option (google.longrunning.operation_info) = {
  277. response_type: "google.protobuf.Empty"
  278. metadata_type: "google.cloud.networkservices.v1.OperationMetadata"
  279. };
  280. }
  281. // Lists TlsRoute in a given project and location.
  282. rpc ListTlsRoutes(ListTlsRoutesRequest) returns (ListTlsRoutesResponse) {
  283. option (google.api.http) = {
  284. get: "/v1/{parent=projects/*/locations/*}/tlsRoutes"
  285. };
  286. option (google.api.method_signature) = "parent";
  287. }
  288. // Gets details of a single TlsRoute.
  289. rpc GetTlsRoute(GetTlsRouteRequest) returns (TlsRoute) {
  290. option (google.api.http) = {
  291. get: "/v1/{name=projects/*/locations/*/tlsRoutes/*}"
  292. };
  293. option (google.api.method_signature) = "name";
  294. }
  295. // Creates a new TlsRoute in a given project and location.
  296. rpc CreateTlsRoute(CreateTlsRouteRequest) returns (google.longrunning.Operation) {
  297. option (google.api.http) = {
  298. post: "/v1/{parent=projects/*/locations/*}/tlsRoutes"
  299. body: "tls_route"
  300. };
  301. option (google.api.method_signature) = "parent,tls_route,tls_route_id";
  302. option (google.longrunning.operation_info) = {
  303. response_type: "TlsRoute"
  304. metadata_type: "google.cloud.networkservices.v1.OperationMetadata"
  305. };
  306. }
  307. // Updates the parameters of a single TlsRoute.
  308. rpc UpdateTlsRoute(UpdateTlsRouteRequest) returns (google.longrunning.Operation) {
  309. option (google.api.http) = {
  310. patch: "/v1/{tls_route.name=projects/*/locations/*/tlsRoutes/*}"
  311. body: "tls_route"
  312. };
  313. option (google.api.method_signature) = "tls_route,update_mask";
  314. option (google.longrunning.operation_info) = {
  315. response_type: "TlsRoute"
  316. metadata_type: "google.cloud.networkservices.v1.OperationMetadata"
  317. };
  318. }
  319. // Deletes a single TlsRoute.
  320. rpc DeleteTlsRoute(DeleteTlsRouteRequest) returns (google.longrunning.Operation) {
  321. option (google.api.http) = {
  322. delete: "/v1/{name=projects/*/locations/*/tlsRoutes/*}"
  323. };
  324. option (google.api.method_signature) = "name";
  325. option (google.longrunning.operation_info) = {
  326. response_type: "google.protobuf.Empty"
  327. metadata_type: "google.cloud.networkservices.v1.OperationMetadata"
  328. };
  329. }
  330. // Lists ServiceBinding in a given project and location.
  331. rpc ListServiceBindings(ListServiceBindingsRequest) returns (ListServiceBindingsResponse) {
  332. option (google.api.http) = {
  333. get: "/v1/{parent=projects/*/locations/*}/serviceBindings"
  334. };
  335. option (google.api.method_signature) = "parent";
  336. }
  337. // Gets details of a single ServiceBinding.
  338. rpc GetServiceBinding(GetServiceBindingRequest) returns (ServiceBinding) {
  339. option (google.api.http) = {
  340. get: "/v1/{name=projects/*/locations/*/serviceBindings/*}"
  341. };
  342. option (google.api.method_signature) = "name";
  343. }
  344. // Creates a new ServiceBinding in a given project and location.
  345. rpc CreateServiceBinding(CreateServiceBindingRequest) returns (google.longrunning.Operation) {
  346. option (google.api.http) = {
  347. post: "/v1/{parent=projects/*/locations/*}/serviceBindings"
  348. body: "service_binding"
  349. };
  350. option (google.api.method_signature) = "parent,service_binding,service_binding_id";
  351. option (google.longrunning.operation_info) = {
  352. response_type: "ServiceBinding"
  353. metadata_type: "google.cloud.networkservices.v1.OperationMetadata"
  354. };
  355. }
  356. // Deletes a single ServiceBinding.
  357. rpc DeleteServiceBinding(DeleteServiceBindingRequest) returns (google.longrunning.Operation) {
  358. option (google.api.http) = {
  359. delete: "/v1/{name=projects/*/locations/*/serviceBindings/*}"
  360. };
  361. option (google.api.method_signature) = "name";
  362. option (google.longrunning.operation_info) = {
  363. response_type: "google.protobuf.Empty"
  364. metadata_type: "google.cloud.networkservices.v1.OperationMetadata"
  365. };
  366. }
  367. // Lists Meshes in a given project and location.
  368. rpc ListMeshes(ListMeshesRequest) returns (ListMeshesResponse) {
  369. option (google.api.http) = {
  370. get: "/v1/{parent=projects/*/locations/*}/meshes"
  371. };
  372. option (google.api.method_signature) = "parent";
  373. }
  374. // Gets details of a single Mesh.
  375. rpc GetMesh(GetMeshRequest) returns (Mesh) {
  376. option (google.api.http) = {
  377. get: "/v1/{name=projects/*/locations/*/meshes/*}"
  378. };
  379. option (google.api.method_signature) = "name";
  380. }
  381. // Creates a new Mesh in a given project and location.
  382. rpc CreateMesh(CreateMeshRequest) returns (google.longrunning.Operation) {
  383. option (google.api.http) = {
  384. post: "/v1/{parent=projects/*/locations/*}/meshes"
  385. body: "mesh"
  386. };
  387. option (google.api.method_signature) = "parent,mesh,mesh_id";
  388. option (google.longrunning.operation_info) = {
  389. response_type: "Mesh"
  390. metadata_type: "google.cloud.networkservices.v1.OperationMetadata"
  391. };
  392. }
  393. // Updates the parameters of a single Mesh.
  394. rpc UpdateMesh(UpdateMeshRequest) returns (google.longrunning.Operation) {
  395. option (google.api.http) = {
  396. patch: "/v1/{mesh.name=projects/*/locations/*/meshes/*}"
  397. body: "mesh"
  398. };
  399. option (google.api.method_signature) = "mesh,update_mask";
  400. option (google.longrunning.operation_info) = {
  401. response_type: "Mesh"
  402. metadata_type: "google.cloud.networkservices.v1.OperationMetadata"
  403. };
  404. }
  405. // Deletes a single Mesh.
  406. rpc DeleteMesh(DeleteMeshRequest) returns (google.longrunning.Operation) {
  407. option (google.api.http) = {
  408. delete: "/v1/{name=projects/*/locations/*/meshes/*}"
  409. };
  410. option (google.api.method_signature) = "name";
  411. option (google.longrunning.operation_info) = {
  412. response_type: "google.protobuf.Empty"
  413. metadata_type: "google.cloud.networkservices.v1.OperationMetadata"
  414. };
  415. }
  416. }