google-apis-baremetalsolution_v2 0.6.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -22,6 +22,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