google-cloud-bare_metal_solution-v2 0.4.1 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (30) hide show
  1. checksums.yaml +4 -4
  2. data/lib/google/cloud/bare_metal_solution/v2/bare_metal_solution/client.rb +2769 -405
  3. data/lib/google/cloud/bare_metal_solution/v2/bare_metal_solution/paths.rb +135 -0
  4. data/lib/google/cloud/bare_metal_solution/v2/bare_metal_solution/rest/client.rb +2031 -285
  5. data/lib/google/cloud/bare_metal_solution/v2/bare_metal_solution/rest/service_stub.rb +1662 -231
  6. data/lib/google/cloud/bare_metal_solution/v2/version.rb +1 -1
  7. data/lib/google/cloud/baremetalsolution/v2/baremetalsolution_pb.rb +7 -6
  8. data/lib/google/cloud/baremetalsolution/v2/baremetalsolution_services_pb.rb +62 -0
  9. data/lib/google/cloud/baremetalsolution/v2/common_pb.rb +48 -0
  10. data/lib/google/cloud/baremetalsolution/v2/instance_pb.rb +12 -6
  11. data/lib/google/cloud/baremetalsolution/v2/lun_pb.rb +4 -1
  12. data/lib/google/cloud/baremetalsolution/v2/network_pb.rb +3 -1
  13. data/lib/google/cloud/baremetalsolution/v2/nfs_share_pb.rb +5 -1
  14. data/lib/google/cloud/baremetalsolution/v2/osimage_pb.rb +47 -0
  15. data/lib/google/cloud/baremetalsolution/v2/provisioning_pb.rb +80 -0
  16. data/lib/google/cloud/baremetalsolution/v2/ssh_key_pb.rb +49 -0
  17. data/lib/google/cloud/baremetalsolution/v2/volume_pb.rb +8 -1
  18. data/lib/google/cloud/baremetalsolution/v2/volume_snapshot_pb.rb +54 -0
  19. data/proto_docs/google/cloud/baremetalsolution/v2/{baremetalsolution.rb → common.rb} +36 -14
  20. data/proto_docs/google/cloud/baremetalsolution/v2/instance.rb +95 -68
  21. data/proto_docs/google/cloud/baremetalsolution/v2/lun.rb +19 -0
  22. data/proto_docs/google/cloud/baremetalsolution/v2/network.rb +68 -2
  23. data/proto_docs/google/cloud/baremetalsolution/v2/nfs_share.rb +83 -9
  24. data/proto_docs/google/cloud/baremetalsolution/v2/osimage.rb +80 -0
  25. data/proto_docs/google/cloud/baremetalsolution/v2/provisioning.rb +639 -0
  26. data/proto_docs/google/cloud/baremetalsolution/v2/ssh_key.rb +97 -0
  27. data/proto_docs/google/cloud/baremetalsolution/v2/volume.rb +91 -4
  28. data/proto_docs/google/cloud/baremetalsolution/v2/volume_snapshot.rb +134 -0
  29. data/proto_docs/google/type/expr.rb +75 -0
  30. metadata +13 -3
