google-apis-baremetalsolution_v2 0.6.0 → 0.9.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,142 @@ 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
+ # If true networks can be from different projects of the same vendor account.
194
+ # Corresponds to the JSON property `accountNetworksEnabled`
195
+ # @return [Boolean]
196
+ attr_accessor :account_networks_enabled
197
+ alias_method :account_networks_enabled?, :account_networks_enabled
198
+
199
+ # A network.
200
+ # Corresponds to the JSON property `clientNetwork`
201
+ # @return [Google::Apis::BaremetalsolutionV2::NetworkAddress]
202
+ attr_accessor :client_network
203
+
204
+ # Whether the instance should be provisioned with Hyperthreading enabled.
205
+ # Corresponds to the JSON property `hyperthreading`
206
+ # @return [Boolean]
207
+ attr_accessor :hyperthreading
208
+ alias_method :hyperthreading?, :hyperthreading
209
+
210
+ # A transient unique identifier to idenfity an instance within an
211
+ # ProvisioningConfig request.
212
+ # Corresponds to the JSON property `id`
213
+ # @return [String]
214
+ attr_accessor :id
215
+
216
+ # Instance type. [Available types](https://cloud.google.com/bare-metal/docs/bms-
217
+ # planning#server_configurations)
218
+ # Corresponds to the JSON property `instanceType`
219
+ # @return [String]
220
+ attr_accessor :instance_type
221
+
222
+ # Output only. The name of the instance config.
223
+ # Corresponds to the JSON property `name`
224
+ # @return [String]
225
+ attr_accessor :name
226
+
227
+ # OS image to initialize the instance. [Available images](https://cloud.google.
228
+ # com/bare-metal/docs/bms-planning#server_configurations)
229
+ # Corresponds to the JSON property `osImage`
230
+ # @return [String]
231
+ attr_accessor :os_image
232
+
233
+ # A network.
234
+ # Corresponds to the JSON property `privateNetwork`
235
+ # @return [Google::Apis::BaremetalsolutionV2::NetworkAddress]
236
+ attr_accessor :private_network
237
+
238
+ # User note field, it can be used by customers to add additional information for
239
+ # the BMS Ops team .
240
+ # Corresponds to the JSON property `userNote`
241
+ # @return [String]
242
+ attr_accessor :user_note
243
+
244
+ def initialize(**args)
245
+ update!(**args)
246
+ end
247
+
248
+ # Update properties of this object
249
+ def update!(**args)
250
+ @account_networks_enabled = args[:account_networks_enabled] if args.key?(:account_networks_enabled)
251
+ @client_network = args[:client_network] if args.key?(:client_network)
252
+ @hyperthreading = args[:hyperthreading] if args.key?(:hyperthreading)
253
+ @id = args[:id] if args.key?(:id)
254
+ @instance_type = args[:instance_type] if args.key?(:instance_type)
255
+ @name = args[:name] if args.key?(:name)
256
+ @os_image = args[:os_image] if args.key?(:os_image)
257
+ @private_network = args[:private_network] if args.key?(:private_network)
258
+ @user_note = args[:user_note] if args.key?(:user_note)
259
+ end
260
+ end
261
+
262
+ # A resource budget.
263
+ class InstanceQuota
264
+ include Google::Apis::Core::Hashable
265
+
266
+ # Number of machines than can be created for the given location and
267
+ # instance_type.
268
+ # Corresponds to the JSON property `availableMachineCount`
269
+ # @return [Fixnum]
270
+ attr_accessor :available_machine_count
271
+
272
+ # Instance type.
273
+ # Corresponds to the JSON property `instanceType`
274
+ # @return [String]
275
+ attr_accessor :instance_type
276
+
277
+ # Location where the quota applies.
278
+ # Corresponds to the JSON property `location`
279
+ # @return [String]
280
+ attr_accessor :location
281
+
282
+ # Output only. The name of the instance quota.
283
+ # Corresponds to the JSON property `name`
284
+ # @return [String]
285
+ attr_accessor :name
286
+
287
+ def initialize(**args)
288
+ update!(**args)
289
+ end
290
+
291
+ # Update properties of this object
292
+ def update!(**args)
293
+ @available_machine_count = args[:available_machine_count] if args.key?(:available_machine_count)
294
+ @instance_type = args[:instance_type] if args.key?(:instance_type)
295
+ @location = args[:location] if args.key?(:location)
296
+ @name = args[:name] if args.key?(:name)
297
+ end
298
+ end
299
+
300
+ # A GCP vlan attachment.
301
+ class IntakeVlanAttachment
302
+ include Google::Apis::Core::Hashable
303
+
304
+ # Identifier of the VLAN attachment.
305
+ # Corresponds to the JSON property `id`
306
+ # @return [String]
307
+ attr_accessor :id
308
+
309
+ # Attachment pairing key.
310
+ # Corresponds to the JSON property `pairingKey`
311
+ # @return [String]
312
+ attr_accessor :pairing_key
313
+
314
+ def initialize(**args)
315
+ update!(**args)
316
+ end
317
+
318
+ # Update properties of this object
319
+ def update!(**args)
320
+ @id = args[:id] if args.key?(:id)
321
+ @pairing_key = args[:pairing_key] if args.key?(:pairing_key)
322
+ end
323
+ end
324
+
129
325
  # Response message for the list of servers.
