google-cloud-bare_metal_solution-v2 0.1.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 (37) hide show
  1. checksums.yaml +7 -0
  2. data/.yardopts +12 -0
  3. data/AUTHENTICATION.md +149 -0
  4. data/LICENSE.md +201 -0
  5. data/README.md +144 -0
  6. data/lib/google/cloud/bare_metal_solution/v2/bare_metal_solution/client.rb +2365 -0
  7. data/lib/google/cloud/bare_metal_solution/v2/bare_metal_solution/credentials.rb +47 -0
  8. data/lib/google/cloud/bare_metal_solution/v2/bare_metal_solution/operations.rb +767 -0
  9. data/lib/google/cloud/bare_metal_solution/v2/bare_metal_solution/paths.rb +166 -0
  10. data/lib/google/cloud/bare_metal_solution/v2/bare_metal_solution.rb +57 -0
  11. data/lib/google/cloud/bare_metal_solution/v2/version.rb +28 -0
  12. data/lib/google/cloud/bare_metal_solution/v2.rb +40 -0
  13. data/lib/google/cloud/baremetalsolution/v2/baremetalsolution_pb.rb +42 -0
  14. data/lib/google/cloud/baremetalsolution/v2/baremetalsolution_services_pb.rb +92 -0
  15. data/lib/google/cloud/baremetalsolution/v2/instance_pb.rb +113 -0
  16. data/lib/google/cloud/baremetalsolution/v2/lun_pb.rb +69 -0
  17. data/lib/google/cloud/baremetalsolution/v2/network_pb.rb +127 -0
  18. data/lib/google/cloud/baremetalsolution/v2/nfs_share_pb.rb +74 -0
  19. data/lib/google/cloud/baremetalsolution/v2/volume_pb.rb +93 -0
  20. data/lib/google-cloud-bare_metal_solution-v2.rb +21 -0
  21. data/proto_docs/README.md +4 -0
  22. data/proto_docs/google/api/field_behavior.rb +71 -0
  23. data/proto_docs/google/api/resource.rb +222 -0
  24. data/proto_docs/google/cloud/baremetalsolution/v2/baremetalsolution.rb +62 -0
  25. data/proto_docs/google/cloud/baremetalsolution/v2/instance.rb +283 -0
  26. data/proto_docs/google/cloud/baremetalsolution/v2/lun.rb +142 -0
  27. data/proto_docs/google/cloud/baremetalsolution/v2/network.rb +312 -0
  28. data/proto_docs/google/cloud/baremetalsolution/v2/nfs_share.rb +169 -0
  29. data/proto_docs/google/cloud/baremetalsolution/v2/volume.rb +238 -0
  30. data/proto_docs/google/longrunning/operations.rb +164 -0
  31. data/proto_docs/google/protobuf/any.rb +141 -0
  32. data/proto_docs/google/protobuf/duration.rb +98 -0
  33. data/proto_docs/google/protobuf/empty.rb +36 -0
  34. data/proto_docs/google/protobuf/field_mask.rb +229 -0
  35. data/proto_docs/google/protobuf/timestamp.rb +129 -0
  36. data/proto_docs/google/rpc/status.rb +46 -0
  37. metadata +268 -0
