google-cloud-lustre-v1 1.0.1 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -2
  3. data/lib/google/cloud/lustre/v1/bindings_override.rb +58 -1
  4. data/lib/google/cloud/lustre/v1/directory_policy_pb.rb +31 -0
  5. data/lib/google/cloud/lustre/v1/instance_pb.rb +16 -1
  6. data/lib/google/cloud/lustre/v1/lustre/client.rb +1249 -124
  7. data/lib/google/cloud/lustre/v1/lustre/credentials.rb +1 -1
  8. data/lib/google/cloud/lustre/v1/lustre/operations.rb +1 -1
  9. data/lib/google/cloud/lustre/v1/lustre/paths.rb +107 -1
  10. data/lib/google/cloud/lustre/v1/lustre/rest/client.rb +1173 -117
  11. data/lib/google/cloud/lustre/v1/lustre/rest/operations.rb +1 -1
  12. data/lib/google/cloud/lustre/v1/lustre/rest/service_stub.rb +615 -1
  13. data/lib/google/cloud/lustre/v1/lustre/rest.rb +1 -1
  14. data/lib/google/cloud/lustre/v1/lustre.rb +1 -1
  15. data/lib/google/cloud/lustre/v1/lustre_pb.rb +3 -1
  16. data/lib/google/cloud/lustre/v1/lustre_services_pb.rb +21 -1
  17. data/lib/google/cloud/lustre/v1/mirror_pb.rb +37 -0
  18. data/lib/google/cloud/lustre/v1/rest.rb +1 -1
  19. data/lib/google/cloud/lustre/v1/transfer_pb.rb +1 -1
  20. data/lib/google/cloud/lustre/v1/version.rb +1 -1
  21. data/lib/google/cloud/lustre/v1.rb +1 -1
  22. data/lib/google-cloud-lustre-v1.rb +1 -1
  23. data/proto_docs/google/api/client.rb +1 -1
  24. data/proto_docs/google/api/field_behavior.rb +1 -1
  25. data/proto_docs/google/api/field_info.rb +1 -1
  26. data/proto_docs/google/api/launch_stage.rb +1 -1
  27. data/proto_docs/google/api/resource.rb +1 -1
  28. data/proto_docs/google/cloud/lustre/v1/directory_policy.rb +142 -0
  29. data/proto_docs/google/cloud/lustre/v1/instance.rb +294 -7
  30. data/proto_docs/google/cloud/lustre/v1/mirror.rb +298 -0
  31. data/proto_docs/google/cloud/lustre/v1/transfer.rb +13 -1
  32. data/proto_docs/google/longrunning/operations.rb +1 -1
  33. data/proto_docs/google/protobuf/any.rb +1 -1
  34. data/proto_docs/google/protobuf/duration.rb +1 -1
  35. data/proto_docs/google/protobuf/empty.rb +1 -1
  36. data/proto_docs/google/protobuf/field_mask.rb +1 -1
  37. data/proto_docs/google/protobuf/timestamp.rb +8 -7
  38. data/proto_docs/google/rpc/code.rb +1 -1
  39. data/proto_docs/google/rpc/status.rb +1 -1
  40. data/proto_docs/google/type/date.rb +56 -0
  41. data/proto_docs/google/type/dayofweek.rb +49 -0
  42. data/proto_docs/google/type/timeofday.rb +49 -0
  43. metadata +30 -8
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright 2025 Google LLC
3
+ # Copyright 2026 Google LLC
4
4
  #
5
5
  # Licensed under the Apache License, Version 2.0 (the "License");
6
6
  # you may not use this file except in compliance with the License.
@@ -33,7 +33,9 @@ module Google
33
33
  # @!attribute [rw] capacity_gib
34
34
  # @return [::Integer]
35
35
  # Required. The storage capacity of the instance in gibibytes (GiB). Allowed
36
- # values are from `18000` to `954000`, in increments of 9000.
36
+ # values depend on the `perUnitStorageThroughput`. See [Performance
37
+ # tiers](https://docs.cloud.google.com/managed-lustre/docs/performance-tiers)
38
+ # for specific minimums, maximums, and step sizes for each performance tier.
37
39
  # @!attribute [rw] network
38
40
  # @return [::String]
39
41
  # Required. Immutable. The full name of the VPC network to which the instance
@@ -60,14 +62,70 @@ module Google
60
62
  # Optional. Labels as key value pairs.
61
63
  # @!attribute [rw] per_unit_storage_throughput
62
64
  # @return [::Integer]
