google-cloud-bare_metal_solution-v2 0.4.1 → 0.5.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.
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