@@ -0,0 +1,312 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2022 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 Network.
25
+ # @!attribute [r] name
26
+ # @return [::String]
27
+ # Output only. The resource name of this `Network`.
28
+ # Resource names are schemeless URIs that follow the conventions in
29
+ # https://cloud.google.com/apis/design/resource_names.
30
+ # Format:
31
+ # `projects/{project}/locations/{location}/networks/{network}`
32
+ # @!attribute [rw] id
33
+ # @return [::String]
34
+ # An identifier for the `Network`, generated by the backend.
35
+ # @!attribute [rw] type
36
+ # @return [::Google::Cloud::BareMetalSolution::V2::Network::Type]
37
+ # The type of this network.
38
+ # @!attribute [rw] ip_address
39
+ # @return [::String]
40
+ # IP address configured.
41
+ # @!attribute [rw] mac_address
42
+ # @return [::Array<::String>]
43
+ # List of physical interfaces.
44
+ # @!attribute [rw] state
45
+ # @return [::Google::Cloud::BareMetalSolution::V2::Network::State]
46
+ # The Network state.
47
+ # @!attribute [rw] vlan_id
48
+ # @return [::String]
49
+ # The vlan id of the Network.
50
+ # @!attribute [rw] cidr
51
+ # @return [::String]
52
+ # The cidr of the Network.
53
+ # @!attribute [rw] vrf
54
+ # @return [::Google::Cloud::BareMetalSolution::V2::VRF]
55
+ # The vrf for the Network.
56
+ # @!attribute [rw] labels
57
+ # @return [::Google::Protobuf::Map{::String => ::String}]
58
+ # Labels as key value pairs.
59
+ # @!attribute [rw] services_cidr
60
+ # @return [::String]
61
+ # IP range for reserved for services (e.g. NFS).
62
+ # @!attribute [rw] reservations
63
+ # @return [::Array<::Google::Cloud::BareMetalSolution::V2::NetworkAddressReservation>]
64
+ # List of IP address reservations in this network.
65
+ # When updating this field, an error will be generated if a reservation
66
+ # conflicts with an IP address already allocated to a physical server.
67
+ class Network
68
+ include ::Google::Protobuf::MessageExts
69
+ extend ::Google::Protobuf::MessageExts::ClassMethods
70
+
71
+ # @!attribute [rw] key
72
+ # @return [::String]
73
+ # @!attribute [rw] value
74
+ # @return [::String]
75
+ class LabelsEntry
76
+ include ::Google::Protobuf::MessageExts
77
+ extend ::Google::Protobuf::MessageExts::ClassMethods
78
+ end
79
+
80
+ # Network type.
81
+ module Type
82
+ # Unspecified value.
83
+ TYPE_UNSPECIFIED = 0
84
+
85
+ # Client network, a network peered to a Google Cloud VPC.
86
+ CLIENT = 1
87
+
88
+ # Private network, a network local to the Bare Metal Solution environment.
89
+ PRIVATE = 2
90
+ end
91
+
92
+ # The possible states for this Network.
93
+ module State
94
+ # The Network is in an unknown state.
95
+ STATE_UNSPECIFIED = 0
96
+
97
+ # The Network is provisioning.
98
+ PROVISIONING = 1
99
+
100
+ # The Network has been provisioned.
101
+ PROVISIONED = 2
102
+ end
103
+ end
104
+
105
+ # A reservation of one or more addresses in a network.
106
+ # @!attribute [rw] start_address
107
+ # @return [::String]
108
+ # The first address of this reservation block.
109
+ # Must be specified as a single IPv4 address, e.g. 10.1.2.2.
110
+ # @!attribute [rw] end_address
111
+ # @return [::String]
112
+ # The last address of this reservation block, inclusive. I.e., for cases when
113
+ # reservations are only single addresses, end_address and start_address will
114
+ # be the same.
115
+ # Must be specified as a single IPv4 address, e.g. 10.1.2.2.
116
+ # @!attribute [rw] note
117
+ # @return [::String]
118
+ # A note about this reservation, intended for human consumption.
119
+ class NetworkAddressReservation
120
+ include ::Google::Protobuf::MessageExts
121
+ extend ::Google::Protobuf::MessageExts::ClassMethods
122
+ end
123
+
124
+ # A network VRF.
125
+ # @!attribute [rw] name
126
+ # @return [::String]
127
+ # The name of the VRF.
128
+ # @!attribute [rw] state
129
+ # @return [::Google::Cloud::BareMetalSolution::V2::VRF::State]
130
+ # The possible state of VRF.
131
+ # @!attribute [rw] qos_policy
132
+ # @return [::Google::Cloud::BareMetalSolution::V2::VRF::QosPolicy]
133
+ # The QOS policy applied to this VRF.
134
+ # @!attribute [rw] vlan_attachments
135
+ # @return [::Array<::Google::Cloud::BareMetalSolution::V2::VRF::VlanAttachment>]
136
+ # The list of VLAN attachments for the VRF.
137
+ class VRF
138
+ include ::Google::Protobuf::MessageExts
139
+ extend ::Google::Protobuf::MessageExts::ClassMethods
140
+
141
+ # QOS policy parameters.
142
+ # @!attribute [rw] bandwidth_gbps
143
+ # @return [::Float]
144
+ # The bandwidth permitted by the QOS policy, in gbps.
145
+ class QosPolicy
146
+ include ::Google::Protobuf::MessageExts
147
+ extend ::Google::Protobuf::MessageExts::ClassMethods
148
+ end
149
+
150
+ # VLAN attachment details.
151
+ # @!attribute [rw] peer_vlan_id
152
+ # @return [::Integer]
153
+ # The peer vlan ID of the attachment.
154
+ # @!attribute [rw] peer_ip
155
+ # @return [::String]
156
+ # The peer IP of the attachment.
157
+ # @!attribute [rw] router_ip
158
+ # @return [::String]
159
+ # The router IP of the attachment.
160
+ class VlanAttachment
161
+ include ::Google::Protobuf::MessageExts
162
+ extend ::Google::Protobuf::MessageExts::ClassMethods
163
+ end
164
+
165
+ # The possible states for this VRF.
166
+ module State
167
+ # The unspecified state.
168
+ STATE_UNSPECIFIED = 0
169
+
170
+ # The vrf is provisioning.
171
+ PROVISIONING = 1
172
+
173
+ # The vrf is provisioned.
174
+ PROVISIONED = 2
175
+ end
176
+ end
177
+
178
+ # Each logical interface represents a logical abstraction of the underlying
179
+ # physical interface (for eg. bond, nic) of the instance. Each logical
180
+ # interface can effectively map to multiple network-IP pairs and still be
181
+ # mapped to one underlying physical interface.
182
+ # @!attribute [rw] logical_network_interfaces
183
+ # @return [::Array<::Google::Cloud::BareMetalSolution::V2::LogicalInterface::LogicalNetworkInterface>]
184
+ # List of logical network interfaces within a logical interface.
185
+ # @!attribute [rw] name
186
+ # @return [::String]
187
+ # Interface name. This is of syntax <bond><bond_mode> or <nic> and
188
+ # forms part of the network template name.
189
+ # @!attribute [rw] interface_index
190
+ # @return [::Integer]
191
+ # The index of the logical interface mapping to the index of the hardware
192
+ # bond or nic on the chosen network template.
193
+ class LogicalInterface
194
+ include ::Google::Protobuf::MessageExts
195
+ extend ::Google::Protobuf::MessageExts::ClassMethods
196
+
197
+ # Each logical network interface is effectively a network and IP pair.
198
+ # @!attribute [rw] network
199
+ # @return [::String]
200
+ # Name of the network
201
+ # @!attribute [rw] ip_address
202
+ # @return [::String]
203
+ # IP address in the network
204
+ # @!attribute [rw] default_gateway
205
+ # @return [::Boolean]
206
+ # Whether this interface is the default gateway for the instance. Only
207
+ # one interface can be the default gateway for the instance.
208
+ # @!attribute [rw] network_type
209
+ # @return [::Google::Cloud::BareMetalSolution::V2::Network::Type]
210
+ # Type of network.
211
+ # @!attribute [rw] id
212
+ # @return [::String]
213
+ # An identifier for the `Network`, generated by the backend.
214
+ class LogicalNetworkInterface
215
+ include ::Google::Protobuf::MessageExts
216
+ extend ::Google::Protobuf::MessageExts::ClassMethods
217
+ end
218
+ end
219
+
220
+ # Message for requesting network information.
221
+ # @!attribute [rw] name
222
+ # @return [::String]
223
+ # Required. Name of the resource.
224
+ class GetNetworkRequest
225
+ include ::Google::Protobuf::MessageExts
226
+ extend ::Google::Protobuf::MessageExts::ClassMethods
227
+ end
228
+
229
+ # Message for requesting a list of networks.
230
+ # @!attribute [rw] parent
231
+ # @return [::String]
232
+ # Required. Parent value for ListNetworksRequest.
233
+ # @!attribute [rw] page_size
234
+ # @return [::Integer]
235
+ # Requested page size. The server might return fewer items than requested.
236
+ # If unspecified, server will pick an appropriate default.
237
+ # @!attribute [rw] page_token
238
+ # @return [::String]
239
+ # A token identifying a page of results from the server.
240
+ # @!attribute [rw] filter
241
+ # @return [::String]
242
+ # List filter.
243
+ class ListNetworksRequest
244
+ include ::Google::Protobuf::MessageExts
245
+ extend ::Google::Protobuf::MessageExts::ClassMethods
246
+ end
247
+
248
+ # Response message containing the list of networks.
249
+ # @!attribute [rw] networks
250
+ # @return [::Array<::Google::Cloud::BareMetalSolution::V2::Network>]
251
+ # The list of networks.
252
+ # @!attribute [rw] next_page_token
253
+ # @return [::String]
254
+ # A token identifying a page of results from the server.
255
+ # @!attribute [rw] unreachable
256
+ # @return [::Array<::String>]
257
+ # Locations that could not be reached.
258
+ class ListNetworksResponse
259
+ include ::Google::Protobuf::MessageExts
260
+ extend ::Google::Protobuf::MessageExts::ClassMethods
261
+ end
262
+
263
+ # Message requesting to updating a network.
264
+ # @!attribute [rw] network
265
+ # @return [::Google::Cloud::BareMetalSolution::V2::Network]
266
+ # Required. The network to update.
267
+ #
268
+ # The `name` field is used to identify the instance to update.
269
+ # Format: projects/\\{project}/locations/\\{location}/networks/\\{network}
270
+ # @!attribute [rw] update_mask
271
+ # @return [::Google::Protobuf::FieldMask]
272
+ # The list of fields to update.
273
+ # The only currently supported fields are:
274
+ # `labels`, `reservations`
275
+ class UpdateNetworkRequest
276
+ include ::Google::Protobuf::MessageExts
277
+ extend ::Google::Protobuf::MessageExts::ClassMethods
278
+ end
279
+
280
+ # Network with all used IP addresses.
281
+ # @!attribute [rw] network
282
+ # @return [::Google::Cloud::BareMetalSolution::V2::Network]
283
+ # Network.
284
+ # @!attribute [rw] used_ips
285
+ # @return [::Array<::String>]
286
+ # All used IP addresses in this network.
287
+ class NetworkUsage
288
+ include ::Google::Protobuf::MessageExts
289
+ extend ::Google::Protobuf::MessageExts::ClassMethods
290
+ end
291
+
292
+ # Request to get networks with IPs.
293
+ # @!attribute [rw] location
294
+ # @return [::String]
295
+ # Required. Parent value (project and location).
296
+ class ListNetworkUsageRequest
297
+ include ::Google::Protobuf::MessageExts
298
+ extend ::Google::Protobuf::MessageExts::ClassMethods
299
+ end
300
+
301
+ # Response with Networks with IPs
302
+ # @!attribute [rw] networks
303
+ # @return [::Array<::Google::Cloud::BareMetalSolution::V2::NetworkUsage>]
304
+ # Networks with IPs.
305
+ class ListNetworkUsageResponse
306
+ include ::Google::Protobuf::MessageExts
307
+ extend ::Google::Protobuf::MessageExts::ClassMethods
308
+ end
309
+ end
310
+ end
311
+ end
312
+ end
@@ -0,0 +1,169 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2022 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
+ # An NFS share.
25
+ # @!attribute [r] name
26
+ # @return [::String]
27
+ # Output only. The name of the NFS share.
28
+ # @!attribute [r] nfs_share_id
29
+ # @return [::String]
30
+ # Output only. An identifier for the NFS share, generated by the backend.
31
+ # @!attribute [rw] state
32
+ # @return [::Google::Cloud::BareMetalSolution::V2::NfsShare::State]
33
+ # The state of the NFS share.
34
+ # @!attribute [rw] volume
35
+ # @return [::String]
36
+ # The volume containing the share.
37
+ # @!attribute [rw] allowed_clients
38
+ # @return [::Array<::Google::Cloud::BareMetalSolution::V2::NfsShare::AllowedClient>]
39
+ # List of allowed access points.
40
+ # @!attribute [rw] labels
41
+ # @return [::Google::Protobuf::Map{::String => ::String}]
42
+ # Labels as key value pairs.
43
+ class NfsShare
44
+ include ::Google::Protobuf::MessageExts
45
+ extend ::Google::Protobuf::MessageExts::ClassMethods
46
+
47
+ # Represents an 'access point' for the share.
48
+ # @!attribute [rw] network
49
+ # @return [::String]
50
+ # The network the access point sits on.
51
+ # @!attribute [rw] share_ip
52
+ # @return [::String]
53
+ # The IP address of the share on this network.
54
+ # @!attribute [rw] allowed_clients_cidr
55
+ # @return [::String]
56
+ # The subnet of IP addresses permitted to access the share.
57
+ # @!attribute [rw] mount_permissions
58
+ # @return [::Google::Cloud::BareMetalSolution::V2::NfsShare::MountPermissions]
59
+ # Mount permissions.
60
+ # @!attribute [rw] allow_dev
61
+ # @return [::Boolean]
62
+ # Allow dev flag. Which controls whether to allow creation of devices.
63
+ # @!attribute [rw] allow_suid
64
+ # @return [::Boolean]
65
+ # Allow the setuid flag.
66
+ # @!attribute [rw] no_root_squash
67
+ # @return [::Boolean]
68
+ # Disable root squashing, which is a feature of NFS.
69
+ # Root squash is a special mapping of the remote superuser (root) identity
70
+ # when using identity authentication.
71
+ class AllowedClient
72
+ include ::Google::Protobuf::MessageExts
73
+ extend ::Google::Protobuf::MessageExts::ClassMethods
74
+ end
75
+
76
+ # @!attribute [rw] key
77
+ # @return [::String]
78
+ # @!attribute [rw] value
79
+ # @return [::String]
80
+ class LabelsEntry
81
+ include ::Google::Protobuf::MessageExts
82
+ extend ::Google::Protobuf::MessageExts::ClassMethods
83
+ end
84
+
85
+ # The possible states for this NFS share.
86
+ module State
87
+ # The share is in an unknown state.
88
+ STATE_UNSPECIFIED = 0
89
+
90
+ # The share has been provisioned.
91
+ PROVISIONED = 1
92
+ end
93
+
94
+ # The possible mount permissions.
95
+ module MountPermissions
96
+ # Permissions were not specified.
97
+ MOUNT_PERMISSIONS_UNSPECIFIED = 0
98
+
99
+ # NFS share can be mount with read-only permissions.
100
+ READ = 1
101
+
102
+ # NFS share can be mount with read-write permissions.
103
+ READ_WRITE = 2
104
+ end
105
+ end
106
+
107
+ # Message for requesting NFS share information.
108
+ # @!attribute [rw] name
109
+ # @return [::String]
110
+ # Required. Name of the resource.
111
+ class GetNfsShareRequest
112
+ include ::Google::Protobuf::MessageExts
113
+ extend ::Google::Protobuf::MessageExts::ClassMethods
114
+ end
115
+
116
+ # Message for requesting a list of NFS shares.
117
+ # @!attribute [rw] parent
118
+ # @return [::String]
119
+ # Required. Parent value for ListNfsSharesRequest.
120
+ # @!attribute [rw] page_size
121
+ # @return [::Integer]
122
+ # Requested page size. The server might return fewer items than requested.
123
+ # If unspecified, server will pick an appropriate default.
124
+ # @!attribute [rw] page_token
125
+ # @return [::String]
126
+ # A token identifying a page of results from the server.
127
+ # @!attribute [rw] filter
128
+ # @return [::String]
129
+ # List filter.
130
+ class ListNfsSharesRequest
131
+ include ::Google::Protobuf::MessageExts
132
+ extend ::Google::Protobuf::MessageExts::ClassMethods
133
+ end
134
+
135
+ # Response message containing the list of NFS shares.
136
+ # @!attribute [rw] nfs_shares
137
+ # @return [::Array<::Google::Cloud::BareMetalSolution::V2::NfsShare>]
138
+ # The list of NFS shares.
139
+ # @!attribute [rw] next_page_token
140
+ # @return [::String]
141
+ # A token identifying a page of results from the server.
142
+ # @!attribute [rw] unreachable
143
+ # @return [::Array<::String>]
144
+ # Locations that could not be reached.
145
+ class ListNfsSharesResponse
146
+ include ::Google::Protobuf::MessageExts
147
+ extend ::Google::Protobuf::MessageExts::ClassMethods
148
+ end
149
+
150
+ # Message requesting to updating a NFS share.
151
+ # @!attribute [rw] nfs_share
152
+ # @return [::Google::Cloud::BareMetalSolution::V2::NfsShare]
153
+ # Required. The NFS share to update.
154
+ #
155
+ # The `name` field is used to identify the NFS share to update.
156
+ # Format: projects/\\{project}/locations/\\{location}/nfsShares/\\{nfs_share}
157
+ # @!attribute [rw] update_mask
158
+ # @return [::Google::Protobuf::FieldMask]
159
+ # The list of fields to update.
160
+ # The only currently supported fields are:
161
+ # `labels`
162
+ class UpdateNfsShareRequest
163
+ include ::Google::Protobuf::MessageExts
164
+ extend ::Google::Protobuf::MessageExts::ClassMethods
165
+ end
166
+ end
167
+ end
168
+ end
169
+ end