130
326
  class ListInstancesResponse
131
327
  include Google::Apis::Core::Hashable
@@ -213,6 +409,25 @@ module Google
213
409
  end
214
410
  end
215
411
 
412
+ # Response with Networks with IPs
413
+ class ListNetworkUsageResponse
414
+ include Google::Apis::Core::Hashable
415
+
416
+ # Networks with IPs.
417
+ # Corresponds to the JSON property `networks`
418
+ # @return [Array<Google::Apis::BaremetalsolutionV2::NetworkUsage>]
419
+ attr_accessor :networks
420
+
421
+ def initialize(**args)
422
+ update!(**args)
423
+ end
424
+
425
+ # Update properties of this object
426
+ def update!(**args)
427
+ @networks = args[:networks] if args.key?(:networks)
428
+ end
429
+ end
430
+
216
431
  # Response message containing the list of networks.
217
432
  class ListNetworksResponse
218
433
  include Google::Apis::Core::Hashable
@@ -244,6 +459,63 @@ module Google
244
459
  end
245
460
  end
246
461
 
462
+ # Response message containing the list of NFS shares.
463
+ class ListNfsSharesResponse
464
+ include Google::Apis::Core::Hashable
465
+
466
+ # A token identifying a page of results from the server.
467
+ # Corresponds to the JSON property `nextPageToken`
468
+ # @return [String]
469
+ attr_accessor :next_page_token
470
+
471
+ # The list of NFS shares.
472
+ # Corresponds to the JSON property `nfsShares`
473
+ # @return [Array<Google::Apis::BaremetalsolutionV2::NfsShare>]
474
+ attr_accessor :nfs_shares
475
+
476
+ # Locations that could not be reached.
477
+ # Corresponds to the JSON property `unreachable`
478
+ # @return [Array<String>]
479
+ attr_accessor :unreachable
480
+
481
+ def initialize(**args)
482
+ update!(**args)
483
+ end
484
+
485
+ # Update properties of this object
486
+ def update!(**args)
487
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
488
+ @nfs_shares = args[:nfs_shares] if args.key?(:nfs_shares)
489
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
490
+ end
491
+ end
492
+
493
+ # Response message for the list of provisioning quotas.
494
+ class ListProvisioningQuotasResponse
495
+ include Google::Apis::Core::Hashable
496
+
497
+ # Token to retrieve the next page of results, or empty if there are no more
498
+ # results in the list.
499
+ # Corresponds to the JSON property `nextPageToken`
500
+ # @return [String]
501
+ attr_accessor :next_page_token
502
+
503
+ # The provisioning quotas registered in this project.
504
+ # Corresponds to the JSON property `provisioningQuotas`
505
+ # @return [Array<Google::Apis::BaremetalsolutionV2::ProvisioningQuota>]
506
+ attr_accessor :provisioning_quotas
507
+
508
+ def initialize(**args)
509
+ update!(**args)
510
+ end
511
+
512
+ # Update properties of this object
513
+ def update!(**args)
514
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
515
+ @provisioning_quotas = args[:provisioning_quotas] if args.key?(:provisioning_quotas)
516
+ end
517
+ end
518
+
247
519
  # Response message containing the list of snapshot schedule policies.
248
520
  class ListSnapshotSchedulePoliciesResponse
249
521
  include Google::Apis::Core::Hashable
@@ -455,6 +727,31 @@ module Google
455
727
  end
456
728
  end
457
729
 
