google-apis-baremetalsolution_v2 0.3.0 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -22,6 +22,83 @@ module Google
22
22
  module Apis
23
23
  module BaremetalsolutionV2
24
24
 
25
+ # Represents an 'access point' for the share.
26
+ class AllowedClient
27
+ include Google::Apis::Core::Hashable
28
+
29
+ # Allow dev flag. Which controls whether to allow creation of devices.
30
+ # Corresponds to the JSON property `allowDev`
31
+ # @return [Boolean]
32
+ attr_accessor :allow_dev
33
+ alias_method :allow_dev?, :allow_dev
34
+
35
+ # Allow the setuid flag.
36
+ # Corresponds to the JSON property `allowSuid`
37
+ # @return [Boolean]
38
+ attr_accessor :allow_suid
39
+ alias_method :allow_suid?, :allow_suid
40
+
41
+ # The subnet of IP addresses permitted to access the share.
42
+ # Corresponds to the JSON property `allowedClientsCidr`
43
+ # @return [String]
44
+ attr_accessor :allowed_clients_cidr
45
+
46
+ # Mount permissions.
47
+ # Corresponds to the JSON property `mountPermissions`
48
+ # @return [String]
49
+ attr_accessor :mount_permissions
50
+
51
+ # The network the access point sits on.
52
+ # Corresponds to the JSON property `network`
53
+ # @return [String]
54
+ attr_accessor :network
55
+
56
+ # Disable root squashing, which is a feature of NFS. Root squash is a special
57
+ # mapping of the remote superuser (root) identity when using identity
58
+ # authentication.
59
+ # Corresponds to the JSON property `noRootSquash`
60
+ # @return [Boolean]
61
+ attr_accessor :no_root_squash
62
+ alias_method :no_root_squash?, :no_root_squash
63
+
64
+ # The IP address of the share on this network.
65
+ # Corresponds to the JSON property `shareIp`
66
+ # @return [String]
67
+ attr_accessor :share_ip
68
+
69
+ def initialize(**args)
70
+ update!(**args)
71
+ end
72
+
73
+ # Update properties of this object
74
+ def update!(**args)
75
+ @allow_dev = args[:allow_dev] if args.key?(:allow_dev)
76
+ @allow_suid = args[:allow_suid] if args.key?(:allow_suid)
77
+ @allowed_clients_cidr = args[:allowed_clients_cidr] if args.key?(:allowed_clients_cidr)
78
+ @mount_permissions = args[:mount_permissions] if args.key?(:mount_permissions)
79
+ @network = args[:network] if args.key?(:network)
80
+ @no_root_squash = args[:no_root_squash] if args.key?(:no_root_squash)
81
+ @share_ip = args[:share_ip] if args.key?(:share_ip)
82
+ end
83
+ end
84
+
85
+ # A generic empty message that you can re-use to avoid defining duplicated empty
86
+ # messages in your APIs. A typical example is to use it as the request or the
87
+ # response type of an API method. For instance: service Foo ` rpc Bar(google.
88
+ # protobuf.Empty) returns (google.protobuf.Empty); ` The JSON representation for
89
+ # `Empty` is empty JSON object ````.
90
+ class Empty
91
+ include Google::Apis::Core::Hashable
92
+
93
+ def initialize(**args)
94
+ update!(**args)
95
+ end
96
+
97
+ # Update properties of this object
98
+ def update!(**args)
99
+ end
100
+ end
101
+
25
102
  # A server.
26
103
  class Instance
27
104
  include Google::Apis::Core::Hashable
@@ -38,6 +115,11 @@ module Google
38
115
  attr_accessor :hyperthreading_enabled
39
116
  alias_method :hyperthreading_enabled?, :hyperthreading_enabled
40
117
 
118
+ # An identifier for the `Instance`, generated by the backend.
119
+ # Corresponds to the JSON property `id`
120
+ # @return [String]
121
+ attr_accessor :id
122
+
41
123
  # True if the interactive serial console feature is enabled for the instance,
42
124
  # false otherwise. The default value is false.
43
125
  # Corresponds to the JSON property `interactiveSerialConsoleEnabled`
@@ -92,6 +174,7 @@ module Google
92
174
  def update!(**args)
93
175
  @create_time = args[:create_time] if args.key?(:create_time)
94
176
  @hyperthreading_enabled = args[:hyperthreading_enabled] if args.key?(:hyperthreading_enabled)
177
+ @id = args[:id] if args.key?(:id)
95
178
  @interactive_serial_console_enabled = args[:interactive_serial_console_enabled] if args.key?(:interactive_serial_console_enabled)
96
179
  @labels = args[:labels] if args.key?(:labels)
97
180
  @luns = args[:luns] if args.key?(:luns)
@@ -103,6 +186,135 @@ module Google
103
186
  end
104
187
  end
105
188
 
189
+ # Configuration parameters for a new instance.
190
+ class InstanceConfig
191
+ include Google::Apis::Core::Hashable
192
+
193
+ # A network.
194
+ # Corresponds to the JSON property `clientNetwork`
195
+ # @return [Google::Apis::BaremetalsolutionV2::NetworkAddress]
196
+ attr_accessor :client_network
197
+
198
+ # Whether the instance should be provisioned with Hyperthreading enabled.
199
+ # Corresponds to the JSON property `hyperthreading`
200
+ # @return [Boolean]
201
+ attr_accessor :hyperthreading
202
+ alias_method :hyperthreading?, :hyperthreading
203
+
204
+ # A transient unique identifier to idenfity an instance within an
205
+ # ProvisioningConfig request.
206
+ # Corresponds to the JSON property `id`
207
+ # @return [String]
208
+ attr_accessor :id
209
+
210
+ # Instance type. [Available types](https://cloud.google.com/bare-metal/docs/bms-
211
+ # planning#server_configurations)
212
+ # Corresponds to the JSON property `instanceType`
213
+ # @return [String]
214
+ attr_accessor :instance_type
215
+
216
+ # Output only. The name of the instance config.
217
+ # Corresponds to the JSON property `name`
218
+ # @return [String]
219
+ attr_accessor :name
220
+
221
+ # OS image to initialize the instance. [Available images](https://cloud.google.
222
+ # com/bare-metal/docs/bms-planning#server_configurations)
223
+ # Corresponds to the JSON property `osImage`
224
+ # @return [String]
225
+ attr_accessor :os_image
226
+
227
+ # A network.
228
+ # Corresponds to the JSON property `privateNetwork`
229
+ # @return [Google::Apis::BaremetalsolutionV2::NetworkAddress]
230
+ attr_accessor :private_network
231
+
232
+ # User note field, it can be used by customers to add additional information for
233
+ # the BMS Ops team .
234
+ # Corresponds to the JSON property `userNote`
235
+ # @return [String]
236
+ attr_accessor :user_note
237
+
238
+ def initialize(**args)
239
+ update!(**args)
240
+ end
241
+
242
+ # Update properties of this object
243
+ def update!(**args)
244
+ @client_network = args[:client_network] if args.key?(:client_network)
245
+ @hyperthreading = args[:hyperthreading] if args.key?(:hyperthreading)
246
+ @id = args[:id] if args.key?(:id)
247
+ @instance_type = args[:instance_type] if args.key?(:instance_type)
248
+ @name = args[:name] if args.key?(:name)
249
+ @os_image = args[:os_image] if args.key?(:os_image)
250
+ @private_network = args[:private_network] if args.key?(:private_network)
251
+ @user_note = args[:user_note] if args.key?(:user_note)
252
+ end
253
+ end
254
+
255
+ # A resource budget.
256
+ class InstanceQuota
257
+ include Google::Apis::Core::Hashable
258
+
259
+ # Number of machines than can be created for the given location and
260
+ # instance_type.
261
+ # Corresponds to the JSON property `availableMachineCount`
262
+ # @return [Fixnum]
263
+ attr_accessor :available_machine_count
264
+
265
+ # Instance type.
266
+ # Corresponds to the JSON property `instanceType`
267
+ # @return [String]
268
+ attr_accessor :instance_type
269
+
270
+ # Location where the quota applies.
271
+ # Corresponds to the JSON property `location`
272
+ # @return [String]
273
+ attr_accessor :location
274
+
275
+ # Output only. The name of the instance quota.
276
+ # Corresponds to the JSON property `name`
277
+ # @return [String]
278
+ attr_accessor :name
279
+
280
+ def initialize(**args)
281
+ update!(**args)
282
+ end
283
+
284
+ # Update properties of this object
285
+ def update!(**args)
286
+ @available_machine_count = args[:available_machine_count] if args.key?(:available_machine_count)
287
+ @instance_type = args[:instance_type] if args.key?(:instance_type)
288
+ @location = args[:location] if args.key?(:location)
289
+ @name = args[:name] if args.key?(:name)
290
+ end
291
+ end
292
+
293
+ # A GCP vlan attachment.
294
+ class IntakeVlanAttachment
295
+ include Google::Apis::Core::Hashable
296
+
297
+ # Identifier of the VLAN attachment.
298
+ # Corresponds to the JSON property `id`
299
+ # @return [String]
300
+ attr_accessor :id
301
+
302
+ # Attachment pairing key.
303
+ # Corresponds to the JSON property `pairingKey`
304
+ # @return [String]
305
+ attr_accessor :pairing_key
306
+
307
+ def initialize(**args)
308
+ update!(**args)
309
+ end
310
+
311
+ # Update properties of this object
312
+ def update!(**args)
313
+ @id = args[:id] if args.key?(:id)
314
+ @pairing_key = args[:pairing_key] if args.key?(:pairing_key)
315
+ end
316
+ end
317
+
106
318
  # Response message for the list of servers.
