google-apis-baremetalsolution_v2 0.5.0 → 0.8.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,19 +22,6 @@ module Google
22
22
  module Apis
23
23
  module BaremetalsolutionV2
24
24
 
25
- # The request message for Operations.CancelOperation.
26
- class CancelOperationRequest
27
- include Google::Apis::Core::Hashable
28
-
29
- def initialize(**args)
30
- update!(**args)
31
- end
32
-
33
- # Update properties of this object
34
- def update!(**args)
35
- end
36
- end
37
-
38
25
  # A generic empty message that you can re-use to avoid defining duplicated empty
39
26
  # messages in your APIs. A typical example is to use it as the request or the
40
27
  # response type of an API method. For instance: service Foo ` rpc Bar(google.
@@ -68,6 +55,11 @@ module Google
68
55
  attr_accessor :hyperthreading_enabled
69
56
  alias_method :hyperthreading_enabled?, :hyperthreading_enabled
70
57
 
58
+ # An identifier for the `Instance`, generated by the backend.
59
+ # Corresponds to the JSON property `id`
60
+ # @return [String]
61
+ attr_accessor :id
62
+
71
63
  # True if the interactive serial console feature is enabled for the instance,
72
64
  # false otherwise. The default value is false.
73
65
  # Corresponds to the JSON property `interactiveSerialConsoleEnabled`
@@ -122,6 +114,7 @@ module Google
122
114
  def update!(**args)
123
115
  @create_time = args[:create_time] if args.key?(:create_time)
124
116
  @hyperthreading_enabled = args[:hyperthreading_enabled] if args.key?(:hyperthreading_enabled)
117
+ @id = args[:id] if args.key?(:id)
125
118
  @interactive_serial_console_enabled = args[:interactive_serial_console_enabled] if args.key?(:interactive_serial_console_enabled)
126
119
  @labels = args[:labels] if args.key?(:labels)
127
120
  @luns = args[:luns] if args.key?(:luns)
@@ -133,6 +126,135 @@ module Google
133
126
  end
134
127
  end
135
128
 
129
+ # Configuration parameters for a new instance.
130
+ class InstanceConfig
131
+ include Google::Apis::Core::Hashable
132
+
133
+ # A network.
134
+ # Corresponds to the JSON property `clientNetwork`
135
+ # @return [Google::Apis::BaremetalsolutionV2::NetworkAddress]
136
+ attr_accessor :client_network
137
+
138
+ # Whether the instance should be provisioned with Hyperthreading enabled.
139
+ # Corresponds to the JSON property `hyperthreading`
140
+ # @return [Boolean]
141
+ attr_accessor :hyperthreading
142
+ alias_method :hyperthreading?, :hyperthreading
143
+
144
+ # A transient unique identifier to idenfity an instance within an
145
+ # ProvisioningConfig request.
146
+ # Corresponds to the JSON property `id`
147
+ # @return [String]
148
+ attr_accessor :id
149
+
150
+ # Instance type. [Available types](https://cloud.google.com/bare-metal/docs/bms-
151
+ # planning#server_configurations)
152
+ # Corresponds to the JSON property `instanceType`
153
+ # @return [String]
154
+ attr_accessor :instance_type
155
+
156
+ # Output only. The name of the instance config.
157
+ # Corresponds to the JSON property `name`
158
+ # @return [String]
159
+ attr_accessor :name
160
+
161
+ # OS image to initialize the instance. [Available images](https://cloud.google.
162
+ # com/bare-metal/docs/bms-planning#server_configurations)
163
+ # Corresponds to the JSON property `osImage`
164
+ # @return [String]
165
+ attr_accessor :os_image
166
+
167
+ # A network.
168
+ # Corresponds to the JSON property `privateNetwork`
169
+ # @return [Google::Apis::BaremetalsolutionV2::NetworkAddress]
170
+ attr_accessor :private_network
171
+
172
+ # User note field, it can be used by customers to add additional information for
173
+ # the BMS Ops team .
174
+ # Corresponds to the JSON property `userNote`
175
+ # @return [String]
176
+ attr_accessor :user_note
177
+
178
+ def initialize(**args)
179
+ update!(**args)
180
+ end
181
+
182
+ # Update properties of this object
183
+ def update!(**args)
184
+ @client_network = args[:client_network] if args.key?(:client_network)
185
+ @hyperthreading = args[:hyperthreading] if args.key?(:hyperthreading)
186
+ @id = args[:id] if args.key?(:id)
187
+ @instance_type = args[:instance_type] if args.key?(:instance_type)
188
+ @name = args[:name] if args.key?(:name)
189
+ @os_image = args[:os_image] if args.key?(:os_image)
190
+ @private_network = args[:private_network] if args.key?(:private_network)
191
+ @user_note = args[:user_note] if args.key?(:user_note)
192
+ end
193
+ end
194
+
195
+ # A resource budget.
196
+ class InstanceQuota
197
+ include Google::Apis::Core::Hashable
198
+
199
+ # Number of machines than can be created for the given location and
200
+ # instance_type.
201
+ # Corresponds to the JSON property `availableMachineCount`
202
+ # @return [Fixnum]
203
+ attr_accessor :available_machine_count
204
+
205
+ # Instance type.
206
+ # Corresponds to the JSON property `instanceType`
207
+ # @return [String]
208
+ attr_accessor :instance_type
209
+
210
+ # Location where the quota applies.
211
+ # Corresponds to the JSON property `location`
212
+ # @return [String]
213
+ attr_accessor :location
214
+
215
+ # Output only. The name of the instance quota.
216
+ # Corresponds to the JSON property `name`
217
+ # @return [String]
218
+ attr_accessor :name
219
+
220
+ def initialize(**args)
221
+ update!(**args)
222
+ end
223
+
224
+ # Update properties of this object
225
+ def update!(**args)
226
+ @available_machine_count = args[:available_machine_count] if args.key?(:available_machine_count)
227
+ @instance_type = args[:instance_type] if args.key?(:instance_type)
228
+ @location = args[:location] if args.key?(:location)
229
+ @name = args[:name] if args.key?(:name)
230
+ end
231
+ end
232
+
233
+ # A GCP vlan attachment.
234
+ class IntakeVlanAttachment
235
+ include Google::Apis::Core::Hashable
236
+
237
+ # Identifier of the VLAN attachment.
238
+ # Corresponds to the JSON property `id`
239
+ # @return [String]
240
+ attr_accessor :id
241
+
242
+ # Attachment pairing key.
243
+ # Corresponds to the JSON property `pairingKey`
244
+ # @return [String]
245
+ attr_accessor :pairing_key
246
+
247
+ def initialize(**args)
248
+ update!(**args)
249
+ end
250
+
251
+ # Update properties of this object
252
+ def update!(**args)
253
+ @id = args[:id] if args.key?(:id)
254
+ @pairing_key = args[:pairing_key] if args.key?(:pairing_key)
255
+ end
256
+ end
257
+
136
258
  # Response message for the list of servers.