730
+ # A LUN(Logical Unit Number) range.
731
+ class LunRange
732
+ include Google::Apis::Core::Hashable
733
+
734
+ # Number of LUNs to create.
735
+ # Corresponds to the JSON property `quantity`
736
+ # @return [Fixnum]
737
+ attr_accessor :quantity
738
+
739
+ # The requested size of each LUN, in GB.
740
+ # Corresponds to the JSON property `sizeGb`
741
+ # @return [Fixnum]
742
+ attr_accessor :size_gb
743
+
744
+ def initialize(**args)
745
+ update!(**args)
746
+ end
747
+
748
+ # Update properties of this object
749
+ def update!(**args)
750
+ @quantity = args[:quantity] if args.key?(:quantity)
751
+ @size_gb = args[:size_gb] if args.key?(:size_gb)
752
+ end
753
+ end
754
+
458
755
  # A Network.
459
756
  class Network
460
757
  include Google::Apis::Core::Hashable
@@ -537,6 +834,250 @@ module Google
537
834
  end
538
835
  end
539
836
 
837
+ # A network.
838
+ class NetworkAddress
839
+ include Google::Apis::Core::Hashable
840
+
841
+ # IPv4 address to be assigned to the server.
842
+ # Corresponds to the JSON property `address`
843
+ # @return [String]
844
+ attr_accessor :address
845
+
846
+ # Name of the existing network to use.
847
+ # Corresponds to the JSON property `existingNetworkId`
848
+ # @return [String]
849
+ attr_accessor :existing_network_id
850
+
851
+ # Id of the network to use, within the same ProvisioningConfig request.
852
+ # Corresponds to the JSON property `networkId`
853
+ # @return [String]
854
+ attr_accessor :network_id
855
+
856
+ def initialize(**args)
857
+ update!(**args)
858
+ end
859
+
860
+ # Update properties of this object
861
+ def update!(**args)
862
+ @address = args[:address] if args.key?(:address)
863
+ @existing_network_id = args[:existing_network_id] if args.key?(:existing_network_id)
864
+ @network_id = args[:network_id] if args.key?(:network_id)
865
+ end
866
+ end
867
+
868
+ # Configuration parameters for a new network.
869
+ class NetworkConfig
870
+ include Google::Apis::Core::Hashable
871
+
872
+ # Interconnect bandwidth. Set only when type is CLIENT.
873
+ # Corresponds to the JSON property `bandwidth`
874
+ # @return [String]
875
+ attr_accessor :bandwidth
876
+
877
+ # CIDR range of the network.
878
+ # Corresponds to the JSON property `cidr`
879
+ # @return [String]
880
+ attr_accessor :cidr
881
+
882
+ # The GCP service of the network. Available gcp_service are in https://cloud.
883
+ # google.com/bare-metal/docs/bms-planning.
884
+ # Corresponds to the JSON property `gcpService`
885
+ # @return [String]
886
+ attr_accessor :gcp_service
887
+
888
+ # A transient unique identifier to identify a volume within an
889
+ # ProvisioningConfig request.
890
+ # Corresponds to the JSON property `id`
891
+ # @return [String]
892
+ attr_accessor :id
893
+
894
+ # Output only. The name of the network config.
895
+ # Corresponds to the JSON property `name`
896
+ # @return [String]
897
+ attr_accessor :name
898
+
899
+ # Service CIDR, if any.
900
+ # Corresponds to the JSON property `serviceCidr`
901
+ # @return [String]
902
+ attr_accessor :service_cidr
903
+
904
+ # The type of this network, either Client or Private.
905
+ # Corresponds to the JSON property `type`
906
+ # @return [String]
907
+ attr_accessor :type
908
+
909
+ # User note field, it can be used by customers to add additional information for
910
+ # the BMS Ops team (b/194021617).
911
+ # Corresponds to the JSON property `userNote`
912
+ # @return [String]
913
+ attr_accessor :user_note
914
+
915
+ # List of VLAN attachments. As of now there are always 2 attachments, but it is
916
+ # going to change in the future (multi vlan).
917
+ # Corresponds to the JSON property `vlanAttachments`
918
+ # @return [Array<Google::Apis::BaremetalsolutionV2::IntakeVlanAttachment>]
919
+ attr_accessor :vlan_attachments
920
+
921
+ # Whether the VLAN attachment pair is located in the same project.
922
+ # Corresponds to the JSON property `vlanSameProject`
923
+ # @return [Boolean]
924
+ attr_accessor :vlan_same_project
925
+ alias_method :vlan_same_project?, :vlan_same_project
926
+
927
+ def initialize(**args)
928
+ update!(**args)
929
+ end
930
+
931
+ # Update properties of this object
932
+ def update!(**args)
933
+ @bandwidth = args[:bandwidth] if args.key?(:bandwidth)
934
+ @cidr = args[:cidr] if args.key?(:cidr)
935
+ @gcp_service = args[:gcp_service] if args.key?(:gcp_service)
936
+ @id = args[:id] if args.key?(:id)
937
+ @name = args[:name] if args.key?(:name)
938
+ @service_cidr = args[:service_cidr] if args.key?(:service_cidr)
939
+ @type = args[:type] if args.key?(:type)
940
+ @user_note = args[:user_note] if args.key?(:user_note)
941
+ @vlan_attachments = args[:vlan_attachments] if args.key?(:vlan_attachments)
942
+ @vlan_same_project = args[:vlan_same_project] if args.key?(:vlan_same_project)
943
+ end
944
+ end
945
+
946
+ # Network with all used IP addresses.
947
+ class NetworkUsage
948
+ include Google::Apis::Core::Hashable
949
+
950
+ # A Network.
951
+ # Corresponds to the JSON property `network`
952
+ # @return [Google::Apis::BaremetalsolutionV2::Network]
953
+ attr_accessor :network
954
+
955
+ # All used IP addresses in this network.
956
+ # Corresponds to the JSON property `usedIps`
957
+ # @return [Array<String>]
958
+ attr_accessor :used_ips
959
+
960
+ def initialize(**args)
961
+ update!(**args)
962
+ end
963
+
964
+ # Update properties of this object
965
+ def update!(**args)
966
+ @network = args[:network] if args.key?(:network)
967
+ @used_ips = args[:used_ips] if args.key?(:used_ips)
968
+ end
969
+ end
970
+
971
+ # A NFS export entry.
972
+ class NfsExport
973
+ include Google::Apis::Core::Hashable
974
+
975
+ # Allow dev flag in NfsShare AllowedClientsRequest.
976
+ # Corresponds to the JSON property `allowDev`
977
+ # @return [Boolean]
978
+ attr_accessor :allow_dev
979
+ alias_method :allow_dev?, :allow_dev
980
+
981
+ # Allow the setuid flag.
982
+ # Corresponds to the JSON property `allowSuid`
983
+ # @return [Boolean]
984
+ attr_accessor :allow_suid
985
+ alias_method :allow_suid?, :allow_suid
986
+
987
+ # A CIDR range.
988
+ # Corresponds to the JSON property `cidr`
989
+ # @return [String]
990
+ attr_accessor :cidr
991
+
992
+ # Either a single machine, identified by an ID, or a comma-separated list of
993
+ # machine IDs.
994
+ # Corresponds to the JSON property `machineId`
995
+ # @return [String]
996
+ attr_accessor :machine_id
997
+
998
+ # Network to use to publish the export.
999
+ # Corresponds to the JSON property `networkId`
1000
+ # @return [String]
1001
+ attr_accessor :network_id
1002
+
1003
+ # Disable root squashing, which is a feature of NFS. Root squash is a special
1004
+ # mapping of the remote superuser (root) identity when using identity
1005
+ # authentication.
1006
+ # Corresponds to the JSON property `noRootSquash`
1007
+ # @return [Boolean]
1008
+ attr_accessor :no_root_squash
1009
+ alias_method :no_root_squash?, :no_root_squash
1010
+
1011
+ # Export permissions.
1012
+ # Corresponds to the JSON property `permissions`
1013
+ # @return [String]
1014
+ attr_accessor :permissions
1015
+
1016
+ def initialize(**args)
1017
+ update!(**args)
1018
+ end
1019
+
1020
+ # Update properties of this object
1021
+ def update!(**args)
1022
+ @allow_dev = args[:allow_dev] if args.key?(:allow_dev)
1023
+ @allow_suid = args[:allow_suid] if args.key?(:allow_suid)
1024
+ @cidr = args[:cidr] if args.key?(:cidr)
1025
+ @machine_id = args[:machine_id] if args.key?(:machine_id)
1026
+ @network_id = args[:network_id] if args.key?(:network_id)
1027
+ @no_root_squash = args[:no_root_squash] if args.key?(:no_root_squash)
1028
+ @permissions = args[:permissions] if args.key?(:permissions)
1029
+ end
1030
+ end
1031
+
1032
+ # An NFS share.
1033
+ class NfsShare
1034
+ include Google::Apis::Core::Hashable
1035
+
1036
+ # List of allowed access points.
1037
+ # Corresponds to the JSON property `allowedClients`
1038
+ # @return [Array<Google::Apis::BaremetalsolutionV2::AllowedClient>]
1039
+ attr_accessor :allowed_clients
1040
+
1041
+ # Labels as key value pairs.
1042
+ # Corresponds to the JSON property `labels`
1043
+ # @return [Hash<String,String>]
1044
+ attr_accessor :labels
1045
+
1046
+ # Output only. The name of the NFS share.
1047
+ # Corresponds to the JSON property `name`
1048
+ # @return [String]
1049
+ attr_accessor :name
1050
+
1051
+ # Output only. An identifier for the NFS share, generated by the backend.
1052
+ # Corresponds to the JSON property `nfsShareId`
1053
+ # @return [String]
1054
+ attr_accessor :nfs_share_id
1055
+
1056
+ # The state of the NFS share.
1057
+ # Corresponds to the JSON property `state`
1058
+ # @return [String]
1059
+ attr_accessor :state
1060
+
1061
+ # The volume containing the share.
1062
+ # Corresponds to the JSON property `volume`
1063
+ # @return [String]
1064
+ attr_accessor :volume
1065
+
1066
+ def initialize(**args)
1067
+ update!(**args)
1068
+ end
1069
+
1070
+ # Update properties of this object
1071
+ def update!(**args)
1072
+ @allowed_clients = args[:allowed_clients] if args.key?(:allowed_clients)
1073
+ @labels = args[:labels] if args.key?(:labels)
1074
+ @name = args[:name] if args.key?(:name)
1075
+ @nfs_share_id = args[:nfs_share_id] if args.key?(:nfs_share_id)
1076
+ @state = args[:state] if args.key?(:state)
1077
+ @volume = args[:volume] if args.key?(:volume)
1078
+ end
1079
+ end
1080
+
540
1081
  # This resource represents a long-running operation that is the result of a