107
319
  class ListInstancesResponse
108
320
  include Google::Apis::Core::Hashable
@@ -190,6 +402,201 @@ module Google
190
402
  end
191
403
  end
192
404
 
405
+ # Response with Networks with IPs
406
+ class ListNetworkUsageResponse
407
+ include Google::Apis::Core::Hashable
408
+
409
+ # Networks with IPs.
410
+ # Corresponds to the JSON property `networks`
411
+ # @return [Array<Google::Apis::BaremetalsolutionV2::NetworkUsage>]
412
+ attr_accessor :networks
413
+
414
+ def initialize(**args)
415
+ update!(**args)
416
+ end
417
+
418
+ # Update properties of this object
419
+ def update!(**args)
420
+ @networks = args[:networks] if args.key?(:networks)
421
+ end
422
+ end
423
+
424
+ # Response message containing the list of networks.
425
+ class ListNetworksResponse
426
+ include Google::Apis::Core::Hashable
427
+
428
+ # The list of networks.
429
+ # Corresponds to the JSON property `networks`
430
+ # @return [Array<Google::Apis::BaremetalsolutionV2::Network>]
431
+ attr_accessor :networks
432
+
433
+ # A token identifying a page of results from the server.
434
+ # Corresponds to the JSON property `nextPageToken`
435
+ # @return [String]
436
+ attr_accessor :next_page_token
437
+
438
+ # Locations that could not be reached.
439
+ # Corresponds to the JSON property `unreachable`
440
+ # @return [Array<String>]
441
+ attr_accessor :unreachable
442
+
443
+ def initialize(**args)
444
+ update!(**args)
445
+ end
446
+
447
+ # Update properties of this object
448
+ def update!(**args)
449
+ @networks = args[:networks] if args.key?(:networks)
450
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
451
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
452
+ end
453
+ end
454
+
455
+ # Response message containing the list of NFS shares.
456
+ class ListNfsSharesResponse
457
+ include Google::Apis::Core::Hashable
458
+
459
+ # A token identifying a page of results from the server.
460
+ # Corresponds to the JSON property `nextPageToken`
461
+ # @return [String]
462
+ attr_accessor :next_page_token
463
+
464
+ # The list of NFS shares.
465
+ # Corresponds to the JSON property `nfsShares`
466
+ # @return [Array<Google::Apis::BaremetalsolutionV2::NfsShare>]
467
+ attr_accessor :nfs_shares
468
+
469
+ # Locations that could not be reached.
470
+ # Corresponds to the JSON property `unreachable`
471
+ # @return [Array<String>]
472
+ attr_accessor :unreachable
473
+
474
+ def initialize(**args)
475
+ update!(**args)
476
+ end
477
+
478
+ # Update properties of this object
479
+ def update!(**args)
480
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
481
+ @nfs_shares = args[:nfs_shares] if args.key?(:nfs_shares)
482
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
483
+ end
484
+ end
485
+
486
+ # Response message for the list of provisioning quotas.
487
+ class ListProvisioningQuotasResponse
488
+ include Google::Apis::Core::Hashable
489
+
490
+ # Token to retrieve the next page of results, or empty if there are no more
491
+ # results in the list.
492
+ # Corresponds to the JSON property `nextPageToken`
493
+ # @return [String]
494
+ attr_accessor :next_page_token
495
+
496
+ # The provisioning quotas registered in this project.
497
+ # Corresponds to the JSON property `provisioningQuotas`
498
+ # @return [Array<Google::Apis::BaremetalsolutionV2::ProvisioningQuota>]
499
+ attr_accessor :provisioning_quotas
500
+
501
+ def initialize(**args)
502
+ update!(**args)
503
+ end
504
+
505
+ # Update properties of this object
506
+ def update!(**args)
507
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
508
+ @provisioning_quotas = args[:provisioning_quotas] if args.key?(:provisioning_quotas)
509
+ end
510
+ end
511
+
512
+ # Response message containing the list of snapshot schedule policies.
513
+ class ListSnapshotSchedulePoliciesResponse
514
+ include Google::Apis::Core::Hashable
515
+
516
+ # Token to retrieve the next page of results, or empty if there are no more
517
+ # results in the list.
518
+ # Corresponds to the JSON property `nextPageToken`
519
+ # @return [String]
520
+ attr_accessor :next_page_token
521
+
522
+ # The snapshot schedule policies registered in this project.
523
+ # Corresponds to the JSON property `snapshotSchedulePolicies`
524
+ # @return [Array<Google::Apis::BaremetalsolutionV2::SnapshotSchedulePolicy>]
525
+ attr_accessor :snapshot_schedule_policies
526
+
527
+ def initialize(**args)
528
+ update!(**args)
529
+ end
530
+
531
+ # Update properties of this object
532
+ def update!(**args)
533
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
534
+ @snapshot_schedule_policies = args[:snapshot_schedule_policies] if args.key?(:snapshot_schedule_policies)
535
+ end
536
+ end
537
+
538
+ # Response message containing the list of storage volume snapshots.
539
+ class ListVolumeSnapshotsResponse
540
+ include Google::Apis::Core::Hashable
541
+
542
+ # A token identifying a page of results from the server.
543
+ # Corresponds to the JSON property `nextPageToken`
544
+ # @return [String]
545
+ attr_accessor :next_page_token
546
+
547
+ # Locations that could not be reached.
548
+ # Corresponds to the JSON property `unreachable`
549
+ # @return [Array<String>]
550
+ attr_accessor :unreachable
551
+
552
+ # The list of storage volumes.
553
+ # Corresponds to the JSON property `volumeSnapshots`
554
+ # @return [Array<Google::Apis::BaremetalsolutionV2::VolumeSnapshot>]
555
+ attr_accessor :volume_snapshots
556
+
557
+ def initialize(**args)
558
+ update!(**args)
559
+ end
560
+
561
+ # Update properties of this object
562
+ def update!(**args)
563
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
564
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
565
+ @volume_snapshots = args[:volume_snapshots] if args.key?(:volume_snapshots)
566
+ end
567
+ end
568
+
569
+ # Response message containing the list of storage volumes.
570
+ class ListVolumesResponse
571
+ include Google::Apis::Core::Hashable
572
+
573
+ # A token identifying a page of results from the server.
574
+ # Corresponds to the JSON property `nextPageToken`
575
+ # @return [String]
576
+ attr_accessor :next_page_token
577
+
578
+ # Locations that could not be reached.
579
+ # Corresponds to the JSON property `unreachable`
580
+ # @return [Array<String>]
581
+ attr_accessor :unreachable
582
+
583
+ # The list of storage volumes.
584
+ # Corresponds to the JSON property `volumes`
585
+ # @return [Array<Google::Apis::BaremetalsolutionV2::Volume>]
586
+ attr_accessor :volumes
587
+
588
+ def initialize(**args)
589
+ update!(**args)
590
+ end
591
+
592
+ # Update properties of this object
593
+ def update!(**args)
594
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
595
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
596
+ @volumes = args[:volumes] if args.key?(:volumes)
597
+ end
598
+ end
599
+
193
600
  # A resource that represents Google Cloud Platform location.