137
259
  class ListInstancesResponse
138
260
  include Google::Apis::Core::Hashable
@@ -220,6 +342,25 @@ module Google
220
342
  end
221
343
  end
222
344
 
345
+ # Response with Networks with IPs
346
+ class ListNetworkUsageResponse
347
+ include Google::Apis::Core::Hashable
348
+
349
+ # Networks with IPs.
350
+ # Corresponds to the JSON property `networks`
351
+ # @return [Array<Google::Apis::BaremetalsolutionV2::NetworkUsage>]
352
+ attr_accessor :networks
353
+
354
+ def initialize(**args)
355
+ update!(**args)
356
+ end
357
+
358
+ # Update properties of this object
359
+ def update!(**args)
360
+ @networks = args[:networks] if args.key?(:networks)
361
+ end
362
+ end
363
+
223
364
  # Response message containing the list of networks.
224
365
  class ListNetworksResponse
225
366
  include Google::Apis::Core::Hashable
@@ -251,19 +392,20 @@ module Google
251
392
  end
252
393
  end
253
394
 
254
- # The response message for Operations.ListOperations.
255
- class ListOperationsResponse
395
+ # Response message for the list of provisioning quotas.
396
+ class ListProvisioningQuotasResponse
256
397
  include Google::Apis::Core::Hashable
257
398
 
258
- # The standard List next-page token.
399
+ # Token to retrieve the next page of results, or empty if there are no more
400
+ # results in the list.
259
401
  # Corresponds to the JSON property `nextPageToken`
260
402
  # @return [String]
261
403
  attr_accessor :next_page_token
262
404
 
263
- # A list of operations that matches the specified filter in the request.
264
- # Corresponds to the JSON property `operations`
265
- # @return [Array<Google::Apis::BaremetalsolutionV2::Operation>]
266
- attr_accessor :operations
405
+ # The provisioning quotas registered in this project.
406
+ # Corresponds to the JSON property `provisioningQuotas`
407
+ # @return [Array<Google::Apis::BaremetalsolutionV2::ProvisioningQuota>]
408
+ attr_accessor :provisioning_quotas
267
409
 
268
410
  def initialize(**args)
269
411
  update!(**args)
@@ -272,7 +414,7 @@ module Google
272
414
  # Update properties of this object
273
415
  def update!(**args)
274
416
  @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
275
- @operations = args[:operations] if args.key?(:operations)
417
+ @provisioning_quotas = args[:provisioning_quotas] if args.key?(:provisioning_quotas)
276
418
  end
277
419
  end
278
420
 
@@ -421,6 +563,11 @@ module Google
421
563
  attr_accessor :boot_lun
422
564
  alias_method :boot_lun?, :boot_lun
423
565
 
566
+ # An identifier for the LUN, generated by the backend.
567
+ # Corresponds to the JSON property `id`
568
+ # @return [String]
569
+ attr_accessor :id
570
+
424
571
  # The LUN multiprotocol type ensures the characteristics of the LUN are
425
572
  # optimized for each operating system.
426
573
  # Corresponds to the JSON property `multiprotocolType`
@@ -470,6 +617,7 @@ module Google
470
617
  # Update properties of this object
471
618
  def update!(**args)
472
619
  @boot_lun = args[:boot_lun] if args.key?(:boot_lun)
620
+ @id = args[:id] if args.key?(:id)
473
621
  @multiprotocol_type = args[:multiprotocol_type] if args.key?(:multiprotocol_type)
474
622
  @name = args[:name] if args.key?(:name)
475
623
  @shareable = args[:shareable] if args.key?(:shareable)
@@ -481,6 +629,31 @@ module Google
481
629
  end
482
630
  end
483
631
 
632
+ # A LUN(Logical Unit Number) range.
633
+ class LunRange
634
+ include Google::Apis::Core::Hashable
635
+
636
+ # Number of LUNs to create.
637
+ # Corresponds to the JSON property `quantity`
638
+ # @return [Fixnum]
639
+ attr_accessor :quantity
640
+
641
+ # The requested size of each LUN, in GB.
642
+ # Corresponds to the JSON property `sizeGb`
643
+ # @return [Fixnum]
644
+ attr_accessor :size_gb
645
+
646
+ def initialize(**args)
647
+ update!(**args)
648
+ end
649
+
650
+ # Update properties of this object
651
+ def update!(**args)
652
+ @quantity = args[:quantity] if args.key?(:quantity)
653
+ @size_gb = args[:size_gb] if args.key?(:size_gb)
654
+ end
655
+ end
656
+
484
657
  # A Network.
485
658
  class Network
486
659
  include Google::Apis::Core::Hashable
@@ -490,11 +663,21 @@ module Google
490
663
  # @return [String]
