google-apis-baremetalsolution_v1alpha1 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.
@@ -0,0 +1,28 @@
1
+ # Copyright 2020 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ module Google
16
+ module Apis
17
+ module BaremetalsolutionV1alpha1
18
+ # Version of the google-apis-baremetalsolution_v1alpha1 gem
19
+ GEM_VERSION = "0.1.0"
20
+
21
+ # Version of the code generator used to generate this client
22
+ GENERATOR_VERSION = "0.4.0"
23
+
24
+ # Revision of the discovery document this client was generated from
25
+ REVISION = "20210701"
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,577 @@
1
+ # Copyright 2020 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ require 'date'
16
+ require 'google/apis/core/base_service'
17
+ require 'google/apis/core/json_representation'
18
+ require 'google/apis/core/hashable'
19
+ require 'google/apis/errors'
20
+
21
+ module Google
22
+ module Apis
23
+ module BaremetalsolutionV1alpha1
24
+
25
+ class DisableInteractiveSerialConsoleRequest
26
+ class Representation < Google::Apis::Core::JsonRepresentation; end
27
+
28
+ include Google::Apis::Core::JsonObjectSupport
29
+ end
30
+
31
+ class DisableInteractiveSerialConsoleResponse
32
+ class Representation < Google::Apis::Core::JsonRepresentation; end
33
+
34
+ include Google::Apis::Core::JsonObjectSupport
35
+ end
36
+
37
+ class Empty
38
+ class Representation < Google::Apis::Core::JsonRepresentation; end
39
+
40
+ include Google::Apis::Core::JsonObjectSupport
41
+ end
42
+
43
+ class EnableInteractiveSerialConsoleRequest
44
+ class Representation < Google::Apis::Core::JsonRepresentation; end
45
+
46
+ include Google::Apis::Core::JsonObjectSupport
47
+ end
48
+
49
+ class EnableInteractiveSerialConsoleResponse
50
+ class Representation < Google::Apis::Core::JsonRepresentation; end
51
+
52
+ include Google::Apis::Core::JsonObjectSupport
53
+ end
54
+
55
+ class Instance
56
+ class Representation < Google::Apis::Core::JsonRepresentation; end
57
+
58
+ include Google::Apis::Core::JsonObjectSupport
59
+ end
60
+
61
+ class InstanceConfig
62
+ class Representation < Google::Apis::Core::JsonRepresentation; end
63
+
64
+ include Google::Apis::Core::JsonObjectSupport
65
+ end
66
+
67
+ class InstanceQuota
68
+ class Representation < Google::Apis::Core::JsonRepresentation; end
69
+
70
+ include Google::Apis::Core::JsonObjectSupport
71
+ end
72
+
73
+ class ListInstancesResponse
74
+ class Representation < Google::Apis::Core::JsonRepresentation; end
75
+
76
+ include Google::Apis::Core::JsonObjectSupport
77
+ end
78
+
79
+ class ListLunsResponse
80
+ class Representation < Google::Apis::Core::JsonRepresentation; end
81
+
82
+ include Google::Apis::Core::JsonObjectSupport
83
+ end
84
+
85
+ class ListProvisioningQuotasResponse
86
+ class Representation < Google::Apis::Core::JsonRepresentation; end
87
+
88
+ include Google::Apis::Core::JsonObjectSupport
89
+ end
90
+
91
+ class ListSshKeysResponse
92
+ class Representation < Google::Apis::Core::JsonRepresentation; end
93
+
94
+ include Google::Apis::Core::JsonObjectSupport
95
+ end
96
+
97
+ class ListSnapshotSchedulePoliciesResponse
98
+ class Representation < Google::Apis::Core::JsonRepresentation; end
99
+
100
+ include Google::Apis::Core::JsonObjectSupport
101
+ end
102
+
103
+ class ListVolumeSnapshotsResponse
104
+ class Representation < Google::Apis::Core::JsonRepresentation; end
105
+
106
+ include Google::Apis::Core::JsonObjectSupport
107
+ end
108
+
109
+ class ListVolumesResponse
110
+ class Representation < Google::Apis::Core::JsonRepresentation; end
111
+
112
+ include Google::Apis::Core::JsonObjectSupport
113
+ end
114
+
115
+ class Lun
116
+ class Representation < Google::Apis::Core::JsonRepresentation; end
117
+
118
+ include Google::Apis::Core::JsonObjectSupport
119
+ end
120
+
121
+ class LunRange
122
+ class Representation < Google::Apis::Core::JsonRepresentation; end
123
+
124
+ include Google::Apis::Core::JsonObjectSupport
125
+ end
126
+
127
+ class NetworkAddress
128
+ class Representation < Google::Apis::Core::JsonRepresentation; end
129
+
130
+ include Google::Apis::Core::JsonObjectSupport
131
+ end
132
+
133
+ class NetworkConfig
134
+ class Representation < Google::Apis::Core::JsonRepresentation; end
135
+
136
+ include Google::Apis::Core::JsonObjectSupport
137
+ end
138
+
139
+ class NfsExport
140
+ class Representation < Google::Apis::Core::JsonRepresentation; end
141
+
142
+ include Google::Apis::Core::JsonObjectSupport
143
+ end
144
+
145
+ class ProvisioningConfig
146
+ class Representation < Google::Apis::Core::JsonRepresentation; end
147
+
148
+ include Google::Apis::Core::JsonObjectSupport
149
+ end
150
+
151
+ class ProvisioningQuota
152
+ class Representation < Google::Apis::Core::JsonRepresentation; end
153
+
154
+ include Google::Apis::Core::JsonObjectSupport
155
+ end
156
+
157
+ class ResetInstanceRequest
158
+ class Representation < Google::Apis::Core::JsonRepresentation; end
159
+
160
+ include Google::Apis::Core::JsonObjectSupport
161
+ end
162
+
163
+ class ResetInstanceResponse
164
+ class Representation < Google::Apis::Core::JsonRepresentation; end
165
+
166
+ include Google::Apis::Core::JsonObjectSupport
167
+ end
168
+
169
+ class RestoreVolumeSnapshotRequest
170
+ class Representation < Google::Apis::Core::JsonRepresentation; end
171
+
172
+ include Google::Apis::Core::JsonObjectSupport
173
+ end
174
+
175
+ class SshKey
176
+ class Representation < Google::Apis::Core::JsonRepresentation; end
177
+
178
+ include Google::Apis::Core::JsonObjectSupport
179
+ end
180
+
181
+ class Schedule
182
+ class Representation < Google::Apis::Core::JsonRepresentation; end
183
+
184
+ include Google::Apis::Core::JsonObjectSupport
185
+ end
186
+
187
+ class SerialPortOutput
188
+ class Representation < Google::Apis::Core::JsonRepresentation; end
189
+
190
+ include Google::Apis::Core::JsonObjectSupport
191
+ end
192
+
193
+ class SetVolumeSnapshotSchedulePolicyRequest
194
+ class Representation < Google::Apis::Core::JsonRepresentation; end
195
+
196
+ include Google::Apis::Core::JsonObjectSupport
197
+ end
198
+
199
+ class SetVolumeSnapshotSchedulePolicyResponse
200
+ class Representation < Google::Apis::Core::JsonRepresentation; end
201
+
202
+ include Google::Apis::Core::JsonObjectSupport
203
+ end
204
+
205
+ class SnapshotSchedulePolicy
206
+ class Representation < Google::Apis::Core::JsonRepresentation; end
207
+
208
+ include Google::Apis::Core::JsonObjectSupport
209
+ end
210
+
211
+ class SubmitProvisioningConfigRequest
212
+ class Representation < Google::Apis::Core::JsonRepresentation; end
213
+
214
+ include Google::Apis::Core::JsonObjectSupport
215
+ end
216
+
217
+ class VlanAttachment
218
+ class Representation < Google::Apis::Core::JsonRepresentation; end
219
+
220
+ include Google::Apis::Core::JsonObjectSupport
221
+ end
222
+
223
+ class Volume
224
+ class Representation < Google::Apis::Core::JsonRepresentation; end
225
+
226
+ include Google::Apis::Core::JsonObjectSupport
227
+ end
228
+
229
+ class VolumeConfig
230
+ class Representation < Google::Apis::Core::JsonRepresentation; end
231
+
232
+ include Google::Apis::Core::JsonObjectSupport
233
+ end
234
+
235
+ class VolumeSnapshot
236
+ class Representation < Google::Apis::Core::JsonRepresentation; end
237
+
238
+ include Google::Apis::Core::JsonObjectSupport
239
+ end
240
+
241
+ class DisableInteractiveSerialConsoleRequest
242
+ # @private
243
+ class Representation < Google::Apis::Core::JsonRepresentation
244
+ end
245
+ end
246
+
247
+ class DisableInteractiveSerialConsoleResponse
248
+ # @private
249
+ class Representation < Google::Apis::Core::JsonRepresentation
250
+ end
251
+ end
252
+
253
+ class Empty
254
+ # @private
255
+ class Representation < Google::Apis::Core::JsonRepresentation
256
+ end
257
+ end
258
+
259
+ class EnableInteractiveSerialConsoleRequest
260
+ # @private
261
+ class Representation < Google::Apis::Core::JsonRepresentation
262
+ end
263
+ end
264
+
265
+ class EnableInteractiveSerialConsoleResponse
266
+ # @private
267
+ class Representation < Google::Apis::Core::JsonRepresentation
268
+ end
269
+ end
270
+
271
+ class Instance
272
+ # @private
273
+ class Representation < Google::Apis::Core::JsonRepresentation
274
+ property :hyperthreading_enabled, as: 'hyperthreadingEnabled'
275
+ collection :luns, as: 'luns', class: Google::Apis::BaremetalsolutionV1alpha1::Lun, decorator: Google::Apis::BaremetalsolutionV1alpha1::Lun::Representation
276
+
277
+ property :name, as: 'name'
278
+ property :scheduled_power_reset_time, as: 'scheduledPowerResetTime'
279
+ property :ssh_enabled, as: 'sshEnabled'
280
+ property :state, as: 'state'
281
+ end
282
+ end
283
+
284
+ class InstanceConfig
285
+ # @private
286
+ class Representation < Google::Apis::Core::JsonRepresentation
287
+ property :client_network, as: 'clientNetwork', class: Google::Apis::BaremetalsolutionV1alpha1::NetworkAddress, decorator: Google::Apis::BaremetalsolutionV1alpha1::NetworkAddress::Representation
288
+
289
+ property :hyperthreading, as: 'hyperthreading'
290
+ property :id, as: 'id'
291
+ property :instance_type, as: 'instanceType'
292
+ property :location, as: 'location'
293
+ property :os_image, as: 'osImage'
294
+ property :private_network, as: 'privateNetwork', class: Google::Apis::BaremetalsolutionV1alpha1::NetworkAddress, decorator: Google::Apis::BaremetalsolutionV1alpha1::NetworkAddress::Representation
295
+
296
+ end
297
+ end
298
+
299
+ class InstanceQuota
300
+ # @private
301
+ class Representation < Google::Apis::Core::JsonRepresentation
302
+ property :available_machine_count, as: 'availableMachineCount'
303
+ property :instance_type, as: 'instanceType'
304
+ property :location, as: 'location'
305
+ end
306
+ end
307
+
308
+ class ListInstancesResponse
309
+ # @private
310
+ class Representation < Google::Apis::Core::JsonRepresentation
311
+ collection :instances, as: 'instances', class: Google::Apis::BaremetalsolutionV1alpha1::Instance, decorator: Google::Apis::BaremetalsolutionV1alpha1::Instance::Representation
312
+
313
+ property :next_page_token, as: 'nextPageToken'
314
+ end
315
+ end
316
+
317
+ class ListLunsResponse
318
+ # @private
319
+ class Representation < Google::Apis::Core::JsonRepresentation
320
+ collection :luns, as: 'luns', class: Google::Apis::BaremetalsolutionV1alpha1::Lun, decorator: Google::Apis::BaremetalsolutionV1alpha1::Lun::Representation
321
+
322
+ property :next_page_token, as: 'nextPageToken'
323
+ end
324
+ end
325
+
326
+ class ListProvisioningQuotasResponse
327
+ # @private
328
+ class Representation < Google::Apis::Core::JsonRepresentation
329
+ property :next_page_token, as: 'nextPageToken'
330
+ collection :provisioning_quotas, as: 'provisioningQuotas', class: Google::Apis::BaremetalsolutionV1alpha1::ProvisioningQuota, decorator: Google::Apis::BaremetalsolutionV1alpha1::ProvisioningQuota::Representation
331
+
332
+ end
333
+ end
334
+
335
+ class ListSshKeysResponse
336
+ # @private
337
+ class Representation < Google::Apis::Core::JsonRepresentation
338
+ property :next_page_token, as: 'nextPageToken'
339
+ collection :ssh_keys, as: 'sshKeys', class: Google::Apis::BaremetalsolutionV1alpha1::SshKey, decorator: Google::Apis::BaremetalsolutionV1alpha1::SshKey::Representation
340
+
341
+ end
342
+ end
343
+
344
+ class ListSnapshotSchedulePoliciesResponse
345
+ # @private
346
+ class Representation < Google::Apis::Core::JsonRepresentation
347
+ property :next_page_token, as: 'nextPageToken'
348
+ collection :snapshot_schedule_policies, as: 'snapshotSchedulePolicies', class: Google::Apis::BaremetalsolutionV1alpha1::SnapshotSchedulePolicy, decorator: Google::Apis::BaremetalsolutionV1alpha1::SnapshotSchedulePolicy::Representation
349
+
350
+ end
351
+ end
352
+
353
+ class ListVolumeSnapshotsResponse
354
+ # @private
355
+ class Representation < Google::Apis::Core::JsonRepresentation
356
+ property :next_page_token, as: 'nextPageToken'
357
+ collection :volume_snapshots, as: 'volumeSnapshots', class: Google::Apis::BaremetalsolutionV1alpha1::VolumeSnapshot, decorator: Google::Apis::BaremetalsolutionV1alpha1::VolumeSnapshot::Representation
358
+
359
+ end
360
+ end
361
+
362
+ class ListVolumesResponse
363
+ # @private
364
+ class Representation < Google::Apis::Core::JsonRepresentation
365
+ property :next_page_token, as: 'nextPageToken'
366
+ collection :volumes, as: 'volumes', class: Google::Apis::BaremetalsolutionV1alpha1::Volume, decorator: Google::Apis::BaremetalsolutionV1alpha1::Volume::Representation
367
+
368
+ end
369
+ end
370
+
371
+ class Lun
372
+ # @private
373
+ class Representation < Google::Apis::Core::JsonRepresentation
374
+ property :is_boot, as: 'isBoot'
375
+ property :multiprotocol_type, as: 'multiprotocolType'
376
+ property :name, as: 'name'
377
+ property :remote_volume, as: 'remoteVolume', class: Google::Apis::BaremetalsolutionV1alpha1::Volume, decorator: Google::Apis::BaremetalsolutionV1alpha1::Volume::Representation
378
+
379
+ property :shareable, as: 'shareable'
380
+ property :size_gb, :numeric_string => true, as: 'sizeGb'
381
+ property :state, as: 'state'
382
+ end
383
+ end
384
+
385
+ class LunRange
386
+ # @private
387
+ class Representation < Google::Apis::Core::JsonRepresentation
388
+ property :quantity, as: 'quantity'
389
+ property :size_gb, as: 'sizeGb'
390
+ end
391
+ end
392
+
393
+ class NetworkAddress
394
+ # @private
395
+ class Representation < Google::Apis::Core::JsonRepresentation
396
+ property :address, as: 'address'
397
+ property :network_id, as: 'networkId'
398
+ end
399
+ end
400
+
401
+ class NetworkConfig
402
+ # @private
403
+ class Representation < Google::Apis::Core::JsonRepresentation
404
+ property :bandwidth, as: 'bandwidth'
405
+ property :cidr, as: 'cidr'
406
+ property :id, as: 'id'
407
+ property :location, as: 'location'
408
+ property :service_cidr, as: 'serviceCidr'
409
+ property :type, as: 'type'
410
+ collection :vlan_attachments, as: 'vlanAttachments', class: Google::Apis::BaremetalsolutionV1alpha1::VlanAttachment, decorator: Google::Apis::BaremetalsolutionV1alpha1::VlanAttachment::Representation
411
+
412
+ end
413
+ end
414
+
415
+ class NfsExport
416
+ # @private
417
+ class Representation < Google::Apis::Core::JsonRepresentation
418
+ property :allow_dev, as: 'allowDev'
419
+ property :allow_suid, as: 'allowSuid'
420
+ property :cidr, as: 'cidr'
421
+ property :machine_id, as: 'machineId'
422
+ property :network_id, as: 'networkId'
423
+ property :no_root_squash, as: 'noRootSquash'
424
+ property :permissions, as: 'permissions'
425
+ end
426
+ end
427
+
428
+ class ProvisioningConfig
429
+ # @private
430
+ class Representation < Google::Apis::Core::JsonRepresentation
431
+ collection :instances, as: 'instances', class: Google::Apis::BaremetalsolutionV1alpha1::InstanceConfig, decorator: Google::Apis::BaremetalsolutionV1alpha1::InstanceConfig::Representation
432
+
433
+ collection :networks, as: 'networks', class: Google::Apis::BaremetalsolutionV1alpha1::NetworkConfig, decorator: Google::Apis::BaremetalsolutionV1alpha1::NetworkConfig::Representation
434
+
435
+ property :ticket_id, as: 'ticketId'
436
+ collection :volumes, as: 'volumes', class: Google::Apis::BaremetalsolutionV1alpha1::VolumeConfig, decorator: Google::Apis::BaremetalsolutionV1alpha1::VolumeConfig::Representation
437
+
438
+ end
439
+ end
440
+
441
+ class ProvisioningQuota
442
+ # @private
443
+ class Representation < Google::Apis::Core::JsonRepresentation
444
+ property :instance_quota, as: 'instanceQuota', class: Google::Apis::BaremetalsolutionV1alpha1::InstanceQuota, decorator: Google::Apis::BaremetalsolutionV1alpha1::InstanceQuota::Representation
445
+
446
+ end
447
+ end
448
+
449
+ class ResetInstanceRequest
450
+ # @private
451
+ class Representation < Google::Apis::Core::JsonRepresentation
452
+ end
453
+ end
454
+
455
+ class ResetInstanceResponse
456
+ # @private
457
+ class Representation < Google::Apis::Core::JsonRepresentation
458
+ end
459
+ end
460
+
461
+ class RestoreVolumeSnapshotRequest
462
+ # @private
463
+ class Representation < Google::Apis::Core::JsonRepresentation
464
+ end
465
+ end
466
+
467
+ class SshKey
468
+ # @private
469
+ class Representation < Google::Apis::Core::JsonRepresentation
470
+ property :name, as: 'name'
471
+ property :public_key, as: 'publicKey'
472
+ end
473
+ end
474
+
475
+ class Schedule
476
+ # @private
477
+ class Representation < Google::Apis::Core::JsonRepresentation
478
+ property :crontab_spec, as: 'crontabSpec'
479
+ property :prefix, as: 'prefix'
480
+ property :retention_count, as: 'retentionCount'
481
+ end
482
+ end
483
+
484
+ class SerialPortOutput
485
+ # @private
486
+ class Representation < Google::Apis::Core::JsonRepresentation
487
+ property :contents, as: 'contents'
488
+ property :next_start_byte, :numeric_string => true, as: 'nextStartByte'
489
+ property :start, :numeric_string => true, as: 'start'
490
+ end
491
+ end
492
+
493
+ class SetVolumeSnapshotSchedulePolicyRequest
494
+ # @private
495
+ class Representation < Google::Apis::Core::JsonRepresentation
496
+ property :snapshot_schedule_policy, as: 'snapshotSchedulePolicy'
497
+ end
498
+ end
499
+
500
+ class SetVolumeSnapshotSchedulePolicyResponse
501
+ # @private
502
+ class Representation < Google::Apis::Core::JsonRepresentation
503
+ end
504
+ end
505
+
506
+ class SnapshotSchedulePolicy
507
+ # @private
508
+ class Representation < Google::Apis::Core::JsonRepresentation
509
+ property :description, as: 'description'
510
+ property :name, as: 'name'
511
+ collection :schedules, as: 'schedules', class: Google::Apis::BaremetalsolutionV1alpha1::Schedule, decorator: Google::Apis::BaremetalsolutionV1alpha1::Schedule::Representation
512
+
513
+ collection :volumes, as: 'volumes'
514
+ end
515
+ end
516
+
517
+ class SubmitProvisioningConfigRequest
518
+ # @private
519
+ class Representation < Google::Apis::Core::JsonRepresentation
520
+ property :provisioning_config, as: 'provisioningConfig', class: Google::Apis::BaremetalsolutionV1alpha1::ProvisioningConfig, decorator: Google::Apis::BaremetalsolutionV1alpha1::ProvisioningConfig::Representation
521
+
522
+ end
523
+ end
524
+
525
+ class VlanAttachment
526
+ # @private
527
+ class Representation < Google::Apis::Core::JsonRepresentation
528
+ property :id, as: 'id'
529
+ property :pairing_key, as: 'pairingKey'
530
+ end
531
+ end
532
+
533
+ class Volume
534
+ # @private
535
+ class Representation < Google::Apis::Core::JsonRepresentation
536
+ property :auto_grown_size_gb, :numeric_string => true, as: 'autoGrownSizeGb'
537
+ property :current_size_gb, :numeric_string => true, as: 'currentSizeGb'
538
+ property :name, as: 'name'
539
+ property :remaining_space_gb, :numeric_string => true, as: 'remainingSpaceGb'
540
+ property :requested_size_gb, :numeric_string => true, as: 'requestedSizeGb'
541
+ property :snapshot_reserved_space_percent, as: 'snapshotReservedSpacePercent'
542
+ property :snapshot_reserved_space_remaining_gb, :numeric_string => true, as: 'snapshotReservedSpaceRemainingGb'
543
+ property :snapshot_reserved_space_used_percent, as: 'snapshotReservedSpaceUsedPercent'
544
+ property :state, as: 'state'
545
+ property :type, as: 'type'
546
+ end
547
+ end
548
+
549
+ class VolumeConfig
550
+ # @private
551
+ class Representation < Google::Apis::Core::JsonRepresentation
552
+ property :id, as: 'id'
553
+ property :location, as: 'location'
554
+ collection :lun_ranges, as: 'lunRanges', class: Google::Apis::BaremetalsolutionV1alpha1::LunRange, decorator: Google::Apis::BaremetalsolutionV1alpha1::LunRange::Representation
555
+
556
+ collection :machine_ids, as: 'machineIds'
557
+ collection :nfs_exports, as: 'nfsExports', class: Google::Apis::BaremetalsolutionV1alpha1::NfsExport, decorator: Google::Apis::BaremetalsolutionV1alpha1::NfsExport::Representation
558
+
559
+ property :protocol, as: 'protocol'
560
+ property :size_gb, as: 'sizeGb'
561
+ property :snapshots_enabled, as: 'snapshotsEnabled'
562
+ property :type, as: 'type'
563
+ end
564
+ end
565
+
566
+ class VolumeSnapshot
567
+ # @private
568
+ class Representation < Google::Apis::Core::JsonRepresentation
569
+ property :description, as: 'description'
570
+ property :name, as: 'name'
571
+ property :size_bytes, :numeric_string => true, as: 'sizeBytes'
572
+ property :state, as: 'state'
573
+ end
574
+ end
575
+ end
576
+ end
577
+ end