@@ -0,0 +1,639 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2023 Google LLC
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # https://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ # Auto-generated by gapic-generator-ruby. DO NOT EDIT!
18
+
19
+
20
+ module Google
21
+ module Cloud
22
+ module BareMetalSolution
23
+ module V2
24
+ # A provisioning configuration.
25
+ # @!attribute [r] name
26
+ # @return [::String]
27
+ # Output only. The system-generated name of the provisioning config. This
28
+ # follows the UUID format.
29
+ # @!attribute [rw] instances
30
+ # @return [::Array<::Google::Cloud::BareMetalSolution::V2::InstanceConfig>]
31
+ # Instances to be created.
32
+ # @!attribute [rw] networks
33
+ # @return [::Array<::Google::Cloud::BareMetalSolution::V2::NetworkConfig>]
34
+ # Networks to be created.
35
+ # @!attribute [rw] volumes
36
+ # @return [::Array<::Google::Cloud::BareMetalSolution::V2::VolumeConfig>]
37
+ # Volumes to be created.
38
+ # @!attribute [rw] ticket_id
39
+ # @return [::String]
40
+ # A generated ticket id to track provisioning request.
41
+ # @!attribute [rw] handover_service_account
42
+ # @return [::String]
43
+ # A service account to enable customers to access instance credentials upon
44
+ # handover.
45
+ # @!attribute [rw] email
46
+ # @return [::String]
47
+ # Email provided to send a confirmation with provisioning config to.
48
+ # Deprecated in favour of email field in request messages.
49
+ # @!attribute [r] state
50
+ # @return [::Google::Cloud::BareMetalSolution::V2::ProvisioningConfig::State]
51
+ # Output only. State of ProvisioningConfig.
52
+ # @!attribute [rw] location
53
+ # @return [::String]
54
+ # Optional. Location name of this ProvisioningConfig.
55
+ # It is optional only for Intake UI transition period.
56
+ # @!attribute [r] update_time
57
+ # @return [::Google::Protobuf::Timestamp]
58
+ # Output only. Last update timestamp.
59
+ # @!attribute [r] cloud_console_uri
60
+ # @return [::String]
61
+ # Output only. URI to Cloud Console UI view of this provisioning config.
62
+ # @!attribute [rw] vpc_sc_enabled
63
+ # @return [::Boolean]
64
+ # If true, VPC SC is enabled for the cluster.
65
+ # @!attribute [rw] status_message
66
+ # @return [::String]
67
+ # Optional status messages associated with the FAILED state.
68
+ # @!attribute [rw] custom_id
69
+ # @return [::String]
70
+ # Optional. The user-defined identifier of the provisioning config.
71
+ class ProvisioningConfig
72
+ include ::Google::Protobuf::MessageExts
73
+ extend ::Google::Protobuf::MessageExts::ClassMethods
74
+
75
+ # The possible states for this ProvisioningConfig.
76
+ module State
77
+ # State wasn't specified.
78
+ STATE_UNSPECIFIED = 0
79
+
80
+ # ProvisioningConfig is a draft and can be freely modified.
81
+ DRAFT = 1
82
+
83
+ # ProvisioningConfig was already submitted and cannot be modified.
84
+ SUBMITTED = 2
85
+
86
+ # ProvisioningConfig was in the provisioning state. Initially this state
87
+ # comes from the work order table in big query when SNOW is used. Later
88
+ # this field can be set by the work order API.
89
+ PROVISIONING = 3
90
+
91
+ # ProvisioningConfig was provisioned, meaning the resources exist.
92
+ PROVISIONED = 4
93
+
94
+ # ProvisioningConfig was validated. A validation tool will be run to
95
+ # set this state.
96
+ VALIDATED = 5
97
+
98
+ # ProvisioningConfig was canceled.
99
+ CANCELLED = 6
100
+
101
+ # The request is submitted for provisioning, with error return.
102
+ FAILED = 7
103
+ end
104
+ end
105
+
106
+ # Request for SubmitProvisioningConfig.
107
+ # @!attribute [rw] parent
108
+ # @return [::String]
109
+ # Required. The parent project and location containing the
110
+ # ProvisioningConfig.
111
+ # @!attribute [rw] provisioning_config
112
+ # @return [::Google::Cloud::BareMetalSolution::V2::ProvisioningConfig]
113
+ # Required. The ProvisioningConfig to create.
114
+ # @!attribute [rw] email
115
+ # @return [::String]
116
+ # Optional. Email provided to send a confirmation with provisioning config
117
+ # to.
118
+ class SubmitProvisioningConfigRequest
119
+ include ::Google::Protobuf::MessageExts
120
+ extend ::Google::Protobuf::MessageExts::ClassMethods
121
+ end
122
+
123
+ # Response for SubmitProvisioningConfig.
124
+ # @!attribute [rw] provisioning_config
125
+ # @return [::Google::Cloud::BareMetalSolution::V2::ProvisioningConfig]
126
+ # The submitted provisioning config.
127
+ class SubmitProvisioningConfigResponse
128
+ include ::Google::Protobuf::MessageExts
129
+ extend ::Google::Protobuf::MessageExts::ClassMethods
130
+ end
131
+
132
+ # A provisioning quota for a given project.
133
+ # @!attribute [r] name
134
+ # @return [::String]
135
+ # Output only. The name of the provisioning quota.
136
+ # @!attribute [rw] asset_type
137
+ # @return [::Google::Cloud::BareMetalSolution::V2::ProvisioningQuota::AssetType]
138
+ # The asset type of this provisioning quota.
139
+ # @!attribute [rw] gcp_service
140
+ # @return [::String]
141
+ # The gcp service of the provisioning quota.
142
+ # @!attribute [rw] location
143
+ # @return [::String]
144
+ # The specific location of the provisioining quota.
145
+ # @!attribute [rw] available_count
146
+ # @return [::Integer]
147
+ # The available count of the provisioning quota.
148
+ # @!attribute [rw] instance_quota
149
+ # @return [::Google::Cloud::BareMetalSolution::V2::InstanceQuota]
150
+ # Instance quota.
151
+ # @!attribute [rw] server_count
152
+ # @return [::Integer]
153
+ # Server count.
154
+ # @!attribute [rw] network_bandwidth
155
+ # @return [::Integer]
156
+ # Network bandwidth, Gbps
157
+ # @!attribute [rw] storage_gib
158
+ # @return [::Integer]
159
+ # Storage size (GB).
160
+ class ProvisioningQuota
161
+ include ::Google::Protobuf::MessageExts
162
+ extend ::Google::Protobuf::MessageExts::ClassMethods
163
+
164
+ # The available asset types for intake.
165
+ module AssetType
166
+ # The unspecified type.
167
+ ASSET_TYPE_UNSPECIFIED = 0
168
+
169
+ # The server asset type.
170
+ ASSET_TYPE_SERVER = 1
171
+
172
+ # The storage asset type.
173
+ ASSET_TYPE_STORAGE = 2
174
+
175
+ # The network asset type.
176
+ ASSET_TYPE_NETWORK = 3
177
+ end
178
+ end
179
+
180
+ # Message for requesting the list of provisioning quotas.
181
+ # @!attribute [rw] parent
182
+ # @return [::String]
183
+ # Required. Parent value for ListProvisioningQuotasRequest.
184
+ # @!attribute [rw] page_size
185
+ # @return [::Integer]
186
+ # Requested page size. The server might return fewer items than requested.
187
+ # If unspecified, server will pick an appropriate default.
188
+ # Notice that page_size field is not supported and won't be respected in
189
+ # the API request for now, will be updated when pagination is supported.
190
+ # @!attribute [rw] page_token
191
+ # @return [::String]
192
+ # A token identifying a page of results from the server.
193
+ class ListProvisioningQuotasRequest
194
+ include ::Google::Protobuf::MessageExts
195
+ extend ::Google::Protobuf::MessageExts::ClassMethods
196
+ end
197
+
198
+ # Response message for the list of provisioning quotas.
199
+ # @!attribute [rw] provisioning_quotas
200
+ # @return [::Array<::Google::Cloud::BareMetalSolution::V2::ProvisioningQuota>]
201
+ # The provisioning quotas registered in this project.
202
+ # @!attribute [rw] next_page_token
203
+ # @return [::String]
204
+ # Token to retrieve the next page of results, or empty if there are no more
205
+ # results in the list.
206
+ class ListProvisioningQuotasResponse
207
+ include ::Google::Protobuf::MessageExts
208
+ extend ::Google::Protobuf::MessageExts::ClassMethods
209
+ end
210
+
211
+ # Configuration parameters for a new instance.
212
+ # @!attribute [r] name
213
+ # @return [::String]
214
+ # Output only. The name of the instance config.
215
+ # @!attribute [rw] id
216
+ # @return [::String]
217
+ # A transient unique identifier to idenfity an instance within an
218
+ # ProvisioningConfig request.
219
+ # @!attribute [rw] instance_type
220
+ # @return [::String]
221
+ # Instance type.
222
+ # [Available
223
+ # types](https://cloud.google.com/bare-metal/docs/bms-planning#server_configurations)
224
+ # @!attribute [rw] hyperthreading
225
+ # @return [::Boolean]
226
+ # Whether the instance should be provisioned with Hyperthreading enabled.
227
+ # @!attribute [rw] os_image
228
+ # @return [::String]
229
+ # OS image to initialize the instance.
230
+ # [Available
231
+ # images](https://cloud.google.com/bare-metal/docs/bms-planning#server_configurations)
232
+ # @!attribute [rw] client_network
233
+ # @return [::Google::Cloud::BareMetalSolution::V2::InstanceConfig::NetworkAddress]
234
+ # Client network address. Filled if InstanceConfig.multivlan_config is false.
235
+ # @!attribute [rw] private_network
236
+ # @return [::Google::Cloud::BareMetalSolution::V2::InstanceConfig::NetworkAddress]
237
+ # Private network address, if any. Filled if InstanceConfig.multivlan_config
238
+ # is false.
239
+ # @!attribute [rw] user_note
240
+ # @return [::String]
241
+ # User note field, it can be used by customers to add additional information
242
+ # for the BMS Ops team .
243
+ # @!attribute [rw] account_networks_enabled
244
+ # @return [::Boolean]
245
+ # If true networks can be from different projects of the same vendor account.
246
+ # @!attribute [rw] network_config
247
+ # @return [::Google::Cloud::BareMetalSolution::V2::InstanceConfig::NetworkConfig]
248
+ # The type of network configuration on the instance.
249
+ # @!attribute [rw] network_template
250
+ # @return [::String]
251
+ # Server network template name. Filled if InstanceConfig.multivlan_config is
252
+ # true.
253
+ # @!attribute [rw] logical_interfaces
254
+ # @return [::Array<::Google::Cloud::BareMetalSolution::V2::LogicalInterface>]
255
+ # List of logical interfaces for the instance. The number of logical
256
+ # interfaces will be the same as number of hardware bond/nic on the chosen
257
+ # network template. Filled if InstanceConfig.multivlan_config is true.
258
+ # @!attribute [rw] ssh_key_names
259
+ # @return [::Array<::String>]
260
+ # List of names of ssh keys used to provision the instance.
261
+ class InstanceConfig
262
+ include ::Google::Protobuf::MessageExts
263
+ extend ::Google::Protobuf::MessageExts::ClassMethods
264
+
265
+ # A network.
266
+ # @!attribute [rw] network_id
267
+ # @return [::String]
268
+ # Id of the network to use, within the same ProvisioningConfig request.
269
+ # @!attribute [rw] address
270
+ # @return [::String]
271
+ # IPv4 address to be assigned to the server.
272
+ # @!attribute [rw] existing_network_id
273
+ # @return [::String]
274
+ # Name of the existing network to use.
275
+ class NetworkAddress
276
+ include ::Google::Protobuf::MessageExts
277
+ extend ::Google::Protobuf::MessageExts::ClassMethods
278
+ end
279
+
280
+ # The network configuration of the instance.
281
+ module NetworkConfig
282
+ # The unspecified network configuration.
283
+ NETWORKCONFIG_UNSPECIFIED = 0
284
+
285
+ # Instance part of single client network and single private network.
286
+ SINGLE_VLAN = 1
287
+
288
+ # Instance part of multiple (or single) client networks and private
289
+ # networks.
290
+ MULTI_VLAN = 2
291
+ end
292
+ end
293
+
294
+ # Configuration parameters for a new volume.
295
+ # @!attribute [r] name
296
+ # @return [::String]
297
+ # Output only. The name of the volume config.
298
+ # @!attribute [rw] id
299
+ # @return [::String]
300
+ # A transient unique identifier to identify a volume within an
301
+ # ProvisioningConfig request.
302
+ # @!attribute [rw] snapshots_enabled
303
+ # @return [::Boolean]
304
+ # Whether snapshots should be enabled.
305
+ # @!attribute [rw] type
306
+ # @return [::Google::Cloud::BareMetalSolution::V2::VolumeConfig::Type]
307
+ # The type of this Volume.
308
+ # @!attribute [rw] protocol
309
+ # @return [::Google::Cloud::BareMetalSolution::V2::VolumeConfig::Protocol]
310
+ # Volume protocol.
311
+ # @!attribute [rw] size_gb
312
+ # @return [::Integer]
313
+ # The requested size of this volume, in GB.
314
+ # @!attribute [rw] lun_ranges
315
+ # @return [::Array<::Google::Cloud::BareMetalSolution::V2::VolumeConfig::LunRange>]
316
+ # LUN ranges to be configured. Set only when protocol is PROTOCOL_FC.
317
+ # @!attribute [rw] machine_ids
318
+ # @return [::Array<::String>]
319
+ # Machine ids connected to this volume. Set only when protocol is
320
+ # PROTOCOL_FC.
321
+ # @!attribute [rw] nfs_exports
322
+ # @return [::Array<::Google::Cloud::BareMetalSolution::V2::VolumeConfig::NfsExport>]
323
+ # NFS exports. Set only when protocol is PROTOCOL_NFS.
324
+ # @!attribute [rw] user_note
325
+ # @return [::String]
326
+ # User note field, it can be used by customers to add additional information
327
+ # for the BMS Ops team .
328
+ # @!attribute [rw] gcp_service
329
+ # @return [::String]
330
+ # The GCP service of the storage volume. Available gcp_service are in
331
+ # https://cloud.google.com/bare-metal/docs/bms-planning.
332
+ # @!attribute [rw] performance_tier
333
+ # @return [::Google::Cloud::BareMetalSolution::V2::VolumePerformanceTier]
334
+ # Performance tier of the Volume.
335
+ # Default is SHARED.
336
+ class VolumeConfig
337
+ include ::Google::Protobuf::MessageExts
338
+ extend ::Google::Protobuf::MessageExts::ClassMethods
339
+
340
+ # A LUN(Logical Unit Number) range.
341
+ # @!attribute [rw] quantity
342
+ # @return [::Integer]
343
+ # Number of LUNs to create.
344
+ # @!attribute [rw] size_gb
345
+ # @return [::Integer]
346
+ # The requested size of each LUN, in GB.
347
+ class LunRange
348
+ include ::Google::Protobuf::MessageExts
349
+ extend ::Google::Protobuf::MessageExts::ClassMethods
350
+ end
351
+
352
+ # A NFS export entry.
353
+ # @!attribute [rw] network_id
354
+ # @return [::String]
355
+ # Network to use to publish the export.
356
+ # @!attribute [rw] machine_id
357
+ # @return [::String]
358
+ # Either a single machine, identified by an ID, or a comma-separated
359
+ # list of machine IDs.
360
+ # @!attribute [rw] cidr
361
+ # @return [::String]
362
+ # A CIDR range.
363
+ # @!attribute [rw] permissions
364
+ # @return [::Google::Cloud::BareMetalSolution::V2::VolumeConfig::NfsExport::Permissions]
365
+ # Export permissions.
366
+ # @!attribute [rw] no_root_squash
367
+ # @return [::Boolean]
368
+ # Disable root squashing, which is a feature of NFS.
369
+ # Root squash is a special mapping of the remote superuser (root) identity
370
+ # when using identity authentication.
371
+ # @!attribute [rw] allow_suid
372
+ # @return [::Boolean]
373
+ # Allow the setuid flag.
374
+ # @!attribute [rw] allow_dev
375
+ # @return [::Boolean]
376
+ # Allow dev flag in NfsShare AllowedClientsRequest.
377
+ class NfsExport
378
+ include ::Google::Protobuf::MessageExts
379
+ extend ::Google::Protobuf::MessageExts::ClassMethods
380
+
381
+ # Permissions that can granted for an export.
382
+ module Permissions
383
+ # Unspecified value.
384
+ PERMISSIONS_UNSPECIFIED = 0
385
+
386
+ # Read-only permission.
387
+ READ_ONLY = 1
388
+
389
+ # Read-write permission.
390
+ READ_WRITE = 2
391
+ end
392
+ end
393
+
394
+ # The types of Volumes.
395
+ module Type
396
+ # The unspecified type.
397
+ TYPE_UNSPECIFIED = 0
398
+
399
+ # This Volume is on flash.
400
+ FLASH = 1
401
+
402
+ # This Volume is on disk.
403
+ DISK = 2
404
+ end
405
+
406
+ # The protocol used to access the volume.
407
+ module Protocol
408
+ # Unspecified value.
409
+ PROTOCOL_UNSPECIFIED = 0
410
+
411
+ # Fibre channel.
412
+ PROTOCOL_FC = 1
413
+
414
+ # Network file system.
415
+ PROTOCOL_NFS = 2
416
+ end
417
+ end
418
+
419
+ # Configuration parameters for a new network.
420
+ # @!attribute [r] name
421
+ # @return [::String]
422
+ # Output only. The name of the network config.
423
+ # @!attribute [rw] id
424
+ # @return [::String]
425
+ # A transient unique identifier to identify a volume within an
426
+ # ProvisioningConfig request.
427
+ # @!attribute [rw] type
428
+ # @return [::Google::Cloud::BareMetalSolution::V2::NetworkConfig::Type]
429
+ # The type of this network, either Client or Private.
430
+ # @!attribute [rw] bandwidth
431
+ # @return [::Google::Cloud::BareMetalSolution::V2::NetworkConfig::Bandwidth]
432
+ # Interconnect bandwidth. Set only when type is CLIENT.
433
+ # @!attribute [rw] vlan_attachments
434
+ # @return [::Array<::Google::Cloud::BareMetalSolution::V2::NetworkConfig::IntakeVlanAttachment>]
435
+ # List of VLAN attachments. As of now there are always 2 attachments, but it
436
+ # is going to change in the future (multi vlan).
437
+ # @!attribute [rw] cidr
438
+ # @return [::String]
439
+ # CIDR range of the network.
440
+ # @!attribute [rw] service_cidr
441
+ # @return [::Google::Cloud::BareMetalSolution::V2::NetworkConfig::ServiceCidr]
442
+ # Service CIDR, if any.
443
+ # @!attribute [rw] user_note
444
+ # @return [::String]
445
+ # User note field, it can be used by customers to add additional information
446
+ # for the BMS Ops team .
447
+ # @!attribute [rw] gcp_service
448
+ # @return [::String]
449
+ # The GCP service of the network. Available gcp_service are in
450
+ # https://cloud.google.com/bare-metal/docs/bms-planning.
451
+ # @!attribute [rw] vlan_same_project
452
+ # @return [::Boolean]
453
+ # Whether the VLAN attachment pair is located in the same project.
454
+ # @!attribute [rw] jumbo_frames_enabled
455
+ # @return [::Boolean]
456
+ # The JumboFramesEnabled option for customer to set.
457
+ class NetworkConfig
458
+ include ::Google::Protobuf::MessageExts
459
+ extend ::Google::Protobuf::MessageExts::ClassMethods
460
+
461
+ # A GCP vlan attachment.
462
+ # @!attribute [rw] id
463
+ # @return [::String]
464
+ # Identifier of the VLAN attachment.
465
+ # @!attribute [rw] pairing_key
466
+ # @return [::String]
467
+ # Attachment pairing key.
468
+ class IntakeVlanAttachment
469
+ include ::Google::Protobuf::MessageExts
470
+ extend ::Google::Protobuf::MessageExts::ClassMethods
471
+ end
472
+
473
+ # Network type.
474
+ module Type
475
+ # Unspecified value.
476
+ TYPE_UNSPECIFIED = 0
477
+
478
+ # Client network, that is a network peered to a GCP VPC.
479
+ CLIENT = 1
480
+
481
+ # Private network, that is a network local to the BMS POD.
482
+ PRIVATE = 2
483
+ end
484
+
485
+ # Interconnect bandwidth.
486
+ module Bandwidth
487
+ # Unspecified value.
488
+ BANDWIDTH_UNSPECIFIED = 0
489
+
490
+ # 1 Gbps.
491
+ BW_1_GBPS = 1
492
+
493
+ # 2 Gbps.
494
+ BW_2_GBPS = 2
495
+
496
+ # 5 Gbps.
497
+ BW_5_GBPS = 3
498
+
499
+ # 10 Gbps.
500
+ BW_10_GBPS = 4
501
+ end
502
+
503
+ # Service network block.
504
+ module ServiceCidr
505
+ # Unspecified value.
506
+ SERVICE_CIDR_UNSPECIFIED = 0
507
+
508
+ # Services are disabled for the given network.
509
+ DISABLED = 1
510
+
511
+ # Use the highest /26 block of the network to host services.
512
+ HIGH_26 = 2
513
+
514
+ # Use the highest /27 block of the network to host services.
515
+ HIGH_27 = 3
516
+
517
+ # Use the highest /28 block of the network to host services.
518
+ HIGH_28 = 4
519
+ end
520
+ end
521
+
522
+ # A resource budget.
523
+ # @!attribute [r] name
524
+ # @return [::String]
525
+ # Output only. The name of the instance quota.
526
+ # @!attribute [rw] instance_type
527
+ # @return [::String]
528
+ # Instance type.
529
+ # Deprecated: use gcp_service.
530
+ # @!attribute [rw] gcp_service
531
+ # @return [::String]
532
+ # The gcp service of the provisioning quota.
533
+ # @!attribute [rw] location
534
+ # @return [::String]
535
+ # Location where the quota applies.
536
+ # @!attribute [rw] available_machine_count
537
+ # @return [::Integer]
538
+ # Number of machines than can be created for the given location and
539
+ # instance_type.
540
+ class InstanceQuota
541
+ include ::Google::Protobuf::MessageExts
542
+ extend ::Google::Protobuf::MessageExts::ClassMethods
543
+ end
544
+
545
+ # Request for GetProvisioningConfig.
546
+ # @!attribute [rw] name
547
+ # @return [::String]
548
+ # Required. Name of the ProvisioningConfig.
549
+ class GetProvisioningConfigRequest
550
+ include ::Google::Protobuf::MessageExts
551
+ extend ::Google::Protobuf::MessageExts::ClassMethods
552
+ end
553
+
554
+ # Request for CreateProvisioningConfig.
555
+ # @!attribute [rw] parent
556
+ # @return [::String]
557
+ # Required. The parent project and location containing the
558
+ # ProvisioningConfig.
559
+ # @!attribute [rw] provisioning_config
560
+ # @return [::Google::Cloud::BareMetalSolution::V2::ProvisioningConfig]
561
+ # Required. The ProvisioningConfig to create.
562
+ # @!attribute [rw] email
563
+ # @return [::String]
564
+ # Optional. Email provided to send a confirmation with provisioning config
565
+ # to.
566
+ class CreateProvisioningConfigRequest
567
+ include ::Google::Protobuf::MessageExts
568
+ extend ::Google::Protobuf::MessageExts::ClassMethods
569
+ end
570
+
571
+ # Message for updating a ProvisioningConfig.
572
+ # @!attribute [rw] provisioning_config
573
+ # @return [::Google::Cloud::BareMetalSolution::V2::ProvisioningConfig]
574
+ # Required. The ProvisioningConfig to update.
575
+ # @!attribute [rw] update_mask
576
+ # @return [::Google::Protobuf::FieldMask]
577
+ # Required. The list of fields to update.
578
+ # @!attribute [rw] email
579
+ # @return [::String]
580
+ # Optional. Email provided to send a confirmation with provisioning config
581
+ # to.
582
+ class UpdateProvisioningConfigRequest
583
+ include ::Google::Protobuf::MessageExts
584
+ extend ::Google::Protobuf::MessageExts::ClassMethods
585
+ end
586
+
587
+ # Network template.
588
+ # @!attribute [r] name
589
+ # @return [::String]
590
+ # Output only. Template's unique name. The full resource name follows the
591
+ # pattern:
592
+ # `projects/{project}/locations/{location}/serverNetworkTemplate/{server_network_template}`
593
+ # Generally, the \\{server_network_template} follows the syntax of
594
+ # "bond<interface_type_index><bond_mode>" or "nic<interface_type_index>".
595
+ # @!attribute [rw] applicable_instance_types
596
+ # @return [::Array<::String>]
597
+ # Instance types this template is applicable to.
598
+ # @!attribute [rw] logical_interfaces
599
+ # @return [::Array<::Google::Cloud::BareMetalSolution::V2::ServerNetworkTemplate::LogicalInterface>]
600
+ # Logical interfaces.
601
+ class ServerNetworkTemplate
602
+ include ::Google::Protobuf::MessageExts
603
+ extend ::Google::Protobuf::MessageExts::ClassMethods
604
+
605
+ # Logical interface.
606
+ # @!attribute [rw] name
607
+ # @return [::String]
608
+ # Interface name.
609
+ # This is not a globally unique identifier.
610
+ # Name is unique only inside the ServerNetworkTemplate. This is of syntax
611
+ # <bond><interface_type_index><bond_mode> or <nic><interface_type_index>
612
+ # and forms part of the network template name.
613
+ # @!attribute [rw] type
614
+ # @return [::Google::Cloud::BareMetalSolution::V2::ServerNetworkTemplate::LogicalInterface::InterfaceType]
615
+ # Interface type.
616
+ # @!attribute [rw] required
617
+ # @return [::Boolean]
618
+ # If true, interface must have network connected.
619
+ class LogicalInterface
620
+ include ::Google::Protobuf::MessageExts
621
+ extend ::Google::Protobuf::MessageExts::ClassMethods
622
+
623
+ # Interface type.
624
+ module InterfaceType
625
+ # Unspecified value.
626
+ INTERFACE_TYPE_UNSPECIFIED = 0
627
+
628
+ # Bond interface type.
629
+ BOND = 1
630
+
631
+ # NIC interface type.
632
+ NIC = 2
633
+ end
634
+ end
635
+ end
636
+ end
637
+ end
638
+ end
639
+ end