491
664
  attr_accessor :cidr
492
665
 
666
+ # An identifier for the `Network`, generated by the backend.
667
+ # Corresponds to the JSON property `id`
668
+ # @return [String]
669
+ attr_accessor :id
670
+
493
671
  # IP address configured.
494
672
  # Corresponds to the JSON property `ipAddress`
495
673
  # @return [String]
496
674
  attr_accessor :ip_address
497
675
 
676
+ # Labels as key value pairs.
677
+ # Corresponds to the JSON property `labels`
678
+ # @return [Hash<String,String>]
679
+ attr_accessor :labels
680
+
498
681
  # List of physical interfaces.
499
682
  # Corresponds to the JSON property `macAddress`
500
683
  # @return [Array<String>]
@@ -503,17 +686,15 @@ module Google
503
686
  # Output only. The resource name of this `Network`. Resource names are
504
687
  # schemeless URIs that follow the conventions in https://cloud.google.com/apis/
505
688
  # design/resource_names. Format: `projects/`project`/locations/`location`/
506
- # networks/`network`` This field will contain the same value as field "network",
507
- # which will soon be deprecated. Please use this field to reference the name of
508
- # the network resource.
689
+ # networks/`network``
509
690
  # Corresponds to the JSON property `name`
510
691
  # @return [String]
511
692
  attr_accessor :name
512
693
 
513
- # Name of the network.
514
- # Corresponds to the JSON property `network`
694
+ # IP range for reserved for services (e.g. NFS).
695
+ # Corresponds to the JSON property `servicesCidr`
515
696
  # @return [String]
516
- attr_accessor :network
697
+ attr_accessor :services_cidr
517
698
 
518
699
  # The Network state.
519
700
  # Corresponds to the JSON property `state`
@@ -542,10 +723,12 @@ module Google
542
723
  # Update properties of this object
543
724
  def update!(**args)
544
725
  @cidr = args[:cidr] if args.key?(:cidr)
726
+ @id = args[:id] if args.key?(:id)
545
727
  @ip_address = args[:ip_address] if args.key?(:ip_address)
728
+ @labels = args[:labels] if args.key?(:labels)
546
729
  @mac_address = args[:mac_address] if args.key?(:mac_address)
547
730
  @name = args[:name] if args.key?(:name)
548
- @network = args[:network] if args.key?(:network)
731
+ @services_cidr = args[:services_cidr] if args.key?(:services_cidr)
549
732
  @state = args[:state] if args.key?(:state)
550
733
  @type = args[:type] if args.key?(:type)
551
734
  @vlan_id = args[:vlan_id] if args.key?(:vlan_id)
@@ -553,6 +736,201 @@ module Google
553
736
  end
554
737
  end
555
738
 
