vmwareengine.proto 90 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194
  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.vmwareengine.v1;
  16. import "google/api/annotations.proto";
  17. import "google/api/client.proto";
  18. import "google/api/field_behavior.proto";
  19. import "google/api/resource.proto";
  20. import "google/longrunning/operations.proto";
  21. import "google/protobuf/field_mask.proto";
  22. import "google/protobuf/timestamp.proto";
  23. option csharp_namespace = "Google.Cloud.VmwareEngine.V1";
  24. option go_package = "google.golang.org/genproto/googleapis/cloud/vmwareengine/v1;vmwareengine";
  25. option java_multiple_files = true;
  26. option java_outer_classname = "VmwareengineProto";
  27. option java_package = "com.google.cloud.vmwareengine.v1";
  28. option php_namespace = "Google\\Cloud\\VmwareEngine\\V1";
  29. option ruby_package = "Google::Cloud::VmwareEngine::V1";
  30. option (google.api.resource_definition) = {
  31. type: "compute.googleapis.com/Network"
  32. pattern: "projects/{project}/global/networks/{network}"
  33. };
  34. // VMwareEngine manages VMware's private clusters in the Cloud.
  35. service VmwareEngine {
  36. option (google.api.default_host) = "vmwareengine.googleapis.com";
  37. option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform";
  38. // Lists `PrivateCloud` resources in a given project and location.
  39. rpc ListPrivateClouds(ListPrivateCloudsRequest) returns (ListPrivateCloudsResponse) {
  40. option (google.api.http) = {
  41. get: "/v1/{parent=projects/*/locations/*}/privateClouds"
  42. };
  43. option (google.api.method_signature) = "parent";
  44. }
  45. // Retrieves a `PrivateCloud` resource by its resource name.
  46. rpc GetPrivateCloud(GetPrivateCloudRequest) returns (PrivateCloud) {
  47. option (google.api.http) = {
  48. get: "/v1/{name=projects/*/locations/*/privateClouds/*}"
  49. };
  50. option (google.api.method_signature) = "name";
  51. }
  52. // Creates a new `PrivateCloud` resource in a given project and location.
  53. // Private clouds can only be created in zones, regional private clouds are
  54. // not supported.
  55. //
  56. // Creating a private cloud also creates a [management
  57. // cluster](https://cloud.google.com/vmware-engine/docs/concepts-vmware-components)
  58. // for that private cloud.
  59. rpc CreatePrivateCloud(CreatePrivateCloudRequest) returns (google.longrunning.Operation) {
  60. option (google.api.http) = {
  61. post: "/v1/{parent=projects/*/locations/*}/privateClouds"
  62. body: "private_cloud"
  63. };
  64. option (google.api.method_signature) = "parent,private_cloud,private_cloud_id";
  65. option (google.longrunning.operation_info) = {
  66. response_type: "PrivateCloud"
  67. metadata_type: "OperationMetadata"
  68. };
  69. }
  70. // Modifies a `PrivateCloud` resource. Only the following fields can be
  71. // updated: `description`.
  72. // Only fields specified in `updateMask` are applied.
  73. //
  74. // During operation processing, the resource is temporarily in the `ACTIVE`
  75. // state before the operation fully completes. For that period of time, you
  76. // can't update the resource. Use the operation status to determine when the
  77. // processing fully completes.
  78. rpc UpdatePrivateCloud(UpdatePrivateCloudRequest) returns (google.longrunning.Operation) {
  79. option (google.api.http) = {
  80. patch: "/v1/{private_cloud.name=projects/*/locations/*/privateClouds/*}"
  81. body: "private_cloud"
  82. };
  83. option (google.api.method_signature) = "private_cloud,update_mask";
  84. option (google.longrunning.operation_info) = {
  85. response_type: "PrivateCloud"
  86. metadata_type: "OperationMetadata"
  87. };
  88. }
  89. // Schedules a `PrivateCloud` resource for deletion.
  90. //
  91. // A `PrivateCloud` resource scheduled for deletion has `PrivateCloud.state`
  92. // set to `DELETED` and `expireTime` set to the time when deletion is final
  93. // and can no longer be reversed. The delete operation is marked as done
  94. // as soon as the `PrivateCloud` is successfully scheduled for deletion
  95. // (this also applies when `delayHours` is set to zero), and the operation is
  96. // not kept in pending state until `PrivateCloud` is purged.
  97. // `PrivateCloud` can be restored using `UndeletePrivateCloud` method before
  98. // the `expireTime` elapses. When `expireTime` is reached, deletion is final
  99. // and all private cloud resources are irreversibly removed and billing stops.
  100. // During the final removal process, `PrivateCloud.state` is set to `PURGING`.
  101. // `PrivateCloud` can be polled using standard `GET` method for the whole
  102. // period of deletion and purging. It will not be returned only
  103. // when it is completely purged.
  104. rpc DeletePrivateCloud(DeletePrivateCloudRequest) returns (google.longrunning.Operation) {
  105. option (google.api.http) = {
  106. delete: "/v1/{name=projects/*/locations/*/privateClouds/*}"
  107. };
  108. option (google.api.method_signature) = "name";
  109. option (google.longrunning.operation_info) = {
  110. response_type: "PrivateCloud"
  111. metadata_type: "OperationMetadata"
  112. };
  113. }
  114. // Restores a private cloud that was previously scheduled for deletion by
  115. // `DeletePrivateCloud`. A `PrivateCloud` resource scheduled for deletion has
  116. // `PrivateCloud.state` set to `DELETED` and `PrivateCloud.expireTime` set to
  117. // the time when deletion can no longer be reversed.
  118. rpc UndeletePrivateCloud(UndeletePrivateCloudRequest) returns (google.longrunning.Operation) {
  119. option (google.api.http) = {
  120. post: "/v1/{name=projects/*/locations/*/privateClouds/*}:undelete"
  121. body: "*"
  122. };
  123. option (google.api.method_signature) = "name";
  124. option (google.longrunning.operation_info) = {
  125. response_type: "PrivateCloud"
  126. metadata_type: "OperationMetadata"
  127. };
  128. }
  129. // Lists `Cluster` resources in a given private cloud.
  130. rpc ListClusters(ListClustersRequest) returns (ListClustersResponse) {
  131. option (google.api.http) = {
  132. get: "/v1/{parent=projects/*/locations/*/privateClouds/*}/clusters"
  133. };
  134. option (google.api.method_signature) = "parent";
  135. }
  136. // Retrieves a `Cluster` resource by its resource name.
  137. rpc GetCluster(GetClusterRequest) returns (Cluster) {
  138. option (google.api.http) = {
  139. get: "/v1/{name=projects/*/locations/*/privateClouds/*/clusters/*}"
  140. };
  141. option (google.api.method_signature) = "name";
  142. }
  143. // Creates a new cluster in a given private cloud.
  144. // Creating a new cluster provides additional nodes for
  145. // use in the parent private cloud and requires sufficient [node
  146. // quota](https://cloud.google.com/vmware-engine/quotas).
  147. rpc CreateCluster(CreateClusterRequest) returns (google.longrunning.Operation) {
  148. option (google.api.http) = {
  149. post: "/v1/{parent=projects/*/locations/*/privateClouds/*}/clusters"
  150. body: "cluster"
  151. };
  152. option (google.api.method_signature) = "parent,cluster,cluster_id";
  153. option (google.longrunning.operation_info) = {
  154. response_type: "Cluster"
  155. metadata_type: "OperationMetadata"
  156. };
  157. }
  158. // Modifies a `Cluster` resource. Only the following fields can be updated:
  159. // `node_type_configs.*.node_count`. Only fields specified in `updateMask` are
  160. // applied.
  161. //
  162. // During operation processing, the resource is temporarily in the `ACTIVE`
  163. // state before the operation fully completes. For that period of time, you
  164. // can't update the resource. Use the operation status to determine when the
  165. // processing fully completes.
  166. rpc UpdateCluster(UpdateClusterRequest) returns (google.longrunning.Operation) {
  167. option (google.api.http) = {
  168. patch: "/v1/{cluster.name=projects/*/locations/*/privateClouds/*/clusters/*}"
  169. body: "cluster"
  170. };
  171. option (google.api.method_signature) = "cluster,update_mask";
  172. option (google.longrunning.operation_info) = {
  173. response_type: "Cluster"
  174. metadata_type: "OperationMetadata"
  175. };
  176. }
  177. // Deletes a `Cluster` resource. To avoid unintended data loss, migrate or
  178. // gracefully shut down any workloads running on the cluster before deletion.
  179. // You cannot delete the management cluster of a private cloud using this
  180. // method.
  181. rpc DeleteCluster(DeleteClusterRequest) returns (google.longrunning.Operation) {
  182. option (google.api.http) = {
  183. delete: "/v1/{name=projects/*/locations/*/privateClouds/*/clusters/*}"
  184. };
  185. option (google.api.method_signature) = "name";
  186. option (google.longrunning.operation_info) = {
  187. response_type: "google.protobuf.Empty"
  188. metadata_type: "OperationMetadata"
  189. };
  190. }
  191. // Lists subnets in a given private cloud.
  192. rpc ListSubnets(ListSubnetsRequest) returns (ListSubnetsResponse) {
  193. option (google.api.http) = {
  194. get: "/v1/{parent=projects/*/locations/*/privateClouds/*}/subnets"
  195. };
  196. option (google.api.method_signature) = "parent";
  197. }
  198. // Lists node types
  199. rpc ListNodeTypes(ListNodeTypesRequest) returns (ListNodeTypesResponse) {
  200. option (google.api.http) = {
  201. get: "/v1/{parent=projects/*/locations/*}/nodeTypes"
  202. };
  203. option (google.api.method_signature) = "parent";
  204. }
  205. // Gets details of a single `NodeType`.
  206. rpc GetNodeType(GetNodeTypeRequest) returns (NodeType) {
  207. option (google.api.http) = {
  208. get: "/v1/{name=projects/*/locations/*/nodeTypes/*}"
  209. };
  210. option (google.api.method_signature) = "name";
  211. }
  212. // Gets details of credentials for NSX appliance.
  213. rpc ShowNsxCredentials(ShowNsxCredentialsRequest) returns (Credentials) {
  214. option (google.api.http) = {
  215. get: "/v1/{private_cloud=projects/*/locations/*/privateClouds/*}:showNsxCredentials"
  216. };
  217. option (google.api.method_signature) = "private_cloud";
  218. }
  219. // Gets details of credentials for Vcenter appliance.
  220. rpc ShowVcenterCredentials(ShowVcenterCredentialsRequest) returns (Credentials) {
  221. option (google.api.http) = {
  222. get: "/v1/{private_cloud=projects/*/locations/*/privateClouds/*}:showVcenterCredentials"
  223. };
  224. option (google.api.method_signature) = "private_cloud";
  225. }
  226. // Resets credentials of the NSX appliance.
  227. rpc ResetNsxCredentials(ResetNsxCredentialsRequest) returns (google.longrunning.Operation) {
  228. option (google.api.http) = {
  229. post: "/v1/{private_cloud=projects/*/locations/*/privateClouds/*}:resetNsxCredentials"
  230. body: "*"
  231. };
  232. option (google.api.method_signature) = "private_cloud";
  233. option (google.longrunning.operation_info) = {
  234. response_type: "PrivateCloud"
  235. metadata_type: "OperationMetadata"
  236. };
  237. }
  238. // Resets credentials of the Vcenter appliance.
  239. rpc ResetVcenterCredentials(ResetVcenterCredentialsRequest) returns (google.longrunning.Operation) {
  240. option (google.api.http) = {
  241. post: "/v1/{private_cloud=projects/*/locations/*/privateClouds/*}:resetVcenterCredentials"
  242. body: "*"
  243. };
  244. option (google.api.method_signature) = "private_cloud";
  245. option (google.longrunning.operation_info) = {
  246. response_type: "PrivateCloud"
  247. metadata_type: "OperationMetadata"
  248. };
  249. }
  250. // Creates a new HCX activation key in a given private cloud.
  251. rpc CreateHcxActivationKey(CreateHcxActivationKeyRequest) returns (google.longrunning.Operation) {
  252. option (google.api.http) = {
  253. post: "/v1/{parent=projects/*/locations/*/privateClouds/*}/hcxActivationKeys"
  254. body: "hcx_activation_key"
  255. };
  256. option (google.api.method_signature) = "parent,hcx_activation_key,hcx_activation_key_id";
  257. option (google.longrunning.operation_info) = {
  258. response_type: "HcxActivationKey"
  259. metadata_type: "OperationMetadata"
  260. };
  261. }
  262. // Lists `HcxActivationKey` resources in a given private cloud.
  263. rpc ListHcxActivationKeys(ListHcxActivationKeysRequest) returns (ListHcxActivationKeysResponse) {
  264. option (google.api.http) = {
  265. get: "/v1/{parent=projects/*/locations/*/privateClouds/*}/hcxActivationKeys"
  266. };
  267. option (google.api.method_signature) = "parent";
  268. }
  269. // Retrieves a `HcxActivationKey` resource by its resource name.
  270. rpc GetHcxActivationKey(GetHcxActivationKeyRequest) returns (HcxActivationKey) {
  271. option (google.api.http) = {
  272. get: "/v1/{name=projects/*/locations/*/privateClouds/*/hcxActivationKeys/*}"
  273. };
  274. option (google.api.method_signature) = "name";
  275. }
  276. // Retrieves a `NetworkPolicy` resource by its resource name.
  277. rpc GetNetworkPolicy(GetNetworkPolicyRequest) returns (NetworkPolicy) {
  278. option (google.api.http) = {
  279. get: "/v1/{name=projects/*/locations/*/networkPolicies/*}"
  280. };
  281. option (google.api.method_signature) = "name";
  282. }
  283. // Lists `NetworkPolicy` resources in a specified project and location.
  284. rpc ListNetworkPolicies(ListNetworkPoliciesRequest) returns (ListNetworkPoliciesResponse) {
  285. option (google.api.http) = {
  286. get: "/v1/{parent=projects/*/locations/*}/networkPolicies"
  287. };
  288. option (google.api.method_signature) = "parent";
  289. }
  290. // Creates a new network policy in a given VMware Engine network of a
  291. // project and location (region). A new network policy cannot be created if
  292. // another network policy already exists in the same scope.
  293. rpc CreateNetworkPolicy(CreateNetworkPolicyRequest) returns (google.longrunning.Operation) {
  294. option (google.api.http) = {
  295. post: "/v1/{parent=projects/*/locations/*}/networkPolicies"
  296. body: "network_policy"
  297. };
  298. option (google.api.method_signature) = "parent,network_policy,network_policy_id";
  299. option (google.longrunning.operation_info) = {
  300. response_type: "NetworkPolicy"
  301. metadata_type: "OperationMetadata"
  302. };
  303. }
  304. // Modifies a `NetworkPolicy` resource. Only the following fields can be
  305. // updated: `internet_access`, `external_ip`, `edge_services_cidr`.
  306. // Only fields specified in `updateMask` are applied. When updating a network
  307. // policy, the external IP network service can only be disabled if there are
  308. // no external IP addresses present in the scope of the policy. Also, a
  309. // `NetworkService` cannot be updated when `NetworkService.state` is set
  310. // to `RECONCILING`.
  311. //
  312. // During operation processing, the resource is temporarily in the `ACTIVE`
  313. // state before the operation fully completes. For that period of time, you
  314. // can't update the resource. Use the operation status to determine when the
  315. // processing fully completes.
  316. rpc UpdateNetworkPolicy(UpdateNetworkPolicyRequest) returns (google.longrunning.Operation) {
  317. option (google.api.http) = {
  318. patch: "/v1/{network_policy.name=projects/*/locations/*/networkPolicies/*}"
  319. body: "network_policy"
  320. };
  321. option (google.api.method_signature) = "network_policy,update_mask";
  322. option (google.longrunning.operation_info) = {
  323. response_type: "NetworkPolicy"
  324. metadata_type: "OperationMetadata"
  325. };
  326. }
  327. // Deletes a `NetworkPolicy` resource. A network policy cannot be deleted
  328. // when `NetworkService.state` is set to `RECONCILING` for either its external
  329. // IP or internet access service.
  330. rpc DeleteNetworkPolicy(DeleteNetworkPolicyRequest) returns (google.longrunning.Operation) {
  331. option (google.api.http) = {
  332. delete: "/v1/{name=projects/*/locations/*/networkPolicies/*}"
  333. };
  334. option (google.api.method_signature) = "name";
  335. option (google.longrunning.operation_info) = {
  336. response_type: "google.protobuf.Empty"
  337. metadata_type: "OperationMetadata"
  338. };
  339. }
  340. // Creates a new VMware Engine network that can be used by a private cloud.
  341. rpc CreateVmwareEngineNetwork(CreateVmwareEngineNetworkRequest) returns (google.longrunning.Operation) {
  342. option (google.api.http) = {
  343. post: "/v1/{parent=projects/*/locations/*}/vmwareEngineNetworks"
  344. body: "vmware_engine_network"
  345. };
  346. option (google.api.method_signature) = "parent,vmware_engine_network,vmware_engine_network_id";
  347. option (google.longrunning.operation_info) = {
  348. response_type: "VmwareEngineNetwork"
  349. metadata_type: "OperationMetadata"
  350. };
  351. }
  352. // Modifies a VMware Engine network resource. Only the following fields can be
  353. // updated: `description`. Only fields specified in `updateMask` are
  354. // applied.
  355. rpc UpdateVmwareEngineNetwork(UpdateVmwareEngineNetworkRequest) returns (google.longrunning.Operation) {
  356. option (google.api.http) = {
  357. patch: "/v1/{vmware_engine_network.name=projects/*/locations/*/vmwareEngineNetworks/*}"
  358. body: "vmware_engine_network"
  359. };
  360. option (google.api.method_signature) = "vmware_engine_network,update_mask";
  361. option (google.longrunning.operation_info) = {
  362. response_type: "VmwareEngineNetwork"
  363. metadata_type: "OperationMetadata"
  364. };
  365. }
  366. // Deletes a `VmwareEngineNetwork` resource. You can only delete a VMware
  367. // Engine network after all resources that refer to it are deleted. For
  368. // example, a private cloud, a network peering, and a network policy can all
  369. // refer to the same VMware Engine network.
  370. rpc DeleteVmwareEngineNetwork(DeleteVmwareEngineNetworkRequest) returns (google.longrunning.Operation) {
  371. option (google.api.http) = {
  372. delete: "/v1/{name=projects/*/locations/*/vmwareEngineNetworks/*}"
  373. };
  374. option (google.api.method_signature) = "name";
  375. option (google.longrunning.operation_info) = {
  376. response_type: "google.protobuf.Empty"
  377. metadata_type: "OperationMetadata"
  378. };
  379. }
  380. // Retrieves a `VmwareEngineNetwork` resource by its resource name. The
  381. // resource contains details of the VMware Engine network, such as its VMware
  382. // Engine network type, peered networks in a service project, and state
  383. // (for example, `CREATING`, `ACTIVE`, `DELETING`).
  384. rpc GetVmwareEngineNetwork(GetVmwareEngineNetworkRequest) returns (VmwareEngineNetwork) {
  385. option (google.api.http) = {
  386. get: "/v1/{name=projects/*/locations/*/vmwareEngineNetworks/*}"
  387. };
  388. option (google.api.method_signature) = "name";
  389. }
  390. // Lists `VmwareEngineNetwork` resources in a given project and location.
  391. rpc ListVmwareEngineNetworks(ListVmwareEngineNetworksRequest) returns (ListVmwareEngineNetworksResponse) {
  392. option (google.api.http) = {
  393. get: "/v1/{parent=projects/*/locations/*}/vmwareEngineNetworks"
  394. };
  395. option (google.api.method_signature) = "parent";
  396. }
  397. }
  398. // Network configuration in the consumer project
  399. // with which the peering has to be done.
  400. message NetworkConfig {
  401. // Required. Management CIDR used by VMware management appliances.
  402. string management_cidr = 4 [(google.api.field_behavior) = REQUIRED];
  403. // Optional. The relative resource name of the VMware Engine network attached
  404. // to the private cloud. Specify the name in the following form:
  405. // `projects/{project}/locations/{location}/vmwareEngineNetworks/{vmware_engine_network_id}`
  406. // where `{project}` can either be a project number or a project ID.
  407. string vmware_engine_network = 5 [
  408. (google.api.field_behavior) = OPTIONAL,
  409. (google.api.resource_reference) = {
  410. type: "vmwareengine.googleapis.com/VmwareEngineNetwork"
  411. }
  412. ];
  413. // Output only. The canonical name of the VMware Engine network in the form:
  414. // `projects/{project_number}/locations/{location}/vmwareEngineNetworks/{vmware_engine_network_id}`
  415. string vmware_engine_network_canonical = 6 [
  416. (google.api.field_behavior) = OUTPUT_ONLY,
  417. (google.api.resource_reference) = {
  418. type: "vmwareengine.googleapis.com/VmwareEngineNetwork"
  419. }
  420. ];
  421. // Output only. The IP address layout version of the management IP address
  422. // range. Possible versions include:
  423. // * `managementIpAddressLayoutVersion=1`: Indicates the legacy IP address
  424. // layout used by some existing private clouds. This is no longer supported
  425. // for new private clouds as it does not support all features.
  426. // * `managementIpAddressLayoutVersion=2`: Indicates the latest IP address
  427. // layout used by all newly created private clouds. This version supports all
  428. // current features.
  429. int32 management_ip_address_layout_version = 8 [(google.api.field_behavior) = OUTPUT_ONLY];
  430. }
  431. // Information about the type and number of nodes associated with the cluster.
  432. message NodeTypeConfig {
  433. // Required. The number of nodes of this type in the cluster
  434. int32 node_count = 1 [(google.api.field_behavior) = REQUIRED];
  435. // Optional. Customized number of cores available to each node of the type.
  436. // This number must always be one of `nodeType.availableCustomCoreCounts`.
  437. // If zero is provided max value from `nodeType.availableCustomCoreCounts`
  438. // will be used.
  439. int32 custom_core_count = 2 [(google.api.field_behavior) = OPTIONAL];
  440. }
  441. // Represents a private cloud resource. Private clouds are zonal resources.
  442. message PrivateCloud {
  443. option (google.api.resource) = {
  444. type: "vmwareengine.googleapis.com/PrivateCloud"
  445. pattern: "projects/{project}/locations/{location}/privateClouds/{private_cloud}"
  446. };
  447. // Enum State defines possible states of private clouds.
  448. enum State {
  449. // The default value. This value should never be used.
  450. STATE_UNSPECIFIED = 0;
  451. // The private cloud is ready.
  452. ACTIVE = 1;
  453. // The private cloud is being created.
  454. CREATING = 2;
  455. // The private cloud is being updated.
  456. UPDATING = 3;
  457. // The private cloud is in failed state.
  458. FAILED = 5;
  459. // The private cloud is scheduled for deletion. The deletion process can be
  460. // cancelled by using the corresponding undelete method.
  461. DELETED = 6;
  462. // The private cloud is irreversibly deleted and is being removed from the
  463. // system.
  464. PURGING = 7;
  465. }
  466. // Management cluster configuration.
  467. message ManagementCluster {
  468. // Required. The user-provided identifier of the new `Cluster`.
  469. // The identifier must meet the following requirements:
  470. //
  471. // * Only contains 1-63 alphanumeric characters and hyphens
  472. // * Begins with an alphabetical character
  473. // * Ends with a non-hyphen character
  474. // * Not formatted as a UUID
  475. // * Complies with [RFC
  476. // 1034](https://datatracker.ietf.org/doc/html/rfc1034) (section 3.5)
  477. string cluster_id = 1 [(google.api.field_behavior) = REQUIRED];
  478. // Required. The map of cluster node types in this cluster, where the key is canonical
  479. // identifier of the node type (corresponds to the `NodeType`).
  480. map<string, NodeTypeConfig> node_type_configs = 7 [(google.api.field_behavior) = REQUIRED];
  481. }
  482. // Output only. The resource name of this private cloud.
  483. // Resource names are schemeless URIs that follow the conventions in
  484. // https://cloud.google.com/apis/design/resource_names.
  485. // For example:
  486. // `projects/my-project/locations/us-west1-a/privateClouds/my-cloud`
  487. string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
  488. // Output only. Creation time of this resource.
  489. google.protobuf.Timestamp create_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
  490. // Output only. Last update time of this resource.
  491. google.protobuf.Timestamp update_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
  492. // Output only. Time when the resource was scheduled for deletion.
  493. google.protobuf.Timestamp delete_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
  494. // Output only. Time when the resource will be irreversibly deleted.
  495. google.protobuf.Timestamp expire_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
  496. // Output only. State of the resource. New values may be added to this enum
  497. // when appropriate.
  498. State state = 8 [(google.api.field_behavior) = OUTPUT_ONLY];
  499. // Required. Network configuration of the private cloud.
  500. NetworkConfig network_config = 9 [(google.api.field_behavior) = REQUIRED];
  501. // Input only. The management cluster for this private cloud.
  502. // This field is required during creation of the private cloud to provide
  503. // details for the default cluster.
  504. //
  505. // The following fields can't be changed after private cloud creation:
  506. // `ManagementCluster.clusterId`, `ManagementCluster.nodeTypeId`.
  507. ManagementCluster management_cluster = 10 [(google.api.field_behavior) = INPUT_ONLY];
  508. // User-provided description for this private cloud.
  509. string description = 11;
  510. // Output only. HCX appliance.
  511. Hcx hcx = 17 [(google.api.field_behavior) = OUTPUT_ONLY];
  512. // Output only. NSX appliance.
  513. Nsx nsx = 18 [(google.api.field_behavior) = OUTPUT_ONLY];
  514. // Output only. Vcenter appliance.
  515. Vcenter vcenter = 19 [(google.api.field_behavior) = OUTPUT_ONLY];
  516. // Output only. System-generated unique identifier for the resource.
  517. string uid = 20 [(google.api.field_behavior) = OUTPUT_ONLY];
  518. }
  519. // Request message for [VmwareEngine.ListPrivateClouds][google.cloud.vmwareengine.v1.VmwareEngine.ListPrivateClouds]
  520. message ListPrivateCloudsRequest {
  521. // Required. The resource name of the private cloud to be queried for
  522. // clusters. Resource names are schemeless URIs that follow the conventions in
  523. // https://cloud.google.com/apis/design/resource_names.
  524. // For example:
  525. // `projects/my-project/locations/us-west1-a`
  526. string parent = 1 [
  527. (google.api.field_behavior) = REQUIRED,
  528. (google.api.resource_reference) = {
  529. type: "locations.googleapis.com/Location"
  530. }
  531. ];
  532. // The maximum number of private clouds to return in one page.
  533. // The service may return fewer than this value.
  534. // The maximum value is coerced to 1000.
  535. // The default value of this field is 500.
  536. int32 page_size = 2;
  537. // A page token, received from a previous `ListPrivateClouds` call.
  538. // Provide this to retrieve the subsequent page.
  539. //
  540. // When paginating, all other parameters provided to `ListPrivateClouds` must
  541. // match the call that provided the page token.
  542. string page_token = 3;
  543. // A filter expression that matches resources returned in the response.
  544. // The expression must specify the field name, a comparison operator, and the
  545. // value that you want to use for filtering. The value must be a string, a
  546. // number, or a boolean. The comparison operator must be `=`, `!=`, `>`, or
  547. // `<`.
  548. //
  549. // For example, if you are filtering a list of private clouds, you can exclude
  550. // the ones named `example-pc` by specifying `name != "example-pc"`.
  551. //
  552. // You can also filter nested fields. For example, you could specify
  553. // `networkConfig.managementCidr = "192.168.0.0/24"` to include private clouds
  554. // only if they have a matching address in their network configuration.
  555. //
  556. // To filter on multiple expressions, provide each separate expression within
  557. // parentheses. For example:
  558. // ```
  559. // (name = "example-pc")
  560. // (createTime > "2021-04-12T08:15:10.40Z")
  561. // ```
  562. //
  563. // By default, each expression is an `AND` expression. However, you can
  564. // include `AND` and `OR` expressions explicitly. For example:
  565. // ```
  566. // (name = "private-cloud-1") AND
  567. // (createTime > "2021-04-12T08:15:10.40Z") OR
  568. // (name = "private-cloud-2")
  569. // ```
  570. string filter = 4;
  571. // Sorts list results by a certain order. By default, returned results are
  572. // ordered by `name` in ascending order. You can also sort results in
  573. // descending order based on the `name` value using `orderBy="name desc"`.
  574. // Currently, only ordering by `name` is supported.
  575. string order_by = 5;
  576. }
  577. // Response message for [VmwareEngine.ListPrivateClouds][google.cloud.vmwareengine.v1.VmwareEngine.ListPrivateClouds]
  578. message ListPrivateCloudsResponse {
  579. // A list of private clouds.
  580. repeated PrivateCloud private_clouds = 1;
  581. // A token, which can be sent as `page_token` to retrieve the next page.
  582. // If this field is omitted, there are no subsequent pages.
  583. string next_page_token = 2;
  584. // Locations that could not be reached when making an aggregated query using
  585. // wildcards.
  586. repeated string unreachable = 3;
  587. }
  588. // Request message for [VmwareEngine.GetPrivateCloud][google.cloud.vmwareengine.v1.VmwareEngine.GetPrivateCloud]
  589. message GetPrivateCloudRequest {
  590. // Required. The resource name of the private cloud to retrieve.
  591. // Resource names are schemeless URIs that follow the conventions in
  592. // https://cloud.google.com/apis/design/resource_names.
  593. // For example:
  594. // `projects/my-project/locations/us-west1-a/privateClouds/my-cloud`
  595. string name = 1 [
  596. (google.api.field_behavior) = REQUIRED,
  597. (google.api.resource_reference) = {
  598. type: "vmwareengine.googleapis.com/PrivateCloud"
  599. }
  600. ];
  601. }
  602. // Request message for [VmwareEngine.CreatePrivateCloud][google.cloud.vmwareengine.v1.VmwareEngine.CreatePrivateCloud]
  603. message CreatePrivateCloudRequest {
  604. // Required. The resource name of the location to create the new
  605. // private cloud in. Resource names are schemeless URIs that follow the
  606. // conventions in https://cloud.google.com/apis/design/resource_names.
  607. // For example:
  608. // `projects/my-project/locations/us-west1-a`
  609. string parent = 1 [
  610. (google.api.field_behavior) = REQUIRED,
  611. (google.api.resource_reference) = {
  612. type: "locations.googleapis.com/Location"
  613. }
  614. ];
  615. // Required. The user-provided identifier of the private cloud to be created.
  616. // This identifier must be unique among each `PrivateCloud` within the parent
  617. // and becomes the final token in the name URI.
  618. // The identifier must meet the following requirements:
  619. //
  620. // * Only contains 1-63 alphanumeric characters and hyphens
  621. // * Begins with an alphabetical character
  622. // * Ends with a non-hyphen character
  623. // * Not formatted as a UUID
  624. // * Complies with [RFC 1034](https://datatracker.ietf.org/doc/html/rfc1034)
  625. // (section 3.5)
  626. string private_cloud_id = 2 [(google.api.field_behavior) = REQUIRED];
  627. // Required. The initial description of the new private cloud.
  628. PrivateCloud private_cloud = 3 [(google.api.field_behavior) = REQUIRED];
  629. // Optional. The request ID must be a valid UUID with the exception that zero UUID is
  630. // not supported (00000000-0000-0000-0000-000000000000).
  631. string request_id = 4 [(google.api.field_behavior) = OPTIONAL];
  632. // Optional. True if you want the request to be validated and not executed; false
  633. // otherwise.
  634. bool validate_only = 5 [(google.api.field_behavior) = OPTIONAL];
  635. }
  636. // Request message for [VmwareEngine.UpdatePrivateCloud][google.cloud.vmwareengine.v1.VmwareEngine.UpdatePrivateCloud]
  637. message UpdatePrivateCloudRequest {
  638. // Required. Private cloud description.
  639. PrivateCloud private_cloud = 1 [(google.api.field_behavior) = REQUIRED];
  640. // Required. Field mask is used to specify the fields to be overwritten in the
  641. // `PrivateCloud` resource by the update. The fields specified in `updateMask`
  642. // are relative to the resource, not the full request. A field will be
  643. // overwritten if it is in the mask. If the user does not provide a mask then
  644. // all fields will be overwritten.
  645. google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED];
  646. // Optional. The request ID must be a valid UUID with the exception that zero UUID is
  647. // not supported (00000000-0000-0000-0000-000000000000).
  648. string request_id = 3 [(google.api.field_behavior) = OPTIONAL];
  649. }
  650. // Request message for [VmwareEngine.DeletePrivateCloud][google.cloud.vmwareengine.v1.VmwareEngine.DeletePrivateCloud]
  651. message DeletePrivateCloudRequest {
  652. // Required. The resource name of the private cloud to delete.
  653. // Resource names are schemeless URIs that follow the conventions in
  654. // https://cloud.google.com/apis/design/resource_names.
  655. // For example:
  656. // `projects/my-project/locations/us-west1-a/privateClouds/my-cloud`
  657. string name = 1 [
  658. (google.api.field_behavior) = REQUIRED,
  659. (google.api.resource_reference) = {
  660. type: "vmwareengine.googleapis.com/PrivateCloud"
  661. }
  662. ];
  663. // Optional. The request ID must be a valid UUID with the exception that zero UUID is
  664. // not supported (00000000-0000-0000-0000-000000000000).
  665. string request_id = 2 [(google.api.field_behavior) = OPTIONAL];
  666. // Optional. If set to true, cascade delete is enabled and all children of this private
  667. // cloud resource are also deleted. When this flag is set to false, the
  668. // private cloud will not be deleted if there are any children other than the
  669. // management cluster. The management cluster is always deleted.
  670. bool force = 3 [(google.api.field_behavior) = OPTIONAL];
  671. // Optional. Time delay of the deletion specified in hours. The default value
  672. // is `3`. Specifying a non-zero value for this field changes the value of
  673. // `PrivateCloud.state` to `DELETED` and sets `expire_time` to the planned
  674. // deletion time. Deletion can be cancelled before `expire_time` elapses using
  675. // [VmwareEngine.UndeletePrivateCloud][google.cloud.vmwareengine.v1.VmwareEngine.UndeletePrivateCloud]. Specifying a value of `0` for
  676. // this field instead begins the deletion process and ceases billing
  677. // immediately. During the final deletion process, the value of
  678. // `PrivateCloud.state` becomes `PURGING`.
  679. optional int32 delay_hours = 4 [(google.api.field_behavior) = OPTIONAL];
  680. }
  681. // Request message for [VmwareEngine.UndeletePrivateCloud][google.cloud.vmwareengine.v1.VmwareEngine.UndeletePrivateCloud]
  682. message UndeletePrivateCloudRequest {
  683. // Required. The resource name of the private cloud scheduled for deletion.
  684. // Resource names are schemeless URIs that follow the conventions in
  685. // https://cloud.google.com/apis/design/resource_names.
  686. // For example:
  687. // `projects/my-project/locations/us-west1-a/privateClouds/my-cloud`
  688. string name = 1 [
  689. (google.api.field_behavior) = REQUIRED,
  690. (google.api.resource_reference) = {
  691. type: "vmwareengine.googleapis.com/PrivateCloud"
  692. }
  693. ];
  694. // Optional. The request ID must be a valid UUID with the exception that zero UUID is
  695. // not supported (00000000-0000-0000-0000-000000000000).
  696. string request_id = 2 [(google.api.field_behavior) = OPTIONAL];
  697. }
  698. // A cluster in a private cloud.
  699. message Cluster {
  700. option (google.api.resource) = {
  701. type: "vmwareengine.googleapis.com/Cluster"
  702. pattern: "projects/{project}/locations/{location}/privateClouds/{private_cloud}/clusters/{cluster}"
  703. };
  704. // Enum State defines possible states of private cloud clusters.
  705. enum State {
  706. // The default value. This value should never be used.
  707. STATE_UNSPECIFIED = 0;
  708. // The Cluster is operational and can be used by the user.
  709. ACTIVE = 1;
  710. // The Cluster is being deployed.
  711. CREATING = 2;
  712. // Adding or removing of a node to the cluster, any other cluster specific
  713. // updates.
  714. UPDATING = 3;
  715. // The Cluster is being deleted.
  716. DELETING = 4;
  717. // The Cluster is undergoing maintenance, for example: a failed node is
  718. // getting replaced.
  719. REPAIRING = 5;
  720. }
  721. // Output only. The resource name of this cluster.
  722. // Resource names are schemeless URIs that follow the conventions in
  723. // https://cloud.google.com/apis/design/resource_names.
  724. // For example:
  725. // `projects/my-project/locations/us-west1-a/privateClouds/my-cloud/clusters/my-cluster`
  726. string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
  727. // Output only. Creation time of this resource.
  728. google.protobuf.Timestamp create_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
  729. // Output only. Last update time of this resource.
  730. google.protobuf.Timestamp update_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
  731. // Output only. State of the resource.
  732. State state = 6 [(google.api.field_behavior) = OUTPUT_ONLY];
  733. // Output only. True if the cluster is a management cluster; false otherwise.
  734. // There can only be one management cluster in a private cloud
  735. // and it has to be the first one.
  736. bool management = 7 [(google.api.field_behavior) = OUTPUT_ONLY];
  737. // Output only. System-generated unique identifier for the resource.
  738. string uid = 14 [(google.api.field_behavior) = OUTPUT_ONLY];
  739. // Required. The map of cluster node types in this cluster, where the key is canonical
  740. // identifier of the node type (corresponds to the `NodeType`).
  741. map<string, NodeTypeConfig> node_type_configs = 16 [(google.api.field_behavior) = REQUIRED];
  742. }
  743. // Request message for [VmwareEngine.ListClusters][google.cloud.vmwareengine.v1.VmwareEngine.ListClusters]
  744. message ListClustersRequest {
  745. // Required. The resource name of the private cloud to query for clusters.
  746. // Resource names are schemeless URIs that follow the conventions in
  747. // https://cloud.google.com/apis/design/resource_names.
  748. // For example:
  749. // `projects/my-project/locations/us-west1-a/privateClouds/my-cloud`
  750. string parent = 1 [
  751. (google.api.field_behavior) = REQUIRED,
  752. (google.api.resource_reference) = {
  753. type: "vmwareengine.googleapis.com/PrivateCloud"
  754. }
  755. ];
  756. // The maximum number of clusters to return in one page.
  757. // The service may return fewer than this value.
  758. // The maximum value is coerced to 1000.
  759. // The default value of this field is 500.
  760. int32 page_size = 2;
  761. // A page token, received from a previous `ListClusters` call.
  762. // Provide this to retrieve the subsequent page.
  763. //
  764. // When paginating, all other parameters provided to `ListClusters`
  765. // must match the call that provided the page token.
  766. string page_token = 3;
  767. //
  768. // To filter on multiple expressions, provide each separate expression within
  769. // parentheses. For example:
  770. // ```
  771. // (name = "example-cluster")
  772. // (nodeCount = "3")
  773. // ```
  774. //
  775. // By default, each expression is an `AND` expression. However, you can
  776. // include `AND` and `OR` expressions explicitly. For example:
  777. // ```
  778. // (name = "example-cluster-1") AND
  779. // (createTime > "2021-04-12T08:15:10.40Z") OR
  780. // (name = "example-cluster-2")
  781. // ```
  782. string filter = 4;
  783. // Sorts list results by a certain order. By default, returned results are
  784. // ordered by `name` in ascending order. You can also sort results in
  785. // descending order based on the `name` value using `orderBy="name desc"`.
  786. // Currently, only ordering by `name` is supported.
  787. string order_by = 5;
  788. }
  789. // Response message for [VmwareEngine.ListClusters][google.cloud.vmwareengine.v1.VmwareEngine.ListClusters]
  790. message ListClustersResponse {
  791. // A list of private cloud clusters.
  792. repeated Cluster clusters = 1;
  793. // A token, which can be sent as `page_token` to retrieve the next page.
  794. // If this field is omitted, there are no subsequent pages.
  795. string next_page_token = 2;
  796. // Locations that could not be reached when making an aggregated query using
  797. // wildcards.
  798. repeated string unreachable = 3;
  799. }
  800. // Request message for [VmwareEngine.GetCluster][google.cloud.vmwareengine.v1.VmwareEngine.GetCluster]
  801. message GetClusterRequest {
  802. // Required. The cluster resource name to retrieve.
  803. // Resource names are schemeless URIs that follow the conventions in
  804. // https://cloud.google.com/apis/design/resource_names.
  805. // For example:
  806. // `projects/my-project/locations/us-west1-a/privateClouds/my-cloud/clusters/my-cluster`
  807. string name = 1 [
  808. (google.api.field_behavior) = REQUIRED,
  809. (google.api.resource_reference) = {
  810. type: "vmwareengine.googleapis.com/Cluster"
  811. }
  812. ];
  813. }
  814. // Request message for [VmwareEngine.CreateCluster][google.cloud.vmwareengine.v1.VmwareEngine.CreateCluster]
  815. message CreateClusterRequest {
  816. // Required. The resource name of the private cloud to create a new cluster
  817. // in. Resource names are schemeless URIs that follow the conventions in
  818. // https://cloud.google.com/apis/design/resource_names.
  819. // For example:
  820. // `projects/my-project/locations/us-west1-a/privateClouds/my-cloud`
  821. string parent = 1 [
  822. (google.api.field_behavior) = REQUIRED,
  823. (google.api.resource_reference) = {
  824. type: "vmwareengine.googleapis.com/PrivateCloud"
  825. }
  826. ];
  827. // Required. The user-provided identifier of the new `Cluster`.
  828. // This identifier must be unique among clusters within the parent and becomes
  829. // the final token in the name URI.
  830. // The identifier must meet the following requirements:
  831. //
  832. // * Only contains 1-63 alphanumeric characters and hyphens
  833. // * Begins with an alphabetical character
  834. // * Ends with a non-hyphen character
  835. // * Not formatted as a UUID
  836. // * Complies with [RFC 1034](https://datatracker.ietf.org/doc/html/rfc1034)
  837. // (section 3.5)
  838. string cluster_id = 2 [(google.api.field_behavior) = REQUIRED];
  839. // Required. The initial description of the new cluster.
  840. Cluster cluster = 3 [(google.api.field_behavior) = REQUIRED];
  841. // Optional. The request ID must be a valid UUID with the exception that zero UUID is
  842. // not supported (00000000-0000-0000-0000-000000000000).
  843. string request_id = 4 [(google.api.field_behavior) = OPTIONAL];
  844. // Optional. True if you want the request to be validated and not executed; false
  845. // otherwise.
  846. bool validate_only = 5 [(google.api.field_behavior) = OPTIONAL];
  847. }
  848. // Request message for [VmwareEngine.UpdateCluster][google.cloud.vmwareengine.v1.VmwareEngine.UpdateCluster]
  849. message UpdateClusterRequest {
  850. // Required. Field mask is used to specify the fields to be overwritten in the
  851. // `Cluster` resource by the update. The fields specified in the `updateMask`
  852. // are relative to the resource, not the full request. A field will be
  853. // overwritten if it is in the mask. If the user does not provide a mask then
  854. // all fields will be overwritten.
  855. google.protobuf.FieldMask update_mask = 1 [(google.api.field_behavior) = REQUIRED];
  856. // Required. The description of the cluster.
  857. Cluster cluster = 2 [(google.api.field_behavior) = REQUIRED];
  858. // Optional. The request ID must be a valid UUID with the exception that
  859. // zero UUID is not supported (00000000-0000-0000-0000-000000000000).
  860. string request_id = 3 [(google.api.field_behavior) = OPTIONAL];
  861. // Optional. True if you want the request to be validated and not executed; false
  862. // otherwise.
  863. bool validate_only = 4 [(google.api.field_behavior) = OPTIONAL];
  864. }
  865. // Request message for [VmwareEngine.DeleteCluster][google.cloud.vmwareengine.v1.VmwareEngine.DeleteCluster]
  866. message DeleteClusterRequest {
  867. // Required. The resource name of the cluster to delete.
  868. // Resource names are schemeless URIs that follow the conventions in
  869. // https://cloud.google.com/apis/design/resource_names.
  870. // For example:
  871. // `projects/my-project/locations/us-west1-a/privateClouds/my-cloud/clusters/my-cluster`
  872. string name = 1 [
  873. (google.api.field_behavior) = REQUIRED,
  874. (google.api.resource_reference) = {
  875. type: "vmwareengine.googleapis.com/Cluster"
  876. }
  877. ];
  878. // Optional. The request ID must be a valid UUID with the exception that zero UUID is
  879. // not supported (00000000-0000-0000-0000-000000000000).
  880. string request_id = 2 [(google.api.field_behavior) = OPTIONAL];
  881. }
  882. // Subnet in a private cloud. Either `management` subnets (such as vMotion) that
  883. // are read-only, or `userDefined`, which can also be updated.
  884. message Subnet {
  885. option (google.api.resource) = {
  886. type: "vmwareengine.googleapis.com/Subnet"
  887. pattern: "projects/{project}/locations/{location}/privateClouds/{private_cloud}/subnets/{subnet}"
  888. };
  889. // Defines possible states of subnets.
  890. enum State {
  891. // The default value. This value should never be used.
  892. STATE_UNSPECIFIED = 0;
  893. // The subnet is ready.
  894. ACTIVE = 1;
  895. // The subnet is being created.
  896. CREATING = 2;
  897. // The subnet is being updated.
  898. UPDATING = 3;
  899. // The subnet is being deleted.
  900. DELETING = 4;
  901. }
  902. // Output only. The resource name of this subnet.
  903. // Resource names are schemeless URIs that follow the conventions in
  904. // https://cloud.google.com/apis/design/resource_names.
  905. // For example:
  906. // `projects/my-project/locations/us-west1-a/privateClouds/my-cloud/subnets/my-subnet`
  907. string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
  908. // The IP address range of the subnet in CIDR format '10.0.0.0/24'.
  909. string ip_cidr_range = 7;
  910. // The IP address of the gateway of this subnet.
  911. // Must fall within the IP prefix defined above.
  912. string gateway_ip = 8;
  913. // Output only. The type of the subnet. For example "management" or "userDefined".
  914. string type = 11 [(google.api.field_behavior) = OUTPUT_ONLY];
  915. // Output only. The state of the resource.
  916. State state = 13 [(google.api.field_behavior) = OUTPUT_ONLY];
  917. }
  918. // Request message for [VmwareEngine.ListSubnets][google.cloud.vmwareengine.v1.VmwareEngine.ListSubnets]
  919. message ListSubnetsRequest {
  920. // Required. The resource name of the private cloud to be queried for
  921. // subnets.
  922. // Resource names are schemeless URIs that follow the conventions in
  923. // https://cloud.google.com/apis/design/resource_names.
  924. // For example:
  925. // `projects/my-project/locations/us-west1-a/privateClouds/my-cloud`
  926. string parent = 1 [
  927. (google.api.field_behavior) = REQUIRED,
  928. (google.api.resource_reference) = {
  929. type: "vmwareengine.googleapis.com/PrivateCloud"
  930. }
  931. ];
  932. // The maximum number of subnets to return in one page.
  933. // The service may return fewer than this value.
  934. // The maximum value is coerced to 1000.
  935. // The default value of this field is 500.
  936. int32 page_size = 2;
  937. // A page token, received from a previous `ListSubnetsRequest` call.
  938. // Provide this to retrieve the subsequent page.
  939. //
  940. // When paginating, all other parameters provided to
  941. // `ListSubnetsRequest` must match the call that provided the page token.
  942. string page_token = 3;
  943. }
  944. // Response message for [VmwareEngine.ListSubnets][google.cloud.vmwareengine.v1.VmwareEngine.ListSubnets]
  945. message ListSubnetsResponse {
  946. // A list of subnets.
  947. repeated Subnet subnets = 1;
  948. // A token, which can be sent as `page_token` to retrieve the next page.
  949. // If this field is omitted, there are no subsequent pages.
  950. string next_page_token = 2;
  951. }
  952. // Represents the metadata of the long-running operation.
  953. message OperationMetadata {
  954. // Output only. The time the operation was created.
  955. google.protobuf.Timestamp create_time = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
  956. // Output only. The time the operation finished running.
  957. google.protobuf.Timestamp end_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
  958. // Output only. Server-defined resource path for the target of the operation.
  959. string target = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
  960. // Output only. Name of the verb executed by the operation.
  961. string verb = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
  962. // Output only. Human-readable status of the operation, if any.
  963. string status_message = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
  964. // Output only. True if the user has requested cancellation
  965. // of the operation; false otherwise.
  966. // Operations that have successfully been cancelled
  967. // have [Operation.error][] value with a [google.rpc.Status.code][google.rpc.Status.code] of 1,
  968. // corresponding to `Code.CANCELLED`.
  969. bool requested_cancellation = 6 [(google.api.field_behavior) = OUTPUT_ONLY];
  970. // Output only. API version used to start the operation.
  971. string api_version = 7 [(google.api.field_behavior) = OUTPUT_ONLY];
  972. }
  973. // Describes node type.
  974. message NodeType {
  975. option (google.api.resource) = {
  976. type: "vmwareengine.googleapis.com/NodeType"
  977. pattern: "projects/{project}/locations/{location}/nodeTypes/{node_type}"
  978. };
  979. // Output only. The resource name of this node type.
  980. // Resource names are schemeless URIs that follow the conventions in
  981. // https://cloud.google.com/apis/design/resource_names.
  982. // For example:
  983. // `projects/my-proj/locations/us-west1-a/nodeTypes/standard-72`
  984. string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
  985. // Output only. The canonical identifier of the node type
  986. // (corresponds to the `NodeType`). For example: standard-72.
  987. string node_type_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
  988. // Output only. The friendly name for this node type.
  989. // For example: ve1-standard-72
  990. string display_name = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
  991. // Output only. The total number of virtual CPUs in a single node.
  992. int32 virtual_cpu_count = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
  993. // Output only. The total number of CPU cores in a single node.
  994. int32 total_core_count = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
  995. // Output only. The amount of physical memory available, defined in GB.
  996. int32 memory_gb = 7 [(google.api.field_behavior) = OUTPUT_ONLY];
  997. // Output only. The amount of storage available, defined in GB.
  998. int32 disk_size_gb = 8 [(google.api.field_behavior) = OUTPUT_ONLY];
  999. // Output only. List of possible values of custom core count.
  1000. repeated int32 available_custom_core_counts = 11 [(google.api.field_behavior) = OUTPUT_ONLY];
  1001. }
  1002. // Request message for [VmwareEngine.ListNodeTypes][google.cloud.vmwareengine.v1.VmwareEngine.ListNodeTypes]
  1003. message ListNodeTypesRequest {
  1004. // Required. The resource name of the location to be queried for node types.
  1005. // Resource names are schemeless URIs that follow the conventions in
  1006. // https://cloud.google.com/apis/design/resource_names.
  1007. // For example:
  1008. // `projects/my-project/locations/us-west1-a`
  1009. string parent = 1 [
  1010. (google.api.field_behavior) = REQUIRED,
  1011. (google.api.resource_reference) = {
  1012. type: "locations.googleapis.com/Location"
  1013. }
  1014. ];
  1015. // The maximum number of node types to return in one page.
  1016. // The service may return fewer than this value.
  1017. // The maximum value is coerced to 1000.
  1018. // The default value of this field is 500.
  1019. int32 page_size = 2;
  1020. // A page token, received from a previous `ListNodeTypes` call.
  1021. // Provide this to retrieve the subsequent page.
  1022. //
  1023. // When paginating, all other parameters provided to
  1024. // `ListNodeTypes` must match the call that provided the page token.
  1025. string page_token = 3;
  1026. // A filter expression that matches resources returned in the response.
  1027. // The expression must specify the field name, a comparison
  1028. // operator, and the value that you want to use for filtering. The value
  1029. // must be a string, a number, or a boolean. The comparison operator
  1030. // must be `=`, `!=`, `>`, or `<`.
  1031. //
  1032. // For example, if you are filtering a list of node types, you can
  1033. // exclude the ones named `standard-72` by specifying
  1034. // `name != "standard-72"`.
  1035. //
  1036. // To filter on multiple expressions, provide each separate expression within
  1037. // parentheses. For example:
  1038. // ```
  1039. // (name = "standard-72")
  1040. // (virtual_cpu_count > 2)
  1041. // ```
  1042. //
  1043. // By default, each expression is an `AND` expression. However, you
  1044. // can include `AND` and `OR` expressions explicitly.
  1045. // For example:
  1046. // ```
  1047. // (name = "standard-96") AND
  1048. // (virtual_cpu_count > 2) OR
  1049. // (name = "standard-72")
  1050. // ```
  1051. string filter = 4;
  1052. }
  1053. // Response message for [VmwareEngine.ListNodeTypes][google.cloud.vmwareengine.v1.VmwareEngine.ListNodeTypes]
  1054. message ListNodeTypesResponse {
  1055. // A list of Node Types.
  1056. repeated NodeType node_types = 1;
  1057. // A token, which can be sent as `page_token` to retrieve the next page.
  1058. // If this field is omitted, there are no subsequent pages.
  1059. string next_page_token = 2;
  1060. // Locations that could not be reached when making an aggregated query using
  1061. // wildcards.
  1062. repeated string unreachable = 3;
  1063. }
  1064. // Request message for [VmwareEngine.GetNodeType][google.cloud.vmwareengine.v1.VmwareEngine.GetNodeType]
  1065. message GetNodeTypeRequest {
  1066. // Required. The resource name of the node type to retrieve.
  1067. // Resource names are schemeless URIs that follow the conventions in
  1068. // https://cloud.google.com/apis/design/resource_names.
  1069. // For example:
  1070. // `projects/my-proj/locations/us-west1-a/nodeTypes/standard-72`
  1071. string name = 1 [
  1072. (google.api.field_behavior) = REQUIRED,
  1073. (google.api.resource_reference) = {
  1074. type: "vmwareengine.googleapis.com/NodeType"
  1075. }
  1076. ];
  1077. }
  1078. // Credentials for a private cloud.
  1079. message Credentials {
  1080. // Initial username.
  1081. string username = 1;
  1082. // Initial password.
  1083. string password = 2;
  1084. }
  1085. // Request message for [VmwareEngine.ShowNsxCredentials][google.cloud.vmwareengine.v1.VmwareEngine.ShowNsxCredentials]
  1086. message ShowNsxCredentialsRequest {
  1087. // Required. The resource name of the private cloud
  1088. // to be queried for credentials.
  1089. // Resource names are schemeless URIs that follow the conventions in
  1090. // https://cloud.google.com/apis/design/resource_names.
  1091. // For example:
  1092. // `projects/my-project/locations/us-west1-a/privateClouds/my-cloud`
  1093. string private_cloud = 1 [
  1094. (google.api.field_behavior) = REQUIRED,
  1095. (google.api.resource_reference) = {
  1096. type: "vmwareengine.googleapis.com/PrivateCloud"
  1097. }
  1098. ];
  1099. }
  1100. // Request message for [VmwareEngine.ShowVcenterCredentials][google.cloud.vmwareengine.v1.VmwareEngine.ShowVcenterCredentials]
  1101. message ShowVcenterCredentialsRequest {
  1102. // Required. The resource name of the private cloud
  1103. // to be queried for credentials.
  1104. // Resource names are schemeless URIs that follow the conventions in
  1105. // https://cloud.google.com/apis/design/resource_names.
  1106. // For example:
  1107. // `projects/my-project/locations/us-west1-a/privateClouds/my-cloud`
  1108. string private_cloud = 1 [
  1109. (google.api.field_behavior) = REQUIRED,
  1110. (google.api.resource_reference) = {
  1111. type: "vmwareengine.googleapis.com/PrivateCloud"
  1112. }
  1113. ];
  1114. }
  1115. // Request message for [VmwareEngine.ResetNsxCredentials][google.cloud.vmwareengine.v1.VmwareEngine.ResetNsxCredentials]
  1116. message ResetNsxCredentialsRequest {
  1117. // Required. The resource name of the private cloud
  1118. // to reset credentials for.
  1119. // Resource names are schemeless URIs that follow the conventions in
  1120. // https://cloud.google.com/apis/design/resource_names.
  1121. // For example:
  1122. // `projects/my-project/locations/us-west1-a/privateClouds/my-cloud`
  1123. string private_cloud = 1 [
  1124. (google.api.field_behavior) = REQUIRED,
  1125. (google.api.resource_reference) = {
  1126. type: "vmwareengine.googleapis.com/PrivateCloud"
  1127. }
  1128. ];
  1129. // Optional. A request ID to identify requests. Specify a unique request ID
  1130. // so that if you must retry your request, the server will know to ignore
  1131. // the request if it has already been completed. The server guarantees that a
  1132. // request doesn't result in creation of duplicate commitments for at least 60
  1133. // minutes.
  1134. //
  1135. // For example, consider a situation where you make an initial request and the
  1136. // request times out. If you make the request again with the same request
  1137. // ID, the server can check if original operation with the same request ID
  1138. // was received, and if so, will ignore the second request. This prevents
  1139. // clients from accidentally creating duplicate commitments.
  1140. //
  1141. // The request ID must be a valid UUID with the exception that zero UUID is
  1142. // not supported (00000000-0000-0000-0000-000000000000).
  1143. string request_id = 2 [(google.api.field_behavior) = OPTIONAL];
  1144. }
  1145. // Request message for [VmwareEngine.ResetVcenterCredentials][google.cloud.vmwareengine.v1.VmwareEngine.ResetVcenterCredentials]
  1146. message ResetVcenterCredentialsRequest {
  1147. // Required. The resource name of the private cloud
  1148. // to reset credentials for.
  1149. // Resource names are schemeless URIs that follow the conventions in
  1150. // https://cloud.google.com/apis/design/resource_names.
  1151. // For example:
  1152. // `projects/my-project/locations/us-west1-a/privateClouds/my-cloud`
  1153. string private_cloud = 1 [
  1154. (google.api.field_behavior) = REQUIRED,
  1155. (google.api.resource_reference) = {
  1156. type: "vmwareengine.googleapis.com/PrivateCloud"
  1157. }
  1158. ];
  1159. // Optional. A request ID to identify requests. Specify a unique request ID
  1160. // so that if you must retry your request, the server will know to ignore
  1161. // the request if it has already been completed. The server guarantees that a
  1162. // request doesn't result in creation of duplicate commitments for at least 60
  1163. // minutes.
  1164. //
  1165. // For example, consider a situation where you make an initial request and the
  1166. // request times out. If you make the request again with the same request
  1167. // ID, the server can check if original operation with the same request ID
  1168. // was received, and if so, will ignore the second request. This prevents
  1169. // clients from accidentally creating duplicate commitments.
  1170. //
  1171. // The request ID must be a valid UUID with the exception that zero UUID is
  1172. // not supported (00000000-0000-0000-0000-000000000000).
  1173. string request_id = 2 [(google.api.field_behavior) = OPTIONAL];
  1174. }
  1175. // Response message for [VmwareEngine.ListHcxActivationKeys][google.cloud.vmwareengine.v1.VmwareEngine.ListHcxActivationKeys]
  1176. message ListHcxActivationKeysResponse {
  1177. // List of HCX activation keys.
  1178. repeated HcxActivationKey hcx_activation_keys = 1;
  1179. // A token, which can be sent as `page_token` to retrieve the next page.
  1180. // If this field is omitted, there are no subsequent pages.
  1181. string next_page_token = 2;
  1182. // Locations that could not be reached when making an aggregated query using
  1183. // wildcards.
  1184. repeated string unreachable = 3;
  1185. }
  1186. // HCX activation key. A default key is created during
  1187. // private cloud provisioning, but this behavior is subject to change
  1188. // and you should always verify active keys.
  1189. // Use [VmwareEngine.ListHcxActivationKeys][google.cloud.vmwareengine.v1.VmwareEngine.ListHcxActivationKeys] to retrieve existing keys
  1190. // and [VmwareEngine.CreateHcxActivationKey][google.cloud.vmwareengine.v1.VmwareEngine.CreateHcxActivationKey] to create new ones.
  1191. message HcxActivationKey {
  1192. option (google.api.resource) = {
  1193. type: "vmwareengine.googleapis.com/HcxActivationKey"
  1194. pattern: "projects/{project}/locations/{location}/privateClouds/{private_cloud}/hcxActivationKeys/{hcx_activation_key}"
  1195. };
  1196. // State of HCX activation key
  1197. enum State {
  1198. // Unspecified state.
  1199. STATE_UNSPECIFIED = 0;
  1200. // State of a newly generated activation key.
  1201. AVAILABLE = 1;
  1202. // State of key when it has been used to activate HCX appliance.
  1203. CONSUMED = 2;
  1204. // State of key when it is being created.
  1205. CREATING = 3;
  1206. }
  1207. // Output only. The resource name of this HcxActivationKey.
  1208. // Resource names are schemeless URIs that follow the conventions in
  1209. // https://cloud.google.com/apis/design/resource_names.
  1210. // For example:
  1211. // `projects/my-project/locations/us-west1/privateClouds/my-cloud/hcxActivationKeys/my-key`
  1212. string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
  1213. // Output only. Creation time of HCX activation key.
  1214. google.protobuf.Timestamp create_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
  1215. // Output only. State of HCX activation key.
  1216. State state = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
  1217. // Output only. HCX activation key.
  1218. string activation_key = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
  1219. // Output only. System-generated unique identifier for the resource.
  1220. string uid = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
  1221. }
  1222. // Request message for [VmwareEngine.ListHcxActivationKeys][google.cloud.vmwareengine.v1.VmwareEngine.ListHcxActivationKeys]
  1223. message ListHcxActivationKeysRequest {
  1224. // Required. The resource name of the private cloud
  1225. // to be queried for HCX activation keys.
  1226. // Resource names are schemeless URIs that follow the conventions in
  1227. // https://cloud.google.com/apis/design/resource_names.
  1228. // For example:
  1229. // `projects/my-project/locations/us-central1/privateClouds/my-cloud`
  1230. string parent = 1 [
  1231. (google.api.field_behavior) = REQUIRED,
  1232. (google.api.resource_reference) = {
  1233. type: "vmwareengine.googleapis.com/PrivateCloud"
  1234. }
  1235. ];
  1236. // The maximum number of HCX activation keys to return in one page.
  1237. // The service may return fewer than this value.
  1238. // The maximum value is coerced to 1000.
  1239. // The default value of this field is 500.
  1240. int32 page_size = 2;
  1241. // A page token, received from a previous `ListHcxActivationKeys` call.
  1242. // Provide this to retrieve the subsequent page.
  1243. //
  1244. // When paginating, all other parameters provided to
  1245. // `ListHcxActivationKeys` must match the call that provided the page
  1246. // token.
  1247. string page_token = 3;
  1248. }
  1249. // Request message for [VmwareEngine.GetHcxActivationKeys][]
  1250. message GetHcxActivationKeyRequest {
  1251. // Required. The resource name of the HCX activation key to retrieve.
  1252. // Resource names are schemeless URIs that follow the conventions in
  1253. // https://cloud.google.com/apis/design/resource_names.
  1254. // For example:
  1255. // `projects/my-project/locations/us-west1/privateClouds/my-cloud/hcxActivationKeys/my-key`
  1256. string name = 1 [
  1257. (google.api.field_behavior) = REQUIRED,
  1258. (google.api.resource_reference) = {
  1259. type: "vmwareengine.googleapis.com/HcxActivationKey"
  1260. }
  1261. ];
  1262. }
  1263. // Request message for [VmwareEngine.CreateHcxActivationKey][google.cloud.vmwareengine.v1.VmwareEngine.CreateHcxActivationKey]
  1264. message CreateHcxActivationKeyRequest {
  1265. // Required. The resource name of the private cloud to create the key for.
  1266. // Resource names are schemeless URIs that follow the conventions in
  1267. // https://cloud.google.com/apis/design/resource_names.
  1268. // For example:
  1269. // `projects/my-project/locations/us-central1/privateClouds/my-cloud`
  1270. string parent = 1 [
  1271. (google.api.field_behavior) = REQUIRED,
  1272. (google.api.resource_reference) = {
  1273. type: "vmwareengine.googleapis.com/PrivateCloud"
  1274. }
  1275. ];
  1276. // Required. The initial description of a new HCX activation key. When
  1277. // creating a new key, this field must be an empty object.
  1278. HcxActivationKey hcx_activation_key = 2 [(google.api.field_behavior) = REQUIRED];
  1279. // Required. The user-provided identifier of the `HcxActivationKey` to be
  1280. // created. This identifier must be unique among `HcxActivationKey` resources
  1281. // within the parent and becomes the final token in the name URI.
  1282. // The identifier must meet the following requirements:
  1283. //
  1284. // * Only contains 1-63 alphanumeric characters and hyphens
  1285. // * Begins with an alphabetical character
  1286. // * Ends with a non-hyphen character
  1287. // * Not formatted as a UUID
  1288. // * Complies with [RFC 1034](https://datatracker.ietf.org/doc/html/rfc1034)
  1289. // (section 3.5)
  1290. string hcx_activation_key_id = 3 [(google.api.field_behavior) = REQUIRED];
  1291. // A request ID to identify requests. Specify a unique request ID
  1292. // so that if you must retry your request, the server will know to ignore
  1293. // the request if it has already been completed. The server guarantees that a
  1294. // request doesn't result in creation of duplicate commitments for at least 60
  1295. // minutes.
  1296. //
  1297. // For example, consider a situation where you make an initial request and the
  1298. // request times out. If you make the request again with the same request ID,
  1299. // the server can check if original operation with the same request ID was
  1300. // received, and if so, will ignore the second request. This prevents clients
  1301. // from accidentally creating duplicate commitments.
  1302. //
  1303. // The request ID must be a valid UUID with the exception that zero UUID is
  1304. // not supported (00000000-0000-0000-0000-000000000000).
  1305. string request_id = 4;
  1306. }
  1307. // Details about a HCX Cloud Manager appliance.
  1308. message Hcx {
  1309. // State of the appliance
  1310. enum State {
  1311. // Unspecified appliance state. This is the default value.
  1312. STATE_UNSPECIFIED = 0;
  1313. // The appliance is operational and can be used.
  1314. ACTIVE = 1;
  1315. // The appliance is being deployed.
  1316. CREATING = 2;
  1317. }
  1318. // Internal IP address of the appliance.
  1319. string internal_ip = 2;
  1320. // Version of the appliance.
  1321. string version = 4;
  1322. // Output only. The state of the appliance.
  1323. State state = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
  1324. // Fully qualified domain name of the appliance.
  1325. string fqdn = 6;
  1326. }
  1327. // Details about a NSX Manager appliance.
  1328. message Nsx {
  1329. // State of the appliance
  1330. enum State {
  1331. // Unspecified appliance state. This is the default value.
  1332. STATE_UNSPECIFIED = 0;
  1333. // The appliance is operational and can be used.
  1334. ACTIVE = 1;
  1335. // The appliance is being deployed.
  1336. CREATING = 2;
  1337. }
  1338. // Internal IP address of the appliance.
  1339. string internal_ip = 2;
  1340. // Version of the appliance.
  1341. string version = 4;
  1342. // Output only. The state of the appliance.
  1343. State state = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
  1344. // Fully qualified domain name of the appliance.
  1345. string fqdn = 6;
  1346. }
  1347. // Details about a vCenter Server management appliance.
  1348. message Vcenter {
  1349. // State of the appliance
  1350. enum State {
  1351. // Unspecified appliance state. This is the default value.
  1352. STATE_UNSPECIFIED = 0;
  1353. // The appliance is operational and can be used.
  1354. ACTIVE = 1;
  1355. // The appliance is being deployed.
  1356. CREATING = 2;
  1357. }
  1358. // Internal IP address of the appliance.
  1359. string internal_ip = 2;
  1360. // Version of the appliance.
  1361. string version = 4;
  1362. // Output only. The state of the appliance.
  1363. State state = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
  1364. // Fully qualified domain name of the appliance.
  1365. string fqdn = 6;
  1366. }
  1367. // Represents a network policy resource. Network policies are regional
  1368. // resources. You can use a network policy to enable or disable internet access
  1369. // and external IP access. Network policies are associated with a VMware Engine
  1370. // network, which might span across regions. For a given region, a network
  1371. // policy applies to all private clouds in the VMware Engine network associated
  1372. // with the policy.
  1373. message NetworkPolicy {
  1374. option (google.api.resource) = {
  1375. type: "vmwareengine.googleapis.com/NetworkPolicy"
  1376. pattern: "projects/{project}/locations/{location}/networkPolicies/{network_policy}"
  1377. };
  1378. // Represents a network service that is managed by a `NetworkPolicy` resource.
  1379. // A network service provides a way to control an aspect of external access to
  1380. // VMware workloads. For example, whether the VMware workloads in the
  1381. // private clouds governed by a network policy can access or be accessed from
  1382. // the internet.
  1383. message NetworkService {
  1384. // Enum State defines possible states of a network policy controlled
  1385. // service.
  1386. enum State {
  1387. // Unspecified service state. This is the default value.
  1388. STATE_UNSPECIFIED = 0;
  1389. // Service is not provisioned.
  1390. UNPROVISIONED = 1;
  1391. // Service is in the process of being provisioned/deprovisioned.
  1392. RECONCILING = 2;
  1393. // Service is active.
  1394. ACTIVE = 3;
  1395. }
  1396. // True if the service is enabled; false otherwise.
  1397. bool enabled = 1;
  1398. // Output only. State of the service. New values may be added to this enum
  1399. // when appropriate.
  1400. State state = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
  1401. }
  1402. // Output only. The resource name of this network policy.
  1403. // Resource names are schemeless URIs that follow the conventions in
  1404. // https://cloud.google.com/apis/design/resource_names.
  1405. // For example:
  1406. // `projects/my-project/locations/us-central1/networkPolicies/my-network-policy`
  1407. string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
  1408. // Output only. Creation time of this resource.
  1409. google.protobuf.Timestamp create_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
  1410. // Output only. Last update time of this resource.
  1411. google.protobuf.Timestamp update_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
  1412. // Network service that allows VMware workloads to access the internet.
  1413. NetworkService internet_access = 6;
  1414. // Network service that allows External IP addresses to be assigned to VMware
  1415. // workloads. This service can only be enabled when `internet_access` is also
  1416. // enabled.
  1417. NetworkService external_ip = 7;
  1418. // Required. IP address range in CIDR notation used to create internet access
  1419. // and external IP access. An RFC 1918 CIDR block, with a "/26" prefix, is
  1420. // required. The range cannot overlap with any prefixes either in the consumer
  1421. // VPC network or in use by the private clouds attached to that VPC network.
  1422. string edge_services_cidr = 9 [(google.api.field_behavior) = REQUIRED];
  1423. // Output only. System-generated unique identifier for the resource.
  1424. string uid = 10 [(google.api.field_behavior) = OUTPUT_ONLY];
  1425. // Optional. The relative resource name of the VMware Engine network.
  1426. // Specify the name in the following form:
  1427. // `projects/{project}/locations/{location}/vmwareEngineNetworks/{vmware_engine_network_id}`
  1428. // where `{project}` can either be a project number or a project ID.
  1429. string vmware_engine_network = 12 [
  1430. (google.api.field_behavior) = OPTIONAL,
  1431. (google.api.resource_reference) = {
  1432. type: "vmwareengine.googleapis.com/VmwareEngineNetwork"
  1433. }
  1434. ];
  1435. // Optional. User-provided description for this network policy.
  1436. string description = 13 [(google.api.field_behavior) = OPTIONAL];
  1437. // Output only. The canonical name of the VMware Engine network in the form:
  1438. // `projects/{project_number}/locations/{location}/vmwareEngineNetworks/{vmware_engine_network_id}`
  1439. string vmware_engine_network_canonical = 14 [
  1440. (google.api.field_behavior) = OUTPUT_ONLY,
  1441. (google.api.resource_reference) = {
  1442. type: "vmwareengine.googleapis.com/VmwareEngineNetwork"
  1443. }
  1444. ];
  1445. }
  1446. // Request message for [VmwareEngine.ListNetworkPolicies][google.cloud.vmwareengine.v1.VmwareEngine.ListNetworkPolicies]
  1447. message ListNetworkPoliciesRequest {
  1448. // Required. The resource name of the location (region) to query for
  1449. // network policies. Resource names are schemeless URIs that follow the
  1450. // conventions in https://cloud.google.com/apis/design/resource_names. For
  1451. // example: `projects/my-project/locations/us-central1`
  1452. string parent = 1 [
  1453. (google.api.field_behavior) = REQUIRED,
  1454. (google.api.resource_reference) = {
  1455. child_type: "vmwareengine.googleapis.com/NetworkPolicy"
  1456. }
  1457. ];
  1458. // The maximum number of network policies to return in one page.
  1459. // The service may return fewer than this value.
  1460. // The maximum value is coerced to 1000.
  1461. // The default value of this field is 500.
  1462. int32 page_size = 2;
  1463. // A page token, received from a previous `ListNetworkPolicies` call.
  1464. // Provide this to retrieve the subsequent page.
  1465. //
  1466. // When paginating, all other parameters provided to
  1467. // `ListNetworkPolicies` must match the call that provided the page
  1468. // token.
  1469. string page_token = 3;
  1470. // A filter expression that matches resources returned in the response.
  1471. // The expression must specify the field name, a comparison
  1472. // operator, and the value that you want to use for filtering. The value
  1473. // must be a string, a number, or a boolean. The comparison operator
  1474. // must be `=`, `!=`, `>`, or `<`.
  1475. //
  1476. // For example, if you are filtering a list of network policies, you can
  1477. // exclude the ones named `example-policy` by specifying
  1478. // `name != "example-policy"`.
  1479. //
  1480. // To filter on multiple expressions, provide each separate expression within
  1481. // parentheses. For example:
  1482. // ```
  1483. // (name = "example-policy")
  1484. // (createTime > "2021-04-12T08:15:10.40Z")
  1485. // ```
  1486. //
  1487. // By default, each expression is an `AND` expression. However, you
  1488. // can include `AND` and `OR` expressions explicitly.
  1489. // For example:
  1490. // ```
  1491. // (name = "example-policy-1") AND
  1492. // (createTime > "2021-04-12T08:15:10.40Z") OR
  1493. // (name = "example-policy-2")
  1494. // ```
  1495. string filter = 4;
  1496. // Sorts list results by a certain order. By default, returned results
  1497. // are ordered by `name` in ascending order.
  1498. // You can also sort results in descending order based on the `name` value
  1499. // using `orderBy="name desc"`.
  1500. // Currently, only ordering by `name` is supported.
  1501. string order_by = 5;
  1502. }
  1503. // Response message for [VmwareEngine.ListNetworkPolicies][google.cloud.vmwareengine.v1.VmwareEngine.ListNetworkPolicies]
  1504. message ListNetworkPoliciesResponse {
  1505. // A list of network policies.
  1506. repeated NetworkPolicy network_policies = 1;
  1507. // A token, which can be send as `page_token` to retrieve the next page.
  1508. // If this field is omitted, there are no subsequent pages.
  1509. string next_page_token = 2;
  1510. // Locations that could not be reached when making an aggregated query using
  1511. // wildcards.
  1512. repeated string unreachable = 3;
  1513. }
  1514. // Request message for [VmwareEngine.GetNetworkPolicy][google.cloud.vmwareengine.v1.VmwareEngine.GetNetworkPolicy]
  1515. message GetNetworkPolicyRequest {
  1516. // Required. The resource name of the network policy to retrieve.
  1517. // Resource names are schemeless URIs that follow the conventions in
  1518. // https://cloud.google.com/apis/design/resource_names.
  1519. // For example:
  1520. // `projects/my-project/locations/us-central1/networkPolicies/my-network-policy`
  1521. string name = 1 [
  1522. (google.api.field_behavior) = REQUIRED,
  1523. (google.api.resource_reference) = {
  1524. type: "vmwareengine.googleapis.com/NetworkPolicy"
  1525. }
  1526. ];
  1527. }
  1528. // Request message for [VmwareEngine.UpdateNetworkPolicy][google.cloud.vmwareengine.v1.VmwareEngine.UpdateNetworkPolicy]
  1529. message UpdateNetworkPolicyRequest {
  1530. // Required. Network policy description.
  1531. NetworkPolicy network_policy = 1 [(google.api.field_behavior) = REQUIRED];
  1532. // Required. Field mask is used to specify the fields to be overwritten in the
  1533. // `NetworkPolicy` resource by the update.
  1534. // The fields specified in the `update_mask` are relative to the resource, not
  1535. // the full request. A field will be overwritten if it is in the mask. If the
  1536. // user does not provide a mask then all fields will be overwritten.
  1537. google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED];
  1538. // Optional. A request ID to identify requests. Specify a unique request ID
  1539. // so that if you must retry your request, the server will know to ignore
  1540. // the request if it has already been completed. The server guarantees that a
  1541. // request doesn't result in creation of duplicate commitments for at least 60
  1542. // minutes.
  1543. //
  1544. // For example, consider a situation where you make an initial request and the
  1545. // request times out. If you make the request again with the same request
  1546. // ID, the server can check if original operation with the same request ID
  1547. // was received, and if so, will ignore the second request. This prevents
  1548. // clients from accidentally creating duplicate commitments.
  1549. //
  1550. // The request ID must be a valid UUID with the exception that zero UUID is
  1551. // not supported (00000000-0000-0000-0000-000000000000).
  1552. string request_id = 3 [(google.api.field_behavior) = OPTIONAL];
  1553. }
  1554. // Request message for [VmwareEngine.CreateNetworkPolicy][google.cloud.vmwareengine.v1.VmwareEngine.CreateNetworkPolicy]
  1555. message CreateNetworkPolicyRequest {
  1556. // Required. The resource name of the location (region)
  1557. // to create the new network policy in.
  1558. // Resource names are schemeless URIs that follow the conventions in
  1559. // https://cloud.google.com/apis/design/resource_names.
  1560. // For example:
  1561. // `projects/my-project/locations/us-central1`
  1562. string parent = 1 [
  1563. (google.api.field_behavior) = REQUIRED,
  1564. (google.api.resource_reference) = {
  1565. child_type: "vmwareengine.googleapis.com/NetworkPolicy"
  1566. }
  1567. ];
  1568. // Required. The user-provided identifier of the network policy to be created.
  1569. // This identifier must be unique within parent
  1570. // `projects/{my-project}/locations/{us-central1}/networkPolicies` and becomes
  1571. // the final token in the name URI.
  1572. // The identifier must meet the following requirements:
  1573. //
  1574. // * Only contains 1-63 alphanumeric characters and hyphens
  1575. // * Begins with an alphabetical character
  1576. // * Ends with a non-hyphen character
  1577. // * Not formatted as a UUID
  1578. // * Complies with [RFC 1034](https://datatracker.ietf.org/doc/html/rfc1034)
  1579. // (section 3.5)
  1580. string network_policy_id = 2 [(google.api.field_behavior) = REQUIRED];
  1581. // Required. The network policy configuration to use in the request.
  1582. NetworkPolicy network_policy = 3 [(google.api.field_behavior) = REQUIRED];
  1583. // Optional. A request ID to identify requests. Specify a unique request ID
  1584. // so that if you must retry your request, the server will know to ignore
  1585. // the request if it has already been completed. The server guarantees that a
  1586. // request doesn't result in creation of duplicate commitments for at least 60
  1587. // minutes.
  1588. //
  1589. // For example, consider a situation where you make an initial request and the
  1590. // request times out. If you make the request again with the same request
  1591. // ID, the server can check if original operation with the same request ID
  1592. // was received, and if so, will ignore the second request. This prevents
  1593. // clients from accidentally creating duplicate commitments.
  1594. //
  1595. // The request ID must be a valid UUID with the exception that zero UUID is
  1596. // not supported (00000000-0000-0000-0000-000000000000).
  1597. string request_id = 4 [(google.api.field_behavior) = OPTIONAL];
  1598. }
  1599. // Request message for [VmwareEngine.DeleteNetworkPolicy][google.cloud.vmwareengine.v1.VmwareEngine.DeleteNetworkPolicy]
  1600. message DeleteNetworkPolicyRequest {
  1601. // Required. The resource name of the network policy to delete.
  1602. // Resource names are schemeless URIs that follow the conventions in
  1603. // https://cloud.google.com/apis/design/resource_names.
  1604. // For example:
  1605. // `projects/my-project/locations/us-central1/networkPolicies/my-network-policy`
  1606. string name = 1 [
  1607. (google.api.field_behavior) = REQUIRED,
  1608. (google.api.resource_reference) = {
  1609. type: "vmwareengine.googleapis.com/NetworkPolicy"
  1610. }
  1611. ];
  1612. // Optional. A request ID to identify requests. Specify a unique request ID
  1613. // so that if you must retry your request, the server will know to ignore
  1614. // the request if it has already been completed. The server guarantees that a
  1615. // request doesn't result in creation of duplicate commitments for at least 60
  1616. // minutes.
  1617. //
  1618. // For example, consider a situation where you make an initial request and the
  1619. // request times out. If you make the request again with the same request
  1620. // ID, the server can check if original operation with the same request ID
  1621. // was received, and if so, will ignore the second request. This prevents
  1622. // clients from accidentally creating duplicate commitments.
  1623. //
  1624. // The request ID must be a valid UUID with the exception that zero UUID is
  1625. // not supported (00000000-0000-0000-0000-000000000000).
  1626. string request_id = 2 [(google.api.field_behavior) = OPTIONAL];
  1627. }
  1628. // VMware Engine network resource that provides connectivity for VMware Engine
  1629. // private clouds.
  1630. message VmwareEngineNetwork {
  1631. option (google.api.resource) = {
  1632. type: "vmwareengine.googleapis.com/VmwareEngineNetwork"
  1633. pattern: "projects/{project}/locations/{location}/vmwareEngineNetworks/{vmware_engine_network}"
  1634. };
  1635. // Represents a VMware Engine VPC network that is managed by a
  1636. // VMware Engine network resource.
  1637. message VpcNetwork {
  1638. // Enum Type defines possible types of a VMware Engine network controlled
  1639. // service.
  1640. enum Type {
  1641. // The default value. This value should never be used.
  1642. TYPE_UNSPECIFIED = 0;
  1643. // VPC network that will be peered with a consumer VPC network or the
  1644. // intranet VPC of another VMware Engine network. Access a private cloud
  1645. // through Compute Engine VMs on a peered VPC network or an on-premises
  1646. // resource connected to a peered consumer VPC network.
  1647. INTRANET = 1;
  1648. // VPC network used for internet access to and from a private cloud.
  1649. INTERNET = 2;
  1650. // VPC network used for access to Google Cloud services like
  1651. // Cloud Storage.
  1652. GOOGLE_CLOUD = 3;
  1653. }
  1654. // Output only. Type of VPC network (INTRANET, INTERNET, or
  1655. // GOOGLE_CLOUD)
  1656. Type type = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
  1657. // Output only. The relative resource name of the service VPC network this
  1658. // VMware Engine network is attached to. For example:
  1659. // `projects/123123/global/networks/my-network`
  1660. string network = 2 [
  1661. (google.api.field_behavior) = OUTPUT_ONLY,
  1662. (google.api.resource_reference) = {
  1663. type: "compute.googleapis.com/Network"
  1664. }
  1665. ];
  1666. }
  1667. // Enum State defines possible states of VMware Engine network.
  1668. enum State {
  1669. // The default value. This value is used if the state is omitted.
  1670. STATE_UNSPECIFIED = 0;
  1671. // The VMware Engine network is being created.
  1672. CREATING = 1;
  1673. // The VMware Engine network is ready.
  1674. ACTIVE = 2;
  1675. // The VMware Engine network is being updated.
  1676. UPDATING = 3;
  1677. // The VMware Engine network is being deleted.
  1678. DELETING = 4;
  1679. }
  1680. // Enum Type defines possible types of VMware Engine network.
  1681. enum Type {
  1682. // The default value. This value should never be used.
  1683. TYPE_UNSPECIFIED = 0;
  1684. // Network type used by private clouds created in projects without a network
  1685. // of type `STANDARD`. This network type is no longer used for new VMware
  1686. // Engine private cloud deployments.
  1687. LEGACY = 1;
  1688. }
  1689. // Output only. The resource name of the VMware Engine network.
  1690. // Resource names are schemeless URIs that follow the conventions in
  1691. // https://cloud.google.com/apis/design/resource_names.
  1692. // For example:
  1693. // `projects/my-project/locations/global/vmwareEngineNetworks/my-network`
  1694. string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
  1695. // Output only. Creation time of this resource.
  1696. google.protobuf.Timestamp create_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
  1697. // Output only. Last update time of this resource.
  1698. google.protobuf.Timestamp update_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
  1699. // User-provided description for this VMware Engine network.
  1700. string description = 5;
  1701. // Output only. VMware Engine service VPC networks that provide connectivity
  1702. // from a private cloud to customer projects, the internet, and other Google
  1703. // Cloud services.
  1704. repeated VpcNetwork vpc_networks = 6 [(google.api.field_behavior) = OUTPUT_ONLY];
  1705. // Output only. State of the VMware Engine network.
  1706. State state = 7 [(google.api.field_behavior) = OUTPUT_ONLY];
  1707. // Required. VMware Engine network type.
  1708. Type type = 8 [(google.api.field_behavior) = REQUIRED];
  1709. // Output only. System-generated unique identifier for the resource.
  1710. string uid = 9 [(google.api.field_behavior) = OUTPUT_ONLY];
  1711. // Checksum that may be sent on update and delete requests to ensure that the
  1712. // user-provided value is up to date before the server processes a request.
  1713. // The server computes checksums based on the value of other fields in the
  1714. // request.
  1715. string etag = 10;
  1716. }
  1717. // Request message for [VmwareEngine.CreateVmwareEngineNetwork][google.cloud.vmwareengine.v1.VmwareEngine.CreateVmwareEngineNetwork]
  1718. message CreateVmwareEngineNetworkRequest {
  1719. // Required. The resource name of the location to create the new VMware Engine
  1720. // network in. A VMware Engine network of type
  1721. // `LEGACY` is a regional resource, and a VMware
  1722. // Engine network of type `STANDARD` is a global resource.
  1723. // Resource names are schemeless URIs that follow the conventions in
  1724. // https://cloud.google.com/apis/design/resource_names. For example:
  1725. // `projects/my-project/locations/global`
  1726. string parent = 1 [
  1727. (google.api.field_behavior) = REQUIRED,
  1728. (google.api.resource_reference) = {
  1729. child_type: "vmwareengine.googleapis.com/VmwareEngineNetwork"
  1730. }
  1731. ];
  1732. // Required. The user-provided identifier of the new VMware Engine network.
  1733. // This identifier must be unique among VMware Engine network resources
  1734. // within the parent and becomes the final token in the name URI. The
  1735. // identifier must meet the following requirements:
  1736. //
  1737. // * For networks of type LEGACY, adheres to the format:
  1738. // `{region-id}-default`. Replace `{region-id}` with the region where you want
  1739. // to create the VMware Engine network. For example, "us-west1-default".
  1740. // * Only contains 1-63 alphanumeric characters and hyphens
  1741. // * Begins with an alphabetical character
  1742. // * Ends with a non-hyphen character
  1743. // * Not formatted as a UUID
  1744. // * Complies with [RFC 1034](https://datatracker.ietf.org/doc/html/rfc1034)
  1745. // (section 3.5)
  1746. string vmware_engine_network_id = 2 [(google.api.field_behavior) = REQUIRED];
  1747. // Required. The initial description of the new VMware Engine network.
  1748. VmwareEngineNetwork vmware_engine_network = 3 [(google.api.field_behavior) = REQUIRED];
  1749. // Optional. A request ID to identify requests. Specify a unique request ID
  1750. // so that if you must retry your request, the server will know to ignore
  1751. // the request if it has already been completed. The server guarantees that a
  1752. // request doesn't result in creation of duplicate commitments for at least 60
  1753. // minutes.
  1754. //
  1755. // For example, consider a situation where you make an initial request and the
  1756. // request times out. If you make the request again with the same request
  1757. // ID, the server can check if original operation with the same request ID
  1758. // was received, and if so, will ignore the second request. This prevents
  1759. // clients from accidentally creating duplicate commitments.
  1760. //
  1761. // The request ID must be a valid UUID with the exception that zero UUID is
  1762. // not supported (00000000-0000-0000-0000-000000000000).
  1763. string request_id = 4 [(google.api.field_behavior) = OPTIONAL];
  1764. }
  1765. // Request message for [VmwareEngine.UpdateVmwareEngineNetwork][google.cloud.vmwareengine.v1.VmwareEngine.UpdateVmwareEngineNetwork]
  1766. message UpdateVmwareEngineNetworkRequest {
  1767. // Required. VMware Engine network description.
  1768. VmwareEngineNetwork vmware_engine_network = 1 [(google.api.field_behavior) = REQUIRED];
  1769. // Required. Field mask is used to specify the fields to be overwritten in the
  1770. // VMware Engine network resource by the update.
  1771. // The fields specified in the `update_mask` are relative to the resource, not
  1772. // the full request. A field will be overwritten if it is in the mask. If the
  1773. // user does not provide a mask then all fields will be overwritten. Only the
  1774. // following fields can be updated: `description`.
  1775. google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED];
  1776. // Optional. A request ID to identify requests. Specify a unique request ID
  1777. // so that if you must retry your request, the server will know to ignore
  1778. // the request if it has already been completed. The server guarantees that a
  1779. // request doesn't result in creation of duplicate commitments for at least 60
  1780. // minutes.
  1781. //
  1782. // For example, consider a situation where you make an initial request and the
  1783. // request times out. If you make the request again with the same request
  1784. // ID, the server can check if original operation with the same request ID
  1785. // was received, and if so, will ignore the second request. This prevents
  1786. // clients from accidentally creating duplicate commitments.
  1787. //
  1788. // The request ID must be a valid UUID with the exception that zero UUID is
  1789. // not supported (00000000-0000-0000-0000-000000000000).
  1790. string request_id = 3 [(google.api.field_behavior) = OPTIONAL];
  1791. }
  1792. // Request message for [VmwareEngine.DeleteVmwareEngineNetwork][google.cloud.vmwareengine.v1.VmwareEngine.DeleteVmwareEngineNetwork]
  1793. message DeleteVmwareEngineNetworkRequest {
  1794. // Required. The resource name of the VMware Engine network to be deleted.
  1795. // Resource names are schemeless URIs that follow the conventions in
  1796. // https://cloud.google.com/apis/design/resource_names.
  1797. // For example:
  1798. // `projects/my-project/locations/global/vmwareEngineNetworks/my-network`
  1799. string name = 1 [
  1800. (google.api.field_behavior) = REQUIRED,
  1801. (google.api.resource_reference) = {
  1802. type: "vmwareengine.googleapis.com/VmwareEngineNetwork"
  1803. }
  1804. ];
  1805. // Optional. A request ID to identify requests. Specify a unique request ID
  1806. // so that if you must retry your request, the server will know to ignore
  1807. // the request if it has already been completed. The server guarantees that a
  1808. // request doesn't result in creation of duplicate commitments for at least 60
  1809. // minutes.
  1810. //
  1811. // For example, consider a situation where you make an initial request and the
  1812. // request times out. If you make the request again with the same request
  1813. // ID, the server can check if original operation with the same request ID
  1814. // was received, and if so, will ignore the second request. This prevents
  1815. // clients from accidentally creating duplicate commitments.
  1816. //
  1817. // The request ID must be a valid UUID with the exception that zero UUID is
  1818. // not supported (00000000-0000-0000-0000-000000000000).
  1819. string request_id = 2 [(google.api.field_behavior) = OPTIONAL];
  1820. // Optional. Checksum used to ensure that the user-provided value is up to date before
  1821. // the server processes the request. The server compares provided checksum
  1822. // with the current checksum of the resource. If the user-provided value is
  1823. // out of date, this request returns an `ABORTED` error.
  1824. string etag = 3 [(google.api.field_behavior) = OPTIONAL];
  1825. }
  1826. // Request message for [VmwareEngine.GetVmwareEngineNetwork][google.cloud.vmwareengine.v1.VmwareEngine.GetVmwareEngineNetwork]
  1827. message GetVmwareEngineNetworkRequest {
  1828. // Required. The resource name of the VMware Engine network to retrieve.
  1829. // Resource names are schemeless URIs that follow the conventions in
  1830. // https://cloud.google.com/apis/design/resource_names.
  1831. // For example:
  1832. // `projects/my-project/locations/global/vmwareEngineNetworks/my-network`
  1833. string name = 1 [
  1834. (google.api.field_behavior) = REQUIRED,
  1835. (google.api.resource_reference) = {
  1836. type: "vmwareengine.googleapis.com/VmwareEngineNetwork"
  1837. }
  1838. ];
  1839. }
  1840. // Request message for [VmwareEngine.ListVmwareEngineNetworks][google.cloud.vmwareengine.v1.VmwareEngine.ListVmwareEngineNetworks]
  1841. message ListVmwareEngineNetworksRequest {
  1842. // Required. The resource name of the location to query for
  1843. // VMware Engine networks. Resource names are schemeless URIs that follow the
  1844. // conventions in https://cloud.google.com/apis/design/resource_names. For
  1845. // example: `projects/my-project/locations/global`
  1846. string parent = 1 [
  1847. (google.api.field_behavior) = REQUIRED,
  1848. (google.api.resource_reference) = {
  1849. type: "locations.googleapis.com/Location"
  1850. }
  1851. ];
  1852. // The maximum number of results to return in one page.
  1853. // The maximum value is coerced to 1000.
  1854. // The default value of this field is 500.
  1855. int32 page_size = 2;
  1856. // A page token, received from a previous `ListVmwareEngineNetworks` call.
  1857. // Provide this to retrieve the subsequent page.
  1858. //
  1859. // When paginating, all other parameters provided to
  1860. // `ListVmwareEngineNetworks` must match the call that provided the page
  1861. // token.
  1862. string page_token = 3;
  1863. // A filter expression that matches resources returned in the response.
  1864. // The expression must specify the field name, a comparison
  1865. // operator, and the value that you want to use for filtering. The value
  1866. // must be a string, a number, or a boolean. The comparison operator
  1867. // must be `=`, `!=`, `>`, or `<`.
  1868. //
  1869. // For example, if you are filtering a list of network peerings, you can
  1870. // exclude the ones named `example-network` by specifying
  1871. // `name != "example-network"`.
  1872. //
  1873. // To filter on multiple expressions, provide each separate expression within
  1874. // parentheses. For example:
  1875. // ```
  1876. // (name = "example-network")
  1877. // (createTime > "2021-04-12T08:15:10.40Z")
  1878. // ```
  1879. //
  1880. // By default, each expression is an `AND` expression. However, you
  1881. // can include `AND` and `OR` expressions explicitly.
  1882. // For example:
  1883. // ```
  1884. // (name = "example-network-1") AND
  1885. // (createTime > "2021-04-12T08:15:10.40Z") OR
  1886. // (name = "example-network-2")
  1887. // ```
  1888. string filter = 4;
  1889. // Sorts list results by a certain order. By default, returned results
  1890. // are ordered by `name` in ascending order.
  1891. // You can also sort results in descending order based on the `name` value
  1892. // using `orderBy="name desc"`.
  1893. // Currently, only ordering by `name` is supported.
  1894. string order_by = 5;
  1895. }
  1896. // Response message for [VmwareEngine.ListVmwareEngineNetworks][google.cloud.vmwareengine.v1.VmwareEngine.ListVmwareEngineNetworks]
  1897. message ListVmwareEngineNetworksResponse {
  1898. // A list of VMware Engine networks.
  1899. repeated VmwareEngineNetwork vmware_engine_networks = 1;
  1900. // A token, which can be sent as `page_token` to retrieve the next page.
  1901. // If this field is omitted, there are no subsequent pages.
  1902. string next_page_token = 2;
  1903. // Unreachable resources.
  1904. repeated string unreachable = 3;
  1905. }