541
1082
  # network API call.
542
1083
  class Operation
@@ -599,6 +1140,137 @@ module Google
599
1140
  end
600
1141
  end
601
1142
 
1143
+ # A provisioning configuration.
1144
+ class ProvisioningConfig
1145
+ include Google::Apis::Core::Hashable
1146
+
1147
+ # Output only. URI to Cloud Console UI view of this provisioning config.
1148
+ # Corresponds to the JSON property `cloudConsoleUri`
1149
+ # @return [String]
1150
+ attr_accessor :cloud_console_uri
1151
+
1152
+ # Email provided to send a confirmation with provisioning config to. Deprecated
1153
+ # in favour of email field in request messages.
1154
+ # Corresponds to the JSON property `email`
1155
+ # @return [String]
1156
+ attr_accessor :email
1157
+
1158
+ # A service account to enable customers to access instance credentials upon
1159
+ # handover.
1160
+ # Corresponds to the JSON property `handoverServiceAccount`
1161
+ # @return [String]
1162
+ attr_accessor :handover_service_account
1163
+
1164
+ # Instances to be created.
1165
+ # Corresponds to the JSON property `instances`
1166
+ # @return [Array<Google::Apis::BaremetalsolutionV2::InstanceConfig>]
1167
+ attr_accessor :instances
1168
+
1169
+ # Optional. Location name of this ProvisioningConfig. It is optional only for
1170
+ # Intake UI transition period.
1171
+ # Corresponds to the JSON property `location`
1172
+ # @return [String]
1173
+ attr_accessor :location
1174
+
1175
+ # Output only. The name of the provisioning config.
1176
+ # Corresponds to the JSON property `name`
1177
+ # @return [String]
1178
+ attr_accessor :name
1179
+
1180
+ # Networks to be created.
1181
+ # Corresponds to the JSON property `networks`
1182
+ # @return [Array<Google::Apis::BaremetalsolutionV2::NetworkConfig>]
1183
+ attr_accessor :networks
1184
+
1185
+ # Output only. State of ProvisioningConfig.
1186
+ # Corresponds to the JSON property `state`
1187
+ # @return [String]
1188
+ attr_accessor :state
1189
+
1190
+ # A generated buganizer id to track provisioning request.
1191
+ # Corresponds to the JSON property `ticketId`
1192
+ # @return [String]
1193
+ attr_accessor :ticket_id
1194
+
1195
+ # Output only. Last update timestamp.
1196
+ # Corresponds to the JSON property `updateTime`
1197
+ # @return [String]
1198
+ attr_accessor :update_time
1199
+
1200
+ # Volumes to be created.
1201
+ # Corresponds to the JSON property `volumes`
1202
+ # @return [Array<Google::Apis::BaremetalsolutionV2::VolumeConfig>]
1203
+ attr_accessor :volumes
1204
+
1205
+ def initialize(**args)
1206
+ update!(**args)
1207
+ end
1208
+
1209
+ # Update properties of this object
1210
+ def update!(**args)
1211
+ @cloud_console_uri = args[:cloud_console_uri] if args.key?(:cloud_console_uri)
1212
+ @email = args[:email] if args.key?(:email)
1213
+ @handover_service_account = args[:handover_service_account] if args.key?(:handover_service_account)
1214
+ @instances = args[:instances] if args.key?(:instances)
1215
+ @location = args[:location] if args.key?(:location)
1216
+ @name = args[:name] if args.key?(:name)
1217
+ @networks = args[:networks] if args.key?(:networks)
1218
+ @state = args[:state] if args.key?(:state)
1219
+ @ticket_id = args[:ticket_id] if args.key?(:ticket_id)
1220
+ @update_time = args[:update_time] if args.key?(:update_time)
1221
+ @volumes = args[:volumes] if args.key?(:volumes)
1222
+ end
1223
+ end
1224
+
1225
+ # A provisioning quota for a given project.
1226
+ class ProvisioningQuota
1227
+ include Google::Apis::Core::Hashable
1228
+
1229
+ # The asset type of this provisioning quota.
1230
+ # Corresponds to the JSON property `assetType`
1231
+ # @return [String]
1232
+ attr_accessor :asset_type
1233
+
1234
+ # The available count of the provisioning quota.
1235
+ # Corresponds to the JSON property `availableCount`
1236
+ # @return [Fixnum]
1237
+ attr_accessor :available_count
1238
+
1239
+ # The gcp service of the provisioning quota.
1240
+ # Corresponds to the JSON property `gcpService`
1241
+ # @return [String]
1242
+ attr_accessor :gcp_service
1243
+
1244
+ # A resource budget.
1245
+ # Corresponds to the JSON property `instanceQuota`
1246
+ # @return [Google::Apis::BaremetalsolutionV2::InstanceQuota]
1247
+ attr_accessor :instance_quota
1248
+
1249
+ # The specific location of the provisioining quota.
1250
+ # Corresponds to the JSON property `location`
1251
+ # @return [String]
1252
+ attr_accessor :location
1253
+
1254
+ # Output only. The name of the provisioning quota.
1255
+ # Corresponds to the JSON property `name`
1256
+ # @return [String]
1257
+ attr_accessor :name
1258
+
1259
+ def initialize(**args)
1260
+ update!(**args)
1261
+ end
1262
+
1263
+ # Update properties of this object
1264
+ def update!(**args)
1265
+ @asset_type = args[:asset_type] if args.key?(:asset_type)
1266
+ @available_count = args[:available_count] if args.key?(:available_count)
1267
+ @gcp_service = args[:gcp_service] if args.key?(:gcp_service)
1268
+ @instance_quota = args[:instance_quota] if args.key?(:instance_quota)
1269
+ @location = args[:location] if args.key?(:location)
1270
+ @name = args[:name] if args.key?(:name)
1271
+ end
1272
+ end
1273
+
602
1274
  # QOS policy parameters.