194
601
  class Location
195
602
  include Google::Apis::Core::Hashable
@@ -247,7 +654,12 @@ module Google
247
654
  attr_accessor :boot_lun
248
655
  alias_method :boot_lun?, :boot_lun
249
656
 
250
- # The LUN multiprotocol type ensures the characteristics of the LUN are
657
+ # An identifier for the LUN, generated by the backend.
658
+ # Corresponds to the JSON property `id`
659
+ # @return [String]
660
+ attr_accessor :id
661
+
662
+ # The LUN multiprotocol type ensures the characteristics of the LUN are
251
663
  # optimized for each operating system.
252
664
  # Corresponds to the JSON property `multiprotocolType`
253
665
  # @return [String]
@@ -296,6 +708,7 @@ module Google
296
708
  # Update properties of this object
297
709
  def update!(**args)
298
710
  @boot_lun = args[:boot_lun] if args.key?(:boot_lun)
711
+ @id = args[:id] if args.key?(:id)
299
712
  @multiprotocol_type = args[:multiprotocol_type] if args.key?(:multiprotocol_type)
300
713
  @name = args[:name] if args.key?(:name)
301
714
  @shareable = args[:shareable] if args.key?(:shareable)
@@ -307,6 +720,31 @@ module Google
307
720
  end
308
721
  end
309
722
 
723
+ # A LUN(Logical Unit Number) range.
724
+ class LunRange
725
+ include Google::Apis::Core::Hashable
726
+
727
+ # Number of LUNs to create.
728
+ # Corresponds to the JSON property `quantity`
729
+ # @return [Fixnum]
730
+ attr_accessor :quantity
731
+
732
+ # The requested size of each LUN, in GB.
733
+ # Corresponds to the JSON property `sizeGb`
734
+ # @return [Fixnum]
735
+ attr_accessor :size_gb
736
+
737
+ def initialize(**args)
738
+ update!(**args)
739
+ end
740
+
741
+ # Update properties of this object
742
+ def update!(**args)
743
+ @quantity = args[:quantity] if args.key?(:quantity)
744
+ @size_gb = args[:size_gb] if args.key?(:size_gb)
745
+ end
746
+ end
747
+
310
748
  # A Network.
311
749
  class Network
312
750
  include Google::Apis::Core::Hashable
@@ -316,11 +754,21 @@ module Google
316
754
  # @return [String]
317
755
  attr_accessor :cidr
318
756
 
757
+ # An identifier for the `Network`, generated by the backend.
758
+ # Corresponds to the JSON property `id`
759
+ # @return [String]
760
+ attr_accessor :id
761
+
319
762
  # IP address configured.
320
763
  # Corresponds to the JSON property `ipAddress`
321
764
  # @return [String]
322
765
  attr_accessor :ip_address
323
766
 
767
+ # Labels as key value pairs.
768
+ # Corresponds to the JSON property `labels`
769
+ # @return [Hash<String,String>]
770
+ attr_accessor :labels
771
+
324
772
  # List of physical interfaces.
325
773
  # Corresponds to the JSON property `macAddress`
326
774
  # @return [Array<String>]
@@ -329,17 +777,15 @@ module Google
329
777
  # Output only. The resource name of this `Network`. Resource names are
330
778
  # schemeless URIs that follow the conventions in https://cloud.google.com/apis/
331
779
  # design/resource_names. Format: `projects/`project`/locations/`location`/
332
- # networks/`network`` This field will contain the same value as field "network",
333
- # which will soon be deprecated. Please use this field to reference the name of
334
- # the network resource.
780
+ # networks/`network``
335
781
  # Corresponds to the JSON property `name`
336
782
  # @return [String]
337
783
  attr_accessor :name
338
784
 
339
- # Name of the network.
340
- # Corresponds to the JSON property `network`
785
+ # IP range for reserved for services (e.g. NFS).
786
+ # Corresponds to the JSON property `servicesCidr`
341
787
  # @return [String]
342
- attr_accessor :network
788
+ attr_accessor :services_cidr
343
789
 
344
790
  # The Network state.
345
791
  # Corresponds to the JSON property `state`
@@ -368,10 +814,12 @@ module Google
368
814
  # Update properties of this object
369
815
  def update!(**args)
370
816
  @cidr = args[:cidr] if args.key?(:cidr)
817
+ @id = args[:id] if args.key?(:id)
371
818
  @ip_address = args[:ip_address] if args.key?(:ip_address)
819
+ @labels = args[:labels] if args.key?(:labels)
372
820
  @mac_address = args[:mac_address] if args.key?(:mac_address)
373
821
  @name = args[:name] if args.key?(:name)
374
- @network = args[:network] if args.key?(:network)
822
+ @services_cidr = args[:services_cidr] if args.key?(:services_cidr)
375
823
  @state = args[:state] if args.key?(:state)
376
824
  @type = args[:type] if args.key?(:type)
377
825
  @vlan_id = args[:vlan_id] if args.key?(:vlan_id)
@@ -379,46 +827,935 @@ module Google
379
827
  end
380
828
  end
381
829
 
382
- # A network VRF.
383
- class Vrf
830
+ # A network.
831
+ class NetworkAddress
384
832
  include Google::Apis::Core::Hashable
385
833
 
386
- # The autonomous system number of the VRF.
387
- # Corresponds to the JSON property `autonomousSystemNumber`
834
+ # IPv4 address to be assigned to the server.
835
+ # Corresponds to the JSON property `address`
388
836
  # @return [String]
389
- attr_accessor :autonomous_system_number
837
+ attr_accessor :address
390
838
 
391
- # The Juniper alias of the VRF.
392
- # Corresponds to the JSON property `juniperAlias`
839
+ # Name of the existing network to use.
840
+ # Corresponds to the JSON property `existingNetworkId`
393
841
  # @return [String]
394
- attr_accessor :juniper_alias
842
+ attr_accessor :existing_network_id
395
843
 