63
- # Required. The throughput of the instance in MB/s/TiB.
64
- # Valid values are 125, 250, 500, 1000.
65
+ # Optional. The throughput of the instance in MBps per TiB. Valid values are
66
+ # 0, 125, 250, 500, 1000. See [Performance
67
+ # tiers](https://docs.cloud.google.com/managed-lustre/docs/performance-tiers)
68
+ # for more information.
69
+ #
70
+ # If the instance is using the Dynamic tier, this field must not be set or
71
+ # must be set to zero.
65
72
  # @!attribute [rw] gke_support_enabled
66
73
  # @deprecated This field is deprecated and may be removed in the next major version update.
67
74
  # @return [::Boolean]
68
- # Optional. Indicates whether you want to enable support for GKE clients. By
69
- # default, GKE clients are not supported. Deprecated. No longer required for
70
- # GKE instance creation.
75
+ # Optional. Deprecated: No longer required for GKE instance creation.
76
+ # Indicates whether you want to enable support for GKE clients. By default,
77
+ # GKE clients are not supported.
78
+ # @!attribute [rw] kms_key
79
+ # @return [::String]
80
+ # Optional. Immutable. The Cloud KMS key name to use for data encryption.
81
+ # If not set, the instance will use Google-managed encryption keys.
82
+ # If set, the instance will use customer-managed encryption keys.
83
+ # The key must be in the same region as the instance.
84
+ # The key format is:
85
+ # projects/\\{project}/locations/\\{location}/keyRings/\\{key_ring}/cryptoKeys/\\{key}
86
+ # @!attribute [r] state_reason
87
+ # @return [::String]
88
+ # Output only. The reason why the instance is in a certain state (e.g.
89
+ # SUSPENDED).
90
+ # @!attribute [rw] placement_policy
91
+ # @return [::String]
92
+ # Optional. The placement policy name for the instance in the format of
93
+ # projects/\\{project}/locations/\\{location}/resourcePolicies/\\{resource_policy}
94
+ # @!attribute [rw] access_rules_options
95
+ # @return [::Google::Cloud::Lustre::V1::AccessRulesOptions]
96
+ # Optional. The access rules options for the instance.
97
+ # @!attribute [r] uid
98
+ # @return [::String]
99
+ # Output only. Unique ID of the resource.
100
+ # This is unrelated to the access rules which allow specifying the root
101
+ # squash uid.
102
+ # @!attribute [rw] maintenance_policy
103
+ # @return [::Google::Cloud::Lustre::V1::MaintenancePolicy]
104
+ # Optional. The maintenance policy for the instance to determine when to
105
+ # allow or exclude the instance from maintenance updates.
106
+ # @!attribute [r] upcoming_maintenance_schedule
107
+ # @return [::Google::Cloud::Lustre::V1::MaintenanceSchedule]
108
+ # Output only. Date and time of upcoming maintenance for the instance, if a
109
+ # maintenance policy is set.
110
+ # @!attribute [rw] dynamic_tier_options
111
+ # @return [::Google::Cloud::Lustre::V1::DynamicTierOptions]
112
+ # Optional. Immutable. Specifies whether the instance is on the Dynamic tier.
113
+ # See [Performance
114
+ # tiers](https://docs.cloud.google.com/managed-lustre/docs/performance-tiers)
115
+ # for more information.
116
+ # @!attribute [r] available_version
117
+ # @return [::String]
118
+ # Output only. The available version that this instance can be upgraded to.
119
+ # Format: `Lustre_YYYYMMDD.NN_pXX`
120
+ # @!attribute [rw] target_version
121
+ # @return [::String]
122
+ # Optional. The target version of the instance. Setting this field triggers a
123
+ # self-service update to the specified version.
124
+ # Format: `Lustre_YYYYMMDD.NN_pXX` or `latest`
125
+ # @!attribute [r] effective_version
126
+ # @return [::String]
127
+ # Output only. The effective version of the instance.
128
+ # Format: `Lustre_YYYYMMDD.NN_pXX`
71
129
  class Instance
72
130
  include ::Google::Protobuf::MessageExts
73
131
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -106,6 +164,118 @@ module Google
106
164
 
107
165
  # The instance is being updated.
108
166
  UPDATING = 7