603
1275
  class QosPolicy
604
1276
  include Google::Apis::Core::Hashable
@@ -684,6 +1356,14 @@ module Google
684
1356
  # @return [Fixnum]
685
1357
  attr_accessor :reserved_space_gib
686
1358
 
1359
+ # Percent of the total Volume size reserved for snapshot copies. Enabling
1360
+ # snapshots requires reserving 20% or more of the storage volume space for
1361
+ # snapshots. Maximum reserved space for snapshots is 40%. Setting this field
1362
+ # will effectively set snapshot_enabled to true.
1363
+ # Corresponds to the JSON property `reservedSpacePercent`
1364
+ # @return [Fixnum]
1365
+ attr_accessor :reserved_space_percent
1366
+
687
1367
  # The amount, in GiB, of available space in this storage volume's reserved
688
1368
  # snapshot space.
689
1369
  # Corresponds to the JSON property `reservedSpaceRemainingGib`
@@ -704,6 +1384,7 @@ module Google
704
1384
  # Update properties of this object
705
1385
  def update!(**args)
706
1386
  @reserved_space_gib = args[:reserved_space_gib] if args.key?(:reserved_space_gib)
1387
+ @reserved_space_percent = args[:reserved_space_percent] if args.key?(:reserved_space_percent)
707
1388
  @reserved_space_remaining_gib = args[:reserved_space_remaining_gib] if args.key?(:reserved_space_remaining_gib)
