@hiiretail/gcp-infra-generators 1.0.1 → 1.0.2
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.
- package/dist/generators/common-resources/monitoring/templates/alerts/generic-infra.yaml +37 -2
- package/dist/node_modules/.package-lock.json +40 -41
- package/dist/node_modules/@google-cloud/storage/build/cjs/src/bucket.js +5 -5
- package/dist/node_modules/@google-cloud/storage/build/cjs/src/file.d.ts +1 -0
- package/dist/node_modules/@google-cloud/storage/build/cjs/src/file.js +10 -1
- package/dist/node_modules/@google-cloud/storage/build/cjs/src/storage.js +1 -1
- package/dist/node_modules/@google-cloud/storage/build/cjs/src/transfer-manager.d.ts +4 -4
- package/dist/node_modules/@google-cloud/storage/build/cjs/src/transfer-manager.js +4 -4
- package/dist/node_modules/@google-cloud/storage/build/cjs/src/util.d.ts +1 -1
- package/dist/node_modules/@google-cloud/storage/build/cjs/src/util.js +2 -2
- package/dist/node_modules/@google-cloud/storage/build/esm/src/bucket.js +5 -5
- package/dist/node_modules/@google-cloud/storage/build/esm/src/file.d.ts +1 -0
- package/dist/node_modules/@google-cloud/storage/build/esm/src/file.js +10 -1
- package/dist/node_modules/@google-cloud/storage/build/esm/src/storage.js +1 -1
- package/dist/node_modules/@google-cloud/storage/build/esm/src/transfer-manager.d.ts +4 -4
- package/dist/node_modules/@google-cloud/storage/build/esm/src/transfer-manager.js +4 -4
- package/dist/node_modules/@google-cloud/storage/build/esm/src/util.d.ts +1 -1
- package/dist/node_modules/@google-cloud/storage/build/esm/src/util.js +2 -2
- package/dist/node_modules/@google-cloud/storage/package.json +5 -5
- package/dist/package.json +2 -2
- package/package.json +2 -2
- package/dist/node_modules/@google-cloud/storage/CHANGELOG.md +0 -1769
|
@@ -19,6 +19,7 @@ cloud_function:
|
|
|
19
19
|
- resource.label.function_name
|
|
20
20
|
documentation:
|
|
21
21
|
subject: 'Function: `$${resource.label.function_name}`'
|
|
22
|
+
content: 'Review the function in Cloud Functions: https://console.cloud.google.com/run?deploymentType=function&project=<%-projectId%>'
|
|
22
23
|
cloud_run:
|
|
23
24
|
error_count:
|
|
24
25
|
display_name: "[P3] <%-clan%> - Cloud Run | Error rate"
|
|
@@ -40,6 +41,7 @@ cloud_run:
|
|
|
40
41
|
- resource.label.service_name
|
|
41
42
|
documentation:
|
|
42
43
|
subject: 'Service: `$${resource.label.service_name}`'
|
|
44
|
+
content: 'Review the service in Cloud Run: https://console.cloud.google.com/run?project=<%-projectId%>'
|
|
43
45
|
request_latency:
|
|
44
46
|
display_name: "[P3] <%-clan%> - Cloud Run | Request Latency"
|
|
45
47
|
conditions:
|
|
@@ -59,6 +61,7 @@ cloud_run:
|
|
|
59
61
|
- resource.label.service_name
|
|
60
62
|
documentation:
|
|
61
63
|
subject: 'Service: `$${resource.label.service_name}`'
|
|
64
|
+
content: 'Review the service in Cloud Run: https://console.cloud.google.com/run?project=<%-projectId%>'
|
|
62
65
|
cpu_utilization:
|
|
63
66
|
display_name: "[P3] <%-clan%> - Cloud Run | CPU Utilization"
|
|
64
67
|
conditions:
|
|
@@ -72,12 +75,13 @@ cloud_run:
|
|
|
72
75
|
duration: 300s
|
|
73
76
|
aggregations:
|
|
74
77
|
- alignment_period: 60s
|
|
75
|
-
per_series_aligner:
|
|
78
|
+
per_series_aligner: ALIGN_PERCENTILE_99
|
|
76
79
|
cross_series_reducer: REDUCE_PERCENTILE_99
|
|
77
80
|
group_by_fields:
|
|
78
81
|
- resource.label.service_name
|
|
79
82
|
documentation:
|
|
80
83
|
subject: 'Service: `$${resource.label.service_name}`'
|
|
84
|
+
content: 'Review the service in Cloud Run: https://console.cloud.google.com/run?project=<%-projectId%>'
|
|
81
85
|
memory_utilization:
|
|
82
86
|
display_name: "[P3] <%-clan%> - Cloud Run | Memory Utilization"
|
|
83
87
|
conditions:
|
|
@@ -91,12 +95,13 @@ cloud_run:
|
|
|
91
95
|
duration: 300s
|
|
92
96
|
aggregations:
|
|
93
97
|
- alignment_period: 60s
|
|
94
|
-
per_series_aligner:
|
|
98
|
+
per_series_aligner: ALIGN_PERCENTILE_99
|
|
95
99
|
cross_series_reducer: REDUCE_PERCENTILE_99
|
|
96
100
|
group_by_fields:
|
|
97
101
|
- resource.label.service_name
|
|
98
102
|
documentation:
|
|
99
103
|
subject: 'Service: `$${resource.label.service_name}`'
|
|
104
|
+
content: 'Review the service in Cloud Run: https://console.cloud.google.com/run?project=<%-projectId%>'
|
|
100
105
|
startup_latency:
|
|
101
106
|
display_name: "[P4] <%-clan%> - Cloud Run | Startup Latency"
|
|
102
107
|
conditions:
|
|
@@ -116,6 +121,7 @@ cloud_run:
|
|
|
116
121
|
- resource.label.service_name
|
|
117
122
|
documentation:
|
|
118
123
|
subject: 'Service: `$${resource.label.service_name}`'
|
|
124
|
+
content: 'Review the service in Cloud Run: https://console.cloud.google.com/run?project=<%-projectId%>'
|
|
119
125
|
cloud_scheduler:
|
|
120
126
|
failed_job:
|
|
121
127
|
display_name: "[P4] <%-clan%> - Cloud Scheduler | Job Failed"
|
|
@@ -135,6 +141,7 @@ cloud_scheduler:
|
|
|
135
141
|
- resource.label.job_id
|
|
136
142
|
documentation:
|
|
137
143
|
subject: 'Job: `$${resource.label.job_id}`'
|
|
144
|
+
content: 'Review the job in Cloud Scheduler: https://console.cloud.google.com/cloudscheduler?project=<%-projectId%>'
|
|
138
145
|
failed_executions:
|
|
139
146
|
display_name: "[P3] <%-clan%> - Cloud Scheduler | Failed Executions"
|
|
140
147
|
conditions:
|
|
@@ -155,6 +162,7 @@ cloud_scheduler:
|
|
|
155
162
|
- resource.label.job_id
|
|
156
163
|
documentation:
|
|
157
164
|
subject: 'Job: `$${resource.label.job_id}`'
|
|
165
|
+
content: 'Review the job in Cloud Scheduler: https://console.cloud.google.com/cloudscheduler?project=<%-projectId%>'
|
|
158
166
|
cloud_sql:
|
|
159
167
|
cpu_over_65:
|
|
160
168
|
display_name: "[P3] <%-clan%> - CloudSQL | CPU over 65%"
|
|
@@ -175,6 +183,7 @@ cloud_sql:
|
|
|
175
183
|
- resource.label.database_id
|
|
176
184
|
documentation:
|
|
177
185
|
subject: 'Database: `$${resource.label.database_id}`'
|
|
186
|
+
content: 'Review the database in Cloud SQL: https://console.cloud.google.com/sql/instances?project=<%-projectId%>'
|
|
178
187
|
cpu_over_85:
|
|
179
188
|
display_name: "[P3] <%-clan%> - CloudSQL | CPU over 85%"
|
|
180
189
|
conditions:
|
|
@@ -194,6 +203,7 @@ cloud_sql:
|
|
|
194
203
|
- resource.label.database_id
|
|
195
204
|
documentation:
|
|
196
205
|
subject: 'Database: `$${resource.label.database_id}`'
|
|
206
|
+
content: 'Review the database in Cloud SQL: https://console.cloud.google.com/sql/instances?project=<%-projectId%>'
|
|
197
207
|
cpu_over_90:
|
|
198
208
|
display_name: "[P3] <%-clan%> - CloudSQL | CPU over 90%"
|
|
199
209
|
conditions:
|
|
@@ -213,6 +223,7 @@ cloud_sql:
|
|
|
213
223
|
- resource.label.database_id
|
|
214
224
|
documentation:
|
|
215
225
|
subject: 'Database: `$${resource.label.database_id}`'
|
|
226
|
+
content: 'Review the database in Cloud SQL: https://console.cloud.google.com/sql/instances?project=<%-projectId%>'
|
|
216
227
|
memory_over_90:
|
|
217
228
|
display_name: "[P2] <%-clan%> - CloudSQL | Memory utilization above 90%"
|
|
218
229
|
conditions:
|
|
@@ -232,6 +243,7 @@ cloud_sql:
|
|
|
232
243
|
- resource.label.database_id
|
|
233
244
|
documentation:
|
|
234
245
|
subject: 'Database: `$${resource.label.database_id}`'
|
|
246
|
+
content: 'Review the database in Cloud SQL: https://console.cloud.google.com/sql/instances?project=<%-projectId%>'
|
|
235
247
|
query_over_1s:
|
|
236
248
|
display_name: "[P4] <%-clan%> - CloudSQL | Slow query"
|
|
237
249
|
conditions:
|
|
@@ -251,6 +263,7 @@ cloud_sql:
|
|
|
251
263
|
- resource.label.resource_id
|
|
252
264
|
documentation:
|
|
253
265
|
subject: 'Database: `$${resource.label.resource_id}`'
|
|
266
|
+
content: 'Review the database in Cloud SQL: https://console.cloud.google.com/sql/instances?project=<%-projectId%>'
|
|
254
267
|
postgresql_connections:
|
|
255
268
|
display_name: "[P3] <%-clan%> - CloudSQL | PostgreSQL Connections"
|
|
256
269
|
conditions:
|
|
@@ -269,6 +282,7 @@ cloud_sql:
|
|
|
269
282
|
- resource.label.database_id
|
|
270
283
|
documentation:
|
|
271
284
|
subject: 'Database: `$${resource.label.database_id}`'
|
|
285
|
+
content: 'Review the database in Cloud SQL: https://console.cloud.google.com/sql/instances?project=<%-projectId%>'
|
|
272
286
|
aggregated_lock_time:
|
|
273
287
|
display_name: "[P4] <%-clan%> - CloudSQL | Aggregated Lock Time"
|
|
274
288
|
conditions:
|
|
@@ -287,6 +301,7 @@ cloud_sql:
|
|
|
287
301
|
- resource.label.database_id
|
|
288
302
|
documentation:
|
|
289
303
|
subject: 'Database: `$${resource.label.database_id}`'
|
|
304
|
+
content: 'Review the database in Cloud SQL: https://console.cloud.google.com/sql/instances?project=<%-projectId%>'
|
|
290
305
|
firestore:
|
|
291
306
|
request_latencies:
|
|
292
307
|
display_name: "[P3] <%-clan%> - Firestore | High request latencies"
|
|
@@ -306,6 +321,7 @@ firestore:
|
|
|
306
321
|
- resource.label.database_id
|
|
307
322
|
documentation:
|
|
308
323
|
subject: 'Database: `$${resource.label.database_id}`'
|
|
324
|
+
content: 'Review the database in Firestore: https://console.cloud.google.com/firestore/databases?project=<%-projectId%>'
|
|
309
325
|
failed_commits:
|
|
310
326
|
display_name: "[P3] <%-clan%> - Firestore | High failed commits errors"
|
|
311
327
|
conditions:
|
|
@@ -324,6 +340,9 @@ firestore:
|
|
|
324
340
|
cross_series_reducer: REDUCE_SUM
|
|
325
341
|
group_by_fields:
|
|
326
342
|
- metric.label."response_code"
|
|
343
|
+
documentation:
|
|
344
|
+
subject: 'Database: `$${resource.label.database_id}`'
|
|
345
|
+
content: 'Review the database in Firestore: https://console.cloud.google.com/firestore/databases?project=<%-projectId%>'
|
|
327
346
|
memorystore:
|
|
328
347
|
memory_over_50:
|
|
329
348
|
display_name: "[P3] <%-clan%> - Memorystore | Memory over 50%"
|
|
@@ -344,6 +363,7 @@ memorystore:
|
|
|
344
363
|
- resource.label.instance_id
|
|
345
364
|
documentation:
|
|
346
365
|
subject: 'Instance: `$${resource.label.instance_id}`'
|
|
366
|
+
content: 'Review the instance in Memorystore: https://console.cloud.google.com/memorystore/redis/instances?project=<%-projectId%>'
|
|
347
367
|
memory_over_75:
|
|
348
368
|
display_name: "[P3] <%-clan%> - Memorystore | Memory over 75%"
|
|
349
369
|
conditions:
|
|
@@ -363,6 +383,7 @@ memorystore:
|
|
|
363
383
|
- resource.label.instance_id
|
|
364
384
|
documentation:
|
|
365
385
|
subject: 'Instance: `$${resource.label.instance_id}`'
|
|
386
|
+
content: 'Review the instance in Memorystore: https://console.cloud.google.com/memorystore/redis/instances?project=<%-projectId%>'
|
|
366
387
|
memory_over_90:
|
|
367
388
|
display_name: "[P2] <%-clan%> - Memorystore | Memory over 90%"
|
|
368
389
|
conditions:
|
|
@@ -382,6 +403,7 @@ memorystore:
|
|
|
382
403
|
- resource.label.instance_id
|
|
383
404
|
documentation:
|
|
384
405
|
subject: 'Instance: `$${resource.label.instance_id}`'
|
|
406
|
+
content: 'Review the instance in Memorystore: https://console.cloud.google.com/memorystore/redis/instances?project=<%-projectId%>'
|
|
385
407
|
cpu_utilization:
|
|
386
408
|
display_name: "[P2] <%-clan%> - Memorystore | CPU Utilization"
|
|
387
409
|
conditions:
|
|
@@ -401,6 +423,7 @@ memorystore:
|
|
|
401
423
|
- resource.label.instance_id
|
|
402
424
|
documentation:
|
|
403
425
|
subject: 'Instance: `$${resource.label.instance_id}`'
|
|
426
|
+
content: 'Review the instance in Memorystore: https://console.cloud.google.com/memorystore/redis/instances?project=<%-projectId%>'
|
|
404
427
|
system_memory_overload_duration:
|
|
405
428
|
display_name: "[P1] <%-clan%> - Memorystore | System Memory Overload Duration"
|
|
406
429
|
conditions:
|
|
@@ -419,6 +442,7 @@ memorystore:
|
|
|
419
442
|
- resource.label.instance_id
|
|
420
443
|
documentation:
|
|
421
444
|
subject: 'Instance: `$${resource.label.instance_id}`'
|
|
445
|
+
content: 'Review the instance in Memorystore: https://console.cloud.google.com/memorystore/redis/instances?project=<%-projectId%>'
|
|
422
446
|
calls:
|
|
423
447
|
display_name: "[P3] <%-clan%> - Memorystore | Calls"
|
|
424
448
|
conditions:
|
|
@@ -438,6 +462,7 @@ memorystore:
|
|
|
438
462
|
- resource.label.instance_id
|
|
439
463
|
documentation:
|
|
440
464
|
subject: 'Instance: `$${resource.label.instance_id}`'
|
|
465
|
+
content: 'Review the instance in Memorystore: https://console.cloud.google.com/memorystore/redis/instances?project=<%-projectId%>'
|
|
441
466
|
pub_sub:
|
|
442
467
|
unacknowledged_messages:
|
|
443
468
|
display_name: "[P3] <%-clan%> - Pub/Sub | Undelivered message(s)"
|
|
@@ -457,6 +482,7 @@ pub_sub:
|
|
|
457
482
|
- resource.label.subscription_id
|
|
458
483
|
documentation:
|
|
459
484
|
subject: 'Subscription: `$${resource.label.subscription_id}`'
|
|
485
|
+
content: 'Review the subscription in Pub/Sub: https://console.cloud.google.com/cloudpubsub/subscriptions?project=<%-projectId%>'
|
|
460
486
|
messages_in_dlq:
|
|
461
487
|
display_name: "[P3] <%-clan%> - Pub/Sub | Message(s) in DLQ"
|
|
462
488
|
conditions:
|
|
@@ -477,6 +503,7 @@ pub_sub:
|
|
|
477
503
|
- metric.label.response_code
|
|
478
504
|
documentation:
|
|
479
505
|
subject: 'Subscription: `$${resource.label.subscription_id}`, Response code: `$${metric.label.response_code}`'
|
|
506
|
+
content: 'Review the subscription in Pub/Sub: https://console.cloud.google.com/cloudpubsub/subscriptions?project=<%-projectId%>'
|
|
480
507
|
latency:
|
|
481
508
|
display_name: "[P3] <%-clan%> - Pub/Sub | Response latency distribution"
|
|
482
509
|
conditions:
|
|
@@ -496,6 +523,7 @@ pub_sub:
|
|
|
496
523
|
- resource.label.subscription_id
|
|
497
524
|
documentation:
|
|
498
525
|
subject: 'Subscription: `$${resource.label.subscription_id}`'
|
|
526
|
+
content: 'Review the subscription in Pub/Sub: https://console.cloud.google.com/cloudpubsub/subscriptions?project=<%-projectId%>'
|
|
499
527
|
oldest_unacked_message_age:
|
|
500
528
|
display_name: "[P3] <%-clan%> - Pub/Sub | Oldest unacked message age"
|
|
501
529
|
conditions:
|
|
@@ -514,6 +542,7 @@ pub_sub:
|
|
|
514
542
|
- resource.label.subscription_id
|
|
515
543
|
documentation:
|
|
516
544
|
subject: 'Subscription: `$${resource.label.subscription_id}`'
|
|
545
|
+
content: 'Review the subscription in Pub/Sub: https://console.cloud.google.com/cloudpubsub/subscriptions?project=<%-projectId%>'
|
|
517
546
|
push_requests_ack:
|
|
518
547
|
display_name: "[P3] <%-clan%> - Pub/Sub | Push requests ack"
|
|
519
548
|
conditions:
|
|
@@ -533,6 +562,7 @@ pub_sub:
|
|
|
533
562
|
- resource.label.subscription_id
|
|
534
563
|
documentation:
|
|
535
564
|
subject: 'Subscription: `$${resource.label.subscription_id}`'
|
|
565
|
+
content: 'Review the subscription in Pub/Sub: https://console.cloud.google.com/cloudpubsub/subscriptions?project=<%-projectId%>'
|
|
536
566
|
push_requests_success:
|
|
537
567
|
display_name: "[P3] <%-clan%> - Pub/Sub | Push requests success"
|
|
538
568
|
conditions:
|
|
@@ -552,6 +582,7 @@ pub_sub:
|
|
|
552
582
|
- resource.label.subscription_id
|
|
553
583
|
documentation:
|
|
554
584
|
subject: 'Subscription: `$${resource.label.subscription_id}`'
|
|
585
|
+
content: 'Review the subscription in Pub/Sub: https://console.cloud.google.com/cloudpubsub/subscriptions?project=<%-projectId%>'
|
|
555
586
|
delivery_latency_health_score:
|
|
556
587
|
display_name: "[P3] <%-clan%> - Pub/Sub | Delivery latency health score"
|
|
557
588
|
conditions:
|
|
@@ -571,6 +602,7 @@ pub_sub:
|
|
|
571
602
|
- resource.label.subscription_id
|
|
572
603
|
documentation:
|
|
573
604
|
subject: 'Subscription: `$${resource.label.subscription_id}`'
|
|
605
|
+
content: 'Review the subscription in Pub/Sub: https://console.cloud.google.com/cloudpubsub/subscriptions?project=<%-projectId%>'
|
|
574
606
|
spanner:
|
|
575
607
|
cpu_utilization_by_priority:
|
|
576
608
|
display_name: "[P2] <%-clan%> - Spanner | CPU Utilization"
|
|
@@ -591,6 +623,7 @@ spanner:
|
|
|
591
623
|
- metric.label.database
|
|
592
624
|
documentation:
|
|
593
625
|
subject: 'Instance: `$${resource.label.instance_id}`, Database: `$${resource.label.database}`'
|
|
626
|
+
content: 'Review the instance in Spanner: https://console.cloud.google.com/spanner/instances?project=<%-projectId%>'
|
|
594
627
|
api_request_error_rate:
|
|
595
628
|
display_name: "[P2] <%-clan%> - Spanner | API request error rate"
|
|
596
629
|
conditions:
|
|
@@ -611,6 +644,7 @@ spanner:
|
|
|
611
644
|
- resource.label.database
|
|
612
645
|
documentation:
|
|
613
646
|
subject: 'Instance: `$${resource.label.instance_id}`, Database: `$${resource.label.database}`'
|
|
647
|
+
content: 'Review the instance in Spanner: https://console.cloud.google.com/spanner/instances?project=<%-projectId%>'
|
|
614
648
|
request_latencies:
|
|
615
649
|
display_name: '[P3] <%-clan%> - Spanner | API transaction latency'
|
|
616
650
|
conditions:
|
|
@@ -631,3 +665,4 @@ spanner:
|
|
|
631
665
|
per_series_aligner: ALIGN_PERCENTILE_95
|
|
632
666
|
documentation:
|
|
633
667
|
subject: 'Instance: `$${resource.label.instance_id}`, Database: `$${resource.label.database}}`'
|
|
668
|
+
content: 'Review the instance in Spanner: https://console.cloud.google.com/spanner/instances?project=<%-projectId%>'
|
|
@@ -563,9 +563,9 @@
|
|
|
563
563
|
"license": "MIT"
|
|
564
564
|
},
|
|
565
565
|
"node_modules/@esbuild/linux-x64": {
|
|
566
|
-
"version": "0.25.
|
|
567
|
-
"resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.
|
|
568
|
-
"integrity": "sha512-
|
|
566
|
+
"version": "0.25.9",
|
|
567
|
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.9.tgz",
|
|
568
|
+
"integrity": "sha512-iSwByxzRe48YVkmpbgoxVzn76BXjlYFXC7NvLYq+b+kDjyyk30J0JY47DIn8z1MO3K0oSl9fZoRmZPQI4Hklzg==",
|
|
569
569
|
"cpu": [
|
|
570
570
|
"x64"
|
|
571
571
|
],
|
|
@@ -775,10 +775,9 @@
|
|
|
775
775
|
}
|
|
776
776
|
},
|
|
777
777
|
"node_modules/@google-cloud/storage": {
|
|
778
|
-
"version": "7.
|
|
779
|
-
"resolved": "https://registry.npmjs.org/@google-cloud/storage/-/storage-7.
|
|
780
|
-
"integrity": "sha512-
|
|
781
|
-
"license": "Apache-2.0",
|
|
778
|
+
"version": "7.17.0",
|
|
779
|
+
"resolved": "https://registry.npmjs.org/@google-cloud/storage/-/storage-7.17.0.tgz",
|
|
780
|
+
"integrity": "sha512-5m9GoZqKh52a1UqkxDBu/+WVFDALNtHg5up5gNmNbXQWBcV813tzJKsyDtKjOPrlR1em1TxtD7NSPCrObH7koQ==",
|
|
782
781
|
"dependencies": {
|
|
783
782
|
"@google-cloud/paginator": "^5.0.0",
|
|
784
783
|
"@google-cloud/projectify": "^4.0.0",
|
|
@@ -3894,9 +3893,9 @@
|
|
|
3894
3893
|
}
|
|
3895
3894
|
},
|
|
3896
3895
|
"node_modules/esbuild": {
|
|
3897
|
-
"version": "0.25.
|
|
3898
|
-
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.
|
|
3899
|
-
"integrity": "sha512-
|
|
3896
|
+
"version": "0.25.9",
|
|
3897
|
+
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.9.tgz",
|
|
3898
|
+
"integrity": "sha512-CRbODhYyQx3qp7ZEwzxOk4JBqmD/seJrzPa/cGjY1VtIn5E09Oi9/dB4JwctnfZ8Q8iT7rioVv5k/FNT/uf54g==",
|
|
3900
3899
|
"dev": true,
|
|
3901
3900
|
"hasInstallScript": true,
|
|
3902
3901
|
"license": "MIT",
|
|
@@ -3907,32 +3906,32 @@
|
|
|
3907
3906
|
"node": ">=18"
|
|
3908
3907
|
},
|
|
3909
3908
|
"optionalDependencies": {
|
|
3910
|
-
"@esbuild/aix-ppc64": "0.25.
|
|
3911
|
-
"@esbuild/android-arm": "0.25.
|
|
3912
|
-
"@esbuild/android-arm64": "0.25.
|
|
3913
|
-
"@esbuild/android-x64": "0.25.
|
|
3914
|
-
"@esbuild/darwin-arm64": "0.25.
|
|
3915
|
-
"@esbuild/darwin-x64": "0.25.
|
|
3916
|
-
"@esbuild/freebsd-arm64": "0.25.
|
|
3917
|
-
"@esbuild/freebsd-x64": "0.25.
|
|
3918
|
-
"@esbuild/linux-arm": "0.25.
|
|
3919
|
-
"@esbuild/linux-arm64": "0.25.
|
|
3920
|
-
"@esbuild/linux-ia32": "0.25.
|
|
3921
|
-
"@esbuild/linux-loong64": "0.25.
|
|
3922
|
-
"@esbuild/linux-mips64el": "0.25.
|
|
3923
|
-
"@esbuild/linux-ppc64": "0.25.
|
|
3924
|
-
"@esbuild/linux-riscv64": "0.25.
|
|
3925
|
-
"@esbuild/linux-s390x": "0.25.
|
|
3926
|
-
"@esbuild/linux-x64": "0.25.
|
|
3927
|
-
"@esbuild/netbsd-arm64": "0.25.
|
|
3928
|
-
"@esbuild/netbsd-x64": "0.25.
|
|
3929
|
-
"@esbuild/openbsd-arm64": "0.25.
|
|
3930
|
-
"@esbuild/openbsd-x64": "0.25.
|
|
3931
|
-
"@esbuild/openharmony-arm64": "0.25.
|
|
3932
|
-
"@esbuild/sunos-x64": "0.25.
|
|
3933
|
-
"@esbuild/win32-arm64": "0.25.
|
|
3934
|
-
"@esbuild/win32-ia32": "0.25.
|
|
3935
|
-
"@esbuild/win32-x64": "0.25.
|
|
3909
|
+
"@esbuild/aix-ppc64": "0.25.9",
|
|
3910
|
+
"@esbuild/android-arm": "0.25.9",
|
|
3911
|
+
"@esbuild/android-arm64": "0.25.9",
|
|
3912
|
+
"@esbuild/android-x64": "0.25.9",
|
|
3913
|
+
"@esbuild/darwin-arm64": "0.25.9",
|
|
3914
|
+
"@esbuild/darwin-x64": "0.25.9",
|
|
3915
|
+
"@esbuild/freebsd-arm64": "0.25.9",
|
|
3916
|
+
"@esbuild/freebsd-x64": "0.25.9",
|
|
3917
|
+
"@esbuild/linux-arm": "0.25.9",
|
|
3918
|
+
"@esbuild/linux-arm64": "0.25.9",
|
|
3919
|
+
"@esbuild/linux-ia32": "0.25.9",
|
|
3920
|
+
"@esbuild/linux-loong64": "0.25.9",
|
|
3921
|
+
"@esbuild/linux-mips64el": "0.25.9",
|
|
3922
|
+
"@esbuild/linux-ppc64": "0.25.9",
|
|
3923
|
+
"@esbuild/linux-riscv64": "0.25.9",
|
|
3924
|
+
"@esbuild/linux-s390x": "0.25.9",
|
|
3925
|
+
"@esbuild/linux-x64": "0.25.9",
|
|
3926
|
+
"@esbuild/netbsd-arm64": "0.25.9",
|
|
3927
|
+
"@esbuild/netbsd-x64": "0.25.9",
|
|
3928
|
+
"@esbuild/openbsd-arm64": "0.25.9",
|
|
3929
|
+
"@esbuild/openbsd-x64": "0.25.9",
|
|
3930
|
+
"@esbuild/openharmony-arm64": "0.25.9",
|
|
3931
|
+
"@esbuild/sunos-x64": "0.25.9",
|
|
3932
|
+
"@esbuild/win32-arm64": "0.25.9",
|
|
3933
|
+
"@esbuild/win32-ia32": "0.25.9",
|
|
3934
|
+
"@esbuild/win32-x64": "0.25.9"
|
|
3936
3935
|
}
|
|
3937
3936
|
},
|
|
3938
3937
|
"node_modules/escalade": {
|
|
@@ -8285,9 +8284,9 @@
|
|
|
8285
8284
|
"integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ=="
|
|
8286
8285
|
},
|
|
8287
8286
|
"node_modules/nock": {
|
|
8288
|
-
"version": "14.0.
|
|
8289
|
-
"resolved": "https://registry.npmjs.org/nock/-/nock-14.0.
|
|
8290
|
-
"integrity": "sha512-
|
|
8287
|
+
"version": "14.0.10",
|
|
8288
|
+
"resolved": "https://registry.npmjs.org/nock/-/nock-14.0.10.tgz",
|
|
8289
|
+
"integrity": "sha512-Q7HjkpyPeLa0ZVZC5qpxBt5EyLczFJ91MEewQiIi9taWuA0KB/MDJlUWtON+7dGouVdADTQsf9RA7TZk6D8VMw==",
|
|
8291
8290
|
"dev": true,
|
|
8292
8291
|
"license": "MIT",
|
|
8293
8292
|
"dependencies": {
|
|
@@ -11543,10 +11542,10 @@
|
|
|
11543
11542
|
},
|
|
11544
11543
|
"packages/generators": {
|
|
11545
11544
|
"name": "@hiiretail/gcp-infra-generators",
|
|
11546
|
-
"version": "1.0.
|
|
11545
|
+
"version": "1.0.2",
|
|
11547
11546
|
"license": "MIT",
|
|
11548
11547
|
"dependencies": {
|
|
11549
|
-
"@google-cloud/storage": "^7.
|
|
11548
|
+
"@google-cloud/storage": "^7.17.0",
|
|
11550
11549
|
"axios": "^1.11.0",
|
|
11551
11550
|
"chalk": "^4.1.2",
|
|
11552
11551
|
"commander": "^14.0.0",
|
|
@@ -821,7 +821,7 @@ class Bucket extends index_js_1.ServiceObject {
|
|
|
821
821
|
* **Note**: For configuring a raw-formatted rule object to be passed as `action`
|
|
822
822
|
* please refer to the [examples]{@link https://cloud.google.com/storage/docs/managing-lifecycles#configexamples}.
|
|
823
823
|
* @param {object} rule.condition Condition a bucket must meet before the
|
|
824
|
-
* action
|
|
824
|
+
* action occurs on the bucket. Refer to following supported [conditions]{@link https://cloud.google.com/storage/docs/lifecycle#conditions}.
|
|
825
825
|
* @param {string} [rule.storageClass] When using the `setStorageClass`
|
|
826
826
|
* action, provide this option to dictate which storage class the object
|
|
827
827
|
* should update to.
|
|
@@ -1347,7 +1347,7 @@ class Bucket extends index_js_1.ServiceObject {
|
|
|
1347
1347
|
* myBucket.createNotification('my-topic', callback);
|
|
1348
1348
|
*
|
|
1349
1349
|
* //-
|
|
1350
|
-
* // Configure the
|
|
1350
|
+
* // Configure the notification by providing Notification metadata.
|
|
1351
1351
|
* //-
|
|
1352
1352
|
* const metadata = {
|
|
1353
1353
|
* objectNamePrefix: 'prefix-'
|
|
@@ -2304,7 +2304,7 @@ class Bucket extends index_js_1.ServiceObject {
|
|
|
2304
2304
|
* @property {boolean} [virtualHostedStyle=false] Use virtual hosted-style
|
|
2305
2305
|
* URLs ('https://mybucket.storage.googleapis.com/...') instead of path-style
|
|
2306
2306
|
* ('https://storage.googleapis.com/mybucket/...'). Virtual hosted-style URLs
|
|
2307
|
-
* should generally be preferred
|
|
2307
|
+
* should generally be preferred instead of path-style URL.
|
|
2308
2308
|
* Currently defaults to `false` for path-style, although this may change in a
|
|
2309
2309
|
* future major-version release.
|
|
2310
2310
|
* @property {string} [cname] The cname for this bucket, i.e.,
|
|
@@ -2351,7 +2351,7 @@ class Bucket extends index_js_1.ServiceObject {
|
|
|
2351
2351
|
* @param {boolean} [config.virtualHostedStyle=false] Use virtual hosted-style
|
|
2352
2352
|
* URLs ('https://mybucket.storage.googleapis.com/...') instead of path-style
|
|
2353
2353
|
* ('https://storage.googleapis.com/mybucket/...'). Virtual hosted-style URLs
|
|
2354
|
-
* should generally be preferred
|
|
2354
|
+
* should generally be preferred instead of path-style URL.
|
|
2355
2355
|
* Currently defaults to `false` for path-style, although this may change in a
|
|
2356
2356
|
* future major-version release.
|
|
2357
2357
|
* @param {string} [config.cname] The cname for this bucket, i.e.,
|
|
@@ -2441,7 +2441,7 @@ class Bucket extends index_js_1.ServiceObject {
|
|
|
2441
2441
|
* @throws {Error} if a metageneration is not provided.
|
|
2442
2442
|
*
|
|
2443
2443
|
* @param {number|string} metageneration The bucket's metageneration. This is
|
|
2444
|
-
*
|
|
2444
|
+
* accessible from calling {@link File#getMetadata}.
|
|
2445
2445
|
* @param {BucketLockCallback} [callback] Callback function.
|
|
2446
2446
|
* @returns {Promise<BucketLockResponse>}
|
|
2447
2447
|
*
|
|
@@ -217,6 +217,7 @@ export type DownloadResponse = [Buffer];
|
|
|
217
217
|
export type DownloadCallback = (err: RequestError | null, contents: Buffer) => void;
|
|
218
218
|
export interface DownloadOptions extends CreateReadStreamOptions {
|
|
219
219
|
destination?: string;
|
|
220
|
+
encryptionKey?: string | Buffer;
|
|
220
221
|
}
|
|
221
222
|
export interface CreateReadStreamOptions {
|
|
222
223
|
userProject?: string;
|
|
@@ -1507,6 +1507,9 @@ class File extends index_js_1.ServiceObject {
|
|
|
1507
1507
|
transformStreams.push(zlib.createGzip());
|
|
1508
1508
|
}
|
|
1509
1509
|
const emitStream = new util_js_2.PassThroughShim();
|
|
1510
|
+
// If `writeStream` is destroyed before the `writing` event, `emitStream` will not have any listeners. This prevents an unhandled error.
|
|
1511
|
+
const noop = () => { };
|
|
1512
|
+
emitStream.on('error', noop);
|
|
1510
1513
|
let hashCalculatingStream = null;
|
|
1511
1514
|
if (crc32c || md5) {
|
|
1512
1515
|
const crc32cInstance = options.resumeCRC32C
|
|
@@ -1539,6 +1542,8 @@ class File extends index_js_1.ServiceObject {
|
|
|
1539
1542
|
else {
|
|
1540
1543
|
this.startResumableUpload_(fileWriteStream, options);
|
|
1541
1544
|
}
|
|
1545
|
+
// remove temporary noop listener as we now create a pipeline that handles the errors
|
|
1546
|
+
emitStream.removeListener('error', noop);
|
|
1542
1547
|
(0, stream_1.pipeline)(emitStream, ...transformStreams, fileWriteStream, async (e) => {
|
|
1543
1548
|
if (e) {
|
|
1544
1549
|
return pipelineCallback(e);
|
|
@@ -1673,6 +1678,10 @@ class File extends index_js_1.ServiceObject {
|
|
|
1673
1678
|
});
|
|
1674
1679
|
const destination = options.destination;
|
|
1675
1680
|
delete options.destination;
|
|
1681
|
+
if (options.encryptionKey) {
|
|
1682
|
+
this.setEncryptionKey(options.encryptionKey);
|
|
1683
|
+
delete options.encryptionKey;
|
|
1684
|
+
}
|
|
1676
1685
|
const fileStream = this.createReadStream(options);
|
|
1677
1686
|
let receivedData = false;
|
|
1678
1687
|
if (destination) {
|
|
@@ -2226,7 +2235,7 @@ class File extends index_js_1.ServiceObject {
|
|
|
2226
2235
|
* @param {boolean} [config.virtualHostedStyle=false] Use virtual hosted-style
|
|
2227
2236
|
* URLs (e.g. 'https://mybucket.storage.googleapis.com/...') instead of path-style
|
|
2228
2237
|
* (e.g. 'https://storage.googleapis.com/mybucket/...'). Virtual hosted-style URLs
|
|
2229
|
-
* should generally be preferred
|
|
2238
|
+
* should generally be preferred instead of path-style URL.
|
|
2230
2239
|
* Currently defaults to `false` for path-style, although this may change in a
|
|
2231
2240
|
* future major-version release.
|
|
2232
2241
|
* @param {string} [config.cname] The cname for this bucket, i.e.,
|
|
@@ -599,7 +599,7 @@ class Storage extends index_js_1.Service {
|
|
|
599
599
|
* For more information, see {@link https://cloud.google.com/storage/docs/locations| Bucket Locations}.
|
|
600
600
|
* @property {boolean} [dra=false] Specify the storage class as Durable Reduced
|
|
601
601
|
* Availability.
|
|
602
|
-
* @property {boolean} [enableObjectRetention=false]
|
|
602
|
+
* @property {boolean} [enableObjectRetention=false] Specify whether or not object retention should be enabled on this bucket.
|
|
603
603
|
* @property {object} [hierarchicalNamespace.enabled=false] Specify whether or not to enable hierarchical namespace on this bucket.
|
|
604
604
|
* @property {string} [location] Specify the bucket's location. If specifying
|
|
605
605
|
* a dual-region, the `customPlacementConfig` property should be set in conjunction.
|
|
@@ -84,7 +84,7 @@ export declare class TransferManager {
|
|
|
84
84
|
* @typedef {object} UploadManyFilesOptions
|
|
85
85
|
* @property {number} [concurrencyLimit] The number of concurrently executing promises
|
|
86
86
|
* to use when uploading the files.
|
|
87
|
-
* @property {Function} [customDestinationBuilder] A
|
|
87
|
+
* @property {Function} [customDestinationBuilder] A function that will take the current path of a local file
|
|
88
88
|
* and return a string representing a custom path to be used to upload the file to GCS.
|
|
89
89
|
* @property {boolean} [skipIfExists] Do not upload the file if it already exists in
|
|
90
90
|
* the bucket. This will set the precondition ifGenerationMatch = 0.
|
|
@@ -209,7 +209,7 @@ export declare class TransferManager {
|
|
|
209
209
|
* @property {number} [concurrencyLimit] The number of concurrently executing promises
|
|
210
210
|
* to use when uploading the file.
|
|
211
211
|
* @property {number} [chunkSizeBytes] The size in bytes of each chunk to be uploaded.
|
|
212
|
-
* @property {string} [uploadName] Name of the file when saving to GCS. If
|
|
212
|
+
* @property {string} [uploadName] Name of the file when saving to GCS. If omitted the name is taken from the file path.
|
|
213
213
|
* @property {number} [maxQueueSize] The number of chunks to be uploaded to hold in memory concurrently. If not specified
|
|
214
214
|
* defaults to the specified concurrency limit.
|
|
215
215
|
* @property {string} [uploadId] If specified attempts to resume a previous upload.
|
|
@@ -222,14 +222,14 @@ export declare class TransferManager {
|
|
|
222
222
|
*
|
|
223
223
|
*/
|
|
224
224
|
/**
|
|
225
|
-
* Upload a large file in chunks utilizing parallel upload
|
|
225
|
+
* Upload a large file in chunks utilizing parallel upload operations. If the upload fails, an uploadId and
|
|
226
226
|
* map containing all the successfully uploaded parts will be returned to the caller. These arguments can be used to
|
|
227
227
|
* resume the upload.
|
|
228
228
|
*
|
|
229
229
|
* @param {string} [filePath] The path of the file to be uploaded
|
|
230
230
|
* @param {UploadFileInChunksOptions} [options] Configuration options.
|
|
231
231
|
* @param {MultiPartHelperGenerator} [generator] A function that will return a type that implements the MPU interface. Most users will not need to use this.
|
|
232
|
-
* @returns {Promise<void>} If successful a promise resolving to void, otherwise a error containing the message,
|
|
232
|
+
* @returns {Promise<void>} If successful a promise resolving to void, otherwise a error containing the message, uploadId, and parts map.
|
|
233
233
|
*
|
|
234
234
|
* @example
|
|
235
235
|
* ```
|
|
@@ -326,7 +326,7 @@ class TransferManager {
|
|
|
326
326
|
* @typedef {object} UploadManyFilesOptions
|
|
327
327
|
* @property {number} [concurrencyLimit] The number of concurrently executing promises
|
|
328
328
|
* to use when uploading the files.
|
|
329
|
-
* @property {Function} [customDestinationBuilder] A
|
|
329
|
+
* @property {Function} [customDestinationBuilder] A function that will take the current path of a local file
|
|
330
330
|
* and return a string representing a custom path to be used to upload the file to GCS.
|
|
331
331
|
* @property {boolean} [skipIfExists] Do not upload the file if it already exists in
|
|
332
332
|
* the bucket. This will set the precondition ifGenerationMatch = 0.
|
|
@@ -595,7 +595,7 @@ class TransferManager {
|
|
|
595
595
|
* @property {number} [concurrencyLimit] The number of concurrently executing promises
|
|
596
596
|
* to use when uploading the file.
|
|
597
597
|
* @property {number} [chunkSizeBytes] The size in bytes of each chunk to be uploaded.
|
|
598
|
-
* @property {string} [uploadName] Name of the file when saving to GCS. If
|
|
598
|
+
* @property {string} [uploadName] Name of the file when saving to GCS. If omitted the name is taken from the file path.
|
|
599
599
|
* @property {number} [maxQueueSize] The number of chunks to be uploaded to hold in memory concurrently. If not specified
|
|
600
600
|
* defaults to the specified concurrency limit.
|
|
601
601
|
* @property {string} [uploadId] If specified attempts to resume a previous upload.
|
|
@@ -608,14 +608,14 @@ class TransferManager {
|
|
|
608
608
|
*
|
|
609
609
|
*/
|
|
610
610
|
/**
|
|
611
|
-
* Upload a large file in chunks utilizing parallel upload
|
|
611
|
+
* Upload a large file in chunks utilizing parallel upload operations. If the upload fails, an uploadId and
|
|
612
612
|
* map containing all the successfully uploaded parts will be returned to the caller. These arguments can be used to
|
|
613
613
|
* resume the upload.
|
|
614
614
|
*
|
|
615
615
|
* @param {string} [filePath] The path of the file to be uploaded
|
|
616
616
|
* @param {UploadFileInChunksOptions} [options] Configuration options.
|
|
617
617
|
* @param {MultiPartHelperGenerator} [generator] A function that will return a type that implements the MPU interface. Most users will not need to use this.
|
|
618
|
-
* @returns {Promise<void>} If successful a promise resolving to void, otherwise a error containing the message,
|
|
618
|
+
* @returns {Promise<void>} If successful a promise resolving to void, otherwise a error containing the message, uploadId, and parts map.
|
|
619
619
|
*
|
|
620
620
|
* @example
|
|
621
621
|
* ```
|
|
@@ -61,7 +61,7 @@ export declare function convertObjKeysToSnakeCase(obj: object): object;
|
|
|
61
61
|
* @param {boolean} includeTime flag to include hours, minutes, seconds in output.
|
|
62
62
|
* @param {string} dateDelimiter delimiter between date components.
|
|
63
63
|
* @param {string} timeDelimiter delimiter between time components.
|
|
64
|
-
* @returns {string} UTC ISO format of provided date
|
|
64
|
+
* @returns {string} UTC ISO format of provided date object.
|
|
65
65
|
*/
|
|
66
66
|
export declare function formatAsUTCISO(dateTimeToFormat: Date, includeTime?: boolean, dateDelimiter?: string, timeDelimiter?: string): string;
|
|
67
67
|
/**
|
|
@@ -179,7 +179,7 @@ function convertObjKeysToSnakeCase(obj) {
|
|
|
179
179
|
* @param {boolean} includeTime flag to include hours, minutes, seconds in output.
|
|
180
180
|
* @param {string} dateDelimiter delimiter between date components.
|
|
181
181
|
* @param {string} timeDelimiter delimiter between time components.
|
|
182
|
-
* @returns {string} UTC ISO format of provided date
|
|
182
|
+
* @returns {string} UTC ISO format of provided date object.
|
|
183
183
|
*/
|
|
184
184
|
function formatAsUTCISO(dateTimeToFormat, includeTime = false, dateDelimiter = '', timeDelimiter = '') {
|
|
185
185
|
const year = dateTimeToFormat.getUTCFullYear();
|
|
@@ -258,7 +258,7 @@ class PassThroughShim extends stream_1.PassThrough {
|
|
|
258
258
|
this.emit('writing');
|
|
259
259
|
this.shouldEmitWriting = false;
|
|
260
260
|
}
|
|
261
|
-
// Per the nodejs
|
|
261
|
+
// Per the nodejs documentation, callback must be invoked on the next tick
|
|
262
262
|
process.nextTick(() => {
|
|
263
263
|
super._write(chunk, encoding, callback);
|
|
264
264
|
});
|
|
@@ -782,7 +782,7 @@ class Bucket extends ServiceObject {
|
|
|
782
782
|
* **Note**: For configuring a raw-formatted rule object to be passed as `action`
|
|
783
783
|
* please refer to the [examples]{@link https://cloud.google.com/storage/docs/managing-lifecycles#configexamples}.
|
|
784
784
|
* @param {object} rule.condition Condition a bucket must meet before the
|
|
785
|
-
* action
|
|
785
|
+
* action occurs on the bucket. Refer to following supported [conditions]{@link https://cloud.google.com/storage/docs/lifecycle#conditions}.
|
|
786
786
|
* @param {string} [rule.storageClass] When using the `setStorageClass`
|
|
787
787
|
* action, provide this option to dictate which storage class the object
|
|
788
788
|
* should update to.
|
|
@@ -1308,7 +1308,7 @@ class Bucket extends ServiceObject {
|
|
|
1308
1308
|
* myBucket.createNotification('my-topic', callback);
|
|
1309
1309
|
*
|
|
1310
1310
|
* //-
|
|
1311
|
-
* // Configure the
|
|
1311
|
+
* // Configure the notification by providing Notification metadata.
|
|
1312
1312
|
* //-
|
|
1313
1313
|
* const metadata = {
|
|
1314
1314
|
* objectNamePrefix: 'prefix-'
|
|
@@ -2265,7 +2265,7 @@ class Bucket extends ServiceObject {
|
|
|
2265
2265
|
* @property {boolean} [virtualHostedStyle=false] Use virtual hosted-style
|
|
2266
2266
|
* URLs ('https://mybucket.storage.googleapis.com/...') instead of path-style
|
|
2267
2267
|
* ('https://storage.googleapis.com/mybucket/...'). Virtual hosted-style URLs
|
|
2268
|
-
* should generally be preferred
|
|
2268
|
+
* should generally be preferred instead of path-style URL.
|
|
2269
2269
|
* Currently defaults to `false` for path-style, although this may change in a
|
|
2270
2270
|
* future major-version release.
|
|
2271
2271
|
* @property {string} [cname] The cname for this bucket, i.e.,
|
|
@@ -2312,7 +2312,7 @@ class Bucket extends ServiceObject {
|
|
|
2312
2312
|
* @param {boolean} [config.virtualHostedStyle=false] Use virtual hosted-style
|
|
2313
2313
|
* URLs ('https://mybucket.storage.googleapis.com/...') instead of path-style
|
|
2314
2314
|
* ('https://storage.googleapis.com/mybucket/...'). Virtual hosted-style URLs
|
|
2315
|
-
* should generally be preferred
|
|
2315
|
+
* should generally be preferred instead of path-style URL.
|
|
2316
2316
|
* Currently defaults to `false` for path-style, although this may change in a
|
|
2317
2317
|
* future major-version release.
|
|
2318
2318
|
* @param {string} [config.cname] The cname for this bucket, i.e.,
|
|
@@ -2402,7 +2402,7 @@ class Bucket extends ServiceObject {
|
|
|
2402
2402
|
* @throws {Error} if a metageneration is not provided.
|
|
2403
2403
|
*
|
|
2404
2404
|
* @param {number|string} metageneration The bucket's metageneration. This is
|
|
2405
|
-
*
|
|
2405
|
+
* accessible from calling {@link File#getMetadata}.
|
|
2406
2406
|
* @param {BucketLockCallback} [callback] Callback function.
|
|
2407
2407
|
* @returns {Promise<BucketLockResponse>}
|
|
2408
2408
|
*
|