739
+ # A network.
740
+ class NetworkAddress
741
+ include Google::Apis::Core::Hashable
742
+
743
+ # IPv4 address to be assigned to the server.
744
+ # Corresponds to the JSON property `address`
745
+ # @return [String]
746
+ attr_accessor :address
747
+
748
+ # Name of the existing network to use.
749
+ # Corresponds to the JSON property `existingNetworkId`
750
+ # @return [String]
751
+ attr_accessor :existing_network_id
752
+
753
+ # Id of the network to use, within the same ProvisioningConfig request.
754
+ # Corresponds to the JSON property `networkId`
755
+ # @return [String]
756
+ attr_accessor :network_id
757
+
758
+ def initialize(**args)
759
+ update!(**args)
760
+ end
761
+
762
+ # Update properties of this object
763
+ def update!(**args)
764
+ @address = args[:address] if args.key?(:address)
765
+ @existing_network_id = args[:existing_network_id] if args.key?(:existing_network_id)
766
+ @network_id = args[:network_id] if args.key?(:network_id)
767
+ end
768
+ end
769
+
770
+ # Configuration parameters for a new network.
771
+ class NetworkConfig
772
+ include Google::Apis::Core::Hashable
773
+
774
+ # Interconnect bandwidth. Set only when type is CLIENT.
775
+ # Corresponds to the JSON property `bandwidth`
776
+ # @return [String]
777
+ attr_accessor :bandwidth
778
+
779
+ # CIDR range of the network.
780
+ # Corresponds to the JSON property `cidr`
781
+ # @return [String]
782
+ attr_accessor :cidr
783
+
784
+ # The GCP service of the network. Available gcp_service are in https://cloud.
785
+ # google.com/bare-metal/docs/bms-planning.
786
+ # Corresponds to the JSON property `gcpService`
787
+ # @return [String]
788
+ attr_accessor :gcp_service
789
+
790
+ # A transient unique identifier to identify a volume within an
791
+ # ProvisioningConfig request.
792
+ # Corresponds to the JSON property `id`
793
+ # @return [String]
794
+ attr_accessor :id
795
+
796
+ # Output only. The name of the network config.
797
+ # Corresponds to the JSON property `name`
798
+ # @return [String]
799
+ attr_accessor :name
800
+
801
+ # Service CIDR, if any.
802
+ # Corresponds to the JSON property `serviceCidr`
803
+ # @return [String]
804
+ attr_accessor :service_cidr
805
+
806
+ # The type of this network, either Client or Private.
807
+ # Corresponds to the JSON property `type`
808
+ # @return [String]
809
+ attr_accessor :type
810
+
811
+ # User note field, it can be used by customers to add additional information for
812
+ # the BMS Ops team (b/194021617).
813
+ # Corresponds to the JSON property `userNote`
814
+ # @return [String]
815
+ attr_accessor :user_note
816
+
817
+ # List of VLAN attachments. As of now there are always 2 attachments, but it is
818
+ # going to change in the future (multi vlan).
819
+ # Corresponds to the JSON property `vlanAttachments`
820
+ # @return [Array<Google::Apis::BaremetalsolutionV2::IntakeVlanAttachment>]
821
+ attr_accessor :vlan_attachments
822
+
823
+ # Whether the VLAN attachment pair is located in the same project.
824
+ # Corresponds to the JSON property `vlanSameProject`
825
+ # @return [Boolean]
826
+ attr_accessor :vlan_same_project
827
+ alias_method :vlan_same_project?, :vlan_same_project
828
+
829
+ def initialize(**args)
830
+ update!(**args)
831
+ end
832
+
833
+ # Update properties of this object
834
+ def update!(**args)
835
+ @bandwidth = args[:bandwidth] if args.key?(:bandwidth)
836
+ @cidr = args[:cidr] if args.key?(:cidr)
837
+ @gcp_service = args[:gcp_service] if args.key?(:gcp_service)
838
+ @id = args[:id] if args.key?(:id)
839
+ @name = args[:name] if args.key?(:name)
840
+ @service_cidr = args[:service_cidr] if args.key?(:service_cidr)
841
+ @type = args[:type] if args.key?(:type)
842
+ @user_note = args[:user_note] if args.key?(:user_note)
843
+ @vlan_attachments = args[:vlan_attachments] if args.key?(:vlan_attachments)
844
+ @vlan_same_project = args[:vlan_same_project] if args.key?(:vlan_same_project)
845
+ end
846
+ end
847
+
848
+ # Network with all used IP addresses.
849
+ class NetworkUsage
850
+ include Google::Apis::Core::Hashable
851
+
852
+ # A Network.
853
+ # Corresponds to the JSON property `network`
854
+ # @return [Google::Apis::BaremetalsolutionV2::Network]
855
+ attr_accessor :network
856
+
857
+ # All used IP addresses in this network.
858
+ # Corresponds to the JSON property `usedIps`
859
+ # @return [Array<String>]
860
+ attr_accessor :used_ips
861
+
862
+ def initialize(**args)
863
+ update!(**args)
864
+ end
865
+
866
+ # Update properties of this object
867
+ def update!(**args)
868
+ @network = args[:network] if args.key?(:network)
869
+ @used_ips = args[:used_ips] if args.key?(:used_ips)
870
+ end
871
+ end
872
+
873
+ # A NFS export entry.
874
+ class NfsExport
875
+ include Google::Apis::Core::Hashable
876
+
877
+ # Allow dev flag in NfsShare AllowedClientsRequest.
878
+ # Corresponds to the JSON property `allowDev`
879
+ # @return [Boolean]
880
+ attr_accessor :allow_dev
881
+ alias_method :allow_dev?, :allow_dev
882
+
883
+ # Allow the setuid flag.
884
+ # Corresponds to the JSON property `allowSuid`
885
+ # @return [Boolean]
886
+ attr_accessor :allow_suid
887
+ alias_method :allow_suid?, :allow_suid
888
+
889
+ # A CIDR range.
890
+ # Corresponds to the JSON property `cidr`
891
+ # @return [String]
892
+ attr_accessor :cidr
893
+
894
+ # Either a single machine, identified by an ID, or a comma-separated list of
895
+ # machine IDs.
896
+ # Corresponds to the JSON property `machineId`
897
+ # @return [String]
898
+ attr_accessor :machine_id
899
+
900
+ # Network to use to publish the export.
901
+ # Corresponds to the JSON property `networkId`
902
+ # @return [String]
903
+ attr_accessor :network_id
904
+
905
+ # Disable root squashing, which is a feature of NFS. Root squash is a special
906
+ # mapping of the remote superuser (root) identity when using identity
907
+ # authentication.
908
+ # Corresponds to the JSON property `noRootSquash`
909
+ # @return [Boolean]
910
+ attr_accessor :no_root_squash
911
+ alias_method :no_root_squash?, :no_root_squash
912
+
913
+ # Export permissions.
914
+ # Corresponds to the JSON property `permissions`
915
+ # @return [String]
916
+ attr_accessor :permissions
917
+
918
+ def initialize(**args)
919
+ update!(**args)
920
+ end
921
+
922
+ # Update properties of this object
923
+ def update!(**args)
924
+ @allow_dev = args[:allow_dev] if args.key?(:allow_dev)
925
+ @allow_suid = args[:allow_suid] if args.key?(:allow_suid)
926
+ @cidr = args[:cidr] if args.key?(:cidr)
927
+ @machine_id = args[:machine_id] if args.key?(:machine_id)
928
+ @network_id = args[:network_id] if args.key?(:network_id)
929
+ @no_root_squash = args[:no_root_squash] if args.key?(:no_root_squash)
930
+ @permissions = args[:permissions] if args.key?(:permissions)
931
+ end
932
+ end
933
+
556
934
  # This resource represents a long-running operation that is the result of a
557
935
  # network API call.
558
936
  class Operation
@@ -615,6 +993,155 @@ module Google
615
993
  end
616
994
  end
617
995
 
