google-apis-baremetalsolution_v2 0.6.0 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -22,6 +22,66 @@ 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
+
25
85
  # A generic empty message that you can re-use to avoid defining duplicated empty
26
86
  # messages in your APIs. A typical example is to use it as the request or the
27
87
  # response type of an API method. For instance: service Foo ` rpc Bar(google.
@@ -126,6 +186,135 @@ module Google
126
186
  end
127
187
  end
128
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
+
129
318
  # Response message for the list of servers.
130
319
  class ListInstancesResponse
131
320
  include Google::Apis::Core::Hashable
@@ -213,6 +402,25 @@ module Google
213
402
  end
214
403
  end
215
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
+
216
424
  # Response message containing the list of networks.
217
425
  class ListNetworksResponse
218
426
  include Google::Apis::Core::Hashable
@@ -244,6 +452,63 @@ module Google
244
452
  end
245
453
  end
246
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
+
247
512
  # Response message containing the list of snapshot schedule policies.
248
513
  class ListSnapshotSchedulePoliciesResponse
249
514
  include Google::Apis::Core::Hashable
@@ -455,6 +720,31 @@ module Google
455
720
  end
456
721
  end
457
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
+
458
748
  # A Network.
459
749
  class Network
460
750
  include Google::Apis::Core::Hashable
@@ -537,6 +827,236 @@ module Google
537
827
  end
538
828
  end
539
829
 
830
+ # A network.
831
+ class NetworkAddress
832
+ include Google::Apis::Core::Hashable
833
+
834
+ # IPv4 address to be assigned to the server.
835
+ # Corresponds to the JSON property `address`
836
+ # @return [String]
837
+ attr_accessor :address
838
+
839
+ # Name of the existing network to use.
840
+ # Corresponds to the JSON property `existingNetworkId`
841
+ # @return [String]
842
+ attr_accessor :existing_network_id
843
+
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.
882
+ # Corresponds to the JSON property `name`
883
+ # @return [String]
884
+ attr_accessor :name
885
+
886
+ # Service CIDR, if any.
887
+ # Corresponds to the JSON property `serviceCidr`
888
+ # @return [String]
889
+ attr_accessor :service_cidr
890
+
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.
1036
+ # Corresponds to the JSON property `state`
1037
+ # @return [String]
1038
+ attr_accessor :state
1039
+
1040
+ # The volume containing the share.
1041
+ # Corresponds to the JSON property `volume`
1042
+ # @return [String]
1043
+ attr_accessor :volume
1044
+
1045
+ def initialize(**args)
1046
+ update!(**args)
1047
+ end
1048
+
1049
+ # Update properties of this object
1050
+ def update!(**args)
1051
+ @allowed_clients = args[:allowed_clients] if args.key?(:allowed_clients)
1052
+ @labels = args[:labels] if args.key?(:labels)
1053
+ @name = args[:name] if args.key?(:name)
1054
+ @nfs_share_id = args[:nfs_share_id] if args.key?(:nfs_share_id)
1055
+ @state = args[:state] if args.key?(:state)
1056
+ @volume = args[:volume] if args.key?(:volume)
1057
+ end
1058
+ end
1059
+
540
1060
  # This resource represents a long-running operation that is the result of a
541
1061
  # network API call.
542
1062
  class Operation
@@ -599,6 +1119,105 @@ module Google
599
1119
  end
600
1120
  end
601
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
+
602
1221
  # QOS policy parameters.
603
1222
  class QosPolicy
604
1223
  include Google::Apis::Core::Hashable
@@ -739,6 +1358,11 @@ module Google
739
1358
  # @return [Array<Google::Apis::BaremetalsolutionV2::Schedule>]
740
1359
  attr_accessor :schedules
741
1360
 
1361
+ # The state of the snapshot schedule policy.
1362
+ # Corresponds to the JSON property `state`
1363
+ # @return [String]
1364
+ attr_accessor :state
1365
+
742
1366
  def initialize(**args)
743
1367
  update!(**args)
744
1368
  end
@@ -750,6 +1374,20 @@ module Google
750
1374
  @labels = args[:labels] if args.key?(:labels)
751
1375
  @name = args[:name] if args.key?(:name)
752
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)
753
1391
  end
754
1392
  end
755
1393
 
@@ -792,6 +1430,50 @@ module Google
792
1430
  end
793
1431
  end
794
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
+
795
1477
  # A network VRF.
796
1478
  class Vrf
797
1479
  include Google::Apis::Core::Hashable
@@ -952,6 +1634,82 @@ module Google
952
1634
  end
953
1635
  end
954
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
+
955
1713
  # Snapshot registered for a given storage volume.
956
1714
  class VolumeSnapshot
957
1715
  include Google::Apis::Core::Hashable