google-apis-baremetalsolution_v2 0.3.0 → 0.7.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.
@@ -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