996
+ # A provisioning configuration.
997
+ class ProvisioningConfig
998
+ include Google::Apis::Core::Hashable
999
+
1000
+ # Output only. URI to Cloud Console UI view of this provisioning config.
1001
+ # Corresponds to the JSON property `cloudConsoleUri`
1002
+ # @return [String]
1003
+ attr_accessor :cloud_console_uri
1004
+
1005
+ # Optional. Email provided to send a confirmation with provisioning config to.
1006
+ # Corresponds to the JSON property `email`
1007
+ # @return [String]
1008
+ attr_accessor :email
1009
+
1010
+ # A service account to enable customers to access instance credentials upon
1011
+ # handover.
1012
+ # Corresponds to the JSON property `handoverServiceAccount`
1013
+ # @return [String]
1014
+ attr_accessor :handover_service_account
1015
+
1016
+ # Instances to be created.
1017
+ # Corresponds to the JSON property `instances`
1018
+ # @return [Array<Google::Apis::BaremetalsolutionV2::InstanceConfig>]
1019
+ attr_accessor :instances
1020
+
1021
+ # Optional. Location name of this ProvisioningConfig. It is optional only for
1022
+ # Intake UI transition period.
1023
+ # Corresponds to the JSON property `location`
1024
+ # @return [String]
1025
+ attr_accessor :location
1026
+
1027
+ # Output only. The name of the provisioning config.
1028
+ # Corresponds to the JSON property `name`
1029
+ # @return [String]
1030
+ attr_accessor :name
1031
+
1032
+ # Networks to be created.
1033
+ # Corresponds to the JSON property `networks`
1034
+ # @return [Array<Google::Apis::BaremetalsolutionV2::NetworkConfig>]
1035
+ attr_accessor :networks
1036
+
1037
+ # Output only. State of ProvisioningConfig.
1038
+ # Corresponds to the JSON property `state`
1039
+ # @return [String]
1040
+ attr_accessor :state
1041
+
1042
+ # A generated buganizer id to track provisioning request.
1043
+ # Corresponds to the JSON property `ticketId`
1044
+ # @return [String]
1045
+ attr_accessor :ticket_id
1046
+
1047
+ # Output only. Last update timestamp.
1048
+ # Corresponds to the JSON property `updateTime`
1049
+ # @return [String]
1050
+ attr_accessor :update_time
1051
+
1052
+ # Volumes to be created.
1053
+ # Corresponds to the JSON property `volumes`
1054
+ # @return [Array<Google::Apis::BaremetalsolutionV2::VolumeConfig>]
1055
+ attr_accessor :volumes
1056
+
1057
+ def initialize(**args)
1058
+ update!(**args)
1059
+ end
1060
+
1061
+ # Update properties of this object
1062
+ def update!(**args)
1063
+ @cloud_console_uri = args[:cloud_console_uri] if args.key?(:cloud_console_uri)
1064
+ @email = args[:email] if args.key?(:email)
1065
+ @handover_service_account = args[:handover_service_account] if args.key?(:handover_service_account)
1066
+ @instances = args[:instances] if args.key?(:instances)
1067
+ @location = args[:location] if args.key?(:location)
1068
+ @name = args[:name] if args.key?(:name)
1069
+ @networks = args[:networks] if args.key?(:networks)
1070
+ @state = args[:state] if args.key?(:state)
1071
+ @ticket_id = args[:ticket_id] if args.key?(:ticket_id)
1072
+ @update_time = args[:update_time] if args.key?(:update_time)
1073
+ @volumes = args[:volumes] if args.key?(:volumes)
1074
+ end
1075
+ end
1076
+
1077
+ # A provisioning quota for a given project.
1078
+ class ProvisioningQuota
1079
+ include Google::Apis::Core::Hashable
1080
+
1081
+ # The asset type of this provisioning quota.
1082
+ # Corresponds to the JSON property `assetType`
1083
+ # @return [String]
1084
+ attr_accessor :asset_type
1085
+
1086
+ # The available count of the provisioning quota.
1087
+ # Corresponds to the JSON property `availableCount`
1088
+ # @return [Fixnum]
1089
+ attr_accessor :available_count
1090
+
1091
+ # The gcp service of the provisioning quota.
1092
+ # Corresponds to the JSON property `gcpService`
1093
+ # @return [String]
1094
+ attr_accessor :gcp_service
1095
+
1096
+ # A resource budget.
1097
+ # Corresponds to the JSON property `instanceQuota`
1098
+ # @return [Google::Apis::BaremetalsolutionV2::InstanceQuota]
1099
+ attr_accessor :instance_quota
1100
+
1101
+ # The specific location of the provisioining quota.
1102
+ # Corresponds to the JSON property `location`
1103
+ # @return [String]
1104
+ attr_accessor :location
1105
+
1106
+ # Output only. The name of the provisioning quota.
1107
+ # Corresponds to the JSON property `name`
1108
+ # @return [String]
1109
+ attr_accessor :name
1110
+
1111
+ def initialize(**args)
1112
+ update!(**args)
1113
+ end
1114
+
1115
+ # Update properties of this object
1116
+ def update!(**args)
1117
+ @asset_type = args[:asset_type] if args.key?(:asset_type)
1118
+ @available_count = args[:available_count] if args.key?(:available_count)
1119
+ @gcp_service = args[:gcp_service] if args.key?(:gcp_service)
1120
+ @instance_quota = args[:instance_quota] if args.key?(:instance_quota)
1121
+ @location = args[:location] if args.key?(:location)
1122
+ @name = args[:name] if args.key?(:name)
1123
+ end
1124
+ end
1125
+
1126
+ # QOS policy parameters.
1127
+ class QosPolicy
1128
+ include Google::Apis::Core::Hashable
1129
+
1130
+ # The bandwidth permitted by the QOS policy, in gbps.
1131
+ # Corresponds to the JSON property `bandwidthGbps`
1132
+ # @return [Float]
1133
+ attr_accessor :bandwidth_gbps
1134
+
1135
+ def initialize(**args)
1136
+ update!(**args)
1137
+ end
1138
+
1139
+ # Update properties of this object
1140
+ def update!(**args)
1141
+ @bandwidth_gbps = args[:bandwidth_gbps] if args.key?(:bandwidth_gbps)
1142
+ end
1143
+ end
1144
+
618
1145
  # Message requesting to reset a server.
619
1146
  class ResetInstanceRequest
620
1147
  include Google::Apis::Core::Hashable
@@ -681,6 +1208,14 @@ module Google
681
1208
  # @return [Fixnum]
682
1209
  attr_accessor :reserved_space_gib
683
1210
 