708
1389
  @reserved_space_used_percent = args[:reserved_space_used_percent] if args.key?(:reserved_space_used_percent)
709
1390
  end
@@ -739,6 +1420,11 @@ module Google
739
1420
  # @return [Array<Google::Apis::BaremetalsolutionV2::Schedule>]
740
1421
  attr_accessor :schedules
741
1422
 
1423
+ # The state of the snapshot schedule policy.
1424
+ # Corresponds to the JSON property `state`
1425
+ # @return [String]
1426
+ attr_accessor :state
1427
+
742
1428
  def initialize(**args)
743
1429
  update!(**args)
744
1430
  end
@@ -750,6 +1436,20 @@ module Google
750
1436
  @labels = args[:labels] if args.key?(:labels)
751
1437
  @name = args[:name] if args.key?(:name)
752
1438
  @schedules = args[:schedules] if args.key?(:schedules)
1439
+ @state = args[:state] if args.key?(:state)
1440
+ end
1441
+ end
1442
+
1443
+ # Message requesting to start a server.
1444
+ class StartInstanceRequest
1445
+ include Google::Apis::Core::Hashable
1446
+
1447
+ def initialize(**args)
1448
+ update!(**args)
1449
+ end
1450
+
1451
+ # Update properties of this object
1452
+ def update!(**args)
753
1453
  end