167
+
168
+ # The instance is suspended due to an issue related to Cloud KMS. The
169
+ # details are available in
170
+ # {::Google::Cloud::Lustre::V1::Instance#state_reason state_reason}.
171
+ SUSPENDED = 8
172
+ end
173
+ end
174
+
175
+ # Dynamic tier options for a Managed Lustre instance.
176
+ # @!attribute [rw] mode
177
+ # @return [::Google::Cloud::Lustre::V1::DynamicTierOptions::Mode]
178
+ # Required. Immutable. The dynamic tier mode of the instance.
179
+ class DynamicTierOptions
180
+ include ::Google::Protobuf::MessageExts
181
+ extend ::Google::Protobuf::MessageExts::ClassMethods
182
+
183
+ # Specifies the Dynamic performance tier for the instance.
184
+ #
185
+ # If this field is set to `DEFAULT_CACHE`, `per_unit_storage_throughput`
186
+ # must not be set or must be set to zero.
187
+ module Mode
188
+ # Unspecified dynamic tier mode.
189
+ MODE_UNSPECIFIED = 0
190
+
191
+ # The dynamic tier is explicitly disabled.
192
+ DISABLED = 1
193
+
194
+ # The dynamic tier is enabled.
195
+ DEFAULT_CACHE = 2
196
+ end
197
+ end
198
+
199
+ # IP-based access rules for the Managed Lustre instance. These options
200
+ # define the root user squash configuration.
201
+ # @!attribute [rw] access_rules
202
+ # @return [::Array<::Google::Cloud::Lustre::V1::AccessRulesOptions::AccessRule>]
203
+ # Optional. The access rules for the instance.
204
+ # @!attribute [rw] default_squash_mode
205
+ # @return [::Google::Cloud::Lustre::V1::AccessRulesOptions::SquashMode]
206
+ # Required. The squash mode for the default access rule.
207
+ # @!attribute [rw] default_squash_uid
208
+ # @return [::Integer]
209
+ # Optional. The user squash UID for the default access rule.
210
+ # This user squash UID applies to all root users connecting from clients
211
+ # that are not matched by any of the access rules. If not set, the default
212
+ # is 0 (no UID squash).
213
+ # @!attribute [rw] default_squash_gid
214
+ # @return [::Integer]
215
+ # Optional. The user squash GID for the default access rule.
216
+ # This user squash GID applies to all root users connecting from clients
217
+ # that are not matched by any of the access rules. If not set, the default
218
+ # is 0 (no GID squash).
219
+ class AccessRulesOptions
220
+ include ::Google::Protobuf::MessageExts
221
+ extend ::Google::Protobuf::MessageExts::ClassMethods
222
+
223
+ # A single policy group with IP-based access rules for the Managed
224
+ # Lustre instance.
225
+ # @!attribute [rw] name
226
+ # @return [::String]
227
+ # Required. The name of the access rule policy group.
228
+ # Must be 16 characters or less and include only alphanumeric characters
229
+ # or '_'.
230
+ # @!attribute [rw] ip_address_ranges
231
+ # @return [::Array<::String>]
232
+ # Required. The IP address ranges to which to apply this access rule.
233
+ # Accepts non-overlapping CIDR ranges (e.g., `192.168.1.0/24`) and IP
234
+ # addresses (e.g., `192.168.1.0`).
235
+ # @!attribute [rw] squash_mode
236
+ # @return [::Google::Cloud::Lustre::V1::AccessRulesOptions::SquashMode]
237
+ # Required. Squash mode for the access rule.
238
+ class AccessRule
239
+ include ::Google::Protobuf::MessageExts
240
+ extend ::Google::Protobuf::MessageExts::ClassMethods
241
+ end
242
+
243
+ # Squash mode for an access rule.
244
+ module SquashMode
245
+ # Unspecified squash mode.
246
+ SQUASH_MODE_UNSPECIFIED = 0
247
+
248
+ # Squash is disabled.
249
+ #
250
+ # If set inside an
251
+ # {::Google::Cloud::Lustre::V1::AccessRulesOptions::AccessRule AccessRule}, root
252
+ # users matching the [ip_ranges][AccessRule.ip_ranges] are not squashed.
253
+ #
254
+ # If set as the
255
+ # {::Google::Cloud::Lustre::V1::AccessRulesOptions#default_squash_mode default_squash_mode},
256
+ # root squash is disabled for this instance.
257
+ #
258
+ # If the default squash mode is `NO_SQUASH`, do not set the
259
+ # {::Google::Cloud::Lustre::V1::AccessRulesOptions#default_squash_uid default_squash_uid}
260
+ # or
261
+ # {::Google::Cloud::Lustre::V1::AccessRulesOptions#default_squash_gid default_squash_gid},
262
+ # or an `invalid argument` error is returned.
263
+ NO_SQUASH = 1
264
+
265
+ # Root user squash is enabled.
266
+ #
267
+ # Not supported inside an
268
+ # {::Google::Cloud::Lustre::V1::AccessRulesOptions::AccessRule AccessRule}.
269
+ #
270
+ # If set as the
271
+ # {::Google::Cloud::Lustre::V1::AccessRulesOptions#default_squash_mode default_squash_mode},
272
+ # root users not matching any of the
273
+ # {::Google::Cloud::Lustre::V1::AccessRulesOptions#access_rules access_rules}
274
+ # are squashed to the
275
+ # {::Google::Cloud::Lustre::V1::AccessRulesOptions#default_squash_uid default_squash_uid}
276
+ # and
277
+ # {::Google::Cloud::Lustre::V1::AccessRulesOptions#default_squash_gid default_squash_gid}.
278
+ ROOT_SQUASH = 2
109
279
  end