396
- # The name of the VRF.
844
+ # Id of the network to use, within the same ProvisioningConfig request.
845
+ # Corresponds to the JSON property `networkId`
846
+ # @return [String]
847
+ attr_accessor :network_id
848
+
849
+ def initialize(**args)
850
+ update!(**args)
851
+ end
852
+
853
+ # Update properties of this object
854
+ def update!(**args)
855
+ @address = args[:address] if args.key?(:address)
856
+ @existing_network_id = args[:existing_network_id] if args.key?(:existing_network_id)
857
+ @network_id = args[:network_id] if args.key?(:network_id)
858
+ end
859
+ end
860
+
861
+ # Configuration parameters for a new network.
862
+ class NetworkConfig
863
+ include Google::Apis::Core::Hashable
864
+
865
+ # Interconnect bandwidth. Set only when type is CLIENT.
866
+ # Corresponds to the JSON property `bandwidth`
867
+ # @return [String]
868
+ attr_accessor :bandwidth
869
+
870
+ # CIDR range of the network.
871
+ # Corresponds to the JSON property `cidr`
872
+ # @return [String]
873
+ attr_accessor :cidr
874
+
875
+ # A transient unique identifier to identify a volume within an
876
+ # ProvisioningConfig request.
877
+ # Corresponds to the JSON property `id`
878
+ # @return [String]
879
+ attr_accessor :id
880
+
881
+ # Output only. The name of the network config.
397
882
  # Corresponds to the JSON property `name`
398
883
  # @return [String]
399
884
  attr_accessor :name
400
885
 
401
- # The route target of the VRF.
402
- # Corresponds to the JSON property `routeTarget`
403
- # @return [Fixnum]
404
- attr_accessor :route_target
886
+ # Service CIDR, if any.
887
+ # Corresponds to the JSON property `serviceCidr`
888
+ # @return [String]
889
+ attr_accessor :service_cidr
405
890
 
406
- # The possible state of VRF.
891
+ # The type of this network, either Client or Private.
892
+ # Corresponds to the JSON property `type`
893
+ # @return [String]
894
+ attr_accessor :type
895
+
896
+ # User note field, it can be used by customers to add additional information for
897
+ # the BMS Ops team (b/194021617).
898
+ # Corresponds to the JSON property `userNote`
899
+ # @return [String]
900
+ attr_accessor :user_note
901
+
902
+ # List of VLAN attachments. As of now there are always 2 attachments, but it is
903
+ # going to change in the future (multi vlan).
904
+ # Corresponds to the JSON property `vlanAttachments`
905
+ # @return [Array<Google::Apis::BaremetalsolutionV2::IntakeVlanAttachment>]
906
+ attr_accessor :vlan_attachments
907
+
908
+ def initialize(**args)
909
+ update!(**args)
910
+ end
911
+
912
+ # Update properties of this object
913
+ def update!(**args)
914
+ @bandwidth = args[:bandwidth] if args.key?(:bandwidth)
915
+ @cidr = args[:cidr] if args.key?(:cidr)
916
+ @id = args[:id] if args.key?(:id)
917
+ @name = args[:name] if args.key?(:name)
918
+ @service_cidr = args[:service_cidr] if args.key?(:service_cidr)
919
+ @type = args[:type] if args.key?(:type)
920
+ @user_note = args[:user_note] if args.key?(:user_note)
921
+ @vlan_attachments = args[:vlan_attachments] if args.key?(:vlan_attachments)
922
+ end
923
+ end
924
+
925
+ # Network with all used IP addresses.
926
+ class NetworkUsage
927
+ include Google::Apis::Core::Hashable
928
+
929
+ # A Network.
930
+ # Corresponds to the JSON property `network`
931
+ # @return [Google::Apis::BaremetalsolutionV2::Network]
932
+ attr_accessor :network
933
+
934
+ # All used IP addresses in this network.
935
+ # Corresponds to the JSON property `usedIps`
936
+ # @return [Array<String>]
937
+ attr_accessor :used_ips
938
+
939
+ def initialize(**args)
940
+ update!(**args)
941
+ end
942
+
943
+ # Update properties of this object
944
+ def update!(**args)
945
+ @network = args[:network] if args.key?(:network)
946
+ @used_ips = args[:used_ips] if args.key?(:used_ips)
947
+ end
948
+ end
949
+
950
+ # A NFS export entry.
951
+ class NfsExport
952
+ include Google::Apis::Core::Hashable
953
+
954
+ # Allow dev flag in NfsShare AllowedClientsRequest.
955
+ # Corresponds to the JSON property `allowDev`
956
+ # @return [Boolean]
957
+ attr_accessor :allow_dev
958
+ alias_method :allow_dev?, :allow_dev
959
+
960
+ # Allow the setuid flag.
961
+ # Corresponds to the JSON property `allowSuid`
962
+ # @return [Boolean]
963
+ attr_accessor :allow_suid
964
+ alias_method :allow_suid?, :allow_suid
965
+
966
+ # A CIDR range.
967
+ # Corresponds to the JSON property `cidr`
968
+ # @return [String]
969
+ attr_accessor :cidr
970
+
971
+ # Either a single machine, identified by an ID, or a comma-separated list of
972
+ # machine IDs.
973
+ # Corresponds to the JSON property `machineId`
974
+ # @return [String]
975
+ attr_accessor :machine_id
976
+
977
+ # Network to use to publish the export.
978
+ # Corresponds to the JSON property `networkId`
979
+ # @return [String]
980
+ attr_accessor :network_id
981
+
982
+ # Disable root squashing, which is a feature of NFS. Root squash is a special
983
+ # mapping of the remote superuser (root) identity when using identity
984
+ # authentication.
985
+ # Corresponds to the JSON property `noRootSquash`
986
+ # @return [Boolean]
987
+ attr_accessor :no_root_squash
988
+ alias_method :no_root_squash?, :no_root_squash
989
+
990
+ # Export permissions.
991
+ # Corresponds to the JSON property `permissions`
992
+ # @return [String]
993
+ attr_accessor :permissions
994
+
995
+ def initialize(**args)
996
+ update!(**args)
997
+ end
998
+
999
+ # Update properties of this object
1000
+ def update!(**args)
1001
+ @allow_dev = args[:allow_dev] if args.key?(:allow_dev)
1002
+ @allow_suid = args[:allow_suid] if args.key?(:allow_suid)
1003
+ @cidr = args[:cidr] if args.key?(:cidr)
1004
+ @machine_id = args[:machine_id] if args.key?(:machine_id)
1005
+ @network_id = args[:network_id] if args.key?(:network_id)
1006
+ @no_root_squash = args[:no_root_squash] if args.key?(:no_root_squash)
1007
+ @permissions = args[:permissions] if args.key?(:permissions)
1008
+ end
1009
+ end
1010
+
1011
+ # An NFS share.
1012
+ class NfsShare
1013
+ include Google::Apis::Core::Hashable
1014
+
1015
+ # List of allowed access points.
1016
+ # Corresponds to the JSON property `allowedClients`
1017
+ # @return [Array<Google::Apis::BaremetalsolutionV2::AllowedClient>]
1018
+ attr_accessor :allowed_clients
1019
+
1020
+ # Labels as key value pairs.
1021
+ # Corresponds to the JSON property `labels`
1022
+ # @return [Hash<String,String>]
1023
+ attr_accessor :labels
1024
+
1025
+ # Output only. The name of the NFS share.
1026
+ # Corresponds to the JSON property `name`
1027
+ # @return [String]
1028
+ attr_accessor :name
1029
+
1030
+ # Output only. An identifier for the NFS share, generated by the backend.
1031
+ # Corresponds to the JSON property `nfsShareId`
1032
+ # @return [String]
1033
+ attr_accessor :nfs_share_id
1034
+
1035
+ # The state of the NFS share.
407
1036
  # Corresponds to the JSON property `state`
408
1037
  # @return [String]
409
1038
  attr_accessor :state
410
1039
 
1040
+ # The volume containing the share.
1041
+ # Corresponds to the JSON property `volume`
1042
+ # @return [String]
1043
+ attr_accessor :volume
1044
+
411
1045
  def initialize(**args)
412
1046
  update!(**args)