754
1454
  end
755
1455
 
@@ -792,6 +1492,50 @@ module Google
792
1492
  end
793
1493
  end
794
1494
 
1495
+ # Request for SubmitProvisioningConfig.
1496
+ class SubmitProvisioningConfigRequest
1497
+ include Google::Apis::Core::Hashable
1498
+
1499
+ # Optional. Email provided to send a confirmation with provisioning config to.
1500
+ # Corresponds to the JSON property `email`
1501
+ # @return [String]
1502
+ attr_accessor :email
1503
+
1504
+ # A provisioning configuration.
1505
+ # Corresponds to the JSON property `provisioningConfig`
1506
+ # @return [Google::Apis::BaremetalsolutionV2::ProvisioningConfig]
1507
+ attr_accessor :provisioning_config
1508
+
1509
+ def initialize(**args)
1510
+ update!(**args)
1511
+ end
1512
+
1513
+ # Update properties of this object
1514
+ def update!(**args)
1515
+ @email = args[:email] if args.key?(:email)
1516
+ @provisioning_config = args[:provisioning_config] if args.key?(:provisioning_config)
1517
+ end
1518
+ end
1519
+
1520
+ # Response for SubmitProvisioningConfig.
1521
+ class SubmitProvisioningConfigResponse
1522
+ include Google::Apis::Core::Hashable
1523
+
1524
+ # A provisioning configuration.
1525
+ # Corresponds to the JSON property `provisioningConfig`
1526
+ # @return [Google::Apis::BaremetalsolutionV2::ProvisioningConfig]
1527
+ attr_accessor :provisioning_config
1528
+
1529
+ def initialize(**args)
1530
+ update!(**args)
1531
+ end
1532
+
1533
+ # Update properties of this object
1534
+ def update!(**args)
1535
+ @provisioning_config = args[:provisioning_config] if args.key?(:provisioning_config)
1536
+ end
1537
+ end
1538
+
795
1539
  # A network VRF.
796
1540
  class Vrf
797
1541
  include Google::Apis::Core::Hashable
@@ -911,6 +1655,12 @@ module Google
911
1655
  # @return [String]
912
1656
  attr_accessor :snapshot_auto_delete_behavior
913
1657
 
1658
+ # Whether snapshots are enabled.
1659
+ # Corresponds to the JSON property `snapshotEnabled`
1660
+ # @return [Boolean]
1661
+ attr_accessor :snapshot_enabled
1662
+ alias_method :snapshot_enabled?, :snapshot_enabled
1663
+
914
1664
  # Details about snapshot space reservation and usage on the storage volume.
915
1665
  # Corresponds to the JSON property `snapshotReservationDetail`
916
1666
  # @return [Google::Apis::BaremetalsolutionV2::SnapshotReservationDetail]
@@ -945,6 +1695,7 @@ module Google
945
1695
  @remaining_space_gib = args[:remaining_space_gib] if args.key?(:remaining_space_gib)
946
1696
  @requested_size_gib = args[:requested_size_gib] if args.key?(:requested_size_gib)
947
1697
  @snapshot_auto_delete_behavior = args[:snapshot_auto_delete_behavior] if args.key?(:snapshot_auto_delete_behavior)
