cloud_filestore_service.proto 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718
  1. // Copyright 2021 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.filestore.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/cloud/common/operation_metadata.proto";
  21. import "google/longrunning/operations.proto";
  22. import "google/protobuf/field_mask.proto";
  23. import "google/protobuf/timestamp.proto";
  24. import "google/protobuf/wrappers.proto";
  25. option csharp_namespace = "Google.Cloud.Filestore.V1";
  26. option go_package = "google.golang.org/genproto/googleapis/cloud/filestore/v1;filestore";
  27. option java_multiple_files = true;
  28. option java_outer_classname = "CloudFilestoreServiceProto";
  29. option java_package = "com.google.cloud.filestore.v1";
  30. option php_namespace = "Google\\Cloud\\Filestore\\V1";
  31. // Configures and manages Cloud Filestore resources.
  32. //
  33. // Cloud Filestore Manager v1.
  34. //
  35. // The `file.googleapis.com` service implements the Cloud Filestore API and
  36. // defines the following resource model for managing instances:
  37. // * The service works with a collection of cloud projects, named: `/projects/*`
  38. // * Each project has a collection of available locations, named: `/locations/*`
  39. // * Each location has a collection of instances and backups, named:
  40. // `/instances/*` and `/backups/*` respectively.
  41. // * As such, Cloud Filestore instances are resources of the form:
  42. // `/projects/{project_number}/locations/{location_id}/instances/{instance_id}`
  43. // and backups are resources of the form:
  44. // `/projects/{project_number}/locations/{location_id}/backup/{backup_id}`
  45. //
  46. // Note that location_id must be a GCP `zone` for instances and but to a GCP
  47. // `region` for backups; for example:
  48. // * `projects/12345/locations/us-central1-c/instances/my-filestore`
  49. // * `projects/12345/locations/us-central1/backups/my-backup`
  50. service CloudFilestoreManager {
  51. option (google.api.default_host) = "file.googleapis.com";
  52. option (google.api.oauth_scopes) =
  53. "https://www.googleapis.com/auth/cloud-platform";
  54. // Lists all instances in a project for either a specified location
  55. // or for all locations.
  56. rpc ListInstances(ListInstancesRequest) returns (ListInstancesResponse) {
  57. option (google.api.http) = {
  58. get: "/v1/{parent=projects/*/locations/*}/instances"
  59. };
  60. option (google.api.method_signature) = "parent";
  61. }
  62. // Gets the details of a specific instance.
  63. rpc GetInstance(GetInstanceRequest) returns (Instance) {
  64. option (google.api.http) = {
  65. get: "/v1/{name=projects/*/locations/*/instances/*}"
  66. };
  67. option (google.api.method_signature) = "name";
  68. }
  69. // Creates an instance.
  70. // When creating from a backup, the capacity of the new instance needs to be
  71. // equal to or larger than the capacity of the backup (and also equal to or
  72. // larger than the minimum capacity of the tier).
  73. rpc CreateInstance(CreateInstanceRequest)
  74. returns (google.longrunning.Operation) {
  75. option (google.api.http) = {
  76. post: "/v1/{parent=projects/*/locations/*}/instances"
  77. body: "instance"
  78. };
  79. option (google.api.method_signature) = "parent,instance,instance_id";
  80. option (google.longrunning.operation_info) = {
  81. response_type: "Instance"
  82. metadata_type: "google.cloud.common.OperationMetadata"
  83. };
  84. }
  85. // Updates the settings of a specific instance.
  86. rpc UpdateInstance(UpdateInstanceRequest)
  87. returns (google.longrunning.Operation) {
  88. option (google.api.http) = {
  89. patch: "/v1/{instance.name=projects/*/locations/*/instances/*}"
  90. body: "instance"
  91. };
  92. option (google.api.method_signature) = "instance,update_mask";
  93. option (google.longrunning.operation_info) = {
  94. response_type: "Instance"
  95. metadata_type: "google.cloud.common.OperationMetadata"
  96. };
  97. }
  98. // Restores an existing instance's file share from a backup.
  99. //
  100. // The capacity of the instance needs to be equal to or larger than the
  101. // capacity of the backup (and also equal to or larger than the minimum
  102. // capacity of the tier).
  103. rpc RestoreInstance(RestoreInstanceRequest)
  104. returns (google.longrunning.Operation) {
  105. option (google.api.http) = {
  106. post: "/v1/{name=projects/*/locations/*/instances/*}:restore"
  107. body: "*"
  108. };
  109. option (google.longrunning.operation_info) = {
  110. response_type: "Instance"
  111. metadata_type: "google.cloud.common.OperationMetadata"
  112. };
  113. }
  114. // Deletes an instance.
  115. rpc DeleteInstance(DeleteInstanceRequest)
  116. returns (google.longrunning.Operation) {
  117. option (google.api.http) = {
  118. delete: "/v1/{name=projects/*/locations/*/instances/*}"
  119. };
  120. option (google.api.method_signature) = "name";
  121. option (google.longrunning.operation_info) = {
  122. response_type: "google.protobuf.Empty"
  123. metadata_type: "google.cloud.common.OperationMetadata"
  124. };
  125. }
  126. // Lists all backups in a project for either a specified location or for all
  127. // locations.
  128. rpc ListBackups(ListBackupsRequest) returns (ListBackupsResponse) {
  129. option (google.api.http) = {
  130. get: "/v1/{parent=projects/*/locations/*}/backups"
  131. };
  132. option (google.api.method_signature) = "parent";
  133. }
  134. // Gets the details of a specific backup.
  135. rpc GetBackup(GetBackupRequest) returns (Backup) {
  136. option (google.api.http) = {
  137. get: "/v1/{name=projects/*/locations/*/backups/*}"
  138. };
  139. option (google.api.method_signature) = "name";
  140. }
  141. // Creates a backup.
  142. rpc CreateBackup(CreateBackupRequest) returns (google.longrunning.Operation) {
  143. option (google.api.http) = {
  144. post: "/v1/{parent=projects/*/locations/*}/backups"
  145. body: "backup"
  146. };
  147. option (google.api.method_signature) = "parent,backup,backup_id";
  148. option (google.longrunning.operation_info) = {
  149. response_type: "Backup"
  150. metadata_type: "google.cloud.common.OperationMetadata"
  151. };
  152. }
  153. // Deletes a backup.
  154. rpc DeleteBackup(DeleteBackupRequest) returns (google.longrunning.Operation) {
  155. option (google.api.http) = {
  156. delete: "/v1/{name=projects/*/locations/*/backups/*}"
  157. };
  158. option (google.api.method_signature) = "name";
  159. option (google.longrunning.operation_info) = {
  160. response_type: "google.protobuf.Empty"
  161. metadata_type: "google.cloud.common.OperationMetadata"
  162. };
  163. }
  164. // Updates the settings of a specific backup.
  165. rpc UpdateBackup(UpdateBackupRequest) returns (google.longrunning.Operation) {
  166. option (google.api.http) = {
  167. patch: "/v1/{backup.name=projects/*/locations/*/backups/*}"
  168. body: "backup"
  169. };
  170. option (google.api.method_signature) = "backup,update_mask";
  171. option (google.longrunning.operation_info) = {
  172. response_type: "Backup"
  173. metadata_type: "google.cloud.common.OperationMetadata"
  174. };
  175. }
  176. }
  177. // Network configuration for the instance.
  178. message NetworkConfig {
  179. // Internet protocol versions supported by Cloud Filestore.
  180. enum AddressMode {
  181. // Internet protocol not set.
  182. ADDRESS_MODE_UNSPECIFIED = 0;
  183. // Use the IPv4 internet protocol.
  184. MODE_IPV4 = 1;
  185. }
  186. // The name of the Google Compute Engine
  187. // [VPC network](https://cloud.google.com/vpc/docs/vpc) to which the
  188. // instance is connected.
  189. string network = 1;
  190. // Internet protocol versions for which the instance has IP addresses
  191. // assigned. For this version, only MODE_IPV4 is supported.
  192. repeated AddressMode modes = 3;
  193. // A /29 CIDR block in one of the
  194. // [internal IP address
  195. // ranges](https://www.arin.net/reference/research/statistics/address_filters/)
  196. // that identifies the range of IP addresses reserved for this instance. For
  197. // example, 10.0.0.0/29 or 192.168.0.0/29. The range you specify can't overlap
  198. // with either existing subnets or assigned IP address ranges for other Cloud
  199. // Filestore instances in the selected VPC network.
  200. string reserved_ip_range = 4;
  201. // Output only. IPv4 addresses in the format
  202. // IPv4 addresses in the format `{octet1}.{octet2}.{octet3}.{octet4}` or
  203. // IPv6 addresses in the format
  204. // `{block1}:{block2}:{block3}:{block4}:{block5}:{block6}:{block7}:{block8}`.
  205. repeated string ip_addresses = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
  206. }
  207. // File share configuration for the instance.
  208. message FileShareConfig {
  209. // The name of the file share (must be 16 characters or less).
  210. string name = 1;
  211. // File share capacity in gigabytes (GB).
  212. // Cloud Filestore defines 1 GB as 1024^3 bytes.
  213. int64 capacity_gb = 2;
  214. // The source that this file share has been restored from. Empty if the file
  215. // share is created from scratch.
  216. oneof source {
  217. // The resource name of the backup, in the format
  218. // `projects/{project_number}/locations/{location_id}/backups/{backup_id}`,
  219. // that this file share has been restored from.
  220. string source_backup = 8 [
  221. (google.api.resource_reference) = { type: "file.googleapis.com/Backup" }
  222. ];
  223. }
  224. // Nfs Export Options.
  225. // There is a limit of 10 export options per file share.
  226. repeated NfsExportOptions nfs_export_options = 7;
  227. }
  228. // NFS export options specifications.
  229. message NfsExportOptions {
  230. // The access mode.
  231. enum AccessMode {
  232. // AccessMode not set.
  233. ACCESS_MODE_UNSPECIFIED = 0;
  234. // The client can only read the file share.
  235. READ_ONLY = 1;
  236. // The client can read and write the file share (default).
  237. READ_WRITE = 2;
  238. }
  239. // The squash mode.
  240. enum SquashMode {
  241. // SquashMode not set.
  242. SQUASH_MODE_UNSPECIFIED = 0;
  243. // The Root user has root access to the file share (default).
  244. NO_ROOT_SQUASH = 1;
  245. // The Root user has squashed access to the anonymous uid/gid.
  246. ROOT_SQUASH = 2;
  247. }
  248. // List of either an IPv4 addresses in the format
  249. // `{octet1}.{octet2}.{octet3}.{octet4}` or CIDR ranges in the format
  250. // `{octet1}.{octet2}.{octet3}.{octet4}/{mask size}` which may mount the
  251. // file share.
  252. // Overlapping IP ranges are not allowed, both within and across
  253. // NfsExportOptions. An error will be returned.
  254. // The limit is 64 IP ranges/addresses for each FileShareConfig among all
  255. // NfsExportOptions.
  256. repeated string ip_ranges = 1;
  257. // Either READ_ONLY, for allowing only read requests on the exported
  258. // directory, or READ_WRITE, for allowing both read and write requests.
  259. // The default is READ_WRITE.
  260. AccessMode access_mode = 2;
  261. // Either NO_ROOT_SQUASH, for allowing root access on the exported directory,
  262. // or ROOT_SQUASH, for not allowing root access. The default is
  263. // NO_ROOT_SQUASH.
  264. SquashMode squash_mode = 3;
  265. // An integer representing the anonymous user id with a default value of
  266. // 65534.
  267. // Anon_uid may only be set with squash_mode of ROOT_SQUASH. An error will be
  268. // returned if this field is specified for other squash_mode settings.
  269. int64 anon_uid = 4;
  270. // An integer representing the anonymous group id with a default value of
  271. // 65534.
  272. // Anon_gid may only be set with squash_mode of ROOT_SQUASH. An error will be
  273. // returned if this field is specified for other squash_mode settings.
  274. int64 anon_gid = 5;
  275. }
  276. // A Cloud Filestore instance.
  277. message Instance {
  278. option (google.api.resource) = {
  279. type: "file.googleapis.com/Instance"
  280. pattern: "projects/{project}/locations/{location}/instances/{instance}"
  281. };
  282. // The instance state.
  283. enum State {
  284. // State not set.
  285. STATE_UNSPECIFIED = 0;
  286. // The instance is being created.
  287. CREATING = 1;
  288. // The instance is available for use.
  289. READY = 2;
  290. // Work is being done on the instance. You can get further details from the
  291. // `statusMessage` field of the `Instance` resource.
  292. REPAIRING = 3;
  293. // The instance is shutting down.
  294. DELETING = 4;
  295. // The instance is experiencing an issue and might be unusable. You can get
  296. // further details from the `statusMessage` field of the `Instance`
  297. // resource.
  298. ERROR = 6;
  299. // The instance is restoring a backup to an existing file share and may be
  300. // unusable during this time.
  301. RESTORING = 7;
  302. }
  303. // Available service tiers.
  304. enum Tier {
  305. // Not set.
  306. TIER_UNSPECIFIED = 0;
  307. // STANDARD tier.
  308. STANDARD = 1;
  309. // PREMIUM tier.
  310. PREMIUM = 2;
  311. // BASIC instances offer a maximum capacity of 63.9 TB.
  312. // BASIC_HDD is an alias for STANDARD Tier, offering economical
  313. // performance backed by HDD.
  314. BASIC_HDD = 3;
  315. // BASIC instances offer a maximum capacity of 63.9 TB.
  316. // BASIC_SSD is an alias for PREMIUM Tier, and offers improved
  317. // performance backed by SSD.
  318. BASIC_SSD = 4;
  319. // HIGH_SCALE instances offer expanded capacity and performance scaling
  320. // capabilities.
  321. HIGH_SCALE_SSD = 5;
  322. }
  323. // Output only. The resource name of the instance, in the format
  324. // `projects/{project}/locations/{location}/instances/{instance}`.
  325. string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
  326. // The description of the instance (2048 characters or less).
  327. string description = 2;
  328. // Output only. The instance state.
  329. State state = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
  330. // Output only. Additional information about the instance state, if available.
  331. string status_message = 6 [(google.api.field_behavior) = OUTPUT_ONLY];
  332. // Output only. The time when the instance was created.
  333. google.protobuf.Timestamp create_time = 7
  334. [(google.api.field_behavior) = OUTPUT_ONLY];
  335. // The service tier of the instance.
  336. Tier tier = 8;
  337. // Resource labels to represent user provided metadata.
  338. map<string, string> labels = 9;
  339. // File system shares on the instance.
  340. // For this version, only a single file share is supported.
  341. repeated FileShareConfig file_shares = 10;
  342. // VPC networks to which the instance is connected.
  343. // For this version, only a single network is supported.
  344. repeated NetworkConfig networks = 11;
  345. // Server-specified ETag for the instance resource to prevent simultaneous
  346. // updates from overwriting each other.
  347. string etag = 12;
  348. // Output only. Reserved for future use.
  349. google.protobuf.BoolValue satisfies_pzs = 13
  350. [(google.api.field_behavior) = OUTPUT_ONLY];
  351. }
  352. // CreateInstanceRequest creates an instance.
  353. message CreateInstanceRequest {
  354. // Required. The instance's project and location, in the format
  355. // `projects/{project_id}/locations/{location}`. In Cloud Filestore,
  356. // locations map to GCP zones, for example **us-west1-b**.
  357. string parent = 1 [
  358. (google.api.field_behavior) = REQUIRED,
  359. (google.api.resource_reference) = {
  360. type: "locations.googleapis.com/Location"
  361. }
  362. ];
  363. // Required. The name of the instance to create.
  364. // The name must be unique for the specified project and location.
  365. string instance_id = 2 [(google.api.field_behavior) = REQUIRED];
  366. // Required. An [instance resource][google.cloud.filestore.v1.Instance]
  367. Instance instance = 3 [(google.api.field_behavior) = REQUIRED];
  368. }
  369. // GetInstanceRequest gets the state of an instance.
  370. message GetInstanceRequest {
  371. // Required. The instance resource name, in the format
  372. // `projects/{project_id}/locations/{location}/instances/{instance_id}`.
  373. string name = 1 [
  374. (google.api.field_behavior) = REQUIRED,
  375. (google.api.resource_reference) = { type: "file.googleapis.com/Instance" }
  376. ];
  377. }
  378. // UpdateInstanceRequest updates the settings of an instance.
  379. message UpdateInstanceRequest {
  380. // Mask of fields to update. At least one path must be supplied in this
  381. // field. The elements of the repeated paths field may only include these
  382. // fields:
  383. //
  384. // * "description"
  385. // * "file_shares"
  386. // * "labels"
  387. google.protobuf.FieldMask update_mask = 1;
  388. // Only fields specified in update_mask are updated.
  389. Instance instance = 2;
  390. }
  391. // RestoreInstanceRequest restores an existing instances's file share from a
  392. // backup.
  393. message RestoreInstanceRequest {
  394. // Required. The resource name of the instance, in the format
  395. // `projects/{project_number}/locations/{location_id}/instances/{instance_id}`.
  396. string name = 1 [
  397. (google.api.field_behavior) = REQUIRED,
  398. (google.api.resource_reference) = { type: "file.googleapis.com/Instance" }
  399. ];
  400. // Required. Name of the file share in the Cloud Filestore instance that the
  401. // backup is being restored to.
  402. string file_share = 2 [(google.api.field_behavior) = REQUIRED];
  403. oneof source {
  404. // The resource name of the backup, in the format
  405. // `projects/{project_number}/locations/{location_id}/backups/{backup_id}`.
  406. string source_backup = 3 [
  407. (google.api.resource_reference) = { type: "file.googleapis.com/Backup" }
  408. ];
  409. }
  410. }
  411. // DeleteInstanceRequest deletes an instance.
  412. message DeleteInstanceRequest {
  413. // Required. The instance resource name, in the format
  414. // `projects/{project_id}/locations/{location}/instances/{instance_id}`
  415. string name = 1 [
  416. (google.api.field_behavior) = REQUIRED,
  417. (google.api.resource_reference) = { type: "file.googleapis.com/Instance" }
  418. ];
  419. }
  420. // ListInstancesRequest lists instances.
  421. message ListInstancesRequest {
  422. // Required. The project and location for which to retrieve instance
  423. // information, in the format `projects/{project_id}/locations/{location}`. In
  424. // Cloud Filestore, locations map to GCP zones, for example **us-west1-b**. To
  425. // retrieve instance information for all locations, use "-" for the
  426. // `{location}` value.
  427. string parent = 1 [
  428. (google.api.field_behavior) = REQUIRED,
  429. (google.api.resource_reference) = {
  430. type: "locations.googleapis.com/Location"
  431. }
  432. ];
  433. // The maximum number of items to return.
  434. int32 page_size = 2;
  435. // The next_page_token value to use if there are additional
  436. // results to retrieve for this list request.
  437. string page_token = 3;
  438. // Sort results. Supported values are "name", "name desc" or "" (unsorted).
  439. string order_by = 4;
  440. // List filter.
  441. string filter = 5;
  442. }
  443. // ListInstancesResponse is the result of ListInstancesRequest.
  444. message ListInstancesResponse {
  445. // A list of instances in the project for the specified location.
  446. //
  447. // If the `{location}` value in the request is "-", the response contains a
  448. // list of instances from all locations. If any location is unreachable, the
  449. // response will only return instances in reachable locations and the
  450. // "unreachable" field will be populated with a list of unreachable locations.
  451. repeated Instance instances = 1;
  452. // The token you can use to retrieve the next page of results. Not returned
  453. // if there are no more results in the list.
  454. string next_page_token = 2;
  455. // Locations that could not be reached.
  456. repeated string unreachable = 3;
  457. }
  458. // A Cloud Filestore backup.
  459. message Backup {
  460. option (google.api.resource) = {
  461. type: "file.googleapis.com/Backup"
  462. pattern: "projects/{project}/locations/{location}/backups/{backup}"
  463. };
  464. // The backup state.
  465. enum State {
  466. // State not set.
  467. STATE_UNSPECIFIED = 0;
  468. // Backup is being created.
  469. CREATING = 1;
  470. // Backup has been taken and the operation is being finalized. At this
  471. // point, changes to the file share will not be reflected in the backup.
  472. FINALIZING = 2;
  473. // Backup is available for use.
  474. READY = 3;
  475. // Backup is being deleted.
  476. DELETING = 4;
  477. }
  478. // Output only. The resource name of the backup, in the format
  479. // `projects/{project_number}/locations/{location_id}/backups/{backup_id}`.
  480. string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
  481. // A description of the backup with 2048 characters or less.
  482. // Requests with longer descriptions will be rejected.
  483. string description = 2;
  484. // Output only. The backup state.
  485. State state = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
  486. // Output only. The time when the backup was created.
  487. google.protobuf.Timestamp create_time = 4
  488. [(google.api.field_behavior) = OUTPUT_ONLY];
  489. // Resource labels to represent user provided metadata.
  490. map<string, string> labels = 5;
  491. // Output only. Capacity of the source file share when the backup was created.
  492. int64 capacity_gb = 6 [(google.api.field_behavior) = OUTPUT_ONLY];
  493. // Output only. The size of the storage used by the backup. As backups share
  494. // storage, this number is expected to change with backup creation/deletion.
  495. int64 storage_bytes = 7 [(google.api.field_behavior) = OUTPUT_ONLY];
  496. // The resource name of the source Cloud Filestore instance, in the format
  497. // `projects/{project_number}/locations/{location_id}/instances/{instance_id}`,
  498. // used to create this backup.
  499. string source_instance = 8 [
  500. (google.api.resource_reference) = { type: "file.googleapis.com/Instance" }
  501. ];
  502. // Name of the file share in the source Cloud Filestore instance that the
  503. // backup is created from.
  504. string source_file_share = 9;
  505. // Output only. The service tier of the source Cloud Filestore instance that
  506. // this backup is created from.
  507. Instance.Tier source_instance_tier = 10
  508. [(google.api.field_behavior) = OUTPUT_ONLY];
  509. // Output only. Amount of bytes that will be downloaded if the backup is
  510. // restored. This may be different than storage bytes, since sequential
  511. // backups of the same disk will share storage.
  512. int64 download_bytes = 11 [(google.api.field_behavior) = OUTPUT_ONLY];
  513. // Output only. Reserved for future use.
  514. google.protobuf.BoolValue satisfies_pzs = 12
  515. [(google.api.field_behavior) = OUTPUT_ONLY];
  516. }
  517. // CreateBackupRequest creates a backup.
  518. message CreateBackupRequest {
  519. // Required. The backup's project and location, in the format
  520. // `projects/{project_number}/locations/{location}`. In Cloud Filestore,
  521. // backup locations map to GCP regions, for example **us-west1**.
  522. string parent = 1 [
  523. (google.api.field_behavior) = REQUIRED,
  524. (google.api.resource_reference) = {
  525. type: "locations.googleapis.com/Location"
  526. }
  527. ];
  528. // Required. A [backup resource][google.cloud.filestore.v1.Backup]
  529. Backup backup = 2 [(google.api.field_behavior) = REQUIRED];
  530. // Required. The ID to use for the backup.
  531. // The ID must be unique within the specified project and location.
  532. //
  533. // This value must start with a lowercase letter followed by up to 62
  534. // lowercase letters, numbers, or hyphens, and cannot end with a hyphen.
  535. // Values that do not match this pattern will trigger an INVALID_ARGUMENT
  536. // error.
  537. string backup_id = 3 [(google.api.field_behavior) = REQUIRED];
  538. }
  539. // DeleteBackupRequest deletes a backup.
  540. message DeleteBackupRequest {
  541. // Required. The backup resource name, in the format
  542. // `projects/{project_number}/locations/{location}/backups/{backup_id}`
  543. string name = 1 [
  544. (google.api.field_behavior) = REQUIRED,
  545. (google.api.resource_reference) = { type: "file.googleapis.com/Backup" }
  546. ];
  547. }
  548. // UpdateBackupRequest updates description and/or labels for a backup.
  549. message UpdateBackupRequest {
  550. // Required. A [backup resource][google.cloud.filestore.v1.Backup]
  551. Backup backup = 1 [(google.api.field_behavior) = REQUIRED];
  552. // Required. Mask of fields to update. At least one path must be supplied in
  553. // this field.
  554. google.protobuf.FieldMask update_mask = 2
  555. [(google.api.field_behavior) = REQUIRED];
  556. }
  557. // GetBackupRequest gets the state of a backup.
  558. message GetBackupRequest {
  559. // Required. The backup resource name, in the format
  560. // `projects/{project_number}/locations/{location}/backups/{backup_id}`.
  561. string name = 1 [
  562. (google.api.field_behavior) = REQUIRED,
  563. (google.api.resource_reference) = { type: "file.googleapis.com/Backup" }
  564. ];
  565. }
  566. // ListBackupsRequest lists backups.
  567. message ListBackupsRequest {
  568. // Required. The project and location for which to retrieve backup
  569. // information, in the format
  570. // `projects/{project_number}/locations/{location}`. In Cloud Filestore,
  571. // backup locations map to GCP regions, for example **us-west1**. To retrieve
  572. // backup information for all locations, use "-" for the
  573. // `{location}` value.
  574. string parent = 1 [
  575. (google.api.field_behavior) = REQUIRED,
  576. (google.api.resource_reference) = {
  577. type: "locations.googleapis.com/Location"
  578. }
  579. ];
  580. // The maximum number of items to return.
  581. int32 page_size = 2;
  582. // The next_page_token value to use if there are additional
  583. // results to retrieve for this list request.
  584. string page_token = 3;
  585. // Sort results. Supported values are "name", "name desc" or "" (unsorted).
  586. string order_by = 4;
  587. // List filter.
  588. string filter = 5;
  589. }
  590. // ListBackupsResponse is the result of ListBackupsRequest.
  591. message ListBackupsResponse {
  592. // A list of backups in the project for the specified location.
  593. //
  594. // If the `{location}` value in the request is "-", the response contains a
  595. // list of backups from all locations. If any location is unreachable, the
  596. // response will only return backups in reachable locations and the
  597. // "unreachable" field will be populated with a list of unreachable
  598. // locations.
  599. repeated Backup backups = 1;
  600. // The token you can use to retrieve the next page of results. Not returned
  601. // if there are no more results in the list.
  602. string next_page_token = 2;
  603. // Locations that could not be reached.
  604. repeated string unreachable = 3;
  605. }