110
280
  end
111
281
 
@@ -251,6 +421,11 @@ module Google
251
421
  #
252
422
  # The request ID must be a valid UUID with the exception that zero UUID is
253
423
  # not supported (00000000-0000-0000-0000-000000000000).
424
+ # @!attribute [rw] force
425
+ # @return [::Boolean]
426
+ # Optional. If set to true, any sub-resources from this instance will also be
427
+ # deleted. Otherwise, the request will only work if the instance has no
428
+ # sub-resources.
254
429
  class DeleteInstanceRequest
255
430
  include ::Google::Protobuf::MessageExts
256
431
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -286,6 +461,118 @@ module Google
286
461
  include ::Google::Protobuf::MessageExts
287
462
  extend ::Google::Protobuf::MessageExts::ClassMethods
288
463
  end
464
+
465
+ # Defines a maintenance policy for a resource.
466
+ # @!attribute [rw] weekly_maintenance_windows
467
+ # @return [::Array<::Google::Cloud::Lustre::V1::MaintenancePolicy::WeeklyMaintenanceWindow>]
468
+ # Required. The weekly maintenance windows for the instance. Currently
469
+ # limited to 1 window.
470
+ # @!attribute [rw] maintenance_exclusion_window
471
+ # @return [::Array<::Google::Cloud::Lustre::V1::MaintenancePolicy::MaintenanceExclusionWindow>]
472
+ # Optional. The exclusion windows for the instance. Currently limited to 1
473
+ # window.
474
+ class MaintenancePolicy
475
+ include ::Google::Protobuf::MessageExts
476
+ extend ::Google::Protobuf::MessageExts::ClassMethods
477
+
478
+ # Weekly time window in which maintenance updates may occur.
479
+ # Duration of the window is currently fixed at 1 hour.
480
+ # Time zone is UTC.
481
+ # @!attribute [rw] day_of_week
482
+ # @return [::Google::Type::DayOfWeek]
483
+ # Required. Day of the week for the maintenance window.
484
+ # @!attribute [rw] start_time
485
+ # @return [::Google::Type::TimeOfDay]
486
+ # Required. Start time of the maintenance window in UTC time zone.
487
+ class WeeklyMaintenanceWindow
488
+ include ::Google::Protobuf::MessageExts
489
+ extend ::Google::Protobuf::MessageExts::ClassMethods
490
+ end
491
+
492
+ # Exclusion period when maintenance updates should not occur.
493
+ # An exclusion window can be in either of the following two formats:
494
+ # * Non-recurring : A full date, with non-zero year, month and day values.
495
+ # * Recurring : A month and day value, with a zero year.
496
+ # Time zone is UTC.
497
+ # @!attribute [rw] start_date
498
+ # @return [::Google::Type::Date]
499
+ # Required. Start date of the exclusion period in UTC time zone. This date
500
+ # is inclusive.
501
+ # @!attribute [rw] end_date
502
+ # @return [::Google::Type::Date]
503
+ # Required. End date of the exclusion period in UTC time zone. This date is
504
+ # inclusive.
505
+ # @!attribute [rw] time
506
+ # @return [::Google::Type::TimeOfDay]
507
+ # Required. Time in UTC when the exclusion window starts on start_date and
508
+ # ends on end_date. This can be:
509
+ # * Full time OR
510
+ # * All zeros for 00:00:00 UTC
511
+ class MaintenanceExclusionWindow
512
+ include ::Google::Protobuf::MessageExts
513
+ extend ::Google::Protobuf::MessageExts::ClassMethods
514
+ end
515
+ end
516
+
517
+ # Represents a scheduled maintenance event.
518
+ # @!attribute [r] start_time
519
+ # @return [::Google::Protobuf::Timestamp]
520
+ # Output only. The scheduled start time for the maintenance.
521
+ # @!attribute [r] end_time
522
+ # @return [::Google::Protobuf::Timestamp]
523
+ # Output only. The scheduled end time for the maintenance.
524
+ class MaintenanceSchedule
525
+ include ::Google::Protobuf::MessageExts
526
+ extend ::Google::Protobuf::MessageExts::ClassMethods
527
+ end
528
+
529
+ # Message for requesting to reschedule a maintenance event for a specific
530
+ # instance.
531
+ # @!attribute [rw] name
532
+ # @return [::String]
533
+ # Required. Format:
534
+ # projects/\\{project}/locations/\\{location}/instances/\\{instance}
535
+ # @!attribute [rw] reschedule
536
+ # @return [::Google::Cloud::Lustre::V1::RescheduleMaintenanceRequest::Reschedule]
537
+ # Required. The desired reschedule settings.
538
+ # @!attribute [rw] request_id
539
+ # @return [::String]
540
+ # Optional. A unique identifier for this request. A random UUID is
541
+ # recommended. This request is only idempotent if a `request_id` is provided.
542
+ class RescheduleMaintenanceRequest
543
+ include ::Google::Protobuf::MessageExts
544
+ extend ::Google::Protobuf::MessageExts::ClassMethods
545
+
546
+ # The desired reschedule settings.
547
+ # @!attribute [rw] reschedule_type
548
+ # @return [::Google::Cloud::Lustre::V1::RescheduleMaintenanceRequest::RescheduleType]
549
+ # Required. The type of rescheduling.
550
+ # @!attribute [rw] schedule_time
551
+ # @return [::Google::Protobuf::Timestamp]
552
+ # Optional. Required if reschedule_type is BY_TIME. Timestamp when the
553
+ # maintenance shall be rescheduled to. This time must be within
554
+ # 28 days of the original scheduled maintenance start time.
555
+ class Reschedule
556
+ include ::Google::Protobuf::MessageExts
557
+ extend ::Google::Protobuf::MessageExts::ClassMethods
558
+ end
559
+
560
+ # The type of rescheduling event. More reschedule types may be added in the
561
+ # future.
562
+ module RescheduleType
563
+ # Unspecified schedule type.
564
+ RESCHEDULE_TYPE_UNSPECIFIED = 0
565
+
566
+ # Apply update immediately
567
+ IMMEDIATE = 1
568
+
569
+ # Reschedule to the next available window.
570
+ NEXT_AVAILABLE_WINDOW = 2
571
+
572
+ # Reschedule to a specific time.
573
+ BY_TIME = 3
574
+ end
575
+ end
289
576
  end