1211
+ # Percent of the total Volume size reserved for snapshot copies. Enabling
1212
+ # snapshots requires reserving 20% or more of the storage volume space for
1213
+ # snapshots. Maximum reserved space for snapshots is 40%. Setting this field
1214
+ # will effectively set snapshot_enabled to true.
1215
+ # Corresponds to the JSON property `reservedSpacePercent`
1216
+ # @return [Fixnum]
1217
+ attr_accessor :reserved_space_percent
1218
+
684
1219
  # The amount, in GiB, of available space in this storage volume's reserved
685
1220
  # snapshot space.
686
1221
  # Corresponds to the JSON property `reservedSpaceRemainingGib`
@@ -701,6 +1236,7 @@ module Google
701
1236
  # Update properties of this object
702
1237
  def update!(**args)
703
1238
  @reserved_space_gib = args[:reserved_space_gib] if args.key?(:reserved_space_gib)
1239
+ @reserved_space_percent = args[:reserved_space_percent] if args.key?(:reserved_space_percent)
704
1240
  @reserved_space_remaining_gib = args[:reserved_space_remaining_gib] if args.key?(:reserved_space_remaining_gib)
705
1241
  @reserved_space_used_percent = args[:reserved_space_used_percent] if args.key?(:reserved_space_used_percent)
706
1242
  end
@@ -715,21 +1251,31 @@ module Google
715
1251
  # @return [String]
716
1252
  attr_accessor :description
717
1253
 
1254
+ # An identifier for the snapshot schedule policy, generated by the backend.
1255
+ # Corresponds to the JSON property `id`
1256
+ # @return [String]
1257
+ attr_accessor :id
1258
+
1259
+ # Labels as key value pairs.
1260
+ # Corresponds to the JSON property `labels`
1261
+ # @return [Hash<String,String>]
1262
+ attr_accessor :labels
1263
+
718
1264
  # Output only. The name of the snapshot schedule policy.
719
1265
  # Corresponds to the JSON property `name`
720
1266
  # @return [String]
721
1267
  attr_accessor :name
722
1268
 
723
- # The snapshot schedules contained in this policy. You can specify a maxiumum of
1269
+ # The snapshot schedules contained in this policy. You can specify a maximum of
724
1270
  # 5 schedules.
725
1271
  # Corresponds to the JSON property `schedules`
726
1272
  # @return [Array<Google::Apis::BaremetalsolutionV2::Schedule>]
727
1273
  attr_accessor :schedules
728
1274
 
729
- # The names of the volumes associated with this policy.
730
- # Corresponds to the JSON property `volumes`
731
- # @return [Array<String>]
732
- attr_accessor :volumes
1275
+ # The state of the snapshot schedule policy.
1276
+ # Corresponds to the JSON property `state`
1277
+ # @return [String]
1278
+ attr_accessor :state
733
1279
 
734
1280
  def initialize(**args)
735
1281
  update!(**args)
@@ -738,9 +1284,24 @@ module Google
738
1284
  # Update properties of this object
739
1285
  def update!(**args)
740
1286
  @description = args[:description] if args.key?(:description)
1287
+ @id = args[:id] if args.key?(:id)
1288
+ @labels = args[:labels] if args.key?(:labels)
741
1289
  @name = args[:name] if args.key?(:name)
742
1290
  @schedules = args[:schedules] if args.key?(:schedules)
743
- @volumes = args[:volumes] if args.key?(:volumes)
1291
+ @state = args[:state] if args.key?(:state)
1292
+ end
1293
+ end
1294
+
1295
+ # Message requesting to start a server.
1296
+ class StartInstanceRequest
1297
+ include Google::Apis::Core::Hashable
1298
+
1299
+ def initialize(**args)
1300
+ update!(**args)
1301
+ end
1302
+
1303
+ # Update properties of this object
1304
+ def update!(**args)
744
1305
  end
745
1306
  end
746
1307
 
@@ -783,46 +1344,115 @@ module Google
783
1344
  end
784
1345
  end
785
1346
 
786
- # A network VRF.
787
- class Vrf
1347
+ # Request for SubmitProvisioningConfig.
1348
+ class SubmitProvisioningConfigRequest
788
1349
  include Google::Apis::Core::Hashable
789
1350
 
790
- # The autonomous system number of the VRF.
791
- # Corresponds to the JSON property `autonomousSystemNumber`
1351
+ # Optional. Email provided to send a confirmation with provisioning config to.
1352
+ # Corresponds to the JSON property `email`
792
1353
  # @return [String]
793
- attr_accessor :autonomous_system_number
1354
+ attr_accessor :email
794
1355
 
795
- # The Juniper alias of the VRF.
796
- # Corresponds to the JSON property `juniperAlias`
797
- # @return [String]
798
- attr_accessor :juniper_alias
1356
+ # A provisioning configuration.
1357
+ # Corresponds to the JSON property `provisioningConfig`
1358
+ # @return [Google::Apis::BaremetalsolutionV2::ProvisioningConfig]
1359
+ attr_accessor :provisioning_config
1360
+
1361
+ def initialize(**args)
1362
+ update!(**args)
1363
+ end
1364
+
1365
+ # Update properties of this object
1366
+ def update!(**args)
1367
+ @email = args[:email] if args.key?(:email)
1368
+ @provisioning_config = args[:provisioning_config] if args.key?(:provisioning_config)
1369
+ end
1370
+ end
1371
+
1372
+ # Response for SubmitProvisioningConfig.
1373
+ class SubmitProvisioningConfigResponse
1374
+ include Google::Apis::Core::Hashable
1375
+
1376
+ # A provisioning configuration.
1377
+ # Corresponds to the JSON property `provisioningConfig`
1378
+ # @return [Google::Apis::BaremetalsolutionV2::ProvisioningConfig]
1379
+ attr_accessor :provisioning_config
1380
+
1381
+ def initialize(**args)
1382
+ update!(**args)
1383
+ end
1384
+
1385
+ # Update properties of this object
1386
+ def update!(**args)
1387
+ @provisioning_config = args[:provisioning_config] if args.key?(:provisioning_config)
1388
+ end
1389
+ end
1390
+
1391
+ # A network VRF.
1392
+ class Vrf
1393
+ include Google::Apis::Core::Hashable
799
1394
 