413
1047
  end
414
1048
 
415
1049
  # Update properties of this object
416
1050
  def update!(**args)
417
- @autonomous_system_number = args[:autonomous_system_number] if args.key?(:autonomous_system_number)
418
- @juniper_alias = args[:juniper_alias] if args.key?(:juniper_alias)
1051
+ @allowed_clients = args[:allowed_clients] if args.key?(:allowed_clients)
1052
+ @labels = args[:labels] if args.key?(:labels)
419
1053
  @name = args[:name] if args.key?(:name)
420
- @route_target = args[:route_target] if args.key?(:route_target)
1054
+ @nfs_share_id = args[:nfs_share_id] if args.key?(:nfs_share_id)
421
1055
  @state = args[:state] if args.key?(:state)
1056
+ @volume = args[:volume] if args.key?(:volume)
1057
+ end
1058
+ end
1059
+
1060
+ # This resource represents a long-running operation that is the result of a
1061
+ # network API call.
1062
+ class Operation
1063
+ include Google::Apis::Core::Hashable
1064
+
1065
+ # If the value is `false`, it means the operation is still in progress. If `true`
1066
+ # , the operation is completed, and either `error` or `response` is available.
1067
+ # Corresponds to the JSON property `done`
1068
+ # @return [Boolean]
1069
+ attr_accessor :done
1070
+ alias_method :done?, :done
1071
+
1072
+ # The `Status` type defines a logical error model that is suitable for different
1073
+ # programming environments, including REST APIs and RPC APIs. It is used by [
1074
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
1075
+ # data: error code, error message, and error details. You can find out more
1076
+ # about this error model and how to work with it in the [API Design Guide](https:
1077
+ # //cloud.google.com/apis/design/errors).
1078
+ # Corresponds to the JSON property `error`
1079
+ # @return [Google::Apis::BaremetalsolutionV2::Status]
1080
+ attr_accessor :error
1081
+
1082
+ # Service-specific metadata associated with the operation. It typically contains
1083
+ # progress information and common metadata such as create time. Some services
1084
+ # might not provide such metadata. Any method that returns a long-running
1085
+ # operation should document the metadata type, if any.
1086
+ # Corresponds to the JSON property `metadata`
1087
+ # @return [Hash<String,Object>]
1088
+ attr_accessor :metadata
1089
+
1090
+ # The server-assigned name, which is only unique within the same service that
1091
+ # originally returns it. If you use the default HTTP mapping, the `name` should
1092
+ # be a resource name ending with `operations/`unique_id``.
1093
+ # Corresponds to the JSON property `name`
1094
+ # @return [String]
1095
+ attr_accessor :name
1096
+
1097
+ # The normal response of the operation in case of success. If the original
1098
+ # method returns no data on success, such as `Delete`, the response is `google.
1099
+ # protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`,
1100
+ # the response should be the resource. For other methods, the response should
1101
+ # have the type `XxxResponse`, where `Xxx` is the original method name. For
1102
+ # example, if the original method name is `TakeSnapshot()`, the inferred
1103
+ # response type is `TakeSnapshotResponse`.
1104
+ # Corresponds to the JSON property `response`
1105
+ # @return [Hash<String,Object>]
1106
+ attr_accessor :response
1107
+
1108
+ def initialize(**args)
1109
+ update!(**args)
1110
+ end
1111
+
1112
+ # Update properties of this object
1113
+ def update!(**args)
1114
+ @done = args[:done] if args.key?(:done)
1115
+ @error = args[:error] if args.key?(:error)
1116
+ @metadata = args[:metadata] if args.key?(:metadata)
1117
+ @name = args[:name] if args.key?(:name)
1118
+ @response = args[:response] if args.key?(:response)
1119
+ end
1120
+ end
1121
+
1122
+ # A provisioning configuration.
1123
+ class ProvisioningConfig
1124
+ include Google::Apis::Core::Hashable
1125
+
1126
+ # A service account to enable customers to access instance credentials upon
1127
+ # handover.
1128
+ # Corresponds to the JSON property `handoverServiceAccount`
1129
+ # @return [String]
1130
+ attr_accessor :handover_service_account
1131
+
1132
+ # Instances to be created.
1133
+ # Corresponds to the JSON property `instances`
1134
+ # @return [Array<Google::Apis::BaremetalsolutionV2::InstanceConfig>]
1135
+ attr_accessor :instances
1136
+
1137
+ # Output only. The name of the provisioning config.
1138
+ # Corresponds to the JSON property `name`
1139
+ # @return [String]
1140
+ attr_accessor :name
1141
+
1142
+ # Networks to be created.
1143
+ # Corresponds to the JSON property `networks`
1144
+ # @return [Array<Google::Apis::BaremetalsolutionV2::NetworkConfig>]
1145
+ attr_accessor :networks
1146
+
1147
+ # A generated buganizer id to track provisioning request.
1148
+ # Corresponds to the JSON property `ticketId`
1149
+ # @return [String]
1150
+ attr_accessor :ticket_id
1151
+
1152
+ # Volumes to be created.
1153
+ # Corresponds to the JSON property `volumes`
1154
+ # @return [Array<Google::Apis::BaremetalsolutionV2::VolumeConfig>]
1155
+ attr_accessor :volumes
1156
+
1157
+ def initialize(**args)
1158
+ update!(**args)
1159
+ end
1160
+
1161
+ # Update properties of this object
1162
+ def update!(**args)
1163
+ @handover_service_account = args[:handover_service_account] if args.key?(:handover_service_account)
1164
+ @instances = args[:instances] if args.key?(:instances)
1165
+ @name = args[:name] if args.key?(:name)
1166
+ @networks = args[:networks] if args.key?(:networks)
1167
+ @ticket_id = args[:ticket_id] if args.key?(:ticket_id)
1168
+ @volumes = args[:volumes] if args.key?(:volumes)
1169
+ end
1170
+ end
1171
+
1172
+ # A provisioning quota for a given project.
1173
+ class ProvisioningQuota
1174
+ include Google::Apis::Core::Hashable
1175
+
1176
+ # The asset type of this provisioning quota.
1177
+ # Corresponds to the JSON property `assetType`
1178
+ # @return [String]
1179
+ attr_accessor :asset_type
1180
+
1181
+ # The available count of the provisioning quota.
1182
+ # Corresponds to the JSON property `availableCount`
1183
+ # @return [Fixnum]
1184
+ attr_accessor :available_count
1185
+
1186
+ # The gcp service of the provisioning quota.
1187
+ # Corresponds to the JSON property `gcpService`
1188
+ # @return [String]
1189
+ attr_accessor :gcp_service
1190
+
1191
+ # A resource budget.
1192
+ # Corresponds to the JSON property `instanceQuota`
1193
+ # @return [Google::Apis::BaremetalsolutionV2::InstanceQuota]
1194
+ attr_accessor :instance_quota
1195
+
1196
+ # The specific location of the provisioining quota.
1197
+ # Corresponds to the JSON property `location`
1198
+ # @return [String]
1199
+ attr_accessor :location
1200
+
1201
+ # Output only. The name of the provisioning quota.
1202
+ # Corresponds to the JSON property `name`
1203
+ # @return [String]
1204
+ attr_accessor :name
1205
+
1206
+ def initialize(**args)
1207
+ update!(**args)
1208
+ end
1209
+
1210
+ # Update properties of this object
1211
+ def update!(**args)
1212
+ @asset_type = args[:asset_type] if args.key?(:asset_type)
1213
+ @available_count = args[:available_count] if args.key?(:available_count)
1214
+ @gcp_service = args[:gcp_service] if args.key?(:gcp_service)
1215
+ @instance_quota = args[:instance_quota] if args.key?(:instance_quota)
1216
+ @location = args[:location] if args.key?(:location)
1217
+ @name = args[:name] if args.key?(:name)
1218
+ end
1219
+ end
1220
+
1221
+ # QOS policy parameters.
1222
+ class QosPolicy
1223
+ include Google::Apis::Core::Hashable
1224
+
1225
+ # The bandwidth permitted by the QOS policy, in gbps.
1226
+ # Corresponds to the JSON property `bandwidthGbps`
1227
+ # @return [Float]
1228
+ attr_accessor :bandwidth_gbps
1229
+
1230
+ def initialize(**args)
1231
+ update!(**args)
1232
+ end
1233
+
1234
+ # Update properties of this object
1235
+ def update!(**args)
1236
+ @bandwidth_gbps = args[:bandwidth_gbps] if args.key?(:bandwidth_gbps)
1237
+ end
1238
+ end
1239
+
1240
+ # Message requesting to reset a server.
1241
+ class ResetInstanceRequest
1242
+ include Google::Apis::Core::Hashable
1243
+
1244
+ def initialize(**args)
1245
+ update!(**args)
1246
+ end
1247
+
1248
+ # Update properties of this object
1249
+ def update!(**args)
1250
+ end
1251
+ end
1252
+
1253
+ # Message for restoring a volume snapshot.
1254
+ class RestoreVolumeSnapshotRequest
1255
+ include Google::Apis::Core::Hashable
1256
+
1257
+ def initialize(**args)
1258
+ update!(**args)
1259
+ end
1260
+
1261
+ # Update properties of this object
1262
+ def update!(**args)
1263
+ end
1264
+ end
1265
+
1266
+ # A snapshot schedule.
1267
+ class Schedule
1268
+ include Google::Apis::Core::Hashable
1269
+
1270
+ # A crontab-like specification that the schedule uses to take snapshots.
1271
+ # Corresponds to the JSON property `crontabSpec`
1272
+ # @return [String]
1273
+ attr_accessor :crontab_spec
1274
+
1275
+ # A list of snapshot names created in this schedule.
1276
+ # Corresponds to the JSON property `prefix`
1277
+ # @return [String]
1278
+ attr_accessor :prefix
1279
+
1280
+ # The maximum number of snapshots to retain in this schedule.
1281
+ # Corresponds to the JSON property `retentionCount`
1282
+ # @return [Fixnum]
1283
+ attr_accessor :retention_count
1284
+
1285
+ def initialize(**args)
1286
+ update!(**args)
1287
+ end
1288
+
1289
+ # Update properties of this object
1290
+ def update!(**args)
1291
+ @crontab_spec = args[:crontab_spec] if args.key?(:crontab_spec)
1292
+ @prefix = args[:prefix] if args.key?(:prefix)
1293
+ @retention_count = args[:retention_count] if args.key?(:retention_count)
1294
+ end
1295
+ end
1296
+
1297
+ # Details about snapshot space reservation and usage on the storage volume.
1298
+ class SnapshotReservationDetail
1299
+ include Google::Apis::Core::Hashable
1300
+
1301
+ # The space on this storage volume reserved for snapshots, shown in GiB.
1302
+ # Corresponds to the JSON property `reservedSpaceGib`
1303
+ # @return [Fixnum]
1304
+ attr_accessor :reserved_space_gib
1305
+
1306
+ # The amount, in GiB, of available space in this storage volume's reserved
1307
+ # snapshot space.
1308
+ # Corresponds to the JSON property `reservedSpaceRemainingGib`
1309
+ # @return [Fixnum]
1310
+ attr_accessor :reserved_space_remaining_gib
1311
+
1312
+ # The percent of snapshot space on this storage volume actually being used by
1313
+ # the snapshot copies. This value might be higher than 100% if the snapshot
1314
+ # copies have overflowed into the data portion of the storage volume.
1315
+ # Corresponds to the JSON property `reservedSpaceUsedPercent`
1316
+ # @return [Fixnum]
1317
+ attr_accessor :reserved_space_used_percent
1318
+
1319
+ def initialize(**args)
1320
+ update!(**args)
1321
+ end
1322
+
1323
+ # Update properties of this object
1324
+ def update!(**args)
1325
+ @reserved_space_gib = args[:reserved_space_gib] if args.key?(:reserved_space_gib)
1326
+ @reserved_space_remaining_gib = args[:reserved_space_remaining_gib] if args.key?(:reserved_space_remaining_gib)
1327
+ @reserved_space_used_percent = args[:reserved_space_used_percent] if args.key?(:reserved_space_used_percent)
1328
+ end
1329
+ end
1330
+
1331
+ # A snapshot schedule policy.
1332
+ class SnapshotSchedulePolicy
1333
+ include Google::Apis::Core::Hashable
1334
+
1335
+ # The description of the snapshot schedule policy.
1336
+ # Corresponds to the JSON property `description`
1337
+ # @return [String]
1338
+ attr_accessor :description
1339
+
1340
+ # An identifier for the snapshot schedule policy, generated by the backend.
1341
+ # Corresponds to the JSON property `id`
1342
+ # @return [String]
1343
+ attr_accessor :id
1344
+
1345
+ # Labels as key value pairs.
1346
+ # Corresponds to the JSON property `labels`
1347
+ # @return [Hash<String,String>]
1348
+ attr_accessor :labels
1349
+
1350
+ # Output only. The name of the snapshot schedule policy.
1351
+ # Corresponds to the JSON property `name`
1352
+ # @return [String]
1353
+ attr_accessor :name
1354
+
1355
+ # The snapshot schedules contained in this policy. You can specify a maximum of
1356
+ # 5 schedules.
1357
+ # Corresponds to the JSON property `schedules`
1358
+ # @return [Array<Google::Apis::BaremetalsolutionV2::Schedule>]
1359
+ attr_accessor :schedules
1360
+
1361
+ # The state of the snapshot schedule policy.
1362
+ # Corresponds to the JSON property `state`
1363
+ # @return [String]
1364
+ attr_accessor :state
1365
+
1366
+ def initialize(**args)
1367
+ update!(**args)
1368
+ end
1369
+
1370
+ # Update properties of this object
1371
+ def update!(**args)
1372
+ @description = args[:description] if args.key?(:description)
1373
+ @id = args[:id] if args.key?(:id)
1374
+ @labels = args[:labels] if args.key?(:labels)
1375
+ @name = args[:name] if args.key?(:name)
1376
+ @schedules = args[:schedules] if args.key?(:schedules)
1377
+ @state = args[:state] if args.key?(:state)
1378
+ end
1379
+ end
1380
+
1381
+ # Message requesting to start a server.
1382
+ class StartInstanceRequest
1383
+ include Google::Apis::Core::Hashable
1384
+
1385
+ def initialize(**args)
1386
+ update!(**args)
1387
+ end
1388
+
1389
+ # Update properties of this object
1390
+ def update!(**args)
1391
+ end
1392
+ end
1393
+
1394
+ # The `Status` type defines a logical error model that is suitable for different
1395
+ # programming environments, including REST APIs and RPC APIs. It is used by [
1396
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
1397
+ # data: error code, error message, and error details. You can find out more
1398
+ # about this error model and how to work with it in the [API Design Guide](https:
1399
+ # //cloud.google.com/apis/design/errors).
1400
+ class Status
1401
+ include Google::Apis::Core::Hashable
1402
+
1403
+ # The status code, which should be an enum value of google.rpc.Code.
1404
+ # Corresponds to the JSON property `code`
1405
+ # @return [Fixnum]
1406
+ attr_accessor :code
1407
+
1408
+ # A list of messages that carry the error details. There is a common set of
1409
+ # message types for APIs to use.
1410
+ # Corresponds to the JSON property `details`
1411
+ # @return [Array<Hash<String,Object>>]
1412
+ attr_accessor :details
1413
+
1414
+ # A developer-facing error message, which should be in English. Any user-facing
1415
+ # error message should be localized and sent in the google.rpc.Status.details
1416
+ # field, or localized by the client.
1417
+ # Corresponds to the JSON property `message`
1418
+ # @return [String]
1419
+ attr_accessor :message
1420
+
1421
+ def initialize(**args)
1422
+ update!(**args)
1423
+ end
1424
+
1425
+ # Update properties of this object
1426
+ def update!(**args)
1427
+ @code = args[:code] if args.key?(:code)
1428
+ @details = args[:details] if args.key?(:details)
1429
+ @message = args[:message] if args.key?(:message)
1430
+ end
1431
+ end
1432
+
1433
+ # Request for SubmitProvisioningConfig.
1434
+ class SubmitProvisioningConfigRequest
1435
+ include Google::Apis::Core::Hashable
1436
+
1437
+ # Optional. Email provided to send a confirmation with provisioning config to.
1438
+ # Corresponds to the JSON property `email`
1439
+ # @return [String]
1440
+ attr_accessor :email
1441
+
1442
+ # A provisioning configuration.
1443
+ # Corresponds to the JSON property `provisioningConfig`
1444
+ # @return [Google::Apis::BaremetalsolutionV2::ProvisioningConfig]
1445
+ attr_accessor :provisioning_config
1446
+
1447
+ def initialize(**args)
1448
+ update!(**args)
1449
+ end
1450
+
1451
+ # Update properties of this object
1452
+ def update!(**args)
1453
+ @email = args[:email] if args.key?(:email)
1454
+ @provisioning_config = args[:provisioning_config] if args.key?(:provisioning_config)
1455
+ end
1456
+ end
1457
+
1458
+ # Response for SubmitProvisioningConfig.
1459
+ class SubmitProvisioningConfigResponse
1460
+ include Google::Apis::Core::Hashable
1461
+
1462
+ # A provisioning configuration.
1463
+ # Corresponds to the JSON property `provisioningConfig`
1464
+ # @return [Google::Apis::BaremetalsolutionV2::ProvisioningConfig]
1465
+ attr_accessor :provisioning_config
1466
+
1467
+ def initialize(**args)
1468
+ update!(**args)
1469
+ end
1470
+
1471
+ # Update properties of this object
1472
+ def update!(**args)
1473
+ @provisioning_config = args[:provisioning_config] if args.key?(:provisioning_config)
1474
+ end
1475
+ end
1476
+
1477
+ # A network VRF.
1478
+ class Vrf
1479
+ include Google::Apis::Core::Hashable
1480
+
1481
+ # The name of the VRF.
1482
+ # Corresponds to the JSON property `name`
1483
+ # @return [String]
1484
+ attr_accessor :name
1485
+
1486
+ # QOS policy parameters.
1487
+ # Corresponds to the JSON property `qosPolicy`
1488
+ # @return [Google::Apis::BaremetalsolutionV2::QosPolicy]
1489
+ attr_accessor :qos_policy
1490
+
1491
+ # The possible state of VRF.
1492
+ # Corresponds to the JSON property `state`
1493
+ # @return [String]
1494
+ attr_accessor :state
1495
+
1496
+ # The list of VLAN attachments for the VRF.
1497
+ # Corresponds to the JSON property `vlanAttachments`
1498
+ # @return [Array<Google::Apis::BaremetalsolutionV2::VlanAttachment>]
1499
+ attr_accessor :vlan_attachments
1500
+
1501
+ def initialize(**args)
1502
+ update!(**args)
1503
+ end
1504
+
1505
+ # Update properties of this object
1506
+ def update!(**args)
1507
+ @name = args[:name] if args.key?(:name)
1508
+ @qos_policy = args[:qos_policy] if args.key?(:qos_policy)
1509
+ @state = args[:state] if args.key?(:state)
1510
+ @vlan_attachments = args[:vlan_attachments] if args.key?(:vlan_attachments)
1511
+ end
1512
+ end
1513
+
1514
+ # VLAN attachment details.
1515
+ class VlanAttachment
1516
+ include Google::Apis::Core::Hashable
1517
+
1518
+ # The peer IP of the attachment.
1519
+ # Corresponds to the JSON property `peerIp`
1520
+ # @return [String]
1521
+ attr_accessor :peer_ip
1522
+
1523
+ # The peer vlan ID of the attachment.
1524
+ # Corresponds to the JSON property `peerVlanId`
1525
+ # @return [Fixnum]
1526
+ attr_accessor :peer_vlan_id
1527
+
1528
+ # The router IP of the attachment.
1529
+ # Corresponds to the JSON property `routerIp`
1530
+ # @return [String]
1531
+ attr_accessor :router_ip
1532
+
1533
+ def initialize(**args)
1534
+ update!(**args)
1535
+ end
1536
+
1537
+ # Update properties of this object
1538
+ def update!(**args)
1539
+ @peer_ip = args[:peer_ip] if args.key?(:peer_ip)
1540
+ @peer_vlan_id = args[:peer_vlan_id] if args.key?(:peer_vlan_id)
1541
+ @router_ip = args[:router_ip] if args.key?(:router_ip)
1542
+ end
1543
+ end
1544
+
1545
+ # A storage volume.
1546
+ class Volume
1547
+ include Google::Apis::Core::Hashable
1548
+
1549
+ # The size, in GiB, that this storage volume has expanded as a result of an auto
1550
+ # grow policy. In the absence of auto-grow, the value is 0.
1551
+ # Corresponds to the JSON property `autoGrownSizeGib`
1552
+ # @return [Fixnum]
1553
+ attr_accessor :auto_grown_size_gib
1554
+
1555
+ # The current size of this storage volume, in GiB, including space reserved for
1556
+ # snapshots. This size might be different than the requested size if the storage
1557
+ # volume has been configured with auto grow or auto shrink.
1558
+ # Corresponds to the JSON property `currentSizeGib`
1559
+ # @return [Fixnum]
1560
+ attr_accessor :current_size_gib
1561
+
1562
+ # An identifier for the `Volume`, generated by the backend.
1563
+ # Corresponds to the JSON property `id`
1564
+ # @return [String]
1565
+ attr_accessor :id
1566
+
1567
+ # Labels as key value pairs.
1568
+ # Corresponds to the JSON property `labels`
1569
+ # @return [Hash<String,String>]
1570
+ attr_accessor :labels
1571
+
1572
+ # Output only. The resource name of this `Volume`. Resource names are schemeless
1573
+ # URIs that follow the conventions in https://cloud.google.com/apis/design/
1574
+ # resource_names. Format: `projects/`project`/locations/`location`/volumes/`
1575
+ # volume``
1576
+ # Corresponds to the JSON property `name`
1577
+ # @return [String]
1578
+ attr_accessor :name
1579
+
1580
+ # The space remaining in the storage volume for new LUNs, in GiB, excluding
1581
+ # space reserved for snapshots.
1582
+ # Corresponds to the JSON property `remainingSpaceGib`
1583
+ # @return [Fixnum]
1584
+ attr_accessor :remaining_space_gib
1585
+
1586
+ # The requested size of this storage volume, in GiB.
1587
+ # Corresponds to the JSON property `requestedSizeGib`
1588
+ # @return [Fixnum]
1589
+ attr_accessor :requested_size_gib
1590
+
1591
+ # The behavior to use when snapshot reserved space is full.
1592
+ # Corresponds to the JSON property `snapshotAutoDeleteBehavior`
1593
+ # @return [String]
1594
+ attr_accessor :snapshot_auto_delete_behavior
1595
+
1596
+ # Details about snapshot space reservation and usage on the storage volume.
1597
+ # Corresponds to the JSON property `snapshotReservationDetail`
1598
+ # @return [Google::Apis::BaremetalsolutionV2::SnapshotReservationDetail]
1599
+ attr_accessor :snapshot_reservation_detail
1600
+
1601
+ # The name of the snapshot schedule policy in use for this volume, if any.
1602
+ # Corresponds to the JSON property `snapshotSchedulePolicy`
1603
+ # @return [String]
1604
+ attr_accessor :snapshot_schedule_policy
1605
+
1606
+ # The state of this storage volume.
1607
+ # Corresponds to the JSON property `state`
1608
+ # @return [String]
1609
+ attr_accessor :state
1610
+
1611
+ # The storage type for this volume.
1612
+ # Corresponds to the JSON property `storageType`
1613
+ # @return [String]
1614
+ attr_accessor :storage_type
1615
+
1616
+ def initialize(**args)
1617
+ update!(**args)
1618
+ end
1619
+
1620
+ # Update properties of this object
1621
+ def update!(**args)
1622
+ @auto_grown_size_gib = args[:auto_grown_size_gib] if args.key?(:auto_grown_size_gib)
1623
+ @current_size_gib = args[:current_size_gib] if args.key?(:current_size_gib)
1624
+ @id = args[:id] if args.key?(:id)
1625
+ @labels = args[:labels] if args.key?(:labels)
1626
+ @name = args[:name] if args.key?(:name)
1627
+ @remaining_space_gib = args[:remaining_space_gib] if args.key?(:remaining_space_gib)
1628
+ @requested_size_gib = args[:requested_size_gib] if args.key?(:requested_size_gib)
1629
+ @snapshot_auto_delete_behavior = args[:snapshot_auto_delete_behavior] if args.key?(:snapshot_auto_delete_behavior)
1630
+ @snapshot_reservation_detail = args[:snapshot_reservation_detail] if args.key?(:snapshot_reservation_detail)
1631
+ @snapshot_schedule_policy = args[:snapshot_schedule_policy] if args.key?(:snapshot_schedule_policy)
1632
+ @state = args[:state] if args.key?(:state)
1633
+ @storage_type = args[:storage_type] if args.key?(:storage_type)
1634
+ end
1635
+ end
1636
+
1637
+ # Configuration parameters for a new volume.
1638
+ class VolumeConfig
1639
+ include Google::Apis::Core::Hashable
1640
+
1641
+ # A transient unique identifier to identify a volume within an
1642
+ # ProvisioningConfig request.
1643
+ # Corresponds to the JSON property `id`
1644
+ # @return [String]
1645
+ attr_accessor :id
1646
+
1647
+ # LUN ranges to be configured. Set only when protocol is PROTOCOL_FC.
1648
+ # Corresponds to the JSON property `lunRanges`
1649
+ # @return [Array<Google::Apis::BaremetalsolutionV2::LunRange>]
1650
+ attr_accessor :lun_ranges
1651
+
1652
+ # Machine ids connected to this volume. Set only when protocol is PROTOCOL_FC.
1653
+ # Corresponds to the JSON property `machineIds`
1654
+ # @return [Array<String>]
1655
+ attr_accessor :machine_ids
1656
+
1657
+ # Output only. The name of the volume config.
1658
+ # Corresponds to the JSON property `name`
1659
+ # @return [String]
1660
+ attr_accessor :name
1661
+
1662
+ # NFS exports. Set only when protocol is PROTOCOL_NFS.
1663
+ # Corresponds to the JSON property `nfsExports`
1664
+ # @return [Array<Google::Apis::BaremetalsolutionV2::NfsExport>]
1665
+ attr_accessor :nfs_exports
1666
+
1667
+ # Volume protocol.
1668
+ # Corresponds to the JSON property `protocol`
1669
+ # @return [String]
1670
+ attr_accessor :protocol
1671
+
1672
+ # The requested size of this volume, in GB.
1673
+ # Corresponds to the JSON property `sizeGb`
1674
+ # @return [Fixnum]
1675
+ attr_accessor :size_gb
1676
+
1677
+ # Whether snapshots should be enabled.
1678
+ # Corresponds to the JSON property `snapshotsEnabled`
1679
+ # @return [Boolean]
1680
+ attr_accessor :snapshots_enabled
1681
+ alias_method :snapshots_enabled?, :snapshots_enabled
1682
+
1683
+ # The type of this Volume.
1684
+ # Corresponds to the JSON property `type`
1685
+ # @return [String]
1686
+ attr_accessor :type
1687
+
1688
+ # User note field, it can be used by customers to add additional information for
1689
+ # the BMS Ops team (b/194021617).
1690
+ # Corresponds to the JSON property `userNote`
1691
+ # @return [String]
1692
+ attr_accessor :user_note
1693
+
1694
+ def initialize(**args)
1695
+ update!(**args)
1696
+ end
1697
+
1698
+ # Update properties of this object
1699
+ def update!(**args)
1700
+ @id = args[:id] if args.key?(:id)
1701
+ @lun_ranges = args[:lun_ranges] if args.key?(:lun_ranges)
1702
+ @machine_ids = args[:machine_ids] if args.key?(:machine_ids)
1703
+ @name = args[:name] if args.key?(:name)
1704
+ @nfs_exports = args[:nfs_exports] if args.key?(:nfs_exports)
1705
+ @protocol = args[:protocol] if args.key?(:protocol)
1706
+ @size_gb = args[:size_gb] if args.key?(:size_gb)
1707
+ @snapshots_enabled = args[:snapshots_enabled] if args.key?(:snapshots_enabled)
1708
+ @type = args[:type] if args.key?(:type)
1709
+ @user_note = args[:user_note] if args.key?(:user_note)
1710
+ end
1711
+ end
1712
+
1713
+ # Snapshot registered for a given storage volume.
1714
+ class VolumeSnapshot
1715
+ include Google::Apis::Core::Hashable
1716
+
1717
+ # Output only. The creation time of the storage volume snapshot.
1718
+ # Corresponds to the JSON property `createTime`
1719
+ # @return [String]
1720
+ attr_accessor :create_time
1721
+
1722
+ # The description of the storage volume snapshot.
1723
+ # Corresponds to the JSON property `description`
1724
+ # @return [String]
1725
+ attr_accessor :description
1726
+
1727
+ # An identifier for the snapshot, generated by the backend.
1728
+ # Corresponds to the JSON property `id`
1729
+ # @return [String]
1730
+ attr_accessor :id
1731
+
1732
+ # Output only. The name of the storage volume snapshot.
1733
+ # Corresponds to the JSON property `name`
1734
+ # @return [String]
1735
+ attr_accessor :name
1736
+
1737
+ # The size of the storage volume snapshot, in bytes.
1738
+ # Corresponds to the JSON property `sizeBytes`
1739
+ # @return [Fixnum]
1740
+ attr_accessor :size_bytes
1741
+
1742
+ # The storage volume this snapshot belongs to.
1743
+ # Corresponds to the JSON property `storageVolume`
1744
+ # @return [String]
1745
+ attr_accessor :storage_volume
1746
+
1747
+ def initialize(**args)
1748
+ update!(**args)
1749
+ end
1750
+
1751
+ # Update properties of this object
1752
+ def update!(**args)
1753
+ @create_time = args[:create_time] if args.key?(:create_time)
1754
+ @description = args[:description] if args.key?(:description)
1755
+ @id = args[:id] if args.key?(:id)
1756
+ @name = args[:name] if args.key?(:name)
1757
+ @size_bytes = args[:size_bytes] if args.key?(:size_bytes)
1758
+ @storage_volume = args[:storage_volume] if args.key?(:storage_volume)
422
1759
  end
423
1760
  end
424
1761
  end