290
577
  end
291
578
  end
@@ -0,0 +1,298 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2026 Google LLC
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # https://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ # Auto-generated by gapic-generator-ruby. DO NOT EDIT!
18
+
19
+
20
+ module Google
21
+ module Cloud
22
+ module Lustre
23
+ module V1
24
+ # Represents a Cloud Storage mirror.
25
+ # @!attribute [rw] name
26
+ # @return [::String]
27
+ # Identifier. Name of the mirror.
28
+ # Format:
29
+ # `projects/{project}/locations/{location}/instances/{instance}/mirrors/{mirror}`
30
+ # @!attribute [rw] gcs_path
31
+ # @return [::Google::Cloud::Lustre::V1::GcsPath]
32
+ # Required. Immutable. The URI to a Cloud Storage bucket, or a path within a
33
+ # bucket, using the format `gs://{BUCKET_NAME}/{OPTIONAL_PATH}/`. If a path
34
+ # inside the bucket is specified, it must end with a forward slash (`/`).
35
+ # @!attribute [rw] lustre_path
36
+ # @return [::Google::Cloud::Lustre::V1::LustrePath]
37
+ # Required. Immutable. The Managed Lustre directory to mirror to. Must be an
38
+ # absolute path starting with `/`, for example `/data` or `/data/subdir`.
39
+ # Defaults to the root directory, `/`. If the specified directory doesn't
40
+ # exist, it is created.
41
+ # @!attribute [rw] direction
42
+ # @return [::Google::Cloud::Lustre::V1::Mirror::Direction]
43
+ # Required. Immutable. Represents the direction of the mirror.
44
+ # @!attribute [rw] deleted_files_retained
45
+ # @return [::Boolean]
46
+ # Optional. If `true`, files are not deleted from Managed Lustre when the
47
+ # source files are deleted from Cloud Storage. Default is `false`.
48
+ # @!attribute [rw] description
49
+ # @return [::String]
50
+ # Optional. Description of the mirror.
51
+ # @!attribute [rw] labels
52
+ # @return [::Google::Protobuf::Map{::String => ::String}]
53
+ # Optional. Labels to apply to the mirror.
54
+ # @!attribute [r] create_time
55
+ # @return [::Google::Protobuf::Timestamp]
56
+ # Output only. [Output only] Create time stamp.
57
+ # @!attribute [r] update_time
58
+ # @return [::Google::Protobuf::Timestamp]
59
+ # Output only. [Output only] Update time stamp.
60
+ # @!attribute [r] uid
61
+ # @return [::String]
62
+ # Output only. Unique ID of the resource.
63
+ # @!attribute [r] state
64
+ # @return [::Google::Cloud::Lustre::V1::Mirror::State]
65
+ # Output only. [Output only] The current state of the mirror.
66
+ class Mirror
67
+ include ::Google::Protobuf::MessageExts
68
+ extend ::Google::Protobuf::MessageExts::ClassMethods
69
+
70
+ # @!attribute [rw] key
71
+ # @return [::String]
72
+ # @!attribute [rw] value
73
+ # @return [::String]
74
+ class LabelsEntry
75
+ include ::Google::Protobuf::MessageExts
76
+ extend ::Google::Protobuf::MessageExts::ClassMethods
77
+ end
78
+
79
+ # Represents the direction of the mirror.
80
+ # This enum expects to be extended in future with new mirror types.
81
+ module Direction
82
+ # Invalid value.
83
+ DIRECTION_UNSPECIFIED = 0
84
+
85
+ # Mirror from Cloud Storage to Lustre.
86
+ FROM_CLOUD_STORAGE = 1
87
+ end
88
+
89
+ # State of the mirror.
90
+ module State
91
+ # State is unspecified.
92
+ STATE_UNSPECIFIED = 0
93
+
94
+ # The mirror resource is being created.
95
+ CREATING = 1
96
+
97
+ # The initial sync is copying existing objects from Cloud Storage.
98
+ INITIAL_SYNC = 2
99
+
100
+ # The mirror is being deleted.
101
+ DELETING = 3
102
+
103
+ # The mirror is synchronizing changes as they occur.
104
+ ACTIVE = 4
105
+
106
+ # Synchronization is paused because the file system is close to capacity.
107
+ SUSPENDED = 5
108
+ end
109
+ end
110
+
111
+ # Request for CreateMirror.
112
+ # @!attribute [rw] parent
113
+ # @return [::String]
114
+ # Required. Parent instance resource where the mirror will be created, in the
115
+ # format: `projects/{project}/locations/{location}/instances/{instance}`
116
+ # @!attribute [rw] mirror_id
117
+ # @return [::String]
118
+ # Required. The ID to use for the mirror.
119
+ #
120
+ # * Must contain only lowercase letters, numbers, and hyphens.
121
+ # * Must start with a letter.
122
+ # * Must be between 1-63 characters.
123
+ # * Must end with a number or a letter.
124
+ #
125
+ # The ID cannot be changed after the mirror is created.
126
+ # @!attribute [rw] mirror
127
+ # @return [::Google::Cloud::Lustre::V1::Mirror]
128
+ # Required. The mirror to create.
129
+ # @!attribute [rw] request_id
130
+ # @return [::String]
131
+ # Optional. The unique ID to identify requests. Specify a unique request ID
132
+ # so that if you must retry your request, the server will know to ignore
133
+ # the request if it has already been completed. The server guarantees that a
134
+ # request doesn't result in creation of duplicate mirrors for at least 60
135
+ # minutes.
136
+ #
137
+ # For example, consider a situation where you make an initial request and the
138
+ # request times out. If you make the request again with the same request
139
+ # ID, the server can check if original operation with the same request ID
140
+ # was received, and if so, will ignore the second request. This prevents
141
+ # clients from accidentally creating duplicate mirrors.
142
+ #
143
+ # The request ID must be a valid UUID version 4 with the exception that zero
144
+ # UUID is not supported (`00000000-0000-0000-0000-000000000000`).
145
+ # This request is only idempotent if a `request_id` is provided.
146
+ class CreateMirrorRequest
147
+ include ::Google::Protobuf::MessageExts
148
+ extend ::Google::Protobuf::MessageExts::ClassMethods
149
+ end
150
+
151
+ # Request for UpdateMirror.
152
+ # @!attribute [rw] mirror
153
+ # @return [::Google::Cloud::Lustre::V1::Mirror]
154
+ # Required. Mirror to update. The mirror's `name` field is used to identify
155
+ # the mirror to update, in the format:
156
+ # `projects/{project}/locations/{location}/instances/{instance}/mirrors/{mirror}`
157
+ # @!attribute [rw] update_mask
158
+ # @return [::Google::Protobuf::FieldMask]
159
+ # Optional. Fields specified in the update_mask are relative to the resource,
160
+ # not the full request. A field will be overwritten if it is in the mask. If
161
+ # no mask is provided then all fields present in the request are overwritten.
162
+ # @!attribute [rw] request_id
163
+ # @return [::String]
164
+ # Optional. The unique ID to identify requests. Specify a unique request ID
165
+ # so that if you must retry your request, the server will know to ignore
166
+ # the request if it has already been completed. The server guarantees that a
167
+ # request doesn't result in the same update request being executed for at
168
+ # least 60 minutes.
169
+ #
170
+ # For example, consider a situation where you make an initial request and the
171
+ # request times out. If you make the request again with the same request
172
+ # ID, the server can check if original operation with the same request ID
173
+ # was received, and if so, will ignore the second request.
174
+ #
175
+ # The request ID must be a valid UUID version 4 with the exception that zero
176
+ # UUID is not supported (`00000000-0000-0000-0000-000000000000`).
177
+ # This request is only idempotent if a `request_id` is provided.
178
+ class UpdateMirrorRequest
179
+ include ::Google::Protobuf::MessageExts
180
+ extend ::Google::Protobuf::MessageExts::ClassMethods
181
+ end
182
+
183
+ # Request for DeleteMirror.
184
+ # @!attribute [rw] name
185
+ # @return [::String]
186
+ # Required. Name of the mirror to delete, in the format:
187
+ # `projects/{project}/locations/{location}/instances/{instance}/mirrors/{mirror}`
188
+ # @!attribute [rw] request_id
189
+ # @return [::String]
190
+ # Optional. The unique ID to identify requests. Specify a unique request ID
191
+ # so that if you must retry your request, the server will know to ignore
192
+ # the request if it has already been completed. The server guarantees that a
193
+ # request doesn't result in the same delete request being executed for at
194
+ # least 60 minutes.
195
+ #
196
+ # For example, consider a situation where you make an initial request and the
197
+ # request times out. If you make the request again with the same request
198
+ # ID, the server can check if original operation with the same request ID
199
+ # was received, and if so, will ignore the second request.
200
+ #
201
+ # The request ID must be a valid UUID version 4 with the exception that zero
202
+ # UUID is not supported (`00000000-0000-0000-0000-000000000000`).
203
+ # This request is only idempotent if a `request_id` is provided.
204
+ class DeleteMirrorRequest
205
+ include ::Google::Protobuf::MessageExts
206
+ extend ::Google::Protobuf::MessageExts::ClassMethods
207
+ end
208
+
209
+ # Request for GetMirror.
210
+ # @!attribute [rw] name
211
+ # @return [::String]
212
+ # Required. Name of the mirror to retrieve, in the format:
213
+ # `projects/{project}/locations/{location}/instances/{instance}/mirrors/{mirror}`
214
+ class GetMirrorRequest
215
+ include ::Google::Protobuf::MessageExts
216
+ extend ::Google::Protobuf::MessageExts::ClassMethods
217
+ end
218
+
219
+ # Request for ListMirrors.
220
+ # @!attribute [rw] parent
221
+ # @return [::String]
222
+ # Required. Parent instance resource where the mirrors will be listed, in the
223
+ # format: `projects/{project}/locations/{location}/instances/{instance}`
224
+ # @!attribute [rw] page_size
225
+ # @return [::Integer]
226
+ # Optional. Requested page size. The server might return fewer items than
227
+ # requested. If unspecified, the default page size is 10. The maximum value
228
+ # is 1000.
229
+ # @!attribute [rw] page_token
230
+ # @return [::String]
231
+ # Optional. A page token, received from a previous `ListMirrors` call.
232
+ # Provide this to retrieve the subsequent page.
233
+ # When paginating, all other parameters provided to `ListMirrors` must match
234
+ # the call that provided the page token.
235
+ # @!attribute [rw] order_by
236
+ # @return [::String]
237
+ # Optional. Desired order of results.
238
+ # @!attribute [rw] filter
239
+ # @return [::String]
240
+ # Optional. Filtering results.
241
+ class ListMirrorsRequest
242
+ include ::Google::Protobuf::MessageExts
243
+ extend ::Google::Protobuf::MessageExts::ClassMethods
244
+ end
245
+
246
+ # Response for ListMirrors.
247
+ # @!attribute [rw] mirrors
248
+ # @return [::Array<::Google::Cloud::Lustre::V1::Mirror>]
249
+ # List of mirrors on the instance.
250
+ # @!attribute [rw] next_page_token
251
+ # @return [::String]
252
+ # A token identifying a page of results the server should return.
253
+ # @!attribute [rw] unreachable
254
+ # @return [::Array<::String>]
255
+ # Unordered list. Locations that could not be reached.
256
+ class ListMirrorsResponse
257
+ include ::Google::Protobuf::MessageExts
258
+ extend ::Google::Protobuf::MessageExts::ClassMethods
259
+ end
260
+
261
+ # Metadata of the create mirror operation.
262
+ # @!attribute [rw] operation_metadata
263
+ # @return [::Google::Cloud::Lustre::V1::TransferOperationMetadata]
264
+ # Data transfer operation metadata.
265
+ # @!attribute [r] create_time
266
+ # @return [::Google::Protobuf::Timestamp]
267
+ # Output only. The time the operation was created.
268
+ # @!attribute [r] end_time
269
+ # @return [::Google::Protobuf::Timestamp]
270
+ # Output only. The time the operation finished running.
271
+ # @!attribute [r] target
272
+ # @return [::String]
273
+ # Output only. Server-defined resource path for the target of the operation.
274
+ # @!attribute [r] verb
275
+ # @return [::String]
276
+ # Output only. Name of the verb executed by the operation.
277
+ # @!attribute [r] status_message
278
+ # @return [::String]
279
+ # Output only. Human-readable status of the operation, if any.
280
+ # @!attribute [r] requested_cancellation
281
+ # @return [::Boolean]
282
+ # Output only. Identifies whether the user has requested cancellation
283
+ # of the operation. Operations that have successfully been cancelled
284
+ # have
285
+ # {::Google::Longrunning::Operation#error google.longrunning.Operation.error}
286
+ # value with a {::Google::Rpc::Status#code google.rpc.Status.code} of 1,
287
+ # corresponding to `Code.CANCELLED`.
288
+ # @!attribute [r] api_version
289
+ # @return [::String]
290
+ # Output only. API version used to start the operation.
291
+ class CreateMirrorMetadata
292
+ include ::Google::Protobuf::MessageExts
293
+ extend ::Google::Protobuf::MessageExts::ClassMethods
294
+ end
295
+ end
296
+ end
297
+ end
298
+ end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright 2025 Google LLC
3
+ # Copyright 2026 Google LLC
4
4
  #