800
1395
  # The name of the VRF.
801
1396
  # Corresponds to the JSON property `name`
802
1397
  # @return [String]
803
1398
  attr_accessor :name
804
1399
 
805
- # The route target of the VRF.
806
- # Corresponds to the JSON property `routeTarget`
807
- # @return [Fixnum]
808
- attr_accessor :route_target
1400
+ # QOS policy parameters.
1401
+ # Corresponds to the JSON property `qosPolicy`
1402
+ # @return [Google::Apis::BaremetalsolutionV2::QosPolicy]
1403
+ attr_accessor :qos_policy
809
1404
 
810
1405
  # The possible state of VRF.
811
1406
  # Corresponds to the JSON property `state`
812
1407
  # @return [String]
813
1408
  attr_accessor :state
814
1409
 
1410
+ # The list of VLAN attachments for the VRF.
1411
+ # Corresponds to the JSON property `vlanAttachments`
1412
+ # @return [Array<Google::Apis::BaremetalsolutionV2::VlanAttachment>]
1413
+ attr_accessor :vlan_attachments
1414
+
815
1415
  def initialize(**args)
816
1416
  update!(**args)
817
1417
  end
818
1418
 
819
1419
  # Update properties of this object
820
1420
  def update!(**args)
821
- @autonomous_system_number = args[:autonomous_system_number] if args.key?(:autonomous_system_number)
822
- @juniper_alias = args[:juniper_alias] if args.key?(:juniper_alias)
823
1421
  @name = args[:name] if args.key?(:name)
824
- @route_target = args[:route_target] if args.key?(:route_target)
1422
+ @qos_policy = args[:qos_policy] if args.key?(:qos_policy)
825
1423
  @state = args[:state] if args.key?(:state)
1424
+ @vlan_attachments = args[:vlan_attachments] if args.key?(:vlan_attachments)
1425
+ end
1426
+ end
1427
+
1428
+ # VLAN attachment details.
1429
+ class VlanAttachment
1430
+ include Google::Apis::Core::Hashable
1431
+
1432
+ # The peer IP of the attachment.
1433
+ # Corresponds to the JSON property `peerIp`
1434
+ # @return [String]
1435
+ attr_accessor :peer_ip
1436
+
1437
+ # The peer vlan ID of the attachment.
1438
+ # Corresponds to the JSON property `peerVlanId`
1439
+ # @return [Fixnum]
1440
+ attr_accessor :peer_vlan_id
1441
+
1442
+ # The router IP of the attachment.
1443
+ # Corresponds to the JSON property `routerIp`
1444
+ # @return [String]
1445
+ attr_accessor :router_ip
1446
+
1447
+ def initialize(**args)
1448
+ update!(**args)
1449
+ end
1450
+
1451
+ # Update properties of this object
1452
+ def update!(**args)
1453
+ @peer_ip = args[:peer_ip] if args.key?(:peer_ip)
1454
+ @peer_vlan_id = args[:peer_vlan_id] if args.key?(:peer_vlan_id)
1455
+ @router_ip = args[:router_ip] if args.key?(:router_ip)
826
1456
  end
827
1457
  end
828
1458
 
@@ -843,6 +1473,16 @@ module Google
843
1473
  # @return [Fixnum]
844
1474
  attr_accessor :current_size_gib
845
1475
 
1476
+ # An identifier for the `Volume`, generated by the backend.
1477
+ # Corresponds to the JSON property `id`
1478
+ # @return [String]
1479
+ attr_accessor :id
1480
+
1481
+ # Labels as key value pairs.
1482
+ # Corresponds to the JSON property `labels`
1483
+ # @return [Hash<String,String>]
1484
+ attr_accessor :labels
1485
+
846
1486
  # Output only. The resource name of this `Volume`. Resource names are schemeless
847
1487
  # URIs that follow the conventions in https://cloud.google.com/apis/design/
848
1488
  # resource_names. Format: `projects/`project`/locations/`location`/volumes/`
@@ -867,6 +1507,12 @@ module Google
867
1507
  # @return [String]
868
1508
  attr_accessor :snapshot_auto_delete_behavior
869
1509
 
1510
+ # Whether snapshots are enabled.
1511
+ # Corresponds to the JSON property `snapshotEnabled`
1512
+ # @return [Boolean]
1513
+ attr_accessor :snapshot_enabled
1514
+ alias_method :snapshot_enabled?, :snapshot_enabled
1515
+
870
1516
  # Details about snapshot space reservation and usage on the storage volume.
871
1517
  # Corresponds to the JSON property `snapshotReservationDetail`
872
1518
  # @return [Google::Apis::BaremetalsolutionV2::SnapshotReservationDetail]
@@ -895,10 +1541,13 @@ module Google
895
1541
  def update!(**args)
896
1542
  @auto_grown_size_gib = args[:auto_grown_size_gib] if args.key?(:auto_grown_size_gib)
897
1543
  @current_size_gib = args[:current_size_gib] if args.key?(:current_size_gib)
1544
+ @id = args[:id] if args.key?(:id)
1545
+ @labels = args[:labels] if args.key?(:labels)
898
1546
  @name = args[:name] if args.key?(:name)
899
1547
  @remaining_space_gib = args[:remaining_space_gib] if args.key?(:remaining_space_gib)
900
1548
  @requested_size_gib = args[:requested_size_gib] if args.key?(:requested_size_gib)
901
1549
  @snapshot_auto_delete_behavior = args[:snapshot_auto_delete_behavior] if args.key?(:snapshot_auto_delete_behavior)