1698
+ @snapshot_enabled = args[:snapshot_enabled] if args.key?(:snapshot_enabled)
948
1699
  @snapshot_reservation_detail = args[:snapshot_reservation_detail] if args.key?(:snapshot_reservation_detail)
949
1700
  @snapshot_schedule_policy = args[:snapshot_schedule_policy] if args.key?(:snapshot_schedule_policy)
950
1701
  @state = args[:state] if args.key?(:state)
@@ -952,6 +1703,89 @@ module Google
952
1703
  end
953
1704
  end
954
1705
 
1706
+ # Configuration parameters for a new volume.
1707
+ class VolumeConfig
1708
+ include Google::Apis::Core::Hashable
1709
+
1710
+ # The GCP service of the storage volume. Available gcp_service are in https://
1711
+ # cloud.google.com/bare-metal/docs/bms-planning.
1712
+ # Corresponds to the JSON property `gcpService`
1713
+ # @return [String]
1714
+ attr_accessor :gcp_service
1715
+
1716
+ # A transient unique identifier to identify a volume within an
1717
+ # ProvisioningConfig request.
1718
+ # Corresponds to the JSON property `id`
1719
+ # @return [String]
1720
+ attr_accessor :id
1721
+
1722
+ # LUN ranges to be configured. Set only when protocol is PROTOCOL_FC.
1723
+ # Corresponds to the JSON property `lunRanges`
1724
+ # @return [Array<Google::Apis::BaremetalsolutionV2::LunRange>]
1725
+ attr_accessor :lun_ranges
1726
+
1727
+ # Machine ids connected to this volume. Set only when protocol is PROTOCOL_FC.
1728
+ # Corresponds to the JSON property `machineIds`
1729
+ # @return [Array<String>]
1730
+ attr_accessor :machine_ids
1731
+
1732
+ # Output only. The name of the volume config.
1733
+ # Corresponds to the JSON property `name`
1734
+ # @return [String]
1735
+ attr_accessor :name
1736
+
1737
+ # NFS exports. Set only when protocol is PROTOCOL_NFS.
1738
+ # Corresponds to the JSON property `nfsExports`
1739
+ # @return [Array<Google::Apis::BaremetalsolutionV2::NfsExport>]
1740
+ attr_accessor :nfs_exports
1741
+
1742
+ # Volume protocol.
1743
+ # Corresponds to the JSON property `protocol`
1744
+ # @return [String]
1745
+ attr_accessor :protocol
1746
+
1747
+ # The requested size of this volume, in GB.
1748
+ # Corresponds to the JSON property `sizeGb`
1749
+ # @return [Fixnum]
1750
+ attr_accessor :size_gb
1751
+
1752
+ # Whether snapshots should be enabled.
1753
+ # Corresponds to the JSON property `snapshotsEnabled`
1754
+ # @return [Boolean]
1755
+ attr_accessor :snapshots_enabled
1756
+ alias_method :snapshots_enabled?, :snapshots_enabled
1757
+
1758
+ # The type of this Volume.
1759
+ # Corresponds to the JSON property `type`
1760
+ # @return [String]
1761
+ attr_accessor :type
1762
+
1763
+ # User note field, it can be used by customers to add additional information for
1764
+ # the BMS Ops team (b/194021617).
1765
+ # Corresponds to the JSON property `userNote`
1766
+ # @return [String]
1767
+ attr_accessor :user_note
1768
+
1769
+ def initialize(**args)
1770
+ update!(**args)
1771
+ end
1772
+
1773
+ # Update properties of this object
1774
+ def update!(**args)
1775
+ @gcp_service = args[:gcp_service] if args.key?(:gcp_service)
1776
+ @id = args[:id] if args.key?(:id)
1777
+ @lun_ranges = args[:lun_ranges] if args.key?(:lun_ranges)
1778
+ @machine_ids = args[:machine_ids] if args.key?(:machine_ids)
1779
+ @name = args[:name] if args.key?(:name)
1780
+ @nfs_exports = args[:nfs_exports] if args.key?(:nfs_exports)
1781
+ @protocol = args[:protocol] if args.key?(:protocol)
1782
+ @size_gb = args[:size_gb] if args.key?(:size_gb)
1783
+ @snapshots_enabled = args[:snapshots_enabled] if args.key?(:snapshots_enabled)
1784
+ @type = args[:type] if args.key?(:type)
1785
+ @user_note = args[:user_note] if args.key?(:user_note)
1786
+ end
1787
+ end
1788
+
955
1789
  # Snapshot registered for a given storage volume.
956
1790
  class VolumeSnapshot
957
1791
  include Google::Apis::Core::Hashable