5
5
  # Licensed under the Apache License, Version 2.0 (the "License");
6
6
  # you may not use this file except in compliance with the License.
@@ -41,6 +41,12 @@ module Google
41
41
  # @return [::String]
42
42
  # Optional. User-specified service account used to perform the transfer.
43
43
  # If unspecified, the default Managed Lustre service agent will be used.
44
+ #
45
+ # Use one of the following formats:
46
+ #
47
+ # * `{EMAIL_ADDRESS_OR_UNIQUE_ID}`
48
+ # * `projects/{PROJECT_ID}/serviceAccounts/{EMAIL_ADDRESS_OR_UNIQUE_ID}`
49
+ # * `projects/-/serviceAccounts/{EMAIL_ADDRESS_OR_UNIQUE_ID}`
44
50
  class ImportDataRequest
45
51
  include ::Google::Protobuf::MessageExts
46
52
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -68,6 +74,12 @@ module Google
68
74
  # @return [::String]
69
75
  # Optional. User-specified service account used to perform the transfer.
70
76
  # If unspecified, the Managed Lustre service agent is used.
77
+ #
78
+ # Use one of the following formats:
79
+ #
80
+ # * `{EMAIL_ADDRESS_OR_UNIQUE_ID}`
81
+ # * `projects/{PROJECT_ID}/serviceAccounts/{EMAIL_ADDRESS_OR_UNIQUE_ID}`
82
+ # * `projects/-/serviceAccounts/{EMAIL_ADDRESS_OR_UNIQUE_ID}`
71
83
  class ExportDataRequest
72
84
  include ::Google::Protobuf::MessageExts
73
85
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright 2025 Google LLC
3
+ # Copyright 2026 Google LLC
4
4
  #
5
5
  # Licensed under the Apache License, Version 2.0 (the "License");
6
6
  # you may not use this file except in compliance with the License.