1// Copyright 2023 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 15syntax = "proto3"; 16 17package google.cloud.filestore.v1beta1; 18 19import "google/api/annotations.proto"; 20import "google/api/client.proto"; 21import "google/api/field_behavior.proto"; 22import "google/api/resource.proto"; 23import "google/cloud/common/operation_metadata.proto"; 24import "google/longrunning/operations.proto"; 25import "google/protobuf/empty.proto"; 26import "google/protobuf/field_mask.proto"; 27import "google/protobuf/timestamp.proto"; 28import "google/protobuf/wrappers.proto"; 29 30option csharp_namespace = "Google.Cloud.Filestore.V1Beta1"; 31option go_package = "cloud.google.com/go/filestore/apiv1beta1/filestorepb;filestorepb"; 32option java_multiple_files = true; 33option java_outer_classname = "CloudFilestoreServiceProto"; 34option java_package = "com.google.cloud.filestore.v1beta1"; 35option php_namespace = "Google\\Cloud\\Filestore\\V1beta1"; 36 37// Configures and manages Filestore resources. 38// 39// Filestore Manager v1beta1. 40// 41// The `file.googleapis.com` service implements the Filestore API and 42// defines the following model for managing resources: 43// * The service works with a collection of cloud projects, named: `/projects/*` 44// * Each project has a collection of available locations, named: `/locations/*` 45// * Each location has a collection of instances and backups, named: 46// `/instances/*` and `/backups/*` respectively. 47// * As such, Filestore instances are resources of the form: 48// `/projects/{project_id}/locations/{location_id}/instances/{instance_id}` 49// backups are resources of the form: 50// `/projects/{project_id}/locations/{location_id}/backup/{backup_id}` 51// 52// Note that location_id can represent a Google Cloud `zone` or `region` 53// depending on the resource. for example: A zonal Filestore instance: 54// * `projects/my-project/locations/us-central1-c/instances/my-basic-tier-filer` 55// A regional Filestore instance: 56// * `projects/my-project/locations/us-central1/instances/my-enterprise-filer` 57service CloudFilestoreManager { 58 option (google.api.default_host) = "file.googleapis.com"; 59 option (google.api.oauth_scopes) = 60 "https://www.googleapis.com/auth/cloud-platform"; 61 62 // Lists all instances in a project for either a specified location 63 // or for all locations. 64 rpc ListInstances(ListInstancesRequest) returns (ListInstancesResponse) { 65 option (google.api.http) = { 66 get: "/v1beta1/{parent=projects/*/locations/*}/instances" 67 }; 68 option (google.api.method_signature) = "parent"; 69 } 70 71 // Gets the details of a specific instance. 72 rpc GetInstance(GetInstanceRequest) returns (Instance) { 73 option (google.api.http) = { 74 get: "/v1beta1/{name=projects/*/locations/*/instances/*}" 75 }; 76 option (google.api.method_signature) = "name"; 77 } 78 79 // Creates an instance. 80 // When creating from a backup, the capacity of the new instance needs to be 81 // equal to or larger than the capacity of the backup (and also equal to or 82 // larger than the minimum capacity of the tier). 83 rpc CreateInstance(CreateInstanceRequest) 84 returns (google.longrunning.Operation) { 85 option (google.api.http) = { 86 post: "/v1beta1/{parent=projects/*/locations/*}/instances" 87 body: "instance" 88 }; 89 option (google.api.method_signature) = "parent,instance,instance_id"; 90 option (google.longrunning.operation_info) = { 91 response_type: "Instance" 92 metadata_type: "google.cloud.common.OperationMetadata" 93 }; 94 } 95 96 // Updates the settings of a specific instance. 97 rpc UpdateInstance(UpdateInstanceRequest) 98 returns (google.longrunning.Operation) { 99 option (google.api.http) = { 100 patch: "/v1beta1/{instance.name=projects/*/locations/*/instances/*}" 101 body: "instance" 102 }; 103 option (google.api.method_signature) = "instance,update_mask"; 104 option (google.longrunning.operation_info) = { 105 response_type: "Instance" 106 metadata_type: "google.cloud.common.OperationMetadata" 107 }; 108 } 109 110 // Restores an existing instance's file share from a backup. 111 // 112 // The capacity of the instance needs to be equal to or larger than the 113 // capacity of the backup (and also equal to or larger than the minimum 114 // capacity of the tier). 115 rpc RestoreInstance(RestoreInstanceRequest) 116 returns (google.longrunning.Operation) { 117 option (google.api.http) = { 118 post: "/v1beta1/{name=projects/*/locations/*/instances/*}:restore" 119 body: "*" 120 }; 121 option (google.longrunning.operation_info) = { 122 response_type: "Instance" 123 metadata_type: "google.cloud.common.OperationMetadata" 124 }; 125 } 126 127 // Revert an existing instance's file system to a specified snapshot. 128 rpc RevertInstance(RevertInstanceRequest) 129 returns (google.longrunning.Operation) { 130 option (google.api.http) = { 131 post: "/v1beta1/{name=projects/*/locations/*/instances/*}:revert" 132 body: "*" 133 }; 134 option (google.longrunning.operation_info) = { 135 response_type: "Instance" 136 metadata_type: "google.cloud.common.OperationMetadata" 137 }; 138 } 139 140 // Deletes an instance. 141 rpc DeleteInstance(DeleteInstanceRequest) 142 returns (google.longrunning.Operation) { 143 option (google.api.http) = { 144 delete: "/v1beta1/{name=projects/*/locations/*/instances/*}" 145 }; 146 option (google.api.method_signature) = "name"; 147 option (google.longrunning.operation_info) = { 148 response_type: "google.protobuf.Empty" 149 metadata_type: "google.cloud.common.OperationMetadata" 150 }; 151 } 152 153 // Lists all snapshots in a project for either a specified location 154 // or for all locations. 155 rpc ListSnapshots(ListSnapshotsRequest) returns (ListSnapshotsResponse) { 156 option (google.api.http) = { 157 get: "/v1beta1/{parent=projects/*/locations/*/instances/*}/snapshots" 158 }; 159 option (google.api.method_signature) = "parent"; 160 } 161 162 // Gets the details of a specific snapshot. 163 rpc GetSnapshot(GetSnapshotRequest) returns (Snapshot) { 164 option (google.api.http) = { 165 get: "/v1beta1/{name=projects/*/locations/*/instances/*/snapshots/*}" 166 }; 167 option (google.api.method_signature) = "name"; 168 } 169 170 // Creates a snapshot. 171 rpc CreateSnapshot(CreateSnapshotRequest) 172 returns (google.longrunning.Operation) { 173 option (google.api.http) = { 174 post: "/v1beta1/{parent=projects/*/locations/*/instances/*}/snapshots" 175 body: "snapshot" 176 }; 177 option (google.api.method_signature) = "parent,snapshot,snapshot_id"; 178 option (google.longrunning.operation_info) = { 179 response_type: "Snapshot" 180 metadata_type: "google.cloud.common.OperationMetadata" 181 }; 182 } 183 184 // Deletes a snapshot. 185 rpc DeleteSnapshot(DeleteSnapshotRequest) 186 returns (google.longrunning.Operation) { 187 option (google.api.http) = { 188 delete: "/v1beta1/{name=projects/*/locations/*/instances/*/snapshots/*}" 189 }; 190 option (google.api.method_signature) = "name"; 191 option (google.longrunning.operation_info) = { 192 response_type: "google.protobuf.Empty" 193 metadata_type: "google.cloud.common.OperationMetadata" 194 }; 195 } 196 197 // Updates the settings of a specific snapshot. 198 rpc UpdateSnapshot(UpdateSnapshotRequest) 199 returns (google.longrunning.Operation) { 200 option (google.api.http) = { 201 patch: "/v1beta1/{snapshot.name=projects/*/locations/*/instances/*/snapshots/*}" 202 body: "snapshot" 203 }; 204 option (google.api.method_signature) = "snapshot,update_mask"; 205 option (google.longrunning.operation_info) = { 206 response_type: "Snapshot" 207 metadata_type: "google.cloud.common.OperationMetadata" 208 }; 209 } 210 211 // Lists all backups in a project for either a specified location or for all 212 // locations. 213 rpc ListBackups(ListBackupsRequest) returns (ListBackupsResponse) { 214 option (google.api.http) = { 215 get: "/v1beta1/{parent=projects/*/locations/*}/backups" 216 }; 217 option (google.api.method_signature) = "parent"; 218 } 219 220 // Gets the details of a specific backup. 221 rpc GetBackup(GetBackupRequest) returns (Backup) { 222 option (google.api.http) = { 223 get: "/v1beta1/{name=projects/*/locations/*/backups/*}" 224 }; 225 option (google.api.method_signature) = "name"; 226 } 227 228 // Creates a backup. 229 rpc CreateBackup(CreateBackupRequest) returns (google.longrunning.Operation) { 230 option (google.api.http) = { 231 post: "/v1beta1/{parent=projects/*/locations/*}/backups" 232 body: "backup" 233 }; 234 option (google.api.method_signature) = "parent,backup,backup_id"; 235 option (google.longrunning.operation_info) = { 236 response_type: "Backup" 237 metadata_type: "google.cloud.common.OperationMetadata" 238 }; 239 } 240 241 // Deletes a backup. 242 rpc DeleteBackup(DeleteBackupRequest) returns (google.longrunning.Operation) { 243 option (google.api.http) = { 244 delete: "/v1beta1/{name=projects/*/locations/*/backups/*}" 245 }; 246 option (google.api.method_signature) = "name"; 247 option (google.longrunning.operation_info) = { 248 response_type: "google.protobuf.Empty" 249 metadata_type: "google.cloud.common.OperationMetadata" 250 }; 251 } 252 253 // Updates the settings of a specific backup. 254 rpc UpdateBackup(UpdateBackupRequest) returns (google.longrunning.Operation) { 255 option (google.api.http) = { 256 patch: "/v1beta1/{backup.name=projects/*/locations/*/backups/*}" 257 body: "backup" 258 }; 259 option (google.api.method_signature) = "backup,update_mask"; 260 option (google.longrunning.operation_info) = { 261 response_type: "Backup" 262 metadata_type: "google.cloud.common.OperationMetadata" 263 }; 264 } 265 266 // Lists all shares for a specified instance. 267 rpc ListShares(ListSharesRequest) returns (ListSharesResponse) { 268 option (google.api.http) = { 269 get: "/v1beta1/{parent=projects/*/locations/*/instances/*}/shares" 270 }; 271 option (google.api.method_signature) = "parent"; 272 } 273 274 // Gets the details of a specific share. 275 rpc GetShare(GetShareRequest) returns (Share) { 276 option (google.api.http) = { 277 get: "/v1beta1/{name=projects/*/locations/*/instances/*/shares/*}" 278 }; 279 option (google.api.method_signature) = "name"; 280 } 281 282 // Creates a share. 283 rpc CreateShare(CreateShareRequest) returns (google.longrunning.Operation) { 284 option (google.api.http) = { 285 post: "/v1beta1/{parent=projects/*/locations/*/instances/*}/shares" 286 body: "share" 287 }; 288 option (google.api.method_signature) = "parent,share,share_id"; 289 option (google.longrunning.operation_info) = { 290 response_type: "Share" 291 metadata_type: "google.cloud.common.OperationMetadata" 292 }; 293 } 294 295 // Deletes a share. 296 rpc DeleteShare(DeleteShareRequest) returns (google.longrunning.Operation) { 297 option (google.api.http) = { 298 delete: "/v1beta1/{name=projects/*/locations/*/instances/*/shares/*}" 299 }; 300 option (google.api.method_signature) = "name"; 301 option (google.longrunning.operation_info) = { 302 response_type: "google.protobuf.Empty" 303 metadata_type: "google.cloud.common.OperationMetadata" 304 }; 305 } 306 307 // Updates the settings of a specific share. 308 rpc UpdateShare(UpdateShareRequest) returns (google.longrunning.Operation) { 309 option (google.api.http) = { 310 patch: "/v1beta1/{share.name=projects/*/locations/*/instances/*/shares/*}" 311 body: "share" 312 }; 313 option (google.api.method_signature) = "share,update_mask"; 314 option (google.longrunning.operation_info) = { 315 response_type: "Share" 316 metadata_type: "google.cloud.common.OperationMetadata" 317 }; 318 } 319} 320 321// Network configuration for the instance. 322message NetworkConfig { 323 // Internet protocol versions supported by Filestore. 324 enum AddressMode { 325 // Internet protocol not set. 326 ADDRESS_MODE_UNSPECIFIED = 0; 327 328 // Use the IPv4 internet protocol. 329 MODE_IPV4 = 1; 330 } 331 332 // Available connection modes. 333 enum ConnectMode { 334 // ConnectMode not set. 335 CONNECT_MODE_UNSPECIFIED = 0; 336 337 // Connect via direct peering to the Filestore service. 338 DIRECT_PEERING = 1; 339 340 // Connect to your Filestore instance using Private Service 341 // Access. Private services access provides an IP address range for multiple 342 // Google Cloud services, including Filestore. 343 PRIVATE_SERVICE_ACCESS = 2; 344 } 345 346 // The name of the Google Compute Engine 347 // [VPC network](https://cloud.google.com/vpc/docs/vpc) to which the 348 // instance is connected. 349 string network = 1; 350 351 // Internet protocol versions for which the instance has IP addresses 352 // assigned. For this version, only MODE_IPV4 is supported. 353 repeated AddressMode modes = 3; 354 355 // Optional, reserved_ip_range can have one of the following two types of 356 // values. 357 // 358 // * CIDR range value when using DIRECT_PEERING connect mode. 359 // * [Allocated IP address 360 // range](https://cloud.google.com/compute/docs/ip-addresses/reserve-static-internal-ip-address) 361 // when using PRIVATE_SERVICE_ACCESS connect mode. 362 // 363 // When the name of an allocated IP address range is specified, it must be one 364 // of the ranges associated with the private service access connection. 365 // When specified as a direct CIDR value, it must be a /29 CIDR block for 366 // Basic tier, a /24 CIDR block for High Scale tier, or a /26 CIDR block for 367 // Enterprise tier in one of the [internal IP address 368 // ranges](https://www.arin.net/reference/research/statistics/address_filters/) 369 // that identifies the range of IP addresses reserved for this instance. For 370 // example, 10.0.0.0/29, 192.168.0.0/24, or 192.168.0.0/26, respectively. The 371 // range you specify can't overlap with either existing subnets or assigned IP 372 // address ranges for other Filestore instances in the selected VPC 373 // network. 374 string reserved_ip_range = 4; 375 376 // Output only. IPv4 addresses in the format 377 // `{octet1}.{octet2}.{octet3}.{octet4}` or IPv6 addresses in the format 378 // `{block1}:{block2}:{block3}:{block4}:{block5}:{block6}:{block7}:{block8}`. 379 repeated string ip_addresses = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; 380 381 // The network connect mode of the Filestore instance. 382 // If not provided, the connect mode defaults to DIRECT_PEERING. 383 ConnectMode connect_mode = 6; 384} 385 386// File share configuration for the instance. 387message FileShareConfig { 388 // Required. The name of the file share. Must use 1-16 characters for the 389 // basic service tier and 1-63 characters for all other service tiers. 390 // Must use lowercase letters, numbers, or underscores `[a-z0-9_]`. Must 391 // start with a letter. Immutable. 392 string name = 1; 393 394 // File share capacity in gigabytes (GB). 395 // Filestore defines 1 GB as 1024^3 bytes. 396 int64 capacity_gb = 2; 397 398 // The source that this file share has been restored from. Empty if the file 399 // share is created from scratch. 400 oneof source { 401 // The resource name of the backup, in the format 402 // `projects/{project_id}/locations/{location_id}/backups/{backup_id}`, that 403 // this file share has been restored from. 404 string source_backup = 9 [ 405 (google.api.resource_reference) = { type: "file.googleapis.com/Backup" } 406 ]; 407 } 408 409 // Nfs Export Options. 410 // There is a limit of 10 export options per file share. 411 repeated NfsExportOptions nfs_export_options = 8; 412} 413 414// NFS export options specifications. 415message NfsExportOptions { 416 // The access mode. 417 enum AccessMode { 418 // AccessMode not set. 419 ACCESS_MODE_UNSPECIFIED = 0; 420 421 // The client can only read the file share. 422 READ_ONLY = 1; 423 424 // The client can read and write the file share (default). 425 READ_WRITE = 2; 426 } 427 428 // The squash mode. 429 enum SquashMode { 430 // SquashMode not set. 431 SQUASH_MODE_UNSPECIFIED = 0; 432 433 // The Root user has root access to the file share (default). 434 NO_ROOT_SQUASH = 1; 435 436 // The Root user has squashed access to the anonymous uid/gid. 437 ROOT_SQUASH = 2; 438 } 439 440 // The security flavor. In general, a "flavor" represents a designed process 441 // or system. A "security flavor" is a system designed for the purpose of 442 // authenticating a data originator (client), recipient (server), and the data 443 // they transmit between one another. 444 enum SecurityFlavor { 445 // SecurityFlavor not set. 446 SECURITY_FLAVOR_UNSPECIFIED = 0; 447 448 // The user's UNIX user-id and group-ids are transferred "in the clear" (not 449 // encrypted) on the network, unauthenticated by the NFS server (default). 450 AUTH_SYS = 1; 451 452 // End-user authentication through Kerberos V5. 453 KRB5 = 2; 454 455 // krb5 plus integrity protection (data packets are tamper proof). 456 KRB5I = 3; 457 458 // krb5i plus privacy protection (data packets are tamper proof and 459 // encrypted). 460 KRB5P = 4; 461 } 462 463 // List of either an IPv4 addresses in the format 464 // `{octet1}.{octet2}.{octet3}.{octet4}` or CIDR ranges in the format 465 // `{octet1}.{octet2}.{octet3}.{octet4}/{mask size}` which may mount the 466 // file share. 467 // Overlapping IP ranges are not allowed, both within and across 468 // NfsExportOptions. An error will be returned. 469 // The limit is 64 IP ranges/addresses for each FileShareConfig among all 470 // NfsExportOptions. 471 repeated string ip_ranges = 1; 472 473 // Either READ_ONLY, for allowing only read requests on the exported 474 // directory, or READ_WRITE, for allowing both read and write requests. 475 // The default is READ_WRITE. 476 AccessMode access_mode = 2; 477 478 // Either NO_ROOT_SQUASH, for allowing root access on the exported directory, 479 // or ROOT_SQUASH, for not allowing root access. The default is 480 // NO_ROOT_SQUASH. 481 SquashMode squash_mode = 3; 482 483 // An integer representing the anonymous user id with a default value of 484 // 65534. 485 // Anon_uid may only be set with squash_mode of ROOT_SQUASH. An error will be 486 // returned if this field is specified for other squash_mode settings. 487 int64 anon_uid = 4; 488 489 // An integer representing the anonymous group id with a default value of 490 // 65534. 491 // Anon_gid may only be set with squash_mode of ROOT_SQUASH. An error will be 492 // returned if this field is specified for other squash_mode settings. 493 int64 anon_gid = 5; 494 495 // The security flavors allowed for mount operations. 496 // The default is AUTH_SYS. 497 repeated SecurityFlavor security_flavors = 6; 498} 499 500// ManagedActiveDirectoryConfig contains all the parameters for connecting 501// to Managed Active Directory. 502message ManagedActiveDirectoryConfig { 503 // Fully qualified domain name. 504 string domain = 1; 505 506 // The computer name is used as a prefix to the mount remote target. 507 // Example: if the computer_name is `my-computer`, the mount command will 508 // look like: `$mount -o vers=4,sec=krb5 509 // my-computer.filestore.<domain>:<share>`. 510 string computer = 2; 511} 512 513// Directory Services configuration for Kerberos-based authentication. 514message DirectoryServicesConfig { 515 oneof config { 516 // Configuration for Managed Service for Microsoft Active Directory. 517 ManagedActiveDirectoryConfig managed_active_directory = 1; 518 } 519} 520 521// A Filestore instance. 522message Instance { 523 option (google.api.resource) = { 524 type: "file.googleapis.com/Instance" 525 pattern: "projects/{project}/locations/{location}/instances/{instance}" 526 }; 527 528 // The instance state. 529 enum State { 530 // State not set. 531 STATE_UNSPECIFIED = 0; 532 533 // The instance is being created. 534 CREATING = 1; 535 536 // The instance is available for use. 537 READY = 2; 538 539 // Work is being done on the instance. You can get further details from the 540 // `statusMessage` field of the `Instance` resource. 541 REPAIRING = 3; 542 543 // The instance is shutting down. 544 DELETING = 4; 545 546 // The instance is experiencing an issue and might be unusable. You can get 547 // further details from the `statusMessage` field of the `Instance` 548 // resource. 549 ERROR = 6; 550 551 // The instance is restoring a snapshot or backup to an existing file share 552 // and may be unusable during this time. 553 RESTORING = 7; 554 555 // The instance is suspended. You can get further details from 556 // the `suspension_reasons` field of the `Instance` resource. 557 SUSPENDED = 8; 558 559 // The instance is reverting to a snapshot. 560 REVERTING = 9; 561 562 // The instance is in the process of becoming suspended. 563 SUSPENDING = 10; 564 565 // The instance is in the process of becoming active. 566 RESUMING = 11; 567 } 568 569 // Available service tiers. 570 enum Tier { 571 // Not set. 572 TIER_UNSPECIFIED = 0; 573 574 // STANDARD tier. BASIC_HDD is the preferred term for this tier. 575 STANDARD = 1; 576 577 // PREMIUM tier. BASIC_SSD is the preferred term for this tier. 578 PREMIUM = 2; 579 580 // BASIC instances offer a maximum capacity of 63.9 TB. 581 // BASIC_HDD is an alias for STANDARD Tier, offering economical 582 // performance backed by HDD. 583 BASIC_HDD = 3; 584 585 // BASIC instances offer a maximum capacity of 63.9 TB. 586 // BASIC_SSD is an alias for PREMIUM Tier, and offers improved 587 // performance backed by SSD. 588 BASIC_SSD = 4; 589 590 // HIGH_SCALE instances offer expanded capacity and performance scaling 591 // capabilities. 592 HIGH_SCALE_SSD = 6; 593 594 // ENTERPRISE instances offer the features and availability needed for 595 // mission-critical workloads. 596 ENTERPRISE = 7; 597 598 // ZONAL instances offer expanded capacity and performance scaling 599 // capabilities. 600 ZONAL = 8; 601 602 // REGIONAL instances offer the features and availability needed for 603 // mission-critical workloads. 604 REGIONAL = 9; 605 } 606 607 // SuspensionReason contains the possible reasons for a suspension. 608 enum SuspensionReason { 609 // Not set. 610 SUSPENSION_REASON_UNSPECIFIED = 0; 611 612 // The KMS key used by the instance is either revoked or denied access to. 613 KMS_KEY_ISSUE = 1; 614 } 615 616 // File access protocol. 617 enum FileProtocol { 618 // FILE_PROTOCOL_UNSPECIFIED serves a "not set" default value when 619 // a FileProtocol is a separate field in a message. 620 FILE_PROTOCOL_UNSPECIFIED = 0; 621 622 // NFS 3.0. 623 NFS_V3 = 1; 624 625 // NFS 4.1. 626 NFS_V4_1 = 2; 627 } 628 629 // Output only. The resource name of the instance, in the format 630 // `projects/{project_id}/locations/{location_id}/instances/{instance_id}`. 631 string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; 632 633 // The description of the instance (2048 characters or less). 634 string description = 2; 635 636 // Output only. The instance state. 637 State state = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; 638 639 // Output only. Additional information about the instance state, if available. 640 string status_message = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; 641 642 // Output only. The time when the instance was created. 643 google.protobuf.Timestamp create_time = 7 644 [(google.api.field_behavior) = OUTPUT_ONLY]; 645 646 // The service tier of the instance. 647 Tier tier = 8; 648 649 // Resource labels to represent user provided metadata. 650 map<string, string> labels = 9; 651 652 // File system shares on the instance. 653 // For this version, only a single file share is supported. 654 repeated FileShareConfig file_shares = 10; 655 656 // VPC networks to which the instance is connected. 657 // For this version, only a single network is supported. 658 repeated NetworkConfig networks = 11; 659 660 // Server-specified ETag for the instance resource to prevent simultaneous 661 // updates from overwriting each other. 662 string etag = 12; 663 664 // Output only. Reserved for future use. 665 google.protobuf.BoolValue satisfies_pzs = 13 666 [(google.api.field_behavior) = OUTPUT_ONLY]; 667 668 // Output only. Reserved for future use. 669 bool satisfies_pzi = 26 [(google.api.field_behavior) = OUTPUT_ONLY]; 670 671 // KMS key name used for data encryption. 672 string kms_key_name = 14; 673 674 // Output only. Field indicates all the reasons the instance is in "SUSPENDED" 675 // state. 676 repeated SuspensionReason suspension_reasons = 15 677 [(google.api.field_behavior) = OUTPUT_ONLY]; 678 679 // Output only. The max capacity of the instance. 680 int64 max_capacity_gb = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; 681 682 // Output only. The increase/decrease capacity step size. 683 int64 capacity_step_size_gb = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; 684 685 // The max number of shares allowed. 686 int64 max_share_count = 18; 687 688 // The storage capacity of the instance in gigabytes (GB = 1024^3 bytes). 689 // This capacity can be increased up to `max_capacity_gb` GB in multipliers 690 // of `capacity_step_size_gb` GB. 691 int64 capacity_gb = 19; 692 693 // Indicates whether this instance uses a multi-share configuration with which 694 // it can have more than one file-share or none at all. File-shares are added, 695 // updated and removed through the separate file-share APIs. 696 bool multi_share_enabled = 20; 697 698 // Immutable. The protocol indicates the access protocol for all shares in the 699 // instance. This field is immutable and it cannot be changed after the 700 // instance has been created. Default value: `NFS_V3`. 701 FileProtocol protocol = 21 [(google.api.field_behavior) = IMMUTABLE]; 702 703 // Directory Services configuration for Kerberos-based authentication. 704 // Should only be set if protocol is "NFS_V4_1". 705 DirectoryServicesConfig directory_services = 24; 706} 707 708// CreateInstanceRequest creates an instance. 709message CreateInstanceRequest { 710 // Required. The instance's project and location, in the format 711 // `projects/{project_id}/locations/{location}`. In Filestore, 712 // locations map to Google Cloud zones, for example **us-west1-b**. 713 string parent = 1 [ 714 (google.api.field_behavior) = REQUIRED, 715 (google.api.resource_reference) = { 716 type: "locations.googleapis.com/Location" 717 } 718 ]; 719 720 // Required. The ID of the instance to create. 721 // The ID must be unique within the specified project and location. 722 // 723 // This value must start with a lowercase letter followed by up to 62 724 // lowercase letters, numbers, or hyphens, and cannot end with a hyphen. 725 string instance_id = 2 [(google.api.field_behavior) = REQUIRED]; 726 727 // Required. An [instance resource][google.cloud.filestore.v1beta1.Instance] 728 Instance instance = 3 [(google.api.field_behavior) = REQUIRED]; 729} 730 731// GetInstanceRequest gets the state of an instance. 732message GetInstanceRequest { 733 // Required. The instance resource name, in the format 734 // `projects/{project_id}/locations/{location}/instances/{instance_id}`. 735 string name = 1 [ 736 (google.api.field_behavior) = REQUIRED, 737 (google.api.resource_reference) = { type: "file.googleapis.com/Instance" } 738 ]; 739} 740 741// UpdateInstanceRequest updates the settings of an instance. 742message UpdateInstanceRequest { 743 // Required. Mask of fields to update. At least one path must be supplied in 744 // this field. The elements of the repeated paths field may only include 745 // these fields: 746 // 747 // * "description" 748 // * "file_shares" 749 // * "labels" 750 google.protobuf.FieldMask update_mask = 1 751 [(google.api.field_behavior) = REQUIRED]; 752 753 // Required. Only fields specified in update_mask are updated. 754 Instance instance = 2 [(google.api.field_behavior) = REQUIRED]; 755} 756 757// RestoreInstanceRequest restores an existing instance's file share from a 758// backup. 759message RestoreInstanceRequest { 760 // Required. The resource name of the instance, in the format 761 // `projects/{project_id}/locations/{location_id}/instances/{instance_id}`. 762 string name = 1 [ 763 (google.api.field_behavior) = REQUIRED, 764 (google.api.resource_reference) = { type: "file.googleapis.com/Instance" } 765 ]; 766 767 // Required. Name of the file share in the Filestore instance that the backup 768 // is being restored to. 769 string file_share = 2 [(google.api.field_behavior) = REQUIRED]; 770 771 oneof source { 772 // The resource name of the snapshot, in the format 773 // `projects/{project_id}/locations/{location_id}/snapshots/{snapshot_id}`. 774 string source_snapshot = 3 [ 775 deprecated = true, 776 (google.api.resource_reference) = { type: "file.googleapis.com/Snapshot" } 777 ]; 778 779 // The resource name of the backup, in the format 780 // `projects/{project_id}/locations/{location_id}/backups/{backup_id}`. 781 string source_backup = 4 [ 782 (google.api.resource_reference) = { type: "file.googleapis.com/Backup" } 783 ]; 784 } 785} 786 787// RevertInstanceRequest reverts the given instance's file share to the 788// specified snapshot. 789message RevertInstanceRequest { 790 // Required. 791 // `projects/{project_id}/locations/{location_id}/instances/{instance_id}`. 792 // The resource name of the instance, in the format 793 string name = 1 [ 794 (google.api.field_behavior) = REQUIRED, 795 (google.api.resource_reference) = { type: "file.googleapis.com/Instance" } 796 ]; 797 798 // Required. The snapshot resource ID, in the format 'my-snapshot', where the 799 // specified ID is the {snapshot_id} of the fully qualified name like 800 // `projects/{project_id}/locations/{location_id}/instances/{instance_id}/snapshots/{snapshot_id}` 801 string target_snapshot_id = 2 [(google.api.field_behavior) = REQUIRED]; 802} 803 804// DeleteInstanceRequest deletes an instance. 805message DeleteInstanceRequest { 806 // Required. The instance resource name, in the format 807 // `projects/{project_id}/locations/{location}/instances/{instance_id}` 808 string name = 1 [ 809 (google.api.field_behavior) = REQUIRED, 810 (google.api.resource_reference) = { type: "file.googleapis.com/Instance" } 811 ]; 812 813 // If set to true, any snapshots of the instance will also be deleted. 814 // (Otherwise, the request will only work if the instance has no snapshots.) 815 bool force = 2; 816} 817 818// ListInstancesRequest lists instances. 819message ListInstancesRequest { 820 // Required. The project and location for which to retrieve instance 821 // information, in the format `projects/{project_id}/locations/{location}`. In 822 // Cloud Filestore, locations map to Google Cloud zones, for example 823 // **us-west1-b**. To retrieve instance information for all locations, use "-" 824 // for the 825 // `{location}` value. 826 string parent = 1 [ 827 (google.api.field_behavior) = REQUIRED, 828 (google.api.resource_reference) = { 829 type: "locations.googleapis.com/Location" 830 } 831 ]; 832 833 // The maximum number of items to return. 834 int32 page_size = 2; 835 836 // The next_page_token value to use if there are additional 837 // results to retrieve for this list request. 838 string page_token = 3; 839 840 // Sort results. Supported values are "name", "name desc" or "" (unsorted). 841 string order_by = 4; 842 843 // List filter. 844 string filter = 5; 845} 846 847// ListInstancesResponse is the result of ListInstancesRequest. 848message ListInstancesResponse { 849 // A list of instances in the project for the specified location. 850 // 851 // If the `{location}` value in the request is "-", the response contains a 852 // list of instances from all locations. If any location is unreachable, the 853 // response will only return instances in reachable locations and the 854 // "unreachable" field will be populated with a list of unreachable locations. 855 repeated Instance instances = 1; 856 857 // The token you can use to retrieve the next page of results. Not returned 858 // if there are no more results in the list. 859 string next_page_token = 2; 860 861 // Locations that could not be reached. 862 repeated string unreachable = 3; 863} 864 865// A Filestore snapshot. 866message Snapshot { 867 option (google.api.resource) = { 868 type: "file.googleapis.com/Snapshot" 869 pattern: "projects/{project}/locations/{location}/instances/{instance}/snapshots/{snapshot}" 870 }; 871 872 // The snapshot state. 873 enum State { 874 // State not set. 875 STATE_UNSPECIFIED = 0; 876 877 // Snapshot is being created. 878 CREATING = 1; 879 880 // Snapshot is available for use. 881 READY = 3; 882 883 // Snapshot is being deleted. 884 DELETING = 4; 885 } 886 887 // Output only. The resource name of the snapshot, in the format 888 // `projects/{project_id}/locations/{location_id}/instances/{instance_id}/snapshots/{snapshot_id}`. 889 string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; 890 891 // A description of the snapshot with 2048 characters or less. 892 // Requests with longer descriptions will be rejected. 893 string description = 2; 894 895 // Output only. The snapshot state. 896 State state = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; 897 898 // Output only. The time when the snapshot was created. 899 google.protobuf.Timestamp create_time = 4 900 [(google.api.field_behavior) = OUTPUT_ONLY]; 901 902 // Resource labels to represent user provided metadata. 903 map<string, string> labels = 5; 904 905 // Output only. The amount of bytes needed to allocate a full copy of the 906 // snapshot content 907 int64 filesystem_used_bytes = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; 908} 909 910// CreateSnapshotRequest creates a snapshot. 911message CreateSnapshotRequest { 912 // Required. The Filestore Instance to create the snapshots of, in the format 913 // `projects/{project_id}/locations/{location}/instances/{instance_id}` 914 string parent = 1 [ 915 (google.api.field_behavior) = REQUIRED, 916 (google.api.resource_reference) = { type: "file.googleapis.com/Instance" } 917 ]; 918 919 // Required. The ID to use for the snapshot. 920 // The ID must be unique within the specified instance. 921 // 922 // This value must start with a lowercase letter followed by up to 62 923 // lowercase letters, numbers, or hyphens, and cannot end with a hyphen. 924 string snapshot_id = 2 [(google.api.field_behavior) = REQUIRED]; 925 926 // Required. A snapshot resource 927 Snapshot snapshot = 3 [(google.api.field_behavior) = REQUIRED]; 928} 929 930// GetSnapshotRequest gets the state of a snapshot. 931message GetSnapshotRequest { 932 // Required. The snapshot resource name, in the format 933 // `projects/{project_id}/locations/{location}/instances/{instance_id}/snapshots/{snapshot_id}` 934 string name = 1 [ 935 (google.api.field_behavior) = REQUIRED, 936 (google.api.resource_reference) = { type: "file.googleapis.com/Snapshot" } 937 ]; 938} 939 940// DeleteSnapshotRequest deletes a snapshot. 941message DeleteSnapshotRequest { 942 // Required. The snapshot resource name, in the format 943 // `projects/{project_id}/locations/{location}/instances/{instance_id}/snapshots/{snapshot_id}` 944 string name = 1 [ 945 (google.api.field_behavior) = REQUIRED, 946 (google.api.resource_reference) = { type: "file.googleapis.com/Snapshot" } 947 ]; 948} 949 950// UpdateSnapshotRequest updates description and/or labels for a snapshot. 951message UpdateSnapshotRequest { 952 // Required. Mask of fields to update. At least one path must be supplied in 953 // this field. 954 google.protobuf.FieldMask update_mask = 1 955 [(google.api.field_behavior) = REQUIRED]; 956 957 // Required. A snapshot resource 958 Snapshot snapshot = 2 [(google.api.field_behavior) = REQUIRED]; 959} 960 961// ListSnapshotsRequest lists snapshots. 962message ListSnapshotsRequest { 963 // Required. The instance for which to retrieve snapshot information, 964 // in the format 965 // `projects/{project_id}/locations/{location}/instances/{instance_id}`. 966 string parent = 1 [ 967 (google.api.field_behavior) = REQUIRED, 968 (google.api.resource_reference) = { type: "file.googleapis.com/Instance" } 969 ]; 970 971 // The maximum number of items to return. 972 int32 page_size = 2; 973 974 // The next_page_token value to use if there are additional 975 // results to retrieve for this list request. 976 string page_token = 3; 977 978 // Sort results. Supported values are "name", "name desc" or "" (unsorted). 979 string order_by = 4; 980 981 // List filter. 982 string filter = 5; 983} 984 985// ListSnapshotsResponse is the result of ListSnapshotsRequest. 986message ListSnapshotsResponse { 987 // A list of snapshots in the project for the specified instance. 988 repeated Snapshot snapshots = 1; 989 990 // The token you can use to retrieve the next page of results. Not returned 991 // if there are no more results in the list. 992 string next_page_token = 2; 993} 994 995// A Filestore backup. 996message Backup { 997 option (google.api.resource) = { 998 type: "file.googleapis.com/Backup" 999 pattern: "projects/{project}/locations/{location}/backups/{backup}" 1000 }; 1001 1002 // The backup state. 1003 enum State { 1004 // State not set. 1005 STATE_UNSPECIFIED = 0; 1006 1007 // Backup is being created. 1008 CREATING = 1; 1009 1010 // Backup has been taken and the operation is being finalized. At this 1011 // point, changes to the file share will not be reflected in the backup. 1012 FINALIZING = 2; 1013 1014 // Backup is available for use. 1015 READY = 3; 1016 1017 // Backup is being deleted. 1018 DELETING = 4; 1019 1020 // Backup is not valid and cannot be used for creating new instances or 1021 // restoring existing instances. 1022 INVALID = 5; 1023 } 1024 1025 // Output only. The resource name of the backup, in the format 1026 // `projects/{project_id}/locations/{location_id}/backups/{backup_id}`. 1027 string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; 1028 1029 // A description of the backup with 2048 characters or less. 1030 // Requests with longer descriptions will be rejected. 1031 string description = 2; 1032 1033 // Output only. The backup state. 1034 State state = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; 1035 1036 // Output only. The time when the backup was created. 1037 google.protobuf.Timestamp create_time = 4 1038 [(google.api.field_behavior) = OUTPUT_ONLY]; 1039 1040 // Resource labels to represent user provided metadata. 1041 map<string, string> labels = 5; 1042 1043 // Output only. Capacity of the source file share when the backup was created. 1044 int64 capacity_gb = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; 1045 1046 // Output only. The size of the storage used by the backup. As backups share 1047 // storage, this number is expected to change with backup creation/deletion. 1048 int64 storage_bytes = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; 1049 1050 // The resource name of the source Filestore instance, in the format 1051 // `projects/{project_id}/locations/{location_id}/instances/{instance_id}`, 1052 // used to create this backup. 1053 string source_instance = 8 [ 1054 (google.api.resource_reference) = { type: "file.googleapis.com/Instance" } 1055 ]; 1056 1057 // Name of the file share in the source Filestore instance that the 1058 // backup is created from. 1059 string source_file_share = 9; 1060 1061 // Output only. The service tier of the source Filestore instance that this 1062 // backup is created from. 1063 Instance.Tier source_instance_tier = 10 1064 [(google.api.field_behavior) = OUTPUT_ONLY]; 1065 1066 // Output only. Amount of bytes that will be downloaded if the backup is 1067 // restored 1068 int64 download_bytes = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; 1069 1070 // Output only. Reserved for future use. 1071 google.protobuf.BoolValue satisfies_pzs = 12 1072 [(google.api.field_behavior) = OUTPUT_ONLY]; 1073 1074 // Output only. Reserved for future use. 1075 bool satisfies_pzi = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; 1076 1077 // Immutable. KMS key name used for data encryption. 1078 string kms_key_name = 13 [(google.api.field_behavior) = IMMUTABLE]; 1079} 1080 1081// CreateBackupRequest creates a backup. 1082message CreateBackupRequest { 1083 // Required. The backup's project and location, in the format 1084 // `projects/{project_id}/locations/{location}`. In Filestore, 1085 // backup locations map to Google Cloud regions, for example **us-west1**. 1086 string parent = 1 [ 1087 (google.api.field_behavior) = REQUIRED, 1088 (google.api.resource_reference) = { 1089 type: "locations.googleapis.com/Location" 1090 } 1091 ]; 1092 1093 // Required. A [backup resource][google.cloud.filestore.v1beta1.Backup] 1094 Backup backup = 2 [(google.api.field_behavior) = REQUIRED]; 1095 1096 // Required. The ID to use for the backup. 1097 // The ID must be unique within the specified project and location. 1098 // 1099 // This value must start with a lowercase letter followed by up to 62 1100 // lowercase letters, numbers, or hyphens, and cannot end with a hyphen. 1101 string backup_id = 3 [(google.api.field_behavior) = REQUIRED]; 1102} 1103 1104// DeleteBackupRequest deletes a backup. 1105message DeleteBackupRequest { 1106 // Required. The backup resource name, in the format 1107 // `projects/{project_id}/locations/{location}/backups/{backup_id}` 1108 string name = 1 [ 1109 (google.api.field_behavior) = REQUIRED, 1110 (google.api.resource_reference) = { type: "file.googleapis.com/Backup" } 1111 ]; 1112} 1113 1114// UpdateBackupRequest updates description and/or labels for a backup. 1115message UpdateBackupRequest { 1116 // Required. A [backup resource][google.cloud.filestore.v1beta1.Backup] 1117 Backup backup = 1 [(google.api.field_behavior) = REQUIRED]; 1118 1119 // Required. Mask of fields to update. At least one path must be supplied in 1120 // this field. 1121 google.protobuf.FieldMask update_mask = 2 1122 [(google.api.field_behavior) = REQUIRED]; 1123} 1124 1125// GetBackupRequest gets the state of a backup. 1126message GetBackupRequest { 1127 // Required. The backup resource name, in the format 1128 // `projects/{project_id}/locations/{location}/backups/{backup_id}`. 1129 string name = 1 [ 1130 (google.api.field_behavior) = REQUIRED, 1131 (google.api.resource_reference) = { type: "file.googleapis.com/Backup" } 1132 ]; 1133} 1134 1135// ListBackupsRequest lists backups. 1136message ListBackupsRequest { 1137 // Required. The project and location for which to retrieve backup 1138 // information, in the format `projects/{project_id}/locations/{location}`. In 1139 // Filestore, backup locations map to Google Cloud regions, for example 1140 // **us-west1**. To retrieve backup information for all locations, use "-" for 1141 // the 1142 // `{location}` value. 1143 string parent = 1 [ 1144 (google.api.field_behavior) = REQUIRED, 1145 (google.api.resource_reference) = { 1146 type: "locations.googleapis.com/Location" 1147 } 1148 ]; 1149 1150 // The maximum number of items to return. 1151 int32 page_size = 2; 1152 1153 // The next_page_token value to use if there are additional 1154 // results to retrieve for this list request. 1155 string page_token = 3; 1156 1157 // Sort results. Supported values are "name", "name desc" or "" (unsorted). 1158 string order_by = 4; 1159 1160 // List filter. 1161 string filter = 5; 1162} 1163 1164// ListBackupsResponse is the result of ListBackupsRequest. 1165message ListBackupsResponse { 1166 // A list of backups in the project for the specified location. 1167 // 1168 // If the `{location}` value in the request is "-", the response contains a 1169 // list of backups from all locations. If any location is unreachable, the 1170 // response will only return backups in reachable locations and the 1171 // "unreachable" field will be populated with a list of unreachable 1172 // locations. 1173 repeated Backup backups = 1; 1174 1175 // The token you can use to retrieve the next page of results. Not returned 1176 // if there are no more results in the list. 1177 string next_page_token = 2; 1178 1179 // Locations that could not be reached. 1180 repeated string unreachable = 3; 1181} 1182 1183// A Filestore share. 1184message Share { 1185 option (google.api.resource) = { 1186 type: "file.googleapis.com/Share" 1187 pattern: "projects/{project}/locations/{location}/instances/{instance}/shares/{share}" 1188 }; 1189 1190 // The share state. 1191 enum State { 1192 // State not set. 1193 STATE_UNSPECIFIED = 0; 1194 1195 // Share is being created. 1196 CREATING = 1; 1197 1198 // Share is ready for use. 1199 READY = 3; 1200 1201 // Share is being deleted. 1202 DELETING = 4; 1203 } 1204 1205 // Output only. The resource name of the share, in the format 1206 // `projects/{project_id}/locations/{location_id}/instances/{instance_id}/shares/{share_id}`. 1207 string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; 1208 1209 // The mount name of the share. Must be 63 characters or less and consist of 1210 // uppercase or lowercase letters, numbers, and underscores. 1211 string mount_name = 2; 1212 1213 // A description of the share with 2048 characters or less. Requests with 1214 // longer descriptions will be rejected. 1215 string description = 3; 1216 1217 // File share capacity in gigabytes (GB). Filestore defines 1 GB as 1218 // 1024^3 bytes. Must be greater than 0. 1219 int64 capacity_gb = 4; 1220 1221 // Nfs Export Options. 1222 // There is a limit of 10 export options per file share. 1223 repeated NfsExportOptions nfs_export_options = 5; 1224 1225 // Output only. The share state. 1226 State state = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; 1227 1228 // Output only. The time when the share was created. 1229 google.protobuf.Timestamp create_time = 7 1230 [(google.api.field_behavior) = OUTPUT_ONLY]; 1231 1232 // Resource labels to represent user provided metadata. 1233 map<string, string> labels = 8; 1234 1235 // The source that this Share has been restored from. Empty if the Share is 1236 // created from scratch. 1237 oneof source { 1238 // Immutable. Full name of the Cloud Filestore Backup resource that this 1239 // Share is restored from, in the format of 1240 // projects/{project_id}/locations/{location_id}/backups/{backup_id}. 1241 // Empty, if the Share is created from scratch and not restored from a 1242 // backup. 1243 string backup = 9 [ 1244 (google.api.field_behavior) = IMMUTABLE, 1245 (google.api.resource_reference) = { type: "file.googleapis.com/Backup" } 1246 ]; 1247 } 1248} 1249 1250// CreateShareRequest creates a share. 1251message CreateShareRequest { 1252 // Required. The Filestore Instance to create the share for, in the format 1253 // `projects/{project_id}/locations/{location}/instances/{instance_id}` 1254 string parent = 1 [ 1255 (google.api.field_behavior) = REQUIRED, 1256 (google.api.resource_reference) = { type: "file.googleapis.com/Instance" } 1257 ]; 1258 1259 // Required. The ID to use for the share. 1260 // The ID must be unique within the specified instance. 1261 // 1262 // This value must start with a lowercase letter followed by up to 62 1263 // lowercase letters, numbers, or hyphens, and cannot end with a hyphen. 1264 string share_id = 2 [(google.api.field_behavior) = REQUIRED]; 1265 1266 // Required. A share resource 1267 Share share = 3 [(google.api.field_behavior) = REQUIRED]; 1268} 1269 1270// GetShareRequest gets the state of a share. 1271message GetShareRequest { 1272 // Required. The share resource name, in the format 1273 // `projects/{project_id}/locations/{location}/instances/{instance_id}/shares/{share_id}` 1274 string name = 1 [ 1275 (google.api.field_behavior) = REQUIRED, 1276 (google.api.resource_reference) = { type: "file.googleapis.com/Share" } 1277 ]; 1278} 1279 1280// DeleteShareRequest deletes a share. 1281message DeleteShareRequest { 1282 // Required. The share resource name, in the format 1283 // `projects/{project_id}/locations/{location}/instances/{instance_id}/share/{share_id}` 1284 string name = 1 [ 1285 (google.api.field_behavior) = REQUIRED, 1286 (google.api.resource_reference) = { type: "file.googleapis.com/Share" } 1287 ]; 1288} 1289 1290// ListSharesRequest lists shares. 1291message ListSharesRequest { 1292 // Required. The instance for which to retrieve share information, 1293 // in the format 1294 // `projects/{project_id}/locations/{location}/instances/{instance_id}`. 1295 string parent = 1 [ 1296 (google.api.field_behavior) = REQUIRED, 1297 (google.api.resource_reference) = { type: "file.googleapis.com/Instance" } 1298 ]; 1299 1300 // The maximum number of items to return. 1301 int32 page_size = 2; 1302 1303 // The next_page_token value to use if there are additional 1304 // results to retrieve for this list request. 1305 string page_token = 3; 1306 1307 // Sort results. Supported values are "name", "name desc" or "" (unsorted). 1308 string order_by = 4; 1309 1310 // List filter. 1311 string filter = 5; 1312} 1313 1314// ListSharesResponse is the result of ListSharesRequest. 1315message ListSharesResponse { 1316 // A list of shares in the project for the specified instance. 1317 repeated Share shares = 1; 1318 1319 // The token you can use to retrieve the next page of results. Not returned 1320 // if there are no more results in the list. 1321 string next_page_token = 2; 1322 1323 // Locations that could not be reached. 1324 repeated string unreachable = 3; 1325} 1326 1327// UpdateShareRequest updates the settings of a share. 1328message UpdateShareRequest { 1329 // Required. A share resource. 1330 // Only fields specified in update_mask are updated. 1331 Share share = 1 [(google.api.field_behavior) = REQUIRED]; 1332 1333 // Required. Mask of fields to update. At least one path must be supplied in 1334 // this field. The elements of the repeated paths field may only include these 1335 // fields: 1336 // 1337 // * "description" 1338 // * "capacity_gb" 1339 // * "labels" 1340 // * "nfs_export_options" 1341 google.protobuf.FieldMask update_mask = 2 1342 [(google.api.field_behavior) = REQUIRED]; 1343} 1344