google-apis-baremetalsolution_v2 0.6.0 → 0.9.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,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