cloud_filestore_service.proto 43 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242
  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.filestore.v1beta1;
  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.V1Beta1";
  26. option go_package = "google.golang.org/genproto/googleapis/cloud/filestore/v1beta1;filestore";
  27. option java_multiple_files = true;
  28. option java_outer_classname = "CloudFilestoreServiceProto";
  29. option java_package = "com.google.cloud.filestore.v1beta1";
  30. option php_namespace = "Google\\Cloud\\Filestore\\V1beta1";
  31. // Configures and manages Filestore resources.
  32. //
  33. // Filestore Manager v1beta1.
  34. //
  35. // The `file.googleapis.com` service implements the Filestore API and
  36. // defines the following model for managing resources:
  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, Filestore instances are resources of the form:
  42. // `/projects/{project_id}/locations/{location_id}/instances/{instance_id}`
  43. // backups are resources of the form:
  44. // `/projects/{project_id}/locations/{location_id}/backup/{backup_id}`
  45. //
  46. // Note that location_id can represent a GCP `zone` or `region` depending on the
  47. // resource.
  48. // for example:
  49. // A zonal Filestore instance:
  50. // * `projects/my-project/locations/us-central1-c/instances/my-basic-tier-filer`
  51. // A regional Filestore instance:
  52. // * `projects/my-project/locations/us-central1/instances/my-enterprise-filer`
  53. service CloudFilestoreManager {
  54. option (google.api.default_host) = "file.googleapis.com";
  55. option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform";
  56. // Lists all instances in a project for either a specified location
  57. // or for all locations.
  58. rpc ListInstances(ListInstancesRequest) returns (ListInstancesResponse) {
  59. option (google.api.http) = {
  60. get: "/v1beta1/{parent=projects/*/locations/*}/instances"
  61. };
  62. option (google.api.method_signature) = "parent";
  63. }
  64. // Gets the details of a specific instance.
  65. rpc GetInstance(GetInstanceRequest) returns (Instance) {
  66. option (google.api.http) = {
  67. get: "/v1beta1/{name=projects/*/locations/*/instances/*}"
  68. };
  69. option (google.api.method_signature) = "name";
  70. }
  71. // Creates an instance.
  72. // When creating from a backup, the capacity of the new instance needs to be
  73. // equal to or larger than the capacity of the backup (and also equal to or
  74. // larger than the minimum capacity of the tier).
  75. rpc CreateInstance(CreateInstanceRequest) returns (google.longrunning.Operation) {
  76. option (google.api.http) = {
  77. post: "/v1beta1/{parent=projects/*/locations/*}/instances"
  78. body: "instance"
  79. };
  80. option (google.api.method_signature) = "parent,instance,instance_id";
  81. option (google.longrunning.operation_info) = {
  82. response_type: "Instance"
  83. metadata_type: "google.cloud.common.OperationMetadata"
  84. };
  85. }
  86. // Updates the settings of a specific instance.
  87. rpc UpdateInstance(UpdateInstanceRequest) returns (google.longrunning.Operation) {
  88. option (google.api.http) = {
  89. patch: "/v1beta1/{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) returns (google.longrunning.Operation) {
  104. option (google.api.http) = {
  105. post: "/v1beta1/{name=projects/*/locations/*/instances/*}:restore"
  106. body: "*"
  107. };
  108. option (google.longrunning.operation_info) = {
  109. response_type: "Instance"
  110. metadata_type: "google.cloud.common.OperationMetadata"
  111. };
  112. }
  113. // Revert an existing instance's file system to a specified snapshot.
  114. rpc RevertInstance(RevertInstanceRequest) returns (google.longrunning.Operation) {
  115. option (google.api.http) = {
  116. post: "/v1beta1/{name=projects/*/locations/*/instances/*}:revert"
  117. body: "*"
  118. };
  119. option (google.longrunning.operation_info) = {
  120. response_type: "Instance"
  121. metadata_type: "google.cloud.common.OperationMetadata"
  122. };
  123. }
  124. // Deletes an instance.
  125. rpc DeleteInstance(DeleteInstanceRequest) returns (google.longrunning.Operation) {
  126. option (google.api.http) = {
  127. delete: "/v1beta1/{name=projects/*/locations/*/instances/*}"
  128. };
  129. option (google.api.method_signature) = "name";
  130. option (google.longrunning.operation_info) = {
  131. response_type: "google.protobuf.Empty"
  132. metadata_type: "google.cloud.common.OperationMetadata"
  133. };
  134. }
  135. // Lists all snapshots in a project for either a specified location
  136. // or for all locations.
  137. rpc ListSnapshots(ListSnapshotsRequest) returns (ListSnapshotsResponse) {
  138. option (google.api.http) = {
  139. get: "/v1beta1/{parent=projects/*/locations/*/instances/*}/snapshots"
  140. };
  141. option (google.api.method_signature) = "parent";
  142. }
  143. // Gets the details of a specific snapshot.
  144. rpc GetSnapshot(GetSnapshotRequest) returns (Snapshot) {
  145. option (google.api.http) = {
  146. get: "/v1beta1/{name=projects/*/locations/*/instances/*/snapshots/*}"
  147. };
  148. option (google.api.method_signature) = "name";
  149. }
  150. // Creates a snapshot.
  151. rpc CreateSnapshot(CreateSnapshotRequest) returns (google.longrunning.Operation) {
  152. option (google.api.http) = {
  153. post: "/v1beta1/{parent=projects/*/locations/*/instances/*}/snapshots"
  154. body: "snapshot"
  155. };
  156. option (google.api.method_signature) = "parent,snapshot,snapshot_id";
  157. option (google.longrunning.operation_info) = {
  158. response_type: "Snapshot"
  159. metadata_type: "google.cloud.common.OperationMetadata"
  160. };
  161. }
  162. // Deletes a snapshot.
  163. rpc DeleteSnapshot(DeleteSnapshotRequest) returns (google.longrunning.Operation) {
  164. option (google.api.http) = {
  165. delete: "/v1beta1/{name=projects/*/locations/*/instances/*/snapshots/*}"
  166. };
  167. option (google.api.method_signature) = "name";
  168. option (google.longrunning.operation_info) = {
  169. response_type: "google.protobuf.Empty"
  170. metadata_type: "google.cloud.common.OperationMetadata"
  171. };
  172. }
  173. // Updates the settings of a specific snapshot.
  174. rpc UpdateSnapshot(UpdateSnapshotRequest) returns (google.longrunning.Operation) {
  175. option (google.api.http) = {
  176. patch: "/v1beta1/{snapshot.name=projects/*/locations/*/instances/*/snapshots/*}"
  177. body: "snapshot"
  178. };
  179. option (google.api.method_signature) = "snapshot,update_mask";
  180. option (google.longrunning.operation_info) = {
  181. response_type: "Snapshot"
  182. metadata_type: "google.cloud.common.OperationMetadata"
  183. };
  184. }
  185. // Lists all backups in a project for either a specified location or for all
  186. // locations.
  187. rpc ListBackups(ListBackupsRequest) returns (ListBackupsResponse) {
  188. option (google.api.http) = {
  189. get: "/v1beta1/{parent=projects/*/locations/*}/backups"
  190. };
  191. option (google.api.method_signature) = "parent";
  192. }
  193. // Gets the details of a specific backup.
  194. rpc GetBackup(GetBackupRequest) returns (Backup) {
  195. option (google.api.http) = {
  196. get: "/v1beta1/{name=projects/*/locations/*/backups/*}"
  197. };
  198. option (google.api.method_signature) = "name";
  199. }
  200. // Creates a backup.
  201. rpc CreateBackup(CreateBackupRequest) returns (google.longrunning.Operation) {
  202. option (google.api.http) = {
  203. post: "/v1beta1/{parent=projects/*/locations/*}/backups"
  204. body: "backup"
  205. };
  206. option (google.api.method_signature) = "parent,backup,backup_id";
  207. option (google.longrunning.operation_info) = {
  208. response_type: "Backup"
  209. metadata_type: "google.cloud.common.OperationMetadata"
  210. };
  211. }
  212. // Deletes a backup.
  213. rpc DeleteBackup(DeleteBackupRequest) returns (google.longrunning.Operation) {
  214. option (google.api.http) = {
  215. delete: "/v1beta1/{name=projects/*/locations/*/backups/*}"
  216. };
  217. option (google.api.method_signature) = "name";
  218. option (google.longrunning.operation_info) = {
  219. response_type: "google.protobuf.Empty"
  220. metadata_type: "google.cloud.common.OperationMetadata"
  221. };
  222. }
  223. // Updates the settings of a specific backup.
  224. rpc UpdateBackup(UpdateBackupRequest) returns (google.longrunning.Operation) {
  225. option (google.api.http) = {
  226. patch: "/v1beta1/{backup.name=projects/*/locations/*/backups/*}"
  227. body: "backup"
  228. };
  229. option (google.api.method_signature) = "backup,update_mask";
  230. option (google.longrunning.operation_info) = {
  231. response_type: "Backup"
  232. metadata_type: "google.cloud.common.OperationMetadata"
  233. };
  234. }
  235. // Lists all shares for a specified instance.
  236. rpc ListShares(ListSharesRequest) returns (ListSharesResponse) {
  237. option (google.api.http) = {
  238. get: "/v1beta1/{parent=projects/*/locations/*/instances/*}/shares"
  239. };
  240. option (google.api.method_signature) = "parent";
  241. }
  242. // Gets the details of a specific share.
  243. rpc GetShare(GetShareRequest) returns (Share) {
  244. option (google.api.http) = {
  245. get: "/v1beta1/{name=projects/*/locations/*/instances/*/shares/*}"
  246. };
  247. option (google.api.method_signature) = "name";
  248. }
  249. // Creates a share.
  250. rpc CreateShare(CreateShareRequest) returns (google.longrunning.Operation) {
  251. option (google.api.http) = {
  252. post: "/v1beta1/{parent=projects/*/locations/*/instances/*}/shares"
  253. body: "share"
  254. };
  255. option (google.api.method_signature) = "parent,share,share_id";
  256. option (google.longrunning.operation_info) = {
  257. response_type: "Share"
  258. metadata_type: "google.cloud.common.OperationMetadata"
  259. };
  260. }
  261. // Deletes a share.
  262. rpc DeleteShare(DeleteShareRequest) returns (google.longrunning.Operation) {
  263. option (google.api.http) = {
  264. delete: "/v1beta1/{name=projects/*/locations/*/instances/*/shares/*}"
  265. };
  266. option (google.api.method_signature) = "name";
  267. option (google.longrunning.operation_info) = {
  268. response_type: "google.protobuf.Empty"
  269. metadata_type: "google.cloud.common.OperationMetadata"
  270. };
  271. }
  272. // Updates the settings of a specific share.
  273. rpc UpdateShare(UpdateShareRequest) returns (google.longrunning.Operation) {
  274. option (google.api.http) = {
  275. patch: "/v1beta1/{share.name=projects/*/locations/*/instances/*/shares/*}"
  276. body: "share"
  277. };
  278. option (google.api.method_signature) = "share,update_mask";
  279. option (google.longrunning.operation_info) = {
  280. response_type: "Share"
  281. metadata_type: "google.cloud.common.OperationMetadata"
  282. };
  283. }
  284. }
  285. // Network configuration for the instance.
  286. message NetworkConfig {
  287. // Internet protocol versions supported by Filestore.
  288. enum AddressMode {
  289. // Internet protocol not set.
  290. ADDRESS_MODE_UNSPECIFIED = 0;
  291. // Use the IPv4 internet protocol.
  292. MODE_IPV4 = 1;
  293. }
  294. // Available connection modes.
  295. enum ConnectMode {
  296. // ConnectMode not set.
  297. CONNECT_MODE_UNSPECIFIED = 0;
  298. // Connect via direct peering to the Filestore service.
  299. DIRECT_PEERING = 1;
  300. // Connect to your Filestore instance using Private Service
  301. // Access. Private services access provides an IP address range for multiple
  302. // Google Cloud services, including Filestore.
  303. PRIVATE_SERVICE_ACCESS = 2;
  304. }
  305. // The name of the Google Compute Engine
  306. // [VPC network](https://cloud.google.com/vpc/docs/vpc) to which the
  307. // instance is connected.
  308. string network = 1;
  309. // Internet protocol versions for which the instance has IP addresses
  310. // assigned. For this version, only MODE_IPV4 is supported.
  311. repeated AddressMode modes = 3;
  312. // Optional, reserved_ip_range can have one of the following two types of
  313. // values.
  314. //
  315. // * CIDR range value when using DIRECT_PEERING connect mode.
  316. // * [Allocated IP address
  317. // range](https://cloud.google.com/compute/docs/ip-addresses/reserve-static-internal-ip-address)
  318. // when using PRIVATE_SERVICE_ACCESS connect mode.
  319. //
  320. // When the name of an allocated IP address range is specified, it must be one
  321. // of the ranges associated with the private service access connection.
  322. // When specified as a direct CIDR value, it must be a /29 CIDR block for
  323. // Basic tier, a /24 CIDR block for High Scale tier, or a /26 CIDR block for
  324. // Enterprise tier in one of the [internal IP address
  325. // ranges](https://www.arin.net/reference/research/statistics/address_filters/)
  326. // that identifies the range of IP addresses reserved for this instance. For
  327. // example, 10.0.0.0/29, 192.168.0.0/24, or 192.168.0.0/26, respectively. The
  328. // range you specify can't overlap with either existing subnets or assigned IP
  329. // address ranges for other Filestore instances in the selected VPC
  330. // network.
  331. string reserved_ip_range = 4;
  332. // Output only. IPv4 addresses in the format `{octet1}.{octet2}.{octet3}.{octet4}` or
  333. // IPv6 addresses in the format
  334. // `{block1}:{block2}:{block3}:{block4}:{block5}:{block6}:{block7}:{block8}`.
  335. repeated string ip_addresses = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
  336. // The network connect mode of the Filestore instance.
  337. // If not provided, the connect mode defaults to DIRECT_PEERING.
  338. ConnectMode connect_mode = 6;
  339. }
  340. // File share configuration for the instance.
  341. message FileShareConfig {
  342. // The name of the file share (must be 32 characters or less for
  343. // Enterprise and High Scale SSD tiers and 16 characters or less for all other
  344. // tiers).
  345. string name = 1;
  346. // File share capacity in gigabytes (GB).
  347. // Filestore defines 1 GB as 1024^3 bytes.
  348. int64 capacity_gb = 2;
  349. // The source that this file share has been restored from. Empty if the file
  350. // share is created from scratch.
  351. oneof source {
  352. // The resource name of the backup, in the format
  353. // `projects/{project_id}/locations/{location_id}/backups/{backup_id}`, that
  354. // this file share has been restored from.
  355. string source_backup = 9 [(google.api.resource_reference) = {
  356. type: "file.googleapis.com/Backup"
  357. }];
  358. }
  359. // Nfs Export Options.
  360. // There is a limit of 10 export options per file share.
  361. repeated NfsExportOptions nfs_export_options = 8;
  362. }
  363. // NFS export options specifications.
  364. message NfsExportOptions {
  365. // The access mode.
  366. enum AccessMode {
  367. // AccessMode not set.
  368. ACCESS_MODE_UNSPECIFIED = 0;
  369. // The client can only read the file share.
  370. READ_ONLY = 1;
  371. // The client can read and write the file share (default).
  372. READ_WRITE = 2;
  373. }
  374. // The squash mode.
  375. enum SquashMode {
  376. // SquashMode not set.
  377. SQUASH_MODE_UNSPECIFIED = 0;
  378. // The Root user has root access to the file share (default).
  379. NO_ROOT_SQUASH = 1;
  380. // The Root user has squashed access to the anonymous uid/gid.
  381. ROOT_SQUASH = 2;
  382. }
  383. // List of either an IPv4 addresses in the format
  384. // `{octet1}.{octet2}.{octet3}.{octet4}` or CIDR ranges in the format
  385. // `{octet1}.{octet2}.{octet3}.{octet4}/{mask size}` which may mount the
  386. // file share.
  387. // Overlapping IP ranges are not allowed, both within and across
  388. // NfsExportOptions. An error will be returned.
  389. // The limit is 64 IP ranges/addresses for each FileShareConfig among all
  390. // NfsExportOptions.
  391. repeated string ip_ranges = 1;
  392. // Either READ_ONLY, for allowing only read requests on the exported
  393. // directory, or READ_WRITE, for allowing both read and write requests.
  394. // The default is READ_WRITE.
  395. AccessMode access_mode = 2;
  396. // Either NO_ROOT_SQUASH, for allowing root access on the exported directory,
  397. // or ROOT_SQUASH, for not allowing root access. The default is
  398. // NO_ROOT_SQUASH.
  399. SquashMode squash_mode = 3;
  400. // An integer representing the anonymous user id with a default value of
  401. // 65534.
  402. // Anon_uid may only be set with squash_mode of ROOT_SQUASH. An error will be
  403. // returned if this field is specified for other squash_mode settings.
  404. int64 anon_uid = 4;
  405. // An integer representing the anonymous group id with a default value of
  406. // 65534.
  407. // Anon_gid may only be set with squash_mode of ROOT_SQUASH. An error will be
  408. // returned if this field is specified for other squash_mode settings.
  409. int64 anon_gid = 5;
  410. }
  411. // A Filestore instance.
  412. message Instance {
  413. option (google.api.resource) = {
  414. type: "file.googleapis.com/Instance"
  415. pattern: "projects/{project}/locations/{location}/instances/{instance}"
  416. };
  417. // The instance state.
  418. enum State {
  419. // State not set.
  420. STATE_UNSPECIFIED = 0;
  421. // The instance is being created.
  422. CREATING = 1;
  423. // The instance is available for use.
  424. READY = 2;
  425. // Work is being done on the instance. You can get further details from the
  426. // `statusMessage` field of the `Instance` resource.
  427. REPAIRING = 3;
  428. // The instance is shutting down.
  429. DELETING = 4;
  430. // The instance is experiencing an issue and might be unusable. You can get
  431. // further details from the `statusMessage` field of the `Instance`
  432. // resource.
  433. ERROR = 6;
  434. // The instance is restoring a snapshot or backup to an existing file share
  435. // and may be unusable during this time.
  436. RESTORING = 7;
  437. // The instance is suspended. You can get further details from
  438. // the `suspension_reasons` field of the `Instance` resource.
  439. SUSPENDED = 8;
  440. // The instance is reverting to a snapshot.
  441. REVERTING = 9;
  442. // The instance is in the process of becoming suspended.
  443. SUSPENDING = 10;
  444. // The instance is in the process of becoming active.
  445. RESUMING = 11;
  446. }
  447. // Available service tiers.
  448. enum Tier {
  449. // Not set.
  450. TIER_UNSPECIFIED = 0;
  451. // STANDARD tier. BASIC_HDD is the preferred term for this tier.
  452. STANDARD = 1;
  453. // PREMIUM tier. BASIC_SSD is the preferred term for this tier.
  454. PREMIUM = 2;
  455. // BASIC instances offer a maximum capacity of 63.9 TB.
  456. // BASIC_HDD is an alias for STANDARD Tier, offering economical
  457. // performance backed by HDD.
  458. BASIC_HDD = 3;
  459. // BASIC instances offer a maximum capacity of 63.9 TB.
  460. // BASIC_SSD is an alias for PREMIUM Tier, and offers improved
  461. // performance backed by SSD.
  462. BASIC_SSD = 4;
  463. // HIGH_SCALE instances offer expanded capacity and performance scaling
  464. // capabilities.
  465. HIGH_SCALE_SSD = 6;
  466. // ENTERPRISE instances offer the features and availability needed for
  467. // mission-critical workloads.
  468. ENTERPRISE = 7;
  469. }
  470. // SuspensionReason contains the possible reasons for a suspension.
  471. enum SuspensionReason {
  472. // Not set.
  473. SUSPENSION_REASON_UNSPECIFIED = 0;
  474. // The KMS key used by the instance is either revoked or denied access to.
  475. KMS_KEY_ISSUE = 1;
  476. }
  477. // Output only. The resource name of the instance, in the format
  478. // `projects/{project_id}/locations/{location_id}/instances/{instance_id}`.
  479. string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
  480. // The description of the instance (2048 characters or less).
  481. string description = 2;
  482. // Output only. The instance state.
  483. State state = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
  484. // Output only. Additional information about the instance state, if available.
  485. string status_message = 6 [(google.api.field_behavior) = OUTPUT_ONLY];
  486. // Output only. The time when the instance was created.
  487. google.protobuf.Timestamp create_time = 7 [(google.api.field_behavior) = OUTPUT_ONLY];
  488. // The service tier of the instance.
  489. Tier tier = 8;
  490. // Resource labels to represent user provided metadata.
  491. map<string, string> labels = 9;
  492. // File system shares on the instance.
  493. // For this version, only a single file share is supported.
  494. repeated FileShareConfig file_shares = 10;
  495. // VPC networks to which the instance is connected.
  496. // For this version, only a single network is supported.
  497. repeated NetworkConfig networks = 11;
  498. // Server-specified ETag for the instance resource to prevent simultaneous
  499. // updates from overwriting each other.
  500. string etag = 12;
  501. // Output only. Reserved for future use.
  502. google.protobuf.BoolValue satisfies_pzs = 13 [(google.api.field_behavior) = OUTPUT_ONLY];
  503. // KMS key name used for data encryption.
  504. string kms_key_name = 14;
  505. // Output only. Field indicates all the reasons the instance is in "SUSPENDED" state.
  506. repeated SuspensionReason suspension_reasons = 15 [(google.api.field_behavior) = OUTPUT_ONLY];
  507. // Output only. The max capacity of the instance.
  508. int64 max_capacity_gb = 16 [(google.api.field_behavior) = OUTPUT_ONLY];
  509. // Output only. The increase/decrease capacity step size.
  510. int64 capacity_step_size_gb = 17 [(google.api.field_behavior) = OUTPUT_ONLY];
  511. // Output only. The max number of shares allowed.
  512. int64 max_share_count = 18 [(google.api.field_behavior) = OUTPUT_ONLY];
  513. // The storage capacity of the instance in gigabytes (GB = 1024^3 bytes).
  514. // This capacity can be increased up to `max_capacity_gb` GB in multipliers
  515. // of `capacity_step_size_gb` GB.
  516. int64 capacity_gb = 19;
  517. // Indicates whether this instance uses a multi-share configuration with which
  518. // it can have more than one file-share or none at all. File-shares are added,
  519. // updated and removed through the separate file-share APIs.
  520. bool multi_share_enabled = 20;
  521. }
  522. // CreateInstanceRequest creates an instance.
  523. message CreateInstanceRequest {
  524. // Required. The instance's project and location, in the format
  525. // `projects/{project_id}/locations/{location}`. In Filestore,
  526. // locations map to GCP zones, for example **us-west1-b**.
  527. string parent = 1 [
  528. (google.api.field_behavior) = REQUIRED,
  529. (google.api.resource_reference) = {
  530. type: "locations.googleapis.com/Location"
  531. }
  532. ];
  533. // Required. The ID of the instance to create.
  534. // The ID must be unique within the specified project and location.
  535. //
  536. // This value must start with a lowercase letter followed by up to 62
  537. // lowercase letters, numbers, or hyphens, and cannot end with a hyphen.
  538. string instance_id = 2 [(google.api.field_behavior) = REQUIRED];
  539. // Required. An [instance resource][google.cloud.filestore.v1beta1.Instance]
  540. Instance instance = 3 [(google.api.field_behavior) = REQUIRED];
  541. }
  542. // GetInstanceRequest gets the state of an instance.
  543. message GetInstanceRequest {
  544. // Required. The instance resource name, in the format
  545. // `projects/{project_id}/locations/{location}/instances/{instance_id}`.
  546. string name = 1 [
  547. (google.api.field_behavior) = REQUIRED,
  548. (google.api.resource_reference) = {
  549. type: "file.googleapis.com/Instance"
  550. }
  551. ];
  552. }
  553. // UpdateInstanceRequest updates the settings of an instance.
  554. message UpdateInstanceRequest {
  555. // Required. Mask of fields to update. At least one path must be supplied in this
  556. // field. The elements of the repeated paths field may only include these
  557. // fields:
  558. //
  559. // * "description"
  560. // * "file_shares"
  561. // * "labels"
  562. google.protobuf.FieldMask update_mask = 1 [(google.api.field_behavior) = REQUIRED];
  563. // Required. Only fields specified in update_mask are updated.
  564. Instance instance = 2 [(google.api.field_behavior) = REQUIRED];
  565. }
  566. // RestoreInstanceRequest restores an existing instance's file share from a
  567. // snapshot or backup.
  568. message RestoreInstanceRequest {
  569. // Required. The resource name of the instance, in the format
  570. // `projects/{project_id}/locations/{location_id}/instances/{instance_id}`.
  571. string name = 1 [
  572. (google.api.field_behavior) = REQUIRED,
  573. (google.api.resource_reference) = {
  574. type: "file.googleapis.com/Instance"
  575. }
  576. ];
  577. // Required. Name of the file share in the Filestore instance that the snapshot
  578. // is being restored to.
  579. string file_share = 2 [(google.api.field_behavior) = REQUIRED];
  580. oneof source {
  581. // The resource name of the snapshot, in the format
  582. // `projects/{project_id}/locations/{location_id}/snapshots/{snapshot_id}`.
  583. string source_snapshot = 3 [(google.api.resource_reference) = {
  584. type: "file.googleapis.com/Snapshot"
  585. }];
  586. // The resource name of the backup, in the format
  587. // `projects/{project_id}/locations/{location_id}/backups/{backup_id}`.
  588. string source_backup = 4 [(google.api.resource_reference) = {
  589. type: "file.googleapis.com/Backup"
  590. }];
  591. }
  592. }
  593. // RevertInstanceRequest reverts the given instance's file share to the
  594. // specified snapshot.
  595. message RevertInstanceRequest {
  596. // Required. projects/{project_id}/locations/{location_id}/instances/{instance_id}.
  597. // The resource name of the instance, in the format
  598. string name = 1 [
  599. (google.api.field_behavior) = REQUIRED,
  600. (google.api.resource_reference) = {
  601. type: "file.googleapis.com/Instance"
  602. }
  603. ];
  604. // Required. The snapshot resource ID, in the format 'my-snapshot', where the specified
  605. // ID is the {snapshot_id} of the fully qualified name like
  606. // projects/{project_id}/locations/{location_id}/instances/{instance_id}/snapshots/{snapshot_id}
  607. string target_snapshot_id = 2 [(google.api.field_behavior) = REQUIRED];
  608. }
  609. // DeleteInstanceRequest deletes an instance.
  610. message DeleteInstanceRequest {
  611. // Required. The instance resource name, in the format
  612. // `projects/{project_id}/locations/{location}/instances/{instance_id}`
  613. string name = 1 [
  614. (google.api.field_behavior) = REQUIRED,
  615. (google.api.resource_reference) = {
  616. type: "file.googleapis.com/Instance"
  617. }
  618. ];
  619. // If set to true, any snapshots of the instance will also be deleted.
  620. // (Otherwise, the request will only work if the instance has no snapshots.)
  621. bool force = 2;
  622. }
  623. // ListInstancesRequest lists instances.
  624. message ListInstancesRequest {
  625. // Required. The project and location for which to retrieve instance information,
  626. // in the format `projects/{project_id}/locations/{location}`. In Cloud
  627. // Filestore, locations map to GCP zones, for example **us-west1-b**. To
  628. // retrieve instance information for all locations, use "-" for the
  629. // `{location}` value.
  630. string parent = 1 [
  631. (google.api.field_behavior) = REQUIRED,
  632. (google.api.resource_reference) = {
  633. type: "locations.googleapis.com/Location"
  634. }
  635. ];
  636. // The maximum number of items to return.
  637. int32 page_size = 2;
  638. // The next_page_token value to use if there are additional
  639. // results to retrieve for this list request.
  640. string page_token = 3;
  641. // Sort results. Supported values are "name", "name desc" or "" (unsorted).
  642. string order_by = 4;
  643. // List filter.
  644. string filter = 5;
  645. }
  646. // ListInstancesResponse is the result of ListInstancesRequest.
  647. message ListInstancesResponse {
  648. // A list of instances in the project for the specified location.
  649. //
  650. // If the `{location}` value in the request is "-", the response contains a
  651. // list of instances from all locations. If any location is unreachable, the
  652. // response will only return instances in reachable locations and the
  653. // "unreachable" field will be populated with a list of unreachable locations.
  654. repeated Instance instances = 1;
  655. // The token you can use to retrieve the next page of results. Not returned
  656. // if there are no more results in the list.
  657. string next_page_token = 2;
  658. // Locations that could not be reached.
  659. repeated string unreachable = 3;
  660. }
  661. // A Filestore snapshot.
  662. message Snapshot {
  663. option (google.api.resource) = {
  664. type: "file.googleapis.com/Snapshot"
  665. pattern: "projects/{project}/locations/{location}/instances/{instance}/snapshots/{snapshot}"
  666. };
  667. // The snapshot state.
  668. enum State {
  669. // State not set.
  670. STATE_UNSPECIFIED = 0;
  671. // Snapshot is being created.
  672. CREATING = 1;
  673. // Snapshot is available for use.
  674. READY = 3;
  675. // Snapshot is being deleted.
  676. DELETING = 4;
  677. }
  678. // Output only. The resource name of the snapshot, in the format
  679. // `projects/{project_id}/locations/{location_id}/instances/{instance_id}/snapshots/{snapshot_id}`.
  680. string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
  681. // A description of the snapshot with 2048 characters or less.
  682. // Requests with longer descriptions will be rejected.
  683. string description = 2;
  684. // Output only. The snapshot state.
  685. State state = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
  686. // Output only. The time when the snapshot was created.
  687. google.protobuf.Timestamp create_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
  688. // Resource labels to represent user provided metadata.
  689. map<string, string> labels = 5;
  690. // Output only. The amount of bytes needed to allocate a full copy of the snapshot content
  691. int64 filesystem_used_bytes = 12 [(google.api.field_behavior) = OUTPUT_ONLY];
  692. }
  693. // CreateSnapshotRequest creates a snapshot.
  694. message CreateSnapshotRequest {
  695. // Required. The Filestore Instance to create the snapshots of, in the format
  696. // `projects/{project_id}/locations/{location}/instances/{instance_id}`
  697. string parent = 1 [
  698. (google.api.field_behavior) = REQUIRED,
  699. (google.api.resource_reference) = {
  700. type: "file.googleapis.com/Instance"
  701. }
  702. ];
  703. // Required. The ID to use for the snapshot.
  704. // The ID must be unique within the specified instance.
  705. //
  706. // This value must start with a lowercase letter followed by up to 62
  707. // lowercase letters, numbers, or hyphens, and cannot end with a hyphen.
  708. string snapshot_id = 2 [(google.api.field_behavior) = REQUIRED];
  709. // Required. A snapshot resource
  710. Snapshot snapshot = 3 [(google.api.field_behavior) = REQUIRED];
  711. }
  712. // GetSnapshotRequest gets the state of a snapshot.
  713. message GetSnapshotRequest {
  714. // Required. The snapshot resource name, in the format
  715. // `projects/{project_id}/locations/{location}/instances/{instance_id}/snapshots/{snapshot_id}`
  716. string name = 1 [
  717. (google.api.field_behavior) = REQUIRED,
  718. (google.api.resource_reference) = {
  719. type: "file.googleapis.com/Snapshot"
  720. }
  721. ];
  722. }
  723. // DeleteSnapshotRequest deletes a snapshot.
  724. message DeleteSnapshotRequest {
  725. // Required. The snapshot resource name, in the format
  726. // `projects/{project_id}/locations/{location}/instances/{instance_id}/snapshots/{snapshot_id}`
  727. string name = 1 [
  728. (google.api.field_behavior) = REQUIRED,
  729. (google.api.resource_reference) = {
  730. type: "file.googleapis.com/Snapshot"
  731. }
  732. ];
  733. }
  734. // UpdateSnapshotRequest updates description and/or labels for a snapshot.
  735. message UpdateSnapshotRequest {
  736. // Required. Mask of fields to update. At least one path must be supplied in this
  737. // field.
  738. google.protobuf.FieldMask update_mask = 1 [(google.api.field_behavior) = REQUIRED];
  739. // Required. A snapshot resource
  740. Snapshot snapshot = 2 [(google.api.field_behavior) = REQUIRED];
  741. }
  742. // ListSnapshotsRequest lists snapshots.
  743. message ListSnapshotsRequest {
  744. // Required. The instance for which to retrieve snapshot information,
  745. // in the format
  746. // `projects/{project_id}/locations/{location}/instances/{instance_id}`.
  747. string parent = 1 [
  748. (google.api.field_behavior) = REQUIRED,
  749. (google.api.resource_reference) = {
  750. type: "file.googleapis.com/Instance"
  751. }
  752. ];
  753. // The maximum number of items to return.
  754. int32 page_size = 2;
  755. // The next_page_token value to use if there are additional
  756. // results to retrieve for this list request.
  757. string page_token = 3;
  758. // Sort results. Supported values are "name", "name desc" or "" (unsorted).
  759. string order_by = 4;
  760. // List filter.
  761. string filter = 5;
  762. }
  763. // ListSnapshotsResponse is the result of ListSnapshotsRequest.
  764. message ListSnapshotsResponse {
  765. // A list of snapshots in the project for the specified instance.
  766. repeated Snapshot snapshots = 1;
  767. // The token you can use to retrieve the next page of results. Not returned
  768. // if there are no more results in the list.
  769. string next_page_token = 2;
  770. }
  771. // A Filestore backup.
  772. message Backup {
  773. option (google.api.resource) = {
  774. type: "file.googleapis.com/Backup"
  775. pattern: "projects/{project}/locations/{location}/backups/{backup}"
  776. };
  777. // The backup state.
  778. enum State {
  779. // State not set.
  780. STATE_UNSPECIFIED = 0;
  781. // Backup is being created.
  782. CREATING = 1;
  783. // Backup has been taken and the operation is being finalized. At this
  784. // point, changes to the file share will not be reflected in the backup.
  785. FINALIZING = 2;
  786. // Backup is available for use.
  787. READY = 3;
  788. // Backup is being deleted.
  789. DELETING = 4;
  790. }
  791. // Output only. The resource name of the backup, in the format
  792. // `projects/{project_id}/locations/{location_id}/backups/{backup_id}`.
  793. string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
  794. // A description of the backup with 2048 characters or less.
  795. // Requests with longer descriptions will be rejected.
  796. string description = 2;
  797. // Output only. The backup state.
  798. State state = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
  799. // Output only. The time when the backup was created.
  800. google.protobuf.Timestamp create_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
  801. // Resource labels to represent user provided metadata.
  802. map<string, string> labels = 5;
  803. // Output only. Capacity of the source file share when the backup was created.
  804. int64 capacity_gb = 6 [(google.api.field_behavior) = OUTPUT_ONLY];
  805. // Output only. The size of the storage used by the backup. As backups share storage,
  806. // this number is expected to change with backup creation/deletion.
  807. int64 storage_bytes = 7 [(google.api.field_behavior) = OUTPUT_ONLY];
  808. // The resource name of the source Filestore instance, in the format
  809. // `projects/{project_id}/locations/{location_id}/instances/{instance_id}`,
  810. // used to create this backup.
  811. string source_instance = 8 [(google.api.resource_reference) = {
  812. type: "file.googleapis.com/Instance"
  813. }];
  814. // Name of the file share in the source Filestore instance that the
  815. // backup is created from.
  816. string source_file_share = 9;
  817. // Output only. The service tier of the source Filestore instance that this backup
  818. // is created from.
  819. Instance.Tier source_instance_tier = 10 [(google.api.field_behavior) = OUTPUT_ONLY];
  820. // Output only. Amount of bytes that will be downloaded if the backup is restored
  821. int64 download_bytes = 11 [(google.api.field_behavior) = OUTPUT_ONLY];
  822. // Output only. Reserved for future use.
  823. google.protobuf.BoolValue satisfies_pzs = 12 [(google.api.field_behavior) = OUTPUT_ONLY];
  824. // Immutable. KMS key name used for data encryption.
  825. string kms_key_name = 13 [(google.api.field_behavior) = IMMUTABLE];
  826. }
  827. // CreateBackupRequest creates a backup.
  828. message CreateBackupRequest {
  829. // Required. The backup's project and location, in the format
  830. // `projects/{project_id}/locations/{location}`. In Filestore,
  831. // backup locations map to GCP regions, for example **us-west1**.
  832. string parent = 1 [
  833. (google.api.field_behavior) = REQUIRED,
  834. (google.api.resource_reference) = {
  835. type: "locations.googleapis.com/Location"
  836. }
  837. ];
  838. // Required. A [backup resource][google.cloud.filestore.v1beta1.Backup]
  839. Backup backup = 2 [(google.api.field_behavior) = REQUIRED];
  840. // Required. The ID to use for the backup.
  841. // The ID must be unique within the specified project and location.
  842. //
  843. // This value must start with a lowercase letter followed by up to 62
  844. // lowercase letters, numbers, or hyphens, and cannot end with a hyphen.
  845. string backup_id = 3 [(google.api.field_behavior) = REQUIRED];
  846. }
  847. // DeleteBackupRequest deletes a backup.
  848. message DeleteBackupRequest {
  849. // Required. The backup resource name, in the format
  850. // `projects/{project_id}/locations/{location}/backups/{backup_id}`
  851. string name = 1 [
  852. (google.api.field_behavior) = REQUIRED,
  853. (google.api.resource_reference) = {
  854. type: "file.googleapis.com/Backup"
  855. }
  856. ];
  857. }
  858. // UpdateBackupRequest updates description and/or labels for a backup.
  859. message UpdateBackupRequest {
  860. // Required. A [backup resource][google.cloud.filestore.v1beta1.Backup]
  861. Backup backup = 1 [(google.api.field_behavior) = REQUIRED];
  862. // Required. Mask of fields to update. At least one path must be supplied in this
  863. // field.
  864. google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED];
  865. }
  866. // GetBackupRequest gets the state of a backup.
  867. message GetBackupRequest {
  868. // Required. The backup resource name, in the format
  869. // `projects/{project_id}/locations/{location}/backups/{backup_id}`.
  870. string name = 1 [
  871. (google.api.field_behavior) = REQUIRED,
  872. (google.api.resource_reference) = {
  873. type: "file.googleapis.com/Backup"
  874. }
  875. ];
  876. }
  877. // ListBackupsRequest lists backups.
  878. message ListBackupsRequest {
  879. // Required. The project and location for which to retrieve backup information,
  880. // in the format `projects/{project_id}/locations/{location}`.
  881. // In Filestore, backup locations map to GCP regions,
  882. // for example **us-west1**.
  883. // To retrieve backup information for all locations, use "-" for the
  884. // `{location}` value.
  885. string parent = 1 [
  886. (google.api.field_behavior) = REQUIRED,
  887. (google.api.resource_reference) = {
  888. type: "locations.googleapis.com/Location"
  889. }
  890. ];
  891. // The maximum number of items to return.
  892. int32 page_size = 2;
  893. // The next_page_token value to use if there are additional
  894. // results to retrieve for this list request.
  895. string page_token = 3;
  896. // Sort results. Supported values are "name", "name desc" or "" (unsorted).
  897. string order_by = 4;
  898. // List filter.
  899. string filter = 5;
  900. }
  901. // ListBackupsResponse is the result of ListBackupsRequest.
  902. message ListBackupsResponse {
  903. // A list of backups in the project for the specified location.
  904. //
  905. // If the `{location}` value in the request is "-", the response contains a
  906. // list of backups from all locations. If any location is unreachable, the
  907. // response will only return backups in reachable locations and the
  908. // "unreachable" field will be populated with a list of unreachable
  909. // locations.
  910. repeated Backup backups = 1;
  911. // The token you can use to retrieve the next page of results. Not returned
  912. // if there are no more results in the list.
  913. string next_page_token = 2;
  914. // Locations that could not be reached.
  915. repeated string unreachable = 3;
  916. }
  917. // A Filestore share.
  918. message Share {
  919. option (google.api.resource) = {
  920. type: "file.googleapis.com/Share"
  921. pattern: "projects/{project}/locations/{location}/instances/{instance}/shares/{share}"
  922. };
  923. // The share state.
  924. enum State {
  925. // State not set.
  926. STATE_UNSPECIFIED = 0;
  927. // Share is being created.
  928. CREATING = 1;
  929. // Share is ready for use.
  930. READY = 3;
  931. // Share is being deleted.
  932. DELETING = 4;
  933. }
  934. // Output only. The resource name of the share, in the format
  935. // `projects/{project_id}/locations/{location_id}/instances/{instance_id}/shares/{share_id}`.
  936. string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
  937. // The mount name of the share. Must be 63 characters or less and consist of
  938. // uppercase or lowercase letters, numbers, and underscores.
  939. string mount_name = 2;
  940. // A description of the share with 2048 characters or less. Requests with
  941. // longer descriptions will be rejected.
  942. string description = 3;
  943. // File share capacity in gigabytes (GB). Filestore defines 1 GB as
  944. // 1024^3 bytes. Must be greater than 0.
  945. int64 capacity_gb = 4;
  946. // Nfs Export Options.
  947. // There is a limit of 10 export options per file share.
  948. repeated NfsExportOptions nfs_export_options = 5;
  949. // Output only. The share state.
  950. State state = 6 [(google.api.field_behavior) = OUTPUT_ONLY];
  951. // Output only. The time when the share was created.
  952. google.protobuf.Timestamp create_time = 7 [(google.api.field_behavior) = OUTPUT_ONLY];
  953. // Resource labels to represent user provided metadata.
  954. map<string, string> labels = 8;
  955. }
  956. // CreateShareRequest creates a share.
  957. message CreateShareRequest {
  958. // Required. The Filestore Instance to create the share for, in the format
  959. // `projects/{project_id}/locations/{location}/instances/{instance_id}`
  960. string parent = 1 [
  961. (google.api.field_behavior) = REQUIRED,
  962. (google.api.resource_reference) = {
  963. type: "file.googleapis.com/Instance"
  964. }
  965. ];
  966. // Required. The ID to use for the share.
  967. // The ID must be unique within the specified instance.
  968. //
  969. // This value must start with a lowercase letter followed by up to 62
  970. // lowercase letters, numbers, or hyphens, and cannot end with a hyphen.
  971. string share_id = 2 [(google.api.field_behavior) = REQUIRED];
  972. // Required. A share resource
  973. Share share = 3 [(google.api.field_behavior) = REQUIRED];
  974. }
  975. // GetShareRequest gets the state of a share.
  976. message GetShareRequest {
  977. // Required. The share resource name, in the format
  978. // `projects/{project_id}/locations/{location}/instances/{instance_id}/shares/{share_id}`
  979. string name = 1 [
  980. (google.api.field_behavior) = REQUIRED,
  981. (google.api.resource_reference) = {
  982. type: "file.googleapis.com/Share"
  983. }
  984. ];
  985. }
  986. // DeleteShareRequest deletes a share.
  987. message DeleteShareRequest {
  988. // Required. The share resource name, in the format
  989. // `projects/{project_id}/locations/{location}/instances/{instance_id}/share/{share_id}`
  990. string name = 1 [
  991. (google.api.field_behavior) = REQUIRED,
  992. (google.api.resource_reference) = {
  993. type: "file.googleapis.com/Share"
  994. }
  995. ];
  996. }
  997. // ListSharesRequest lists shares.
  998. message ListSharesRequest {
  999. // Required. The instance for which to retrieve share information,
  1000. // in the format
  1001. // `projects/{project_id}/locations/{location}/instances/{instance_id}`.
  1002. string parent = 1 [
  1003. (google.api.field_behavior) = REQUIRED,
  1004. (google.api.resource_reference) = {
  1005. type: "file.googleapis.com/Instance"
  1006. }
  1007. ];
  1008. // The maximum number of items to return.
  1009. int32 page_size = 2;
  1010. // The next_page_token value to use if there are additional
  1011. // results to retrieve for this list request.
  1012. string page_token = 3;
  1013. // Sort results. Supported values are "name", "name desc" or "" (unsorted).
  1014. string order_by = 4;
  1015. // List filter.
  1016. string filter = 5;
  1017. }
  1018. // ListSharesResponse is the result of ListSharesRequest.
  1019. message ListSharesResponse {
  1020. // A list of shares in the project for the specified instance.
  1021. repeated Share shares = 1;
  1022. // The token you can use to retrieve the next page of results. Not returned
  1023. // if there are no more results in the list.
  1024. string next_page_token = 2;
  1025. // Locations that could not be reached.
  1026. repeated string unreachable = 3;
  1027. }
  1028. // UpdateShareRequest updates the settings of a share.
  1029. message UpdateShareRequest {
  1030. // Required. A share resource.
  1031. // Only fields specified in update_mask are updated.
  1032. Share share = 1 [(google.api.field_behavior) = REQUIRED];
  1033. // Required. Mask of fields to update. At least one path must be supplied in this
  1034. // field.
  1035. // The elements of the repeated paths field may only include these fields:
  1036. //
  1037. // * "description"
  1038. // * "capacity_gb"
  1039. // * "labels"
  1040. // * "nfs_export_options"
  1041. google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED];
  1042. }