google-cloud-bare_metal_solution-v2 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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