1550
+ @snapshot_enabled = args[:snapshot_enabled] if args.key?(:snapshot_enabled)
902
1551
  @snapshot_reservation_detail = args[:snapshot_reservation_detail] if args.key?(:snapshot_reservation_detail)
903
1552
  @snapshot_schedule_policy = args[:snapshot_schedule_policy] if args.key?(:snapshot_schedule_policy)
904
1553
  @state = args[:state] if args.key?(:state)
@@ -906,11 +1555,94 @@ module Google
906
1555
  end
907
1556
  end
908
1557
 
1558
+ # Configuration parameters for a new volume.
1559
+ class VolumeConfig
1560
+ include Google::Apis::Core::Hashable
1561
+
1562
+ # The GCP service of the storage volume. Available gcp_service are in https://
1563
+ # cloud.google.com/bare-metal/docs/bms-planning.
1564
+ # Corresponds to the JSON property `gcpService`
1565
+ # @return [String]
1566
+ attr_accessor :gcp_service
1567
+
1568
+ # A transient unique identifier to identify a volume within an
1569
+ # ProvisioningConfig request.
1570
+ # Corresponds to the JSON property `id`
1571
+ # @return [String]
1572
+ attr_accessor :id
1573
+
1574
+ # LUN ranges to be configured. Set only when protocol is PROTOCOL_FC.
1575
+ # Corresponds to the JSON property `lunRanges`
1576
+ # @return [Array<Google::Apis::BaremetalsolutionV2::LunRange>]
1577
+ attr_accessor :lun_ranges
1578
+
1579
+ # Machine ids connected to this volume. Set only when protocol is PROTOCOL_FC.
1580
+ # Corresponds to the JSON property `machineIds`
1581
+ # @return [Array<String>]
1582
+ attr_accessor :machine_ids
1583
+
1584
+ # Output only. The name of the volume config.
1585
+ # Corresponds to the JSON property `name`
1586
+ # @return [String]
1587
+ attr_accessor :name
1588
+
1589
+ # NFS exports. Set only when protocol is PROTOCOL_NFS.
1590
+ # Corresponds to the JSON property `nfsExports`
1591
+ # @return [Array<Google::Apis::BaremetalsolutionV2::NfsExport>]
1592
+ attr_accessor :nfs_exports
1593
+
1594
+ # Volume protocol.
1595
+ # Corresponds to the JSON property `protocol`
1596
+ # @return [String]
1597
+ attr_accessor :protocol
1598
+
1599
+ # The requested size of this volume, in GB.
1600
+ # Corresponds to the JSON property `sizeGb`
1601
+ # @return [Fixnum]
1602
+ attr_accessor :size_gb
1603
+
1604
+ # Whether snapshots should be enabled.
1605
+ # Corresponds to the JSON property `snapshotsEnabled`
1606
+ # @return [Boolean]
1607
+ attr_accessor :snapshots_enabled
1608
+ alias_method :snapshots_enabled?, :snapshots_enabled
1609
+
1610
+ # The type of this Volume.
1611
+ # Corresponds to the JSON property `type`
1612
+ # @return [String]
1613
+ attr_accessor :type
1614
+
1615
+ # User note field, it can be used by customers to add additional information for
1616
+ # the BMS Ops team (b/194021617).
1617
+ # Corresponds to the JSON property `userNote`
1618
+ # @return [String]
1619
+ attr_accessor :user_note
1620
+
1621
+ def initialize(**args)
1622
+ update!(**args)
1623
+ end
1624
+
1625
+ # Update properties of this object
1626
+ def update!(**args)
1627
+ @gcp_service = args[:gcp_service] if args.key?(:gcp_service)
1628
+ @id = args[:id] if args.key?(:id)
1629
+ @lun_ranges = args[:lun_ranges] if args.key?(:lun_ranges)
1630
+ @machine_ids = args[:machine_ids] if args.key?(:machine_ids)
1631
+ @name = args[:name] if args.key?(:name)
1632
+ @nfs_exports = args[:nfs_exports] if args.key?(:nfs_exports)
1633
+ @protocol = args[:protocol] if args.key?(:protocol)
1634
+ @size_gb = args[:size_gb] if args.key?(:size_gb)
1635
+ @snapshots_enabled = args[:snapshots_enabled] if args.key?(:snapshots_enabled)
1636
+ @type = args[:type] if args.key?(:type)
1637
+ @user_note = args[:user_note] if args.key?(:user_note)
1638
+ end
1639
+ end
1640
+
909
1641
  # Snapshot registered for a given storage volume.
910
1642
  class VolumeSnapshot
911
1643
  include Google::Apis::Core::Hashable
912
1644
 
913
- # Optional. The creation time of the storage volume snapshot.
1645
+ # Output only. The creation time of the storage volume snapshot.
914
1646
  # Corresponds to the JSON property `createTime`
915
1647
  # @return [String]
916
1648
  attr_accessor :create_time
@@ -920,6 +1652,11 @@ module Google
920
1652
  # @return [String]
921
1653
  attr_accessor :description
922
1654
 
1655
+ # An identifier for the snapshot, generated by the backend.
1656
+ # Corresponds to the JSON property `id`
1657
+ # @return [String]
1658
+ attr_accessor :id
1659
+
923
1660
  # Output only. The name of the storage volume snapshot.
924
1661
  # Corresponds to the JSON property `name`
925
1662
  # @return [String]
@@ -943,6 +1680,7 @@ module Google
943
1680
  def update!(**args)
944
1681
  @create_time = args[:create_time] if args.key?(:create_time)
945
1682
  @description = args[:description] if args.key?(:description)
1683
+ @id = args[:id] if args.key?(:id)
946
1684
  @name = args[:name] if args.key?(:name)
947
1685
  @size_bytes = args[:size_bytes] if args.key?(:size_bytes)
948
1686
  @storage_volume = args[:storage_volume] if args.key?(:storage_volume)