google-apis-baremetalsolution_v2 0.5.0 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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)