@homeflare/distilled-proxmox-backup 0.2.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 (113) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +102 -0
  3. package/dist/credentials.d.ts +50 -0
  4. package/dist/credentials.d.ts.map +1 -0
  5. package/dist/credentials.js +105 -0
  6. package/dist/credentials.js.map +1 -0
  7. package/dist/errors.d.ts +100 -0
  8. package/dist/errors.d.ts.map +1 -0
  9. package/dist/errors.js +73 -0
  10. package/dist/errors.js.map +1 -0
  11. package/dist/index.d.ts +33 -0
  12. package/dist/index.d.ts.map +1 -0
  13. package/dist/index.js +33 -0
  14. package/dist/index.js.map +1 -0
  15. package/dist/protocol.d.ts +19 -0
  16. package/dist/protocol.d.ts.map +1 -0
  17. package/dist/protocol.js +158 -0
  18. package/dist/protocol.js.map +1 -0
  19. package/dist/protocol.test.d.ts +2 -0
  20. package/dist/protocol.test.d.ts.map +1 -0
  21. package/dist/protocol.test.js +75 -0
  22. package/dist/protocol.test.js.map +1 -0
  23. package/dist/retry.d.ts +53 -0
  24. package/dist/retry.d.ts.map +1 -0
  25. package/dist/retry.js +46 -0
  26. package/dist/retry.js.map +1 -0
  27. package/dist/services/access.d.ts +587 -0
  28. package/dist/services/access.d.ts.map +1 -0
  29. package/dist/services/access.js +787 -0
  30. package/dist/services/access.js.map +1 -0
  31. package/dist/services/admin.d.ts +1110 -0
  32. package/dist/services/admin.d.ts.map +1 -0
  33. package/dist/services/admin.js +1428 -0
  34. package/dist/services/admin.js.map +1 -0
  35. package/dist/services/backup.d.ts +224 -0
  36. package/dist/services/backup.d.ts.map +1 -0
  37. package/dist/services/backup.js +325 -0
  38. package/dist/services/backup.js.map +1 -0
  39. package/dist/services/config.d.ts +3662 -0
  40. package/dist/services/config.d.ts.map +1 -0
  41. package/dist/services/config.js +4445 -0
  42. package/dist/services/config.js.map +1 -0
  43. package/dist/services/index.d.ts +14 -0
  44. package/dist/services/index.d.ts.map +1 -0
  45. package/dist/services/index.js +15 -0
  46. package/dist/services/index.js.map +1 -0
  47. package/dist/services/nodes.d.ts +1441 -0
  48. package/dist/services/nodes.d.ts.map +1 -0
  49. package/dist/services/nodes.js +1829 -0
  50. package/dist/services/nodes.js.map +1 -0
  51. package/dist/services/ping.d.ts +15 -0
  52. package/dist/services/ping.d.ts.map +1 -0
  53. package/dist/services/ping.js +21 -0
  54. package/dist/services/ping.js.map +1 -0
  55. package/dist/services/pull.d.ts +54 -0
  56. package/dist/services/pull.d.ts.map +1 -0
  57. package/dist/services/pull.js +47 -0
  58. package/dist/services/pull.js.map +1 -0
  59. package/dist/services/push.d.ts +50 -0
  60. package/dist/services/push.d.ts.map +1 -0
  61. package/dist/services/push.js +45 -0
  62. package/dist/services/push.js.map +1 -0
  63. package/dist/services/reader.d.ts +68 -0
  64. package/dist/services/reader.d.ts.map +1 -0
  65. package/dist/services/reader.js +89 -0
  66. package/dist/services/reader.js.map +1 -0
  67. package/dist/services/root.d.ts +14 -0
  68. package/dist/services/root.d.ts.map +1 -0
  69. package/dist/services/root.js +19 -0
  70. package/dist/services/root.js.map +1 -0
  71. package/dist/services/status.d.ts +78 -0
  72. package/dist/services/status.d.ts.map +1 -0
  73. package/dist/services/status.js +97 -0
  74. package/dist/services/status.js.map +1 -0
  75. package/dist/services/tape.d.ts +711 -0
  76. package/dist/services/tape.d.ts.map +1 -0
  77. package/dist/services/tape.js +986 -0
  78. package/dist/services/tape.js.map +1 -0
  79. package/dist/services/version.d.ts +17 -0
  80. package/dist/services/version.d.ts.map +1 -0
  81. package/dist/services/version.js +25 -0
  82. package/dist/services/version.js.map +1 -0
  83. package/dist/task.d.ts +48 -0
  84. package/dist/task.d.ts.map +1 -0
  85. package/dist/task.js +57 -0
  86. package/dist/task.js.map +1 -0
  87. package/dist/traits.d.ts +13 -0
  88. package/dist/traits.d.ts.map +1 -0
  89. package/dist/traits.js +15 -0
  90. package/dist/traits.js.map +1 -0
  91. package/package.json +81 -0
  92. package/src/credentials.ts +139 -0
  93. package/src/errors.ts +126 -0
  94. package/src/index.ts +36 -0
  95. package/src/protocol.test.ts +128 -0
  96. package/src/protocol.ts +196 -0
  97. package/src/retry.ts +79 -0
  98. package/src/services/access.ts +1787 -0
  99. package/src/services/admin.ts +3258 -0
  100. package/src/services/backup.ts +698 -0
  101. package/src/services/config.ts +10561 -0
  102. package/src/services/index.ts +14 -0
  103. package/src/services/nodes.ts +4313 -0
  104. package/src/services/ping.ts +43 -0
  105. package/src/services/pull.ts +118 -0
  106. package/src/services/push.ts +108 -0
  107. package/src/services/reader.ts +196 -0
  108. package/src/services/root.ts +39 -0
  109. package/src/services/status.ts +233 -0
  110. package/src/services/tape.ts +2257 -0
  111. package/src/services/version.ts +49 -0
  112. package/src/task.ts +84 -0
  113. package/src/traits.ts +46 -0
@@ -0,0 +1,2257 @@
1
+ // AUTO-GENERATED by scripts/generate.ts from .generated-specs (apidoc.js, via scripts/apidoc.ts — see its header). Do not edit.
2
+ import * as S from "@distilled.cloud/core/schema";
3
+ import * as API from "@distilled.cloud/core/api";
4
+ import * as T from "../traits.ts";
5
+ import {
6
+ ProxmoxBackupProtocol,
7
+ type ProxmoxBackupOpError,
8
+ type ProxmoxBackupOpContext,
9
+ } from "../protocol.ts";
10
+ import * as Retry from "../retry.ts";
11
+
12
+ export type { ProxmoxBackupOpError, ProxmoxBackupOpContext };
13
+
14
+ export type CreateTapeBackupRequestGroupFilterList = Array<string>;
15
+ export const CreateTapeBackupRequestGroupFilterList = /*@__PURE__*/ S.Array(
16
+ S.String,
17
+ ) as any as S.Schema<CreateTapeBackupRequestGroupFilterList>;
18
+
19
+ export type CreateTapeBackupRequestNotificationMode =
20
+ | "legacy-sendmail"
21
+ | "notification-system";
22
+ export const CreateTapeBackupRequestNotificationMode = S.String;
23
+
24
+ export interface CreateTapeBackupRequest {
25
+ /** Drive Identifier. */
26
+ drive: string;
27
+ /** Eject media upon job completion. */
28
+ eject_media?: string;
29
+ /** Export media set upon job completion. */
30
+ export_media_set?: string;
31
+ /** Ignore the allocation policy and start a new media-set. */
32
+ force_media_set?: string;
33
+ /** List of group filters. */
34
+ group_filter?: CreateTapeBackupRequestGroupFilterList;
35
+ /** Backup latest snapshots only. */
36
+ latest_only?: string;
37
+ /** How many levels of namespaces should be operated on (0 == no recursion) */
38
+ max_depth?: string;
39
+ /** Configure how notifications for this datastore should be sent. `legacy-sendmail` sends email notifications to the user configured in `notify-user` via the system's `sendmail` executable. `notification-system` emits matchable notification events to the notification system. */
40
+ notification_mode?: CreateTapeBackupRequestNotificationMode | (string & {});
41
+ /** User ID */
42
+ notify_user?: string;
43
+ /** Namespace. */
44
+ ns?: string;
45
+ /** Media pool name. */
46
+ pool: string;
47
+ /** Datastore name. */
48
+ store: string;
49
+ /** The number of threads to use for the tape backup job. */
50
+ worker_threads?: string;
51
+ }
52
+ export const CreateTapeBackupRequest = /*@__PURE__*/ S.suspend(() =>
53
+ S.Struct({
54
+ drive: S.String,
55
+ eject_media: S.optional(S.String.pipe(T.Body("eject-media"))),
56
+ export_media_set: S.optional(S.String.pipe(T.Body("export-media-set"))),
57
+ force_media_set: S.optional(S.String.pipe(T.Body("force-media-set"))),
58
+ group_filter: S.optional(
59
+ CreateTapeBackupRequestGroupFilterList.pipe(T.Body("group-filter")),
60
+ ),
61
+ latest_only: S.optional(S.String.pipe(T.Body("latest-only"))),
62
+ max_depth: S.optional(S.String.pipe(T.Body("max-depth"))),
63
+ notification_mode: S.optional(
64
+ CreateTapeBackupRequestNotificationMode.pipe(T.Body("notification-mode")),
65
+ ),
66
+ notify_user: S.optional(S.String.pipe(T.Body("notify-user"))),
67
+ ns: S.optional(S.String),
68
+ pool: S.String,
69
+ store: S.String,
70
+ worker_threads: S.optional(S.String.pipe(T.Body("worker-threads"))),
71
+ }).pipe(
72
+ T.Http({
73
+ method: "POST",
74
+ uri: "/tape/backup",
75
+ code: 200,
76
+ contentType: "form-urlencoded",
77
+ }),
78
+ ),
79
+ ).annotate({
80
+ identifier: "CreateTapeBackupRequest",
81
+ }) as any as S.Schema<CreateTapeBackupRequest>;
82
+
83
+ export type CreateTapeBackupResponse = string;
84
+ export const CreateTapeBackupResponse = /*@__PURE__*/ S.suspend(() =>
85
+ S.String.pipe(T.RawResponseRoot()),
86
+ ).annotate({
87
+ identifier: "CreateTapeBackupResponse",
88
+ }) as any as S.Schema<CreateTapeBackupResponse>;
89
+
90
+ export interface CreateTapeDriveBarcodeLabelMediaRequest {
91
+ drive: string;
92
+ /** Media pool name. */
93
+ pool?: string;
94
+ }
95
+ export const CreateTapeDriveBarcodeLabelMediaRequest = /*@__PURE__*/ S.suspend(
96
+ () =>
97
+ S.Struct({
98
+ drive: S.String.pipe(T.Label()),
99
+ pool: S.optional(S.String),
100
+ }).pipe(
101
+ T.Http({
102
+ method: "POST",
103
+ uri: "/tape/drive/{drive}/barcode-label-media",
104
+ code: 200,
105
+ contentType: "form-urlencoded",
106
+ }),
107
+ ),
108
+ ).annotate({
109
+ identifier: "CreateTapeDriveBarcodeLabelMediaRequest",
110
+ }) as any as S.Schema<CreateTapeDriveBarcodeLabelMediaRequest>;
111
+
112
+ export type CreateTapeDriveBarcodeLabelMediaResponse = string;
113
+ export const CreateTapeDriveBarcodeLabelMediaResponse = /*@__PURE__*/ S.suspend(
114
+ () => S.String.pipe(T.RawResponseRoot()),
115
+ ).annotate({
116
+ identifier: "CreateTapeDriveBarcodeLabelMediaResponse",
117
+ }) as any as S.Schema<CreateTapeDriveBarcodeLabelMediaResponse>;
118
+
119
+ export interface CreateTapeDriveCatalogRequest {
120
+ drive: string;
121
+ /** Force overriding existing index. */
122
+ force?: string;
123
+ /** Re-read the whole tape to reconstruct the catalog instead of restoring saved versions. */
124
+ scan?: string;
125
+ /** Verbose mode - log all found chunks. */
126
+ verbose?: string;
127
+ }
128
+ export const CreateTapeDriveCatalogRequest = /*@__PURE__*/ S.suspend(() =>
129
+ S.Struct({
130
+ drive: S.String.pipe(T.Label()),
131
+ force: S.optional(S.String),
132
+ scan: S.optional(S.String),
133
+ verbose: S.optional(S.String),
134
+ }).pipe(
135
+ T.Http({
136
+ method: "POST",
137
+ uri: "/tape/drive/{drive}/catalog",
138
+ code: 200,
139
+ contentType: "form-urlencoded",
140
+ }),
141
+ ),
142
+ ).annotate({
143
+ identifier: "CreateTapeDriveCatalogRequest",
144
+ }) as any as S.Schema<CreateTapeDriveCatalogRequest>;
145
+
146
+ export type CreateTapeDriveCatalogResponse = string;
147
+ export const CreateTapeDriveCatalogResponse = /*@__PURE__*/ S.suspend(() =>
148
+ S.String.pipe(T.RawResponseRoot()),
149
+ ).annotate({
150
+ identifier: "CreateTapeDriveCatalogResponse",
151
+ }) as any as S.Schema<CreateTapeDriveCatalogResponse>;
152
+
153
+ export interface CreateTapeDriveEjectMediaRequest {
154
+ drive: string;
155
+ }
156
+ export const CreateTapeDriveEjectMediaRequest = /*@__PURE__*/ S.suspend(() =>
157
+ S.Struct({
158
+ drive: S.String.pipe(T.Label()),
159
+ }).pipe(
160
+ T.Http({
161
+ method: "POST",
162
+ uri: "/tape/drive/{drive}/eject-media",
163
+ code: 200,
164
+ }),
165
+ ),
166
+ ).annotate({
167
+ identifier: "CreateTapeDriveEjectMediaRequest",
168
+ }) as any as S.Schema<CreateTapeDriveEjectMediaRequest>;
169
+
170
+ export type CreateTapeDriveEjectMediaResponse = string;
171
+ export const CreateTapeDriveEjectMediaResponse = /*@__PURE__*/ S.suspend(() =>
172
+ S.String.pipe(T.RawResponseRoot()),
173
+ ).annotate({
174
+ identifier: "CreateTapeDriveEjectMediaResponse",
175
+ }) as any as S.Schema<CreateTapeDriveEjectMediaResponse>;
176
+
177
+ export interface CreateTapeDriveFormatMediaRequest {
178
+ drive: string;
179
+ /** Use fast erase. */
180
+ fast?: string;
181
+ /** Media Label/Barcode. */
182
+ label_text?: string;
183
+ /** Media Label/Barcode. */
184
+ load_barcode?: string;
185
+ }
186
+ export const CreateTapeDriveFormatMediaRequest = /*@__PURE__*/ S.suspend(() =>
187
+ S.Struct({
188
+ drive: S.String.pipe(T.Label()),
189
+ fast: S.optional(S.String),
190
+ label_text: S.optional(S.String.pipe(T.Body("label-text"))),
191
+ load_barcode: S.optional(S.String.pipe(T.Body("load-barcode"))),
192
+ }).pipe(
193
+ T.Http({
194
+ method: "POST",
195
+ uri: "/tape/drive/{drive}/format-media",
196
+ code: 200,
197
+ contentType: "form-urlencoded",
198
+ }),
199
+ ),
200
+ ).annotate({
201
+ identifier: "CreateTapeDriveFormatMediaRequest",
202
+ }) as any as S.Schema<CreateTapeDriveFormatMediaRequest>;
203
+
204
+ export type CreateTapeDriveFormatMediaResponse = string;
205
+ export const CreateTapeDriveFormatMediaResponse = /*@__PURE__*/ S.suspend(() =>
206
+ S.String.pipe(T.RawResponseRoot()),
207
+ ).annotate({
208
+ identifier: "CreateTapeDriveFormatMediaResponse",
209
+ }) as any as S.Schema<CreateTapeDriveFormatMediaResponse>;
210
+
211
+ export interface CreateTapeDriveLabelMediaRequest {
212
+ drive: string;
213
+ /** Media Label/Barcode. */
214
+ label_text: string;
215
+ /** Media pool name. */
216
+ pool?: string;
217
+ }
218
+ export const CreateTapeDriveLabelMediaRequest = /*@__PURE__*/ S.suspend(() =>
219
+ S.Struct({
220
+ drive: S.String.pipe(T.Label()),
221
+ label_text: S.String.pipe(T.Body("label-text")),
222
+ pool: S.optional(S.String),
223
+ }).pipe(
224
+ T.Http({
225
+ method: "POST",
226
+ uri: "/tape/drive/{drive}/label-media",
227
+ code: 200,
228
+ contentType: "form-urlencoded",
229
+ }),
230
+ ),
231
+ ).annotate({
232
+ identifier: "CreateTapeDriveLabelMediaRequest",
233
+ }) as any as S.Schema<CreateTapeDriveLabelMediaRequest>;
234
+
235
+ export type CreateTapeDriveLabelMediaResponse = string;
236
+ export const CreateTapeDriveLabelMediaResponse = /*@__PURE__*/ S.suspend(() =>
237
+ S.String.pipe(T.RawResponseRoot()),
238
+ ).annotate({
239
+ identifier: "CreateTapeDriveLabelMediaResponse",
240
+ }) as any as S.Schema<CreateTapeDriveLabelMediaResponse>;
241
+
242
+ export interface CreateTapeDriveLoadMediaRequest {
243
+ drive: string;
244
+ /** Media Label/Barcode. */
245
+ label_text: string;
246
+ }
247
+ export const CreateTapeDriveLoadMediaRequest = /*@__PURE__*/ S.suspend(() =>
248
+ S.Struct({
249
+ drive: S.String.pipe(T.Label()),
250
+ label_text: S.String.pipe(T.Body("label-text")),
251
+ }).pipe(
252
+ T.Http({
253
+ method: "POST",
254
+ uri: "/tape/drive/{drive}/load-media",
255
+ code: 200,
256
+ contentType: "form-urlencoded",
257
+ }),
258
+ ),
259
+ ).annotate({
260
+ identifier: "CreateTapeDriveLoadMediaRequest",
261
+ }) as any as S.Schema<CreateTapeDriveLoadMediaRequest>;
262
+
263
+ export type CreateTapeDriveLoadMediaResponse = string;
264
+ export const CreateTapeDriveLoadMediaResponse = /*@__PURE__*/ S.suspend(() =>
265
+ S.String.pipe(T.RawResponseRoot()),
266
+ ).annotate({
267
+ identifier: "CreateTapeDriveLoadMediaResponse",
268
+ }) as any as S.Schema<CreateTapeDriveLoadMediaResponse>;
269
+
270
+ export interface CreateTapeDriveLoadSlotRequest {
271
+ drive: string;
272
+ /** Source slot number. */
273
+ source_slot: string;
274
+ }
275
+ export const CreateTapeDriveLoadSlotRequest = /*@__PURE__*/ S.suspend(() =>
276
+ S.Struct({
277
+ drive: S.String.pipe(T.Label()),
278
+ source_slot: S.String.pipe(T.Body("source-slot")),
279
+ }).pipe(
280
+ T.Http({
281
+ method: "POST",
282
+ uri: "/tape/drive/{drive}/load-slot",
283
+ code: 200,
284
+ contentType: "form-urlencoded",
285
+ }),
286
+ ),
287
+ ).annotate({
288
+ identifier: "CreateTapeDriveLoadSlotRequest",
289
+ }) as any as S.Schema<CreateTapeDriveLoadSlotRequest>;
290
+
291
+ export interface CreateTapeDriveLoadSlotResponse {}
292
+ export const CreateTapeDriveLoadSlotResponse = /*@__PURE__*/ S.suspend(() =>
293
+ S.Struct({}),
294
+ ).annotate({
295
+ identifier: "CreateTapeDriveLoadSlotResponse",
296
+ }) as any as S.Schema<CreateTapeDriveLoadSlotResponse>;
297
+
298
+ export interface CreateTapeDriveRewindRequest {
299
+ drive: string;
300
+ }
301
+ export const CreateTapeDriveRewindRequest = /*@__PURE__*/ S.suspend(() =>
302
+ S.Struct({
303
+ drive: S.String.pipe(T.Label()),
304
+ }).pipe(
305
+ T.Http({ method: "POST", uri: "/tape/drive/{drive}/rewind", code: 200 }),
306
+ ),
307
+ ).annotate({
308
+ identifier: "CreateTapeDriveRewindRequest",
309
+ }) as any as S.Schema<CreateTapeDriveRewindRequest>;
310
+
311
+ export type CreateTapeDriveRewindResponse = string;
312
+ export const CreateTapeDriveRewindResponse = /*@__PURE__*/ S.suspend(() =>
313
+ S.String.pipe(T.RawResponseRoot()),
314
+ ).annotate({
315
+ identifier: "CreateTapeDriveRewindResponse",
316
+ }) as any as S.Schema<CreateTapeDriveRewindResponse>;
317
+
318
+ export interface CreateTapeDriveUnloadRequest {
319
+ drive: string;
320
+ /** Target slot number. If omitted, defaults to the slot that the drive was loaded from. */
321
+ target_slot?: string;
322
+ }
323
+ export const CreateTapeDriveUnloadRequest = /*@__PURE__*/ S.suspend(() =>
324
+ S.Struct({
325
+ drive: S.String.pipe(T.Label()),
326
+ target_slot: S.optional(S.String.pipe(T.Body("target-slot"))),
327
+ }).pipe(
328
+ T.Http({
329
+ method: "POST",
330
+ uri: "/tape/drive/{drive}/unload",
331
+ code: 200,
332
+ contentType: "form-urlencoded",
333
+ }),
334
+ ),
335
+ ).annotate({
336
+ identifier: "CreateTapeDriveUnloadRequest",
337
+ }) as any as S.Schema<CreateTapeDriveUnloadRequest>;
338
+
339
+ export type CreateTapeDriveUnloadResponse = string;
340
+ export const CreateTapeDriveUnloadResponse = /*@__PURE__*/ S.suspend(() =>
341
+ S.String.pipe(T.RawResponseRoot()),
342
+ ).annotate({
343
+ identifier: "CreateTapeDriveUnloadResponse",
344
+ }) as any as S.Schema<CreateTapeDriveUnloadResponse>;
345
+
346
+ export type CreateTapeMediaListStatusRequestStatus =
347
+ | "writable"
348
+ | "full"
349
+ | "unknown"
350
+ | "damaged"
351
+ | "retired";
352
+ export const CreateTapeMediaListStatusRequestStatus = S.String;
353
+
354
+ export interface CreateTapeMediaListStatusRequest {
355
+ uuid: string;
356
+ /** Media status Media Status */
357
+ status?: CreateTapeMediaListStatusRequestStatus | (string & {});
358
+ }
359
+ export const CreateTapeMediaListStatusRequest = /*@__PURE__*/ S.suspend(() =>
360
+ S.Struct({
361
+ uuid: S.String.pipe(T.Label()),
362
+ status: S.optional(CreateTapeMediaListStatusRequestStatus),
363
+ }).pipe(
364
+ T.Http({
365
+ method: "POST",
366
+ uri: "/tape/media/list/{uuid}/status",
367
+ code: 200,
368
+ contentType: "form-urlencoded",
369
+ }),
370
+ ),
371
+ ).annotate({
372
+ identifier: "CreateTapeMediaListStatusRequest",
373
+ }) as any as S.Schema<CreateTapeMediaListStatusRequest>;
374
+
375
+ export interface CreateTapeMediaListStatusResponse {}
376
+ export const CreateTapeMediaListStatusResponse = /*@__PURE__*/ S.suspend(() =>
377
+ S.Struct({}),
378
+ ).annotate({
379
+ identifier: "CreateTapeMediaListStatusResponse",
380
+ }) as any as S.Schema<CreateTapeMediaListStatusResponse>;
381
+
382
+ export interface GetTapeRequest {}
383
+ export const GetTapeRequest = /*@__PURE__*/ S.suspend(() =>
384
+ S.Struct({}).pipe(T.Http({ method: "GET", uri: "/tape", code: 200 })),
385
+ ).annotate({ identifier: "GetTapeRequest" }) as any as S.Schema<GetTapeRequest>;
386
+
387
+ export interface GetTapeResponse {}
388
+ export const GetTapeResponse = /*@__PURE__*/ S.suspend(() =>
389
+ S.Struct({}),
390
+ ).annotate({
391
+ identifier: "GetTapeResponse",
392
+ }) as any as S.Schema<GetTapeResponse>;
393
+
394
+ export interface GetTapeChangerRequest {
395
+ name: string;
396
+ }
397
+ export const GetTapeChangerRequest = /*@__PURE__*/ S.suspend(() =>
398
+ S.Struct({
399
+ name: S.String.pipe(T.Label()),
400
+ }).pipe(T.Http({ method: "GET", uri: "/tape/changer/{name}", code: 200 })),
401
+ ).annotate({
402
+ identifier: "GetTapeChangerRequest",
403
+ }) as any as S.Schema<GetTapeChangerRequest>;
404
+
405
+ export interface GetTapeChangerResponse {}
406
+ export const GetTapeChangerResponse = /*@__PURE__*/ S.suspend(() =>
407
+ S.Struct({}),
408
+ ).annotate({
409
+ identifier: "GetTapeChangerResponse",
410
+ }) as any as S.Schema<GetTapeChangerResponse>;
411
+
412
+ export interface GetTapeDriveRequest {
413
+ drive: string;
414
+ }
415
+ export const GetTapeDriveRequest = /*@__PURE__*/ S.suspend(() =>
416
+ S.Struct({
417
+ drive: S.String.pipe(T.Label()),
418
+ }).pipe(T.Http({ method: "GET", uri: "/tape/drive/{drive}", code: 200 })),
419
+ ).annotate({
420
+ identifier: "GetTapeDriveRequest",
421
+ }) as any as S.Schema<GetTapeDriveRequest>;
422
+
423
+ export interface GetTapeDriveResponse {}
424
+ export const GetTapeDriveResponse = /*@__PURE__*/ S.suspend(() =>
425
+ S.Struct({}),
426
+ ).annotate({
427
+ identifier: "GetTapeDriveResponse",
428
+ }) as any as S.Schema<GetTapeDriveResponse>;
429
+
430
+ export interface GetTapeDriveReadLabelRequest {
431
+ drive: string;
432
+ /** Inventorize media */
433
+ inventorize?: string;
434
+ }
435
+ export const GetTapeDriveReadLabelRequest = /*@__PURE__*/ S.suspend(() =>
436
+ S.Struct({
437
+ drive: S.String.pipe(T.Label()),
438
+ inventorize: S.optional(S.String.pipe(T.Query())),
439
+ }).pipe(
440
+ T.Http({ method: "GET", uri: "/tape/drive/{drive}/read-label", code: 200 }),
441
+ ),
442
+ ).annotate({
443
+ identifier: "GetTapeDriveReadLabelRequest",
444
+ }) as any as S.Schema<GetTapeDriveReadLabelRequest>;
445
+
446
+ export interface GetTapeDriveReadLabelResponse {
447
+ ctime: number;
448
+ encryption_key_fingerprint?: string;
449
+ label_text?: string;
450
+ media_set_ctime?: number;
451
+ media_set_uuid?: string;
452
+ pool?: string;
453
+ seq_nr?: number;
454
+ uuid: string;
455
+ }
456
+ export const GetTapeDriveReadLabelResponse = /*@__PURE__*/ S.suspend(() =>
457
+ S.Struct({
458
+ ctime: S.Number,
459
+ encryption_key_fingerprint: S.optional(
460
+ S.String.pipe(T.Body("encryption-key-fingerprint")),
461
+ ),
462
+ label_text: S.optional(S.String.pipe(T.Body("label-text"))),
463
+ media_set_ctime: S.optional(S.Number.pipe(T.Body("media-set-ctime"))),
464
+ media_set_uuid: S.optional(S.String.pipe(T.Body("media-set-uuid"))),
465
+ pool: S.optional(S.String),
466
+ seq_nr: S.optional(S.Number.pipe(T.Body("seq-nr"))),
467
+ uuid: S.String,
468
+ }),
469
+ ).annotate({
470
+ identifier: "GetTapeDriveReadLabelResponse",
471
+ }) as any as S.Schema<GetTapeDriveReadLabelResponse>;
472
+
473
+ export interface GetTapeDriveStatusRequest {
474
+ drive: string;
475
+ }
476
+ export const GetTapeDriveStatusRequest = /*@__PURE__*/ S.suspend(() =>
477
+ S.Struct({
478
+ drive: S.String.pipe(T.Label()),
479
+ }).pipe(
480
+ T.Http({ method: "GET", uri: "/tape/drive/{drive}/status", code: 200 }),
481
+ ),
482
+ ).annotate({
483
+ identifier: "GetTapeDriveStatusRequest",
484
+ }) as any as S.Schema<GetTapeDriveStatusRequest>;
485
+
486
+ export type GetTapeDriveStatusResponseDensity =
487
+ | "Unknown"
488
+ | "LTO1"
489
+ | "LTO2"
490
+ | "LTO3"
491
+ | "LTO4"
492
+ | "LTO5"
493
+ | "LTO6"
494
+ | "LTO7"
495
+ | "LTO7M8"
496
+ | "LTO8"
497
+ | "LTO9";
498
+ export const GetTapeDriveStatusResponseDensity = S.String;
499
+
500
+ export type GetTapeDriveStatusResponseDriveActivity =
501
+ | "no-activity"
502
+ | "cleaning"
503
+ | "loading"
504
+ | "unloading"
505
+ | "other"
506
+ | "reading"
507
+ | "writing"
508
+ | "locating"
509
+ | "rewinding"
510
+ | "erasing"
511
+ | "formatting"
512
+ | "calibrating"
513
+ | "other-d-t"
514
+ | "microcode-update"
515
+ | "reading-encrypted"
516
+ | "writing-encrypted";
517
+ export const GetTapeDriveStatusResponseDriveActivity = S.String;
518
+
519
+ export interface GetTapeDriveStatusResponse {
520
+ alert_flags?: string;
521
+ block_number?: number;
522
+ blocksize: number;
523
+ buffer_mode?: number;
524
+ bytes_read?: number;
525
+ bytes_written?: number;
526
+ compression: unknown;
527
+ density?: GetTapeDriveStatusResponseDensity;
528
+ drive_activity?: GetTapeDriveStatusResponseDriveActivity;
529
+ file_number?: number;
530
+ manufactured?: number;
531
+ medium_passes?: number;
532
+ medium_wearout?: number;
533
+ product: string;
534
+ revision: string;
535
+ vendor: string;
536
+ volume_mounts?: number;
537
+ write_protect?: unknown;
538
+ }
539
+ export const GetTapeDriveStatusResponse = /*@__PURE__*/ S.suspend(() =>
540
+ S.Struct({
541
+ alert_flags: S.optional(S.String.pipe(T.Body("alert-flags"))),
542
+ block_number: S.optional(S.Number.pipe(T.Body("block-number"))),
543
+ blocksize: S.Number,
544
+ buffer_mode: S.optional(S.Number.pipe(T.Body("buffer-mode"))),
545
+ bytes_read: S.optional(S.Number.pipe(T.Body("bytes-read"))),
546
+ bytes_written: S.optional(S.Number.pipe(T.Body("bytes-written"))),
547
+ compression: S.Unknown,
548
+ density: S.optional(GetTapeDriveStatusResponseDensity),
549
+ drive_activity: S.optional(
550
+ GetTapeDriveStatusResponseDriveActivity.pipe(T.Body("drive-activity")),
551
+ ),
552
+ file_number: S.optional(S.Number.pipe(T.Body("file-number"))),
553
+ manufactured: S.optional(S.Number),
554
+ medium_passes: S.optional(S.Number.pipe(T.Body("medium-passes"))),
555
+ medium_wearout: S.optional(S.Number.pipe(T.Body("medium-wearout"))),
556
+ product: S.String,
557
+ revision: S.String,
558
+ vendor: S.String,
559
+ volume_mounts: S.optional(S.Number.pipe(T.Body("volume-mounts"))),
560
+ write_protect: S.optional(S.Unknown.pipe(T.Body("write-protect"))),
561
+ }),
562
+ ).annotate({
563
+ identifier: "GetTapeDriveStatusResponse",
564
+ }) as any as S.Schema<GetTapeDriveStatusResponse>;
565
+
566
+ export interface GetTapeDriveVolumeStatisticsRequest {
567
+ drive: string;
568
+ }
569
+ export const GetTapeDriveVolumeStatisticsRequest = /*@__PURE__*/ S.suspend(() =>
570
+ S.Struct({
571
+ drive: S.String.pipe(T.Label()),
572
+ }).pipe(
573
+ T.Http({
574
+ method: "GET",
575
+ uri: "/tape/drive/{drive}/volume-statistics",
576
+ code: 200,
577
+ }),
578
+ ),
579
+ ).annotate({
580
+ identifier: "GetTapeDriveVolumeStatisticsRequest",
581
+ }) as any as S.Schema<GetTapeDriveVolumeStatisticsRequest>;
582
+
583
+ export interface GetTapeDriveVolumeStatisticsResponse {
584
+ beginning_of_medium_passes?: number;
585
+ last_load_read_compression_ratio?: number;
586
+ last_load_write_compression_ratio?: number;
587
+ last_mount_bytes_read?: number;
588
+ last_mount_bytes_written?: number;
589
+ last_mount_unrecovered_read_errors?: number;
590
+ last_mount_unrecovered_write_errors?: number;
591
+ lifetime_bytes_read?: number;
592
+ lifetime_bytes_written?: number;
593
+ medium_mount_time?: number;
594
+ medium_ready_time?: number;
595
+ middle_of_tape_passes?: number;
596
+ serial: string;
597
+ total_native_capacity?: number;
598
+ total_used_native_capacity?: number;
599
+ volume_datasets_read?: number;
600
+ volume_datasets_written?: number;
601
+ volume_mounts?: number;
602
+ volume_recovered_read_errors?: number;
603
+ volume_recovered_write_data_errors?: number;
604
+ volume_unrecovered_read_errors?: number;
605
+ volume_unrecovered_write_data_errors?: number;
606
+ volume_unrecovered_write_servo_errors?: number;
607
+ volume_write_servo_errors?: number;
608
+ worm: unknown;
609
+ write_protect?: unknown;
610
+ }
611
+ export const GetTapeDriveVolumeStatisticsResponse = /*@__PURE__*/ S.suspend(
612
+ () =>
613
+ S.Struct({
614
+ beginning_of_medium_passes: S.optional(
615
+ S.Number.pipe(T.Body("beginning-of-medium-passes")),
616
+ ),
617
+ last_load_read_compression_ratio: S.optional(
618
+ S.Number.pipe(T.Body("last-load-read-compression-ratio")),
619
+ ),
620
+ last_load_write_compression_ratio: S.optional(
621
+ S.Number.pipe(T.Body("last-load-write-compression-ratio")),
622
+ ),
623
+ last_mount_bytes_read: S.optional(
624
+ S.Number.pipe(T.Body("last-mount-bytes-read")),
625
+ ),
626
+ last_mount_bytes_written: S.optional(
627
+ S.Number.pipe(T.Body("last-mount-bytes-written")),
628
+ ),
629
+ last_mount_unrecovered_read_errors: S.optional(
630
+ S.Number.pipe(T.Body("last-mount-unrecovered-read-errors")),
631
+ ),
632
+ last_mount_unrecovered_write_errors: S.optional(
633
+ S.Number.pipe(T.Body("last-mount-unrecovered-write-errors")),
634
+ ),
635
+ lifetime_bytes_read: S.optional(
636
+ S.Number.pipe(T.Body("lifetime-bytes-read")),
637
+ ),
638
+ lifetime_bytes_written: S.optional(
639
+ S.Number.pipe(T.Body("lifetime-bytes-written")),
640
+ ),
641
+ medium_mount_time: S.optional(S.Number.pipe(T.Body("medium-mount-time"))),
642
+ medium_ready_time: S.optional(S.Number.pipe(T.Body("medium-ready-time"))),
643
+ middle_of_tape_passes: S.optional(
644
+ S.Number.pipe(T.Body("middle-of-tape-passes")),
645
+ ),
646
+ serial: S.String,
647
+ total_native_capacity: S.optional(
648
+ S.Number.pipe(T.Body("total-native-capacity")),
649
+ ),
650
+ total_used_native_capacity: S.optional(
651
+ S.Number.pipe(T.Body("total-used-native-capacity")),
652
+ ),
653
+ volume_datasets_read: S.optional(
654
+ S.Number.pipe(T.Body("volume-datasets-read")),
655
+ ),
656
+ volume_datasets_written: S.optional(
657
+ S.Number.pipe(T.Body("volume-datasets-written")),
658
+ ),
659
+ volume_mounts: S.optional(S.Number.pipe(T.Body("volume-mounts"))),
660
+ volume_recovered_read_errors: S.optional(
661
+ S.Number.pipe(T.Body("volume-recovered-read-errors")),
662
+ ),
663
+ volume_recovered_write_data_errors: S.optional(
664
+ S.Number.pipe(T.Body("volume-recovered-write-data-errors")),
665
+ ),
666
+ volume_unrecovered_read_errors: S.optional(
667
+ S.Number.pipe(T.Body("volume-unrecovered-read-errors")),
668
+ ),
669
+ volume_unrecovered_write_data_errors: S.optional(
670
+ S.Number.pipe(T.Body("volume-unrecovered-write-data-errors")),
671
+ ),
672
+ volume_unrecovered_write_servo_errors: S.optional(
673
+ S.Number.pipe(T.Body("volume-unrecovered-write-servo-errors")),
674
+ ),
675
+ volume_write_servo_errors: S.optional(
676
+ S.Number.pipe(T.Body("volume-write-servo-errors")),
677
+ ),
678
+ worm: S.Unknown,
679
+ write_protect: S.optional(S.Unknown.pipe(T.Body("write-protect"))),
680
+ }),
681
+ ).annotate({
682
+ identifier: "GetTapeDriveVolumeStatisticsResponse",
683
+ }) as any as S.Schema<GetTapeDriveVolumeStatisticsResponse>;
684
+
685
+ export interface GetTapeMediaRequest {}
686
+ export const GetTapeMediaRequest = /*@__PURE__*/ S.suspend(() =>
687
+ S.Struct({}).pipe(T.Http({ method: "GET", uri: "/tape/media", code: 200 })),
688
+ ).annotate({
689
+ identifier: "GetTapeMediaRequest",
690
+ }) as any as S.Schema<GetTapeMediaRequest>;
691
+
692
+ export interface GetTapeMediaResponse {}
693
+ export const GetTapeMediaResponse = /*@__PURE__*/ S.suspend(() =>
694
+ S.Struct({}),
695
+ ).annotate({
696
+ identifier: "GetTapeMediaResponse",
697
+ }) as any as S.Schema<GetTapeMediaResponse>;
698
+
699
+ export interface GetTapeMediaDestroyRequest {
700
+ /** Force removal (even if media is used in a media set). */
701
+ force?: string;
702
+ /** Media Label/Barcode. */
703
+ label_text?: string;
704
+ /** Media Uuid. */
705
+ uuid?: string;
706
+ }
707
+ export const GetTapeMediaDestroyRequest = /*@__PURE__*/ S.suspend(() =>
708
+ S.Struct({
709
+ force: S.optional(S.String.pipe(T.Query())),
710
+ label_text: S.optional(S.String.pipe(T.Query("label-text"))),
711
+ uuid: S.optional(S.String.pipe(T.Query())),
712
+ }).pipe(T.Http({ method: "GET", uri: "/tape/media/destroy", code: 200 })),
713
+ ).annotate({
714
+ identifier: "GetTapeMediaDestroyRequest",
715
+ }) as any as S.Schema<GetTapeMediaDestroyRequest>;
716
+
717
+ export interface GetTapeMediaDestroyResponse {}
718
+ export const GetTapeMediaDestroyResponse = /*@__PURE__*/ S.suspend(() =>
719
+ S.Struct({}),
720
+ ).annotate({
721
+ identifier: "GetTapeMediaDestroyResponse",
722
+ }) as any as S.Schema<GetTapeMediaDestroyResponse>;
723
+
724
+ export interface GetTapeMediaListRequest {
725
+ uuid: string;
726
+ }
727
+ export const GetTapeMediaListRequest = /*@__PURE__*/ S.suspend(() =>
728
+ S.Struct({
729
+ uuid: S.String.pipe(T.Label()),
730
+ }).pipe(T.Http({ method: "GET", uri: "/tape/media/list/{uuid}", code: 200 })),
731
+ ).annotate({
732
+ identifier: "GetTapeMediaListRequest",
733
+ }) as any as S.Schema<GetTapeMediaListRequest>;
734
+
735
+ export interface GetTapeMediaListResponse {}
736
+ export const GetTapeMediaListResponse = /*@__PURE__*/ S.suspend(() =>
737
+ S.Struct({}),
738
+ ).annotate({
739
+ identifier: "GetTapeMediaListResponse",
740
+ }) as any as S.Schema<GetTapeMediaListResponse>;
741
+
742
+ export interface GetTapeMediaListStatusRequest {
743
+ uuid: string;
744
+ }
745
+ export const GetTapeMediaListStatusRequest = /*@__PURE__*/ S.suspend(() =>
746
+ S.Struct({
747
+ uuid: S.String.pipe(T.Label()),
748
+ }).pipe(
749
+ T.Http({ method: "GET", uri: "/tape/media/list/{uuid}/status", code: 200 }),
750
+ ),
751
+ ).annotate({
752
+ identifier: "GetTapeMediaListStatusRequest",
753
+ }) as any as S.Schema<GetTapeMediaListStatusRequest>;
754
+
755
+ export interface GetTapeMediaListStatusResponse {}
756
+ export const GetTapeMediaListStatusResponse = /*@__PURE__*/ S.suspend(() =>
757
+ S.Struct({}),
758
+ ).annotate({
759
+ identifier: "GetTapeMediaListStatusResponse",
760
+ }) as any as S.Schema<GetTapeMediaListStatusResponse>;
761
+
762
+ export interface ListTapeBackupRequest {}
763
+ export const ListTapeBackupRequest = /*@__PURE__*/ S.suspend(() =>
764
+ S.Struct({}).pipe(T.Http({ method: "GET", uri: "/tape/backup", code: 200 })),
765
+ ).annotate({
766
+ identifier: "ListTapeBackupRequest",
767
+ }) as any as S.Schema<ListTapeBackupRequest>;
768
+
769
+ export type ListTapeBackupResponseBodyItemGroupFilterList = Array<string>;
770
+ export const ListTapeBackupResponseBodyItemGroupFilterList =
771
+ /*@__PURE__*/ S.Array(
772
+ S.String,
773
+ ) as any as S.Schema<ListTapeBackupResponseBodyItemGroupFilterList>;
774
+
775
+ export type ListTapeBackupResponseBodyItemNotificationMode =
776
+ | "legacy-sendmail"
777
+ | "notification-system";
778
+ export const ListTapeBackupResponseBodyItemNotificationMode = S.String;
779
+
780
+ export interface ListTapeBackupResponseBodyItem {
781
+ comment?: string;
782
+ drive: string;
783
+ eject_media?: unknown;
784
+ export_media_set?: unknown;
785
+ group_filter?: ListTapeBackupResponseBodyItemGroupFilterList;
786
+ id: string;
787
+ last_run_endtime?: number;
788
+ last_run_state?: string;
789
+ last_run_upid?: string;
790
+ latest_only?: unknown;
791
+ max_depth?: number;
792
+ next_media_label?: string;
793
+ next_run?: number;
794
+ notification_mode?: ListTapeBackupResponseBodyItemNotificationMode;
795
+ notify_user?: string;
796
+ ns?: string;
797
+ pool: string;
798
+ schedule?: string;
799
+ store: string;
800
+ worker_threads?: number;
801
+ }
802
+ export const ListTapeBackupResponseBodyItem = /*@__PURE__*/ S.suspend(() =>
803
+ S.Struct({
804
+ comment: S.optional(S.String),
805
+ drive: S.String,
806
+ eject_media: S.optional(S.Unknown.pipe(T.Body("eject-media"))),
807
+ export_media_set: S.optional(S.Unknown.pipe(T.Body("export-media-set"))),
808
+ group_filter: S.optional(
809
+ ListTapeBackupResponseBodyItemGroupFilterList.pipe(
810
+ T.Body("group-filter"),
811
+ ),
812
+ ),
813
+ id: S.String,
814
+ last_run_endtime: S.optional(S.Number.pipe(T.Body("last-run-endtime"))),
815
+ last_run_state: S.optional(S.String.pipe(T.Body("last-run-state"))),
816
+ last_run_upid: S.optional(S.String.pipe(T.Body("last-run-upid"))),
817
+ latest_only: S.optional(S.Unknown.pipe(T.Body("latest-only"))),
818
+ max_depth: S.optional(S.Number.pipe(T.Body("max-depth"))),
819
+ next_media_label: S.optional(S.String.pipe(T.Body("next-media-label"))),
820
+ next_run: S.optional(S.Number.pipe(T.Body("next-run"))),
821
+ notification_mode: S.optional(
822
+ ListTapeBackupResponseBodyItemNotificationMode.pipe(
823
+ T.Body("notification-mode"),
824
+ ),
825
+ ),
826
+ notify_user: S.optional(S.String.pipe(T.Body("notify-user"))),
827
+ ns: S.optional(S.String),
828
+ pool: S.String,
829
+ schedule: S.optional(S.String),
830
+ store: S.String,
831
+ worker_threads: S.optional(S.Number.pipe(T.Body("worker-threads"))),
832
+ }),
833
+ ).annotate({
834
+ identifier: "ListTapeBackupResponseBodyItem",
835
+ }) as any as S.Schema<ListTapeBackupResponseBodyItem>;
836
+
837
+ export type ListTapeBackupResponseBodyList =
838
+ Array<ListTapeBackupResponseBodyItem>;
839
+ export const ListTapeBackupResponseBodyList = /*@__PURE__*/ S.Array(
840
+ ListTapeBackupResponseBodyItem,
841
+ ) as any as S.Schema<ListTapeBackupResponseBodyList>;
842
+
843
+ export type ListTapeBackupResponse = ListTapeBackupResponseBodyList;
844
+ export const ListTapeBackupResponse = /*@__PURE__*/ S.suspend(() =>
845
+ ListTapeBackupResponseBodyList.pipe(T.RawResponseRoot()),
846
+ ).annotate({
847
+ identifier: "ListTapeBackupResponse",
848
+ }) as any as S.Schema<ListTapeBackupResponse>;
849
+
850
+ export interface ListTapeChangerRequest {}
851
+ export const ListTapeChangerRequest = /*@__PURE__*/ S.suspend(() =>
852
+ S.Struct({}).pipe(T.Http({ method: "GET", uri: "/tape/changer", code: 200 })),
853
+ ).annotate({
854
+ identifier: "ListTapeChangerRequest",
855
+ }) as any as S.Schema<ListTapeChangerRequest>;
856
+
857
+ export interface ListTapeChangerResponseBodyItem {
858
+ eject_before_unload?: unknown;
859
+ export_slots?: string;
860
+ model?: string;
861
+ name: string;
862
+ path: string;
863
+ serial?: string;
864
+ vendor?: string;
865
+ }
866
+ export const ListTapeChangerResponseBodyItem = /*@__PURE__*/ S.suspend(() =>
867
+ S.Struct({
868
+ eject_before_unload: S.optional(
869
+ S.Unknown.pipe(T.Body("eject-before-unload")),
870
+ ),
871
+ export_slots: S.optional(S.String.pipe(T.Body("export-slots"))),
872
+ model: S.optional(S.String),
873
+ name: S.String,
874
+ path: S.String,
875
+ serial: S.optional(S.String),
876
+ vendor: S.optional(S.String),
877
+ }),
878
+ ).annotate({
879
+ identifier: "ListTapeChangerResponseBodyItem",
880
+ }) as any as S.Schema<ListTapeChangerResponseBodyItem>;
881
+
882
+ export type ListTapeChangerResponseBodyList =
883
+ Array<ListTapeChangerResponseBodyItem>;
884
+ export const ListTapeChangerResponseBodyList = /*@__PURE__*/ S.Array(
885
+ ListTapeChangerResponseBodyItem,
886
+ ) as any as S.Schema<ListTapeChangerResponseBodyList>;
887
+
888
+ export type ListTapeChangerResponse = ListTapeChangerResponseBodyList;
889
+ export const ListTapeChangerResponse = /*@__PURE__*/ S.suspend(() =>
890
+ ListTapeChangerResponseBodyList.pipe(T.RawResponseRoot()),
891
+ ).annotate({
892
+ identifier: "ListTapeChangerResponse",
893
+ }) as any as S.Schema<ListTapeChangerResponse>;
894
+
895
+ export interface ListTapeChangerStatusRequest {
896
+ name: string;
897
+ /** Use cached value. */
898
+ cache?: string;
899
+ }
900
+ export const ListTapeChangerStatusRequest = /*@__PURE__*/ S.suspend(() =>
901
+ S.Struct({
902
+ name: S.String.pipe(T.Label()),
903
+ cache: S.optional(S.String.pipe(T.Query())),
904
+ }).pipe(
905
+ T.Http({ method: "GET", uri: "/tape/changer/{name}/status", code: 200 }),
906
+ ),
907
+ ).annotate({
908
+ identifier: "ListTapeChangerStatusRequest",
909
+ }) as any as S.Schema<ListTapeChangerStatusRequest>;
910
+
911
+ export type ListTapeChangerStatusResponseBodyItemEntryKind =
912
+ | "drive"
913
+ | "slot"
914
+ | "import-export";
915
+ export const ListTapeChangerStatusResponseBodyItemEntryKind = S.String;
916
+
917
+ export interface ListTapeChangerStatusResponseBodyItem {
918
+ entry_id?: number;
919
+ entry_kind?: ListTapeChangerStatusResponseBodyItemEntryKind;
920
+ label_text?: string;
921
+ loaded_slot?: number;
922
+ state?: string;
923
+ }
924
+ export const ListTapeChangerStatusResponseBodyItem = /*@__PURE__*/ S.suspend(
925
+ () =>
926
+ S.Struct({
927
+ entry_id: S.optional(S.Number.pipe(T.Body("entry-id"))),
928
+ entry_kind: S.optional(
929
+ ListTapeChangerStatusResponseBodyItemEntryKind.pipe(
930
+ T.Body("entry-kind"),
931
+ ),
932
+ ),
933
+ label_text: S.optional(S.String.pipe(T.Body("label-text"))),
934
+ loaded_slot: S.optional(S.Number.pipe(T.Body("loaded-slot"))),
935
+ state: S.optional(S.String),
936
+ }),
937
+ ).annotate({
938
+ identifier: "ListTapeChangerStatusResponseBodyItem",
939
+ }) as any as S.Schema<ListTapeChangerStatusResponseBodyItem>;
940
+
941
+ export type ListTapeChangerStatusResponseBodyList =
942
+ Array<ListTapeChangerStatusResponseBodyItem>;
943
+ export const ListTapeChangerStatusResponseBodyList = /*@__PURE__*/ S.Array(
944
+ ListTapeChangerStatusResponseBodyItem,
945
+ ) as any as S.Schema<ListTapeChangerStatusResponseBodyList>;
946
+
947
+ export type ListTapeChangerStatusResponse =
948
+ ListTapeChangerStatusResponseBodyList;
949
+ export const ListTapeChangerStatusResponse = /*@__PURE__*/ S.suspend(() =>
950
+ ListTapeChangerStatusResponseBodyList.pipe(T.RawResponseRoot()),
951
+ ).annotate({
952
+ identifier: "ListTapeChangerStatusResponse",
953
+ }) as any as S.Schema<ListTapeChangerStatusResponse>;
954
+
955
+ export interface ListTapeDriveRequest {
956
+ /** Tape Changer Identifier. */
957
+ changer?: string;
958
+ /** If true, queries and returns the drive activity for each drive. */
959
+ query_activity?: string;
960
+ }
961
+ export const ListTapeDriveRequest = /*@__PURE__*/ S.suspend(() =>
962
+ S.Struct({
963
+ changer: S.optional(S.String.pipe(T.Query())),
964
+ query_activity: S.optional(S.String.pipe(T.Query("query-activity"))),
965
+ }).pipe(T.Http({ method: "GET", uri: "/tape/drive", code: 200 })),
966
+ ).annotate({
967
+ identifier: "ListTapeDriveRequest",
968
+ }) as any as S.Schema<ListTapeDriveRequest>;
969
+
970
+ export type ListTapeDriveResponseBodyItemActivity =
971
+ | "no-activity"
972
+ | "cleaning"
973
+ | "loading"
974
+ | "unloading"
975
+ | "other"
976
+ | "reading"
977
+ | "writing"
978
+ | "locating"
979
+ | "rewinding"
980
+ | "erasing"
981
+ | "formatting"
982
+ | "calibrating"
983
+ | "other-d-t"
984
+ | "microcode-update"
985
+ | "reading-encrypted"
986
+ | "writing-encrypted";
987
+ export const ListTapeDriveResponseBodyItemActivity = S.String;
988
+
989
+ export interface ListTapeDriveResponseBodyItem {
990
+ activity?: ListTapeDriveResponseBodyItemActivity;
991
+ changer?: string;
992
+ changer_drivenum?: number;
993
+ model?: string;
994
+ name: string;
995
+ path: string;
996
+ serial?: string;
997
+ state?: string;
998
+ vendor?: string;
999
+ }
1000
+ export const ListTapeDriveResponseBodyItem = /*@__PURE__*/ S.suspend(() =>
1001
+ S.Struct({
1002
+ activity: S.optional(ListTapeDriveResponseBodyItemActivity),
1003
+ changer: S.optional(S.String),
1004
+ changer_drivenum: S.optional(S.Number.pipe(T.Body("changer-drivenum"))),
1005
+ model: S.optional(S.String),
1006
+ name: S.String,
1007
+ path: S.String,
1008
+ serial: S.optional(S.String),
1009
+ state: S.optional(S.String),
1010
+ vendor: S.optional(S.String),
1011
+ }),
1012
+ ).annotate({
1013
+ identifier: "ListTapeDriveResponseBodyItem",
1014
+ }) as any as S.Schema<ListTapeDriveResponseBodyItem>;
1015
+
1016
+ export type ListTapeDriveResponseBodyList =
1017
+ Array<ListTapeDriveResponseBodyItem>;
1018
+ export const ListTapeDriveResponseBodyList = /*@__PURE__*/ S.Array(
1019
+ ListTapeDriveResponseBodyItem,
1020
+ ) as any as S.Schema<ListTapeDriveResponseBodyList>;
1021
+
1022
+ export type ListTapeDriveResponse = ListTapeDriveResponseBodyList;
1023
+ export const ListTapeDriveResponse = /*@__PURE__*/ S.suspend(() =>
1024
+ ListTapeDriveResponseBodyList.pipe(T.RawResponseRoot()),
1025
+ ).annotate({
1026
+ identifier: "ListTapeDriveResponse",
1027
+ }) as any as S.Schema<ListTapeDriveResponse>;
1028
+
1029
+ export interface ListTapeDriveCartridgeMemoryRequest {
1030
+ drive: string;
1031
+ }
1032
+ export const ListTapeDriveCartridgeMemoryRequest = /*@__PURE__*/ S.suspend(() =>
1033
+ S.Struct({
1034
+ drive: S.String.pipe(T.Label()),
1035
+ }).pipe(
1036
+ T.Http({
1037
+ method: "GET",
1038
+ uri: "/tape/drive/{drive}/cartridge-memory",
1039
+ code: 200,
1040
+ }),
1041
+ ),
1042
+ ).annotate({
1043
+ identifier: "ListTapeDriveCartridgeMemoryRequest",
1044
+ }) as any as S.Schema<ListTapeDriveCartridgeMemoryRequest>;
1045
+
1046
+ export interface ListTapeDriveCartridgeMemoryResponseBodyItem {
1047
+ id: number;
1048
+ name: string;
1049
+ value: string;
1050
+ }
1051
+ export const ListTapeDriveCartridgeMemoryResponseBodyItem =
1052
+ /*@__PURE__*/ S.suspend(() =>
1053
+ S.Struct({
1054
+ id: S.Number,
1055
+ name: S.String,
1056
+ value: S.String,
1057
+ }),
1058
+ ).annotate({
1059
+ identifier: "ListTapeDriveCartridgeMemoryResponseBodyItem",
1060
+ }) as any as S.Schema<ListTapeDriveCartridgeMemoryResponseBodyItem>;
1061
+
1062
+ export type ListTapeDriveCartridgeMemoryResponseBodyList =
1063
+ Array<ListTapeDriveCartridgeMemoryResponseBodyItem>;
1064
+ export const ListTapeDriveCartridgeMemoryResponseBodyList =
1065
+ /*@__PURE__*/ S.Array(
1066
+ ListTapeDriveCartridgeMemoryResponseBodyItem,
1067
+ ) as any as S.Schema<ListTapeDriveCartridgeMemoryResponseBodyList>;
1068
+
1069
+ export type ListTapeDriveCartridgeMemoryResponse =
1070
+ ListTapeDriveCartridgeMemoryResponseBodyList;
1071
+ export const ListTapeDriveCartridgeMemoryResponse = /*@__PURE__*/ S.suspend(
1072
+ () => ListTapeDriveCartridgeMemoryResponseBodyList.pipe(T.RawResponseRoot()),
1073
+ ).annotate({
1074
+ identifier: "ListTapeDriveCartridgeMemoryResponse",
1075
+ }) as any as S.Schema<ListTapeDriveCartridgeMemoryResponse>;
1076
+
1077
+ export interface ListTapeDriveInventoryRequest {
1078
+ drive: string;
1079
+ }
1080
+ export const ListTapeDriveInventoryRequest = /*@__PURE__*/ S.suspend(() =>
1081
+ S.Struct({
1082
+ drive: S.String.pipe(T.Label()),
1083
+ }).pipe(
1084
+ T.Http({ method: "GET", uri: "/tape/drive/{drive}/inventory", code: 200 }),
1085
+ ),
1086
+ ).annotate({
1087
+ identifier: "ListTapeDriveInventoryRequest",
1088
+ }) as any as S.Schema<ListTapeDriveInventoryRequest>;
1089
+
1090
+ export interface ListTapeDriveInventoryResponseBodyItem {
1091
+ label_text?: string;
1092
+ uuid?: string;
1093
+ }
1094
+ export const ListTapeDriveInventoryResponseBodyItem = /*@__PURE__*/ S.suspend(
1095
+ () =>
1096
+ S.Struct({
1097
+ label_text: S.optional(S.String.pipe(T.Body("label-text"))),
1098
+ uuid: S.optional(S.String),
1099
+ }),
1100
+ ).annotate({
1101
+ identifier: "ListTapeDriveInventoryResponseBodyItem",
1102
+ }) as any as S.Schema<ListTapeDriveInventoryResponseBodyItem>;
1103
+
1104
+ export type ListTapeDriveInventoryResponseBodyList =
1105
+ Array<ListTapeDriveInventoryResponseBodyItem>;
1106
+ export const ListTapeDriveInventoryResponseBodyList = /*@__PURE__*/ S.Array(
1107
+ ListTapeDriveInventoryResponseBodyItem,
1108
+ ) as any as S.Schema<ListTapeDriveInventoryResponseBodyList>;
1109
+
1110
+ export type ListTapeDriveInventoryResponse =
1111
+ ListTapeDriveInventoryResponseBodyList;
1112
+ export const ListTapeDriveInventoryResponse = /*@__PURE__*/ S.suspend(() =>
1113
+ ListTapeDriveInventoryResponseBodyList.pipe(T.RawResponseRoot()),
1114
+ ).annotate({
1115
+ identifier: "ListTapeDriveInventoryResponse",
1116
+ }) as any as S.Schema<ListTapeDriveInventoryResponse>;
1117
+
1118
+ export type ListTapeMediaContentRequestBackupType = "vm" | "ct" | "host";
1119
+ export const ListTapeMediaContentRequestBackupType = S.String;
1120
+
1121
+ export interface ListTapeMediaContentRequest {
1122
+ /** Backup ID. */
1123
+ backup_id?: string;
1124
+ /** Backup types. */
1125
+ backup_type?: ListTapeMediaContentRequestBackupType | (string & {});
1126
+ /** Media Label/Barcode. */
1127
+ label_text?: string;
1128
+ /** Media Uuid. */
1129
+ media?: string;
1130
+ /** MediaSet Uuid (We use the all-zero Uuid to reserve an empty media for a specific pool). */
1131
+ media_set?: string;
1132
+ /** Media pool name. */
1133
+ pool?: string;
1134
+ }
1135
+ export const ListTapeMediaContentRequest = /*@__PURE__*/ S.suspend(() =>
1136
+ S.Struct({
1137
+ backup_id: S.optional(S.String.pipe(T.Query("backup-id"))),
1138
+ backup_type: S.optional(
1139
+ ListTapeMediaContentRequestBackupType.pipe(T.Query("backup-type")),
1140
+ ),
1141
+ label_text: S.optional(S.String.pipe(T.Query("label-text"))),
1142
+ media: S.optional(S.String.pipe(T.Query())),
1143
+ media_set: S.optional(S.String.pipe(T.Query("media-set"))),
1144
+ pool: S.optional(S.String.pipe(T.Query())),
1145
+ }).pipe(T.Http({ method: "GET", uri: "/tape/media/content", code: 200 })),
1146
+ ).annotate({
1147
+ identifier: "ListTapeMediaContentRequest",
1148
+ }) as any as S.Schema<ListTapeMediaContentRequest>;
1149
+
1150
+ export interface ListTapeMediaContentResponseBodyItem {
1151
+ backup_time?: number;
1152
+ label_text?: string;
1153
+ media_set_ctime?: number;
1154
+ media_set_name?: string;
1155
+ media_set_uuid?: string;
1156
+ pool: string;
1157
+ seq_nr?: number;
1158
+ snapshot: string;
1159
+ store: string;
1160
+ uuid: string;
1161
+ }
1162
+ export const ListTapeMediaContentResponseBodyItem = /*@__PURE__*/ S.suspend(
1163
+ () =>
1164
+ S.Struct({
1165
+ backup_time: S.optional(S.Number.pipe(T.Body("backup-time"))),
1166
+ label_text: S.optional(S.String.pipe(T.Body("label-text"))),
1167
+ media_set_ctime: S.optional(S.Number.pipe(T.Body("media-set-ctime"))),
1168
+ media_set_name: S.optional(S.String.pipe(T.Body("media-set-name"))),
1169
+ media_set_uuid: S.optional(S.String.pipe(T.Body("media-set-uuid"))),
1170
+ pool: S.String,
1171
+ seq_nr: S.optional(S.Number.pipe(T.Body("seq-nr"))),
1172
+ snapshot: S.String,
1173
+ store: S.String,
1174
+ uuid: S.String,
1175
+ }),
1176
+ ).annotate({
1177
+ identifier: "ListTapeMediaContentResponseBodyItem",
1178
+ }) as any as S.Schema<ListTapeMediaContentResponseBodyItem>;
1179
+
1180
+ export type ListTapeMediaContentResponseBodyList =
1181
+ Array<ListTapeMediaContentResponseBodyItem>;
1182
+ export const ListTapeMediaContentResponseBodyList = /*@__PURE__*/ S.Array(
1183
+ ListTapeMediaContentResponseBodyItem,
1184
+ ) as any as S.Schema<ListTapeMediaContentResponseBodyList>;
1185
+
1186
+ export type ListTapeMediaContentResponse = ListTapeMediaContentResponseBodyList;
1187
+ export const ListTapeMediaContentResponse = /*@__PURE__*/ S.suspend(() =>
1188
+ ListTapeMediaContentResponseBodyList.pipe(T.RawResponseRoot()),
1189
+ ).annotate({
1190
+ identifier: "ListTapeMediaContentResponse",
1191
+ }) as any as S.Schema<ListTapeMediaContentResponse>;
1192
+
1193
+ export interface ListTapeMediaListRequest {
1194
+ /** Media pool name. */
1195
+ pool?: string;
1196
+ /** Try to update tape library status (check what tapes are online). */
1197
+ update_status?: string;
1198
+ /** Tape Changer Identifier. */
1199
+ update_status_changer?: string;
1200
+ }
1201
+ export const ListTapeMediaListRequest = /*@__PURE__*/ S.suspend(() =>
1202
+ S.Struct({
1203
+ pool: S.optional(S.String.pipe(T.Query())),
1204
+ update_status: S.optional(S.String.pipe(T.Query("update-status"))),
1205
+ update_status_changer: S.optional(
1206
+ S.String.pipe(T.Query("update-status-changer")),
1207
+ ),
1208
+ }).pipe(T.Http({ method: "GET", uri: "/tape/media/list", code: 200 })),
1209
+ ).annotate({
1210
+ identifier: "ListTapeMediaListRequest",
1211
+ }) as any as S.Schema<ListTapeMediaListRequest>;
1212
+
1213
+ export type ListTapeMediaListResponseBodyItemStatus =
1214
+ | "writable"
1215
+ | "full"
1216
+ | "unknown"
1217
+ | "damaged"
1218
+ | "retired";
1219
+ export const ListTapeMediaListResponseBodyItemStatus = S.String;
1220
+
1221
+ export interface ListTapeMediaListResponseBodyItem {
1222
+ bytes_used?: number;
1223
+ catalog: unknown;
1224
+ ctime: number;
1225
+ expired: unknown;
1226
+ label_text?: string;
1227
+ location: string;
1228
+ media_set_ctime?: number;
1229
+ media_set_name?: string;
1230
+ media_set_uuid?: string;
1231
+ pool?: string;
1232
+ seq_nr?: number;
1233
+ status: ListTapeMediaListResponseBodyItemStatus;
1234
+ uuid: string;
1235
+ }
1236
+ export const ListTapeMediaListResponseBodyItem = /*@__PURE__*/ S.suspend(() =>
1237
+ S.Struct({
1238
+ bytes_used: S.optional(S.Number.pipe(T.Body("bytes-used"))),
1239
+ catalog: S.Unknown,
1240
+ ctime: S.Number,
1241
+ expired: S.Unknown,
1242
+ label_text: S.optional(S.String.pipe(T.Body("label-text"))),
1243
+ location: S.String,
1244
+ media_set_ctime: S.optional(S.Number.pipe(T.Body("media-set-ctime"))),
1245
+ media_set_name: S.optional(S.String.pipe(T.Body("media-set-name"))),
1246
+ media_set_uuid: S.optional(S.String.pipe(T.Body("media-set-uuid"))),
1247
+ pool: S.optional(S.String),
1248
+ seq_nr: S.optional(S.Number.pipe(T.Body("seq-nr"))),
1249
+ status: ListTapeMediaListResponseBodyItemStatus,
1250
+ uuid: S.String,
1251
+ }),
1252
+ ).annotate({
1253
+ identifier: "ListTapeMediaListResponseBodyItem",
1254
+ }) as any as S.Schema<ListTapeMediaListResponseBodyItem>;
1255
+
1256
+ export type ListTapeMediaListResponseBodyList =
1257
+ Array<ListTapeMediaListResponseBodyItem>;
1258
+ export const ListTapeMediaListResponseBodyList = /*@__PURE__*/ S.Array(
1259
+ ListTapeMediaListResponseBodyItem,
1260
+ ) as any as S.Schema<ListTapeMediaListResponseBodyList>;
1261
+
1262
+ export type ListTapeMediaListResponse = ListTapeMediaListResponseBodyList;
1263
+ export const ListTapeMediaListResponse = /*@__PURE__*/ S.suspend(() =>
1264
+ ListTapeMediaListResponseBodyList.pipe(T.RawResponseRoot()),
1265
+ ).annotate({
1266
+ identifier: "ListTapeMediaListResponse",
1267
+ }) as any as S.Schema<ListTapeMediaListResponse>;
1268
+
1269
+ export interface ListTapeMediaMediaSetsRequest {}
1270
+ export const ListTapeMediaMediaSetsRequest = /*@__PURE__*/ S.suspend(() =>
1271
+ S.Struct({}).pipe(
1272
+ T.Http({ method: "GET", uri: "/tape/media/media-sets", code: 200 }),
1273
+ ),
1274
+ ).annotate({
1275
+ identifier: "ListTapeMediaMediaSetsRequest",
1276
+ }) as any as S.Schema<ListTapeMediaMediaSetsRequest>;
1277
+
1278
+ export interface ListTapeMediaMediaSetsResponseBodyItem {
1279
+ media_set_ctime?: number;
1280
+ media_set_name?: string;
1281
+ media_set_uuid?: string;
1282
+ pool: string;
1283
+ }
1284
+ export const ListTapeMediaMediaSetsResponseBodyItem = /*@__PURE__*/ S.suspend(
1285
+ () =>
1286
+ S.Struct({
1287
+ media_set_ctime: S.optional(S.Number.pipe(T.Body("media-set-ctime"))),
1288
+ media_set_name: S.optional(S.String.pipe(T.Body("media-set-name"))),
1289
+ media_set_uuid: S.optional(S.String.pipe(T.Body("media-set-uuid"))),
1290
+ pool: S.String,
1291
+ }),
1292
+ ).annotate({
1293
+ identifier: "ListTapeMediaMediaSetsResponseBodyItem",
1294
+ }) as any as S.Schema<ListTapeMediaMediaSetsResponseBodyItem>;
1295
+
1296
+ export type ListTapeMediaMediaSetsResponseBodyList =
1297
+ Array<ListTapeMediaMediaSetsResponseBodyItem>;
1298
+ export const ListTapeMediaMediaSetsResponseBodyList = /*@__PURE__*/ S.Array(
1299
+ ListTapeMediaMediaSetsResponseBodyItem,
1300
+ ) as any as S.Schema<ListTapeMediaMediaSetsResponseBodyList>;
1301
+
1302
+ export type ListTapeMediaMediaSetsResponse =
1303
+ ListTapeMediaMediaSetsResponseBodyList;
1304
+ export const ListTapeMediaMediaSetsResponse = /*@__PURE__*/ S.suspend(() =>
1305
+ ListTapeMediaMediaSetsResponseBodyList.pipe(T.RawResponseRoot()),
1306
+ ).annotate({
1307
+ identifier: "ListTapeMediaMediaSetsResponse",
1308
+ }) as any as S.Schema<ListTapeMediaMediaSetsResponse>;
1309
+
1310
+ export interface ListTapeScanChangersRequest {}
1311
+ export const ListTapeScanChangersRequest = /*@__PURE__*/ S.suspend(() =>
1312
+ S.Struct({}).pipe(
1313
+ T.Http({ method: "GET", uri: "/tape/scan-changers", code: 200 }),
1314
+ ),
1315
+ ).annotate({
1316
+ identifier: "ListTapeScanChangersRequest",
1317
+ }) as any as S.Schema<ListTapeScanChangersRequest>;
1318
+
1319
+ export type ListTapeScanChangersResponseBodyItemKind = "changer" | "tape";
1320
+ export const ListTapeScanChangersResponseBodyItemKind = S.String;
1321
+
1322
+ export interface ListTapeScanChangersResponseBodyItem {
1323
+ kind: ListTapeScanChangersResponseBodyItemKind;
1324
+ major: number;
1325
+ minor: number;
1326
+ model: string;
1327
+ path: string;
1328
+ serial: string;
1329
+ vendor: string;
1330
+ }
1331
+ export const ListTapeScanChangersResponseBodyItem = /*@__PURE__*/ S.suspend(
1332
+ () =>
1333
+ S.Struct({
1334
+ kind: ListTapeScanChangersResponseBodyItemKind,
1335
+ major: S.Number,
1336
+ minor: S.Number,
1337
+ model: S.String,
1338
+ path: S.String,
1339
+ serial: S.String,
1340
+ vendor: S.String,
1341
+ }),
1342
+ ).annotate({
1343
+ identifier: "ListTapeScanChangersResponseBodyItem",
1344
+ }) as any as S.Schema<ListTapeScanChangersResponseBodyItem>;
1345
+
1346
+ export type ListTapeScanChangersResponseBodyList =
1347
+ Array<ListTapeScanChangersResponseBodyItem>;
1348
+ export const ListTapeScanChangersResponseBodyList = /*@__PURE__*/ S.Array(
1349
+ ListTapeScanChangersResponseBodyItem,
1350
+ ) as any as S.Schema<ListTapeScanChangersResponseBodyList>;
1351
+
1352
+ export type ListTapeScanChangersResponse = ListTapeScanChangersResponseBodyList;
1353
+ export const ListTapeScanChangersResponse = /*@__PURE__*/ S.suspend(() =>
1354
+ ListTapeScanChangersResponseBodyList.pipe(T.RawResponseRoot()),
1355
+ ).annotate({
1356
+ identifier: "ListTapeScanChangersResponse",
1357
+ }) as any as S.Schema<ListTapeScanChangersResponse>;
1358
+
1359
+ export interface ListTapeScanDrivesRequest {}
1360
+ export const ListTapeScanDrivesRequest = /*@__PURE__*/ S.suspend(() =>
1361
+ S.Struct({}).pipe(
1362
+ T.Http({ method: "GET", uri: "/tape/scan-drives", code: 200 }),
1363
+ ),
1364
+ ).annotate({
1365
+ identifier: "ListTapeScanDrivesRequest",
1366
+ }) as any as S.Schema<ListTapeScanDrivesRequest>;
1367
+
1368
+ export type ListTapeScanDrivesResponseBodyItemKind = "changer" | "tape";
1369
+ export const ListTapeScanDrivesResponseBodyItemKind = S.String;
1370
+
1371
+ export interface ListTapeScanDrivesResponseBodyItem {
1372
+ kind: ListTapeScanDrivesResponseBodyItemKind;
1373
+ major: number;
1374
+ minor: number;
1375
+ model: string;
1376
+ path: string;
1377
+ serial: string;
1378
+ vendor: string;
1379
+ }
1380
+ export const ListTapeScanDrivesResponseBodyItem = /*@__PURE__*/ S.suspend(() =>
1381
+ S.Struct({
1382
+ kind: ListTapeScanDrivesResponseBodyItemKind,
1383
+ major: S.Number,
1384
+ minor: S.Number,
1385
+ model: S.String,
1386
+ path: S.String,
1387
+ serial: S.String,
1388
+ vendor: S.String,
1389
+ }),
1390
+ ).annotate({
1391
+ identifier: "ListTapeScanDrivesResponseBodyItem",
1392
+ }) as any as S.Schema<ListTapeScanDrivesResponseBodyItem>;
1393
+
1394
+ export type ListTapeScanDrivesResponseBodyList =
1395
+ Array<ListTapeScanDrivesResponseBodyItem>;
1396
+ export const ListTapeScanDrivesResponseBodyList = /*@__PURE__*/ S.Array(
1397
+ ListTapeScanDrivesResponseBodyItem,
1398
+ ) as any as S.Schema<ListTapeScanDrivesResponseBodyList>;
1399
+
1400
+ export type ListTapeScanDrivesResponse = ListTapeScanDrivesResponseBodyList;
1401
+ export const ListTapeScanDrivesResponse = /*@__PURE__*/ S.suspend(() =>
1402
+ ListTapeScanDrivesResponseBodyList.pipe(T.RawResponseRoot()),
1403
+ ).annotate({
1404
+ identifier: "ListTapeScanDrivesResponse",
1405
+ }) as any as S.Schema<ListTapeScanDrivesResponse>;
1406
+
1407
+ export interface MoveTapeMediaRequest {
1408
+ /** Media Label/Barcode. */
1409
+ label_text?: string;
1410
+ /** Media Uuid. */
1411
+ uuid?: string;
1412
+ /** Vault name. */
1413
+ vault_name?: string;
1414
+ }
1415
+ export const MoveTapeMediaRequest = /*@__PURE__*/ S.suspend(() =>
1416
+ S.Struct({
1417
+ label_text: S.optional(S.String.pipe(T.Body("label-text"))),
1418
+ uuid: S.optional(S.String),
1419
+ vault_name: S.optional(S.String.pipe(T.Body("vault-name"))),
1420
+ }).pipe(
1421
+ T.Http({
1422
+ method: "POST",
1423
+ uri: "/tape/media/move",
1424
+ code: 200,
1425
+ contentType: "form-urlencoded",
1426
+ }),
1427
+ ),
1428
+ ).annotate({
1429
+ identifier: "MoveTapeMediaRequest",
1430
+ }) as any as S.Schema<MoveTapeMediaRequest>;
1431
+
1432
+ export interface MoveTapeMediaResponse {}
1433
+ export const MoveTapeMediaResponse = /*@__PURE__*/ S.suspend(() =>
1434
+ S.Struct({}),
1435
+ ).annotate({
1436
+ identifier: "MoveTapeMediaResponse",
1437
+ }) as any as S.Schema<MoveTapeMediaResponse>;
1438
+
1439
+ export interface PutTapeDriveCleanRequest {
1440
+ drive: string;
1441
+ }
1442
+ export const PutTapeDriveCleanRequest = /*@__PURE__*/ S.suspend(() =>
1443
+ S.Struct({
1444
+ drive: S.String.pipe(T.Label()),
1445
+ }).pipe(
1446
+ T.Http({ method: "PUT", uri: "/tape/drive/{drive}/clean", code: 200 }),
1447
+ ),
1448
+ ).annotate({
1449
+ identifier: "PutTapeDriveCleanRequest",
1450
+ }) as any as S.Schema<PutTapeDriveCleanRequest>;
1451
+
1452
+ export type PutTapeDriveCleanResponse = string;
1453
+ export const PutTapeDriveCleanResponse = /*@__PURE__*/ S.suspend(() =>
1454
+ S.String.pipe(T.RawResponseRoot()),
1455
+ ).annotate({
1456
+ identifier: "PutTapeDriveCleanResponse",
1457
+ }) as any as S.Schema<PutTapeDriveCleanResponse>;
1458
+
1459
+ export interface PutTapeDriveExportMediaRequest {
1460
+ drive: string;
1461
+ /** Media Label/Barcode. */
1462
+ label_text: string;
1463
+ }
1464
+ export const PutTapeDriveExportMediaRequest = /*@__PURE__*/ S.suspend(() =>
1465
+ S.Struct({
1466
+ drive: S.String.pipe(T.Label()),
1467
+ label_text: S.String.pipe(T.Body("label-text")),
1468
+ }).pipe(
1469
+ T.Http({
1470
+ method: "PUT",
1471
+ uri: "/tape/drive/{drive}/export-media",
1472
+ code: 200,
1473
+ contentType: "form-urlencoded",
1474
+ }),
1475
+ ),
1476
+ ).annotate({
1477
+ identifier: "PutTapeDriveExportMediaRequest",
1478
+ }) as any as S.Schema<PutTapeDriveExportMediaRequest>;
1479
+
1480
+ export type PutTapeDriveExportMediaResponse = number;
1481
+ export const PutTapeDriveExportMediaResponse = /*@__PURE__*/ S.suspend(() =>
1482
+ S.Number.pipe(T.RawResponseRoot()),
1483
+ ).annotate({
1484
+ identifier: "PutTapeDriveExportMediaResponse",
1485
+ }) as any as S.Schema<PutTapeDriveExportMediaResponse>;
1486
+
1487
+ export interface PutTapeDriveInventoryRequest {
1488
+ drive: string;
1489
+ /** Restore the catalog from tape. */
1490
+ catalog?: string;
1491
+ /** Load all tapes and try read labels (even if already inventoried) */
1492
+ read_all_labels?: string;
1493
+ }
1494
+ export const PutTapeDriveInventoryRequest = /*@__PURE__*/ S.suspend(() =>
1495
+ S.Struct({
1496
+ drive: S.String.pipe(T.Label()),
1497
+ catalog: S.optional(S.String),
1498
+ read_all_labels: S.optional(S.String.pipe(T.Body("read-all-labels"))),
1499
+ }).pipe(
1500
+ T.Http({
1501
+ method: "PUT",
1502
+ uri: "/tape/drive/{drive}/inventory",
1503
+ code: 200,
1504
+ contentType: "form-urlencoded",
1505
+ }),
1506
+ ),
1507
+ ).annotate({
1508
+ identifier: "PutTapeDriveInventoryRequest",
1509
+ }) as any as S.Schema<PutTapeDriveInventoryRequest>;
1510
+
1511
+ export type PutTapeDriveInventoryResponse = string;
1512
+ export const PutTapeDriveInventoryResponse = /*@__PURE__*/ S.suspend(() =>
1513
+ S.String.pipe(T.RawResponseRoot()),
1514
+ ).annotate({
1515
+ identifier: "PutTapeDriveInventoryResponse",
1516
+ }) as any as S.Schema<PutTapeDriveInventoryResponse>;
1517
+
1518
+ export type RestoreTapeRequestNamespacesList = Array<string>;
1519
+ export const RestoreTapeRequestNamespacesList = /*@__PURE__*/ S.Array(
1520
+ S.String,
1521
+ ) as any as S.Schema<RestoreTapeRequestNamespacesList>;
1522
+
1523
+ export type RestoreTapeRequestNotificationMode =
1524
+ | "legacy-sendmail"
1525
+ | "notification-system";
1526
+ export const RestoreTapeRequestNotificationMode = S.String;
1527
+
1528
+ export type RestoreTapeRequestSnapshotsList = Array<string>;
1529
+ export const RestoreTapeRequestSnapshotsList = /*@__PURE__*/ S.Array(
1530
+ S.String,
1531
+ ) as any as S.Schema<RestoreTapeRequestSnapshotsList>;
1532
+
1533
+ export interface RestoreTapeRequest {
1534
+ /** Drive Identifier. */
1535
+ drive: string;
1536
+ /** Media set UUID. */
1537
+ media_set: string;
1538
+ /** List of namespace to restore. */
1539
+ namespaces?: RestoreTapeRequestNamespacesList;
1540
+ /** Configure how notifications for this datastore should be sent. `legacy-sendmail` sends email notifications to the user configured in `notify-user` via the system's `sendmail` executable. `notification-system` emits matchable notification events to the notification system. */
1541
+ notification_mode?: RestoreTapeRequestNotificationMode | (string & {});
1542
+ /** User ID */
1543
+ notify_user?: string;
1544
+ /** Authentication ID */
1545
+ owner?: string;
1546
+ /** List of snapshots. */
1547
+ snapshots?: RestoreTapeRequestSnapshotsList;
1548
+ /** A list of Datastore mappings (or single datastore), comma separated. For example 'a=b,e' maps the source datastore 'a' to target 'b and all other sources to the default 'e'. If no default is given, only the specified sources are mapped. */
1549
+ store: string;
1550
+ }
1551
+ export const RestoreTapeRequest = /*@__PURE__*/ S.suspend(() =>
1552
+ S.Struct({
1553
+ drive: S.String,
1554
+ media_set: S.String.pipe(T.Body("media-set")),
1555
+ namespaces: S.optional(RestoreTapeRequestNamespacesList),
1556
+ notification_mode: S.optional(
1557
+ RestoreTapeRequestNotificationMode.pipe(T.Body("notification-mode")),
1558
+ ),
1559
+ notify_user: S.optional(S.String.pipe(T.Body("notify-user"))),
1560
+ owner: S.optional(S.String),
1561
+ snapshots: S.optional(RestoreTapeRequestSnapshotsList),
1562
+ store: S.String,
1563
+ }).pipe(
1564
+ T.Http({
1565
+ method: "POST",
1566
+ uri: "/tape/restore",
1567
+ code: 200,
1568
+ contentType: "form-urlencoded",
1569
+ }),
1570
+ ),
1571
+ ).annotate({
1572
+ identifier: "RestoreTapeRequest",
1573
+ }) as any as S.Schema<RestoreTapeRequest>;
1574
+
1575
+ export type RestoreTapeResponse = string;
1576
+ export const RestoreTapeResponse = /*@__PURE__*/ S.suspend(() =>
1577
+ S.String.pipe(T.RawResponseRoot()),
1578
+ ).annotate({
1579
+ identifier: "RestoreTapeResponse",
1580
+ }) as any as S.Schema<RestoreTapeResponse>;
1581
+
1582
+ export interface RestoreTapeDriveKeyRequest {
1583
+ drive: string;
1584
+ /** The password the key was encrypted with. */
1585
+ password: string;
1586
+ }
1587
+ export const RestoreTapeDriveKeyRequest = /*@__PURE__*/ S.suspend(() =>
1588
+ S.Struct({
1589
+ drive: S.String.pipe(T.Label()),
1590
+ password: S.String,
1591
+ }).pipe(
1592
+ T.Http({
1593
+ method: "POST",
1594
+ uri: "/tape/drive/{drive}/restore-key",
1595
+ code: 200,
1596
+ contentType: "form-urlencoded",
1597
+ }),
1598
+ ),
1599
+ ).annotate({
1600
+ identifier: "RestoreTapeDriveKeyRequest",
1601
+ }) as any as S.Schema<RestoreTapeDriveKeyRequest>;
1602
+
1603
+ export interface RestoreTapeDriveKeyResponse {}
1604
+ export const RestoreTapeDriveKeyResponse = /*@__PURE__*/ S.suspend(() =>
1605
+ S.Struct({}),
1606
+ ).annotate({
1607
+ identifier: "RestoreTapeDriveKeyResponse",
1608
+ }) as any as S.Schema<RestoreTapeDriveKeyResponse>;
1609
+
1610
+ export interface TransferTapeChangerRequest {
1611
+ name: string;
1612
+ /** Source slot number */
1613
+ from: string;
1614
+ /** Destination slot number */
1615
+ to: string;
1616
+ }
1617
+ export const TransferTapeChangerRequest = /*@__PURE__*/ S.suspend(() =>
1618
+ S.Struct({
1619
+ name: S.String.pipe(T.Label()),
1620
+ from: S.String,
1621
+ to: S.String,
1622
+ }).pipe(
1623
+ T.Http({
1624
+ method: "POST",
1625
+ uri: "/tape/changer/{name}/transfer",
1626
+ code: 200,
1627
+ contentType: "form-urlencoded",
1628
+ }),
1629
+ ),
1630
+ ).annotate({
1631
+ identifier: "TransferTapeChangerRequest",
1632
+ }) as any as S.Schema<TransferTapeChangerRequest>;
1633
+
1634
+ export interface TransferTapeChangerResponse {}
1635
+ export const TransferTapeChangerResponse = /*@__PURE__*/ S.suspend(() =>
1636
+ S.Struct({}),
1637
+ ).annotate({
1638
+ identifier: "TransferTapeChangerResponse",
1639
+ }) as any as S.Schema<TransferTapeChangerResponse>;
1640
+
1641
+ export interface UpdateTapeBackupRequest {
1642
+ id: string;
1643
+ }
1644
+ export const UpdateTapeBackupRequest = /*@__PURE__*/ S.suspend(() =>
1645
+ S.Struct({
1646
+ id: S.String.pipe(T.Label()),
1647
+ }).pipe(T.Http({ method: "POST", uri: "/tape/backup/{id}", code: 200 })),
1648
+ ).annotate({
1649
+ identifier: "UpdateTapeBackupRequest",
1650
+ }) as any as S.Schema<UpdateTapeBackupRequest>;
1651
+
1652
+ export interface UpdateTapeBackupResponse {}
1653
+ export const UpdateTapeBackupResponse = /*@__PURE__*/ S.suspend(() =>
1654
+ S.Struct({}),
1655
+ ).annotate({
1656
+ identifier: "UpdateTapeBackupResponse",
1657
+ }) as any as S.Schema<UpdateTapeBackupResponse>;
1658
+
1659
+ export type CreateTapeBackupError = ProxmoxBackupOpError;
1660
+ /** Backup datastore to tape media pool */
1661
+ export const createTapeBackup: API.OperationMethod<
1662
+ CreateTapeBackupRequest,
1663
+ CreateTapeBackupResponse,
1664
+ CreateTapeBackupError,
1665
+ ProxmoxBackupOpContext
1666
+ > = /*@__PURE__*/ API.make(() => ({
1667
+ input: CreateTapeBackupRequest,
1668
+ output: CreateTapeBackupResponse,
1669
+ errors: [],
1670
+ protocol: ProxmoxBackupProtocol,
1671
+ retry: Retry.Retry,
1672
+ }));
1673
+
1674
+ export type CreateTapeDriveBarcodeLabelMediaError = ProxmoxBackupOpError;
1675
+ /** Label media with barcodes from changer device */
1676
+ export const createTapeDriveBarcodeLabelMedia: API.OperationMethod<
1677
+ CreateTapeDriveBarcodeLabelMediaRequest,
1678
+ CreateTapeDriveBarcodeLabelMediaResponse,
1679
+ CreateTapeDriveBarcodeLabelMediaError,
1680
+ ProxmoxBackupOpContext
1681
+ > = /*@__PURE__*/ API.make(() => ({
1682
+ input: CreateTapeDriveBarcodeLabelMediaRequest,
1683
+ output: CreateTapeDriveBarcodeLabelMediaResponse,
1684
+ errors: [],
1685
+ protocol: ProxmoxBackupProtocol,
1686
+ retry: Retry.Retry,
1687
+ }));
1688
+
1689
+ export type CreateTapeDriveCatalogError = ProxmoxBackupOpError;
1690
+ /** Scan media and record content */
1691
+ export const createTapeDriveCatalog: API.OperationMethod<
1692
+ CreateTapeDriveCatalogRequest,
1693
+ CreateTapeDriveCatalogResponse,
1694
+ CreateTapeDriveCatalogError,
1695
+ ProxmoxBackupOpContext
1696
+ > = /*@__PURE__*/ API.make(() => ({
1697
+ input: CreateTapeDriveCatalogRequest,
1698
+ output: CreateTapeDriveCatalogResponse,
1699
+ errors: [],
1700
+ protocol: ProxmoxBackupProtocol,
1701
+ retry: Retry.Retry,
1702
+ }));
1703
+
1704
+ export type CreateTapeDriveEjectMediaError = ProxmoxBackupOpError;
1705
+ /** Eject/Unload drive media */
1706
+ export const createTapeDriveEjectMedia: API.OperationMethod<
1707
+ CreateTapeDriveEjectMediaRequest,
1708
+ CreateTapeDriveEjectMediaResponse,
1709
+ CreateTapeDriveEjectMediaError,
1710
+ ProxmoxBackupOpContext
1711
+ > = /*@__PURE__*/ API.make(() => ({
1712
+ input: CreateTapeDriveEjectMediaRequest,
1713
+ output: CreateTapeDriveEjectMediaResponse,
1714
+ errors: [],
1715
+ protocol: ProxmoxBackupProtocol,
1716
+ retry: Retry.Retry,
1717
+ }));
1718
+
1719
+ export type CreateTapeDriveFormatMediaError = ProxmoxBackupOpError;
1720
+ /** Format media. Check for label-text if given (cancels if wrong media). */
1721
+ export const createTapeDriveFormatMedia: API.OperationMethod<
1722
+ CreateTapeDriveFormatMediaRequest,
1723
+ CreateTapeDriveFormatMediaResponse,
1724
+ CreateTapeDriveFormatMediaError,
1725
+ ProxmoxBackupOpContext
1726
+ > = /*@__PURE__*/ API.make(() => ({
1727
+ input: CreateTapeDriveFormatMediaRequest,
1728
+ output: CreateTapeDriveFormatMediaResponse,
1729
+ errors: [],
1730
+ protocol: ProxmoxBackupProtocol,
1731
+ retry: Retry.Retry,
1732
+ }));
1733
+
1734
+ export type CreateTapeDriveLabelMediaError = ProxmoxBackupOpError;
1735
+ /** Label media Write a new media label to the media in 'drive'. The media is assigned to the specified 'pool', or else to the free media pool. Note: The media need to be empty (you may want to format it first). */
1736
+ export const createTapeDriveLabelMedia: API.OperationMethod<
1737
+ CreateTapeDriveLabelMediaRequest,
1738
+ CreateTapeDriveLabelMediaResponse,
1739
+ CreateTapeDriveLabelMediaError,
1740
+ ProxmoxBackupOpContext
1741
+ > = /*@__PURE__*/ API.make(() => ({
1742
+ input: CreateTapeDriveLabelMediaRequest,
1743
+ output: CreateTapeDriveLabelMediaResponse,
1744
+ errors: [],
1745
+ protocol: ProxmoxBackupProtocol,
1746
+ retry: Retry.Retry,
1747
+ }));
1748
+
1749
+ export type CreateTapeDriveLoadMediaError = ProxmoxBackupOpError;
1750
+ /** Load media with specified label Issue a media load request to the associated changer device. */
1751
+ export const createTapeDriveLoadMedia: API.OperationMethod<
1752
+ CreateTapeDriveLoadMediaRequest,
1753
+ CreateTapeDriveLoadMediaResponse,
1754
+ CreateTapeDriveLoadMediaError,
1755
+ ProxmoxBackupOpContext
1756
+ > = /*@__PURE__*/ API.make(() => ({
1757
+ input: CreateTapeDriveLoadMediaRequest,
1758
+ output: CreateTapeDriveLoadMediaResponse,
1759
+ errors: [],
1760
+ protocol: ProxmoxBackupProtocol,
1761
+ retry: Retry.Retry,
1762
+ }));
1763
+
1764
+ export type CreateTapeDriveLoadSlotError = ProxmoxBackupOpError;
1765
+ /** Load media from the specified slot Issue a media load request to the associated changer device. */
1766
+ export const createTapeDriveLoadSlot: API.OperationMethod<
1767
+ CreateTapeDriveLoadSlotRequest,
1768
+ CreateTapeDriveLoadSlotResponse,
1769
+ CreateTapeDriveLoadSlotError,
1770
+ ProxmoxBackupOpContext
1771
+ > = /*@__PURE__*/ API.make(() => ({
1772
+ input: CreateTapeDriveLoadSlotRequest,
1773
+ output: CreateTapeDriveLoadSlotResponse,
1774
+ errors: [],
1775
+ protocol: ProxmoxBackupProtocol,
1776
+ retry: Retry.Retry,
1777
+ }));
1778
+
1779
+ export type CreateTapeDriveRewindError = ProxmoxBackupOpError;
1780
+ /** Rewind tape */
1781
+ export const createTapeDriveRewind: API.OperationMethod<
1782
+ CreateTapeDriveRewindRequest,
1783
+ CreateTapeDriveRewindResponse,
1784
+ CreateTapeDriveRewindError,
1785
+ ProxmoxBackupOpContext
1786
+ > = /*@__PURE__*/ API.make(() => ({
1787
+ input: CreateTapeDriveRewindRequest,
1788
+ output: CreateTapeDriveRewindResponse,
1789
+ errors: [],
1790
+ protocol: ProxmoxBackupProtocol,
1791
+ retry: Retry.Retry,
1792
+ }));
1793
+
1794
+ export type CreateTapeDriveUnloadError = ProxmoxBackupOpError;
1795
+ /** Unload media via changer */
1796
+ export const createTapeDriveUnload: API.OperationMethod<
1797
+ CreateTapeDriveUnloadRequest,
1798
+ CreateTapeDriveUnloadResponse,
1799
+ CreateTapeDriveUnloadError,
1800
+ ProxmoxBackupOpContext
1801
+ > = /*@__PURE__*/ API.make(() => ({
1802
+ input: CreateTapeDriveUnloadRequest,
1803
+ output: CreateTapeDriveUnloadResponse,
1804
+ errors: [],
1805
+ protocol: ProxmoxBackupProtocol,
1806
+ retry: Retry.Retry,
1807
+ }));
1808
+
1809
+ export type CreateTapeMediaListStatusError = ProxmoxBackupOpError;
1810
+ /** Update media status (None, 'full', 'damaged' or 'retired') It is not allowed to set status to 'writable' or 'unknown' (those are internally managed states). */
1811
+ export const createTapeMediaListStatus: API.OperationMethod<
1812
+ CreateTapeMediaListStatusRequest,
1813
+ CreateTapeMediaListStatusResponse,
1814
+ CreateTapeMediaListStatusError,
1815
+ ProxmoxBackupOpContext
1816
+ > = /*@__PURE__*/ API.make(() => ({
1817
+ input: CreateTapeMediaListStatusRequest,
1818
+ output: CreateTapeMediaListStatusResponse,
1819
+ errors: [],
1820
+ protocol: ProxmoxBackupProtocol,
1821
+ retry: Retry.Retry,
1822
+ }));
1823
+
1824
+ export type GetTapeError = ProxmoxBackupOpError;
1825
+ /** Directory index. */
1826
+ export const getTape: API.OperationMethod<
1827
+ GetTapeRequest,
1828
+ GetTapeResponse,
1829
+ GetTapeError,
1830
+ ProxmoxBackupOpContext
1831
+ > = /*@__PURE__*/ API.make(() => ({
1832
+ input: GetTapeRequest,
1833
+ output: GetTapeResponse,
1834
+ errors: [],
1835
+ protocol: ProxmoxBackupProtocol,
1836
+ retry: Retry.Retry,
1837
+ }));
1838
+
1839
+ export type GetTapeChangerError = ProxmoxBackupOpError;
1840
+ /** Directory index. */
1841
+ export const getTapeChanger: API.OperationMethod<
1842
+ GetTapeChangerRequest,
1843
+ GetTapeChangerResponse,
1844
+ GetTapeChangerError,
1845
+ ProxmoxBackupOpContext
1846
+ > = /*@__PURE__*/ API.make(() => ({
1847
+ input: GetTapeChangerRequest,
1848
+ output: GetTapeChangerResponse,
1849
+ errors: [],
1850
+ protocol: ProxmoxBackupProtocol,
1851
+ retry: Retry.Retry,
1852
+ }));
1853
+
1854
+ export type GetTapeDriveError = ProxmoxBackupOpError;
1855
+ /** Directory index. */
1856
+ export const getTapeDrive: API.OperationMethod<
1857
+ GetTapeDriveRequest,
1858
+ GetTapeDriveResponse,
1859
+ GetTapeDriveError,
1860
+ ProxmoxBackupOpContext
1861
+ > = /*@__PURE__*/ API.make(() => ({
1862
+ input: GetTapeDriveRequest,
1863
+ output: GetTapeDriveResponse,
1864
+ errors: [],
1865
+ protocol: ProxmoxBackupProtocol,
1866
+ retry: Retry.Retry,
1867
+ }));
1868
+
1869
+ export type GetTapeDriveReadLabelError = ProxmoxBackupOpError;
1870
+ /** Read media label (optionally inventorize media) */
1871
+ export const getTapeDriveReadLabel: API.OperationMethod<
1872
+ GetTapeDriveReadLabelRequest,
1873
+ GetTapeDriveReadLabelResponse,
1874
+ GetTapeDriveReadLabelError,
1875
+ ProxmoxBackupOpContext
1876
+ > = /*@__PURE__*/ API.make(() => ({
1877
+ input: GetTapeDriveReadLabelRequest,
1878
+ output: GetTapeDriveReadLabelResponse,
1879
+ errors: [],
1880
+ protocol: ProxmoxBackupProtocol,
1881
+ retry: Retry.Retry,
1882
+ }));
1883
+
1884
+ export type GetTapeDriveStatusError = ProxmoxBackupOpError;
1885
+ /** Get drive/media status */
1886
+ export const getTapeDriveStatus: API.OperationMethod<
1887
+ GetTapeDriveStatusRequest,
1888
+ GetTapeDriveStatusResponse,
1889
+ GetTapeDriveStatusError,
1890
+ ProxmoxBackupOpContext
1891
+ > = /*@__PURE__*/ API.make(() => ({
1892
+ input: GetTapeDriveStatusRequest,
1893
+ output: GetTapeDriveStatusResponse,
1894
+ errors: [],
1895
+ protocol: ProxmoxBackupProtocol,
1896
+ retry: Retry.Retry,
1897
+ }));
1898
+
1899
+ export type GetTapeDriveVolumeStatisticsError = ProxmoxBackupOpError;
1900
+ /** Read Volume Statistics (SCSI log page 17h) */
1901
+ export const getTapeDriveVolumeStatistics: API.OperationMethod<
1902
+ GetTapeDriveVolumeStatisticsRequest,
1903
+ GetTapeDriveVolumeStatisticsResponse,
1904
+ GetTapeDriveVolumeStatisticsError,
1905
+ ProxmoxBackupOpContext
1906
+ > = /*@__PURE__*/ API.make(() => ({
1907
+ input: GetTapeDriveVolumeStatisticsRequest,
1908
+ output: GetTapeDriveVolumeStatisticsResponse,
1909
+ errors: [],
1910
+ protocol: ProxmoxBackupProtocol,
1911
+ retry: Retry.Retry,
1912
+ }));
1913
+
1914
+ export type GetTapeMediaError = ProxmoxBackupOpError;
1915
+ /** Directory index. */
1916
+ export const getTapeMedia: API.OperationMethod<
1917
+ GetTapeMediaRequest,
1918
+ GetTapeMediaResponse,
1919
+ GetTapeMediaError,
1920
+ ProxmoxBackupOpContext
1921
+ > = /*@__PURE__*/ API.make(() => ({
1922
+ input: GetTapeMediaRequest,
1923
+ output: GetTapeMediaResponse,
1924
+ errors: [],
1925
+ protocol: ProxmoxBackupProtocol,
1926
+ retry: Retry.Retry,
1927
+ }));
1928
+
1929
+ export type GetTapeMediaDestroyError = ProxmoxBackupOpError;
1930
+ /** Destroy media (completely remove from database) */
1931
+ export const getTapeMediaDestroy: API.OperationMethod<
1932
+ GetTapeMediaDestroyRequest,
1933
+ GetTapeMediaDestroyResponse,
1934
+ GetTapeMediaDestroyError,
1935
+ ProxmoxBackupOpContext
1936
+ > = /*@__PURE__*/ API.make(() => ({
1937
+ input: GetTapeMediaDestroyRequest,
1938
+ output: GetTapeMediaDestroyResponse,
1939
+ errors: [],
1940
+ protocol: ProxmoxBackupProtocol,
1941
+ retry: Retry.Retry,
1942
+ }));
1943
+
1944
+ export type GetTapeMediaListError = ProxmoxBackupOpError;
1945
+ /** Directory index. */
1946
+ export const getTapeMediaList: API.OperationMethod<
1947
+ GetTapeMediaListRequest,
1948
+ GetTapeMediaListResponse,
1949
+ GetTapeMediaListError,
1950
+ ProxmoxBackupOpContext
1951
+ > = /*@__PURE__*/ API.make(() => ({
1952
+ input: GetTapeMediaListRequest,
1953
+ output: GetTapeMediaListResponse,
1954
+ errors: [],
1955
+ protocol: ProxmoxBackupProtocol,
1956
+ retry: Retry.Retry,
1957
+ }));
1958
+
1959
+ export type GetTapeMediaListStatusError = ProxmoxBackupOpError;
1960
+ /** Get current media status */
1961
+ export const getTapeMediaListStatus: API.OperationMethod<
1962
+ GetTapeMediaListStatusRequest,
1963
+ GetTapeMediaListStatusResponse,
1964
+ GetTapeMediaListStatusError,
1965
+ ProxmoxBackupOpContext
1966
+ > = /*@__PURE__*/ API.make(() => ({
1967
+ input: GetTapeMediaListStatusRequest,
1968
+ output: GetTapeMediaListStatusResponse,
1969
+ errors: [],
1970
+ protocol: ProxmoxBackupProtocol,
1971
+ retry: Retry.Retry,
1972
+ }));
1973
+
1974
+ export type ListTapeBackupError = ProxmoxBackupOpError;
1975
+ /** List all tape backup jobs */
1976
+ export const listTapeBackup: API.OperationMethod<
1977
+ ListTapeBackupRequest,
1978
+ ListTapeBackupResponse,
1979
+ ListTapeBackupError,
1980
+ ProxmoxBackupOpContext
1981
+ > = /*@__PURE__*/ API.make(() => ({
1982
+ input: ListTapeBackupRequest,
1983
+ output: ListTapeBackupResponse,
1984
+ errors: [],
1985
+ protocol: ProxmoxBackupProtocol,
1986
+ retry: Retry.Retry,
1987
+ }));
1988
+
1989
+ export type ListTapeChangerError = ProxmoxBackupOpError;
1990
+ /** List changers */
1991
+ export const listTapeChanger: API.OperationMethod<
1992
+ ListTapeChangerRequest,
1993
+ ListTapeChangerResponse,
1994
+ ListTapeChangerError,
1995
+ ProxmoxBackupOpContext
1996
+ > = /*@__PURE__*/ API.make(() => ({
1997
+ input: ListTapeChangerRequest,
1998
+ output: ListTapeChangerResponse,
1999
+ errors: [],
2000
+ protocol: ProxmoxBackupProtocol,
2001
+ retry: Retry.Retry,
2002
+ }));
2003
+
2004
+ export type ListTapeChangerStatusError = ProxmoxBackupOpError;
2005
+ /** Get tape changer status */
2006
+ export const listTapeChangerStatus: API.OperationMethod<
2007
+ ListTapeChangerStatusRequest,
2008
+ ListTapeChangerStatusResponse,
2009
+ ListTapeChangerStatusError,
2010
+ ProxmoxBackupOpContext
2011
+ > = /*@__PURE__*/ API.make(() => ({
2012
+ input: ListTapeChangerStatusRequest,
2013
+ output: ListTapeChangerStatusResponse,
2014
+ errors: [],
2015
+ protocol: ProxmoxBackupProtocol,
2016
+ retry: Retry.Retry,
2017
+ }));
2018
+
2019
+ export type ListTapeDriveError = ProxmoxBackupOpError;
2020
+ /** List drives */
2021
+ export const listTapeDrive: API.OperationMethod<
2022
+ ListTapeDriveRequest,
2023
+ ListTapeDriveResponse,
2024
+ ListTapeDriveError,
2025
+ ProxmoxBackupOpContext
2026
+ > = /*@__PURE__*/ API.make(() => ({
2027
+ input: ListTapeDriveRequest,
2028
+ output: ListTapeDriveResponse,
2029
+ errors: [],
2030
+ protocol: ProxmoxBackupProtocol,
2031
+ retry: Retry.Retry,
2032
+ }));
2033
+
2034
+ export type ListTapeDriveCartridgeMemoryError = ProxmoxBackupOpError;
2035
+ /** Read Cartridge Memory (Medium auxiliary memory attributes) */
2036
+ export const listTapeDriveCartridgeMemory: API.OperationMethod<
2037
+ ListTapeDriveCartridgeMemoryRequest,
2038
+ ListTapeDriveCartridgeMemoryResponse,
2039
+ ListTapeDriveCartridgeMemoryError,
2040
+ ProxmoxBackupOpContext
2041
+ > = /*@__PURE__*/ API.make(() => ({
2042
+ input: ListTapeDriveCartridgeMemoryRequest,
2043
+ output: ListTapeDriveCartridgeMemoryResponse,
2044
+ errors: [],
2045
+ protocol: ProxmoxBackupProtocol,
2046
+ retry: Retry.Retry,
2047
+ }));
2048
+
2049
+ export type ListTapeDriveInventoryError = ProxmoxBackupOpError;
2050
+ /** List known media labels (Changer Inventory) Note: Only useful for drives with associated changer device. This method queries the changer to get a list of media labels. Note: This updates the media online status. */
2051
+ export const listTapeDriveInventory: API.OperationMethod<
2052
+ ListTapeDriveInventoryRequest,
2053
+ ListTapeDriveInventoryResponse,
2054
+ ListTapeDriveInventoryError,
2055
+ ProxmoxBackupOpContext
2056
+ > = /*@__PURE__*/ API.make(() => ({
2057
+ input: ListTapeDriveInventoryRequest,
2058
+ output: ListTapeDriveInventoryResponse,
2059
+ errors: [],
2060
+ protocol: ProxmoxBackupProtocol,
2061
+ retry: Retry.Retry,
2062
+ }));
2063
+
2064
+ export type ListTapeMediaContentError = ProxmoxBackupOpError;
2065
+ /** List media content */
2066
+ export const listTapeMediaContent: API.OperationMethod<
2067
+ ListTapeMediaContentRequest,
2068
+ ListTapeMediaContentResponse,
2069
+ ListTapeMediaContentError,
2070
+ ProxmoxBackupOpContext
2071
+ > = /*@__PURE__*/ API.make(() => ({
2072
+ input: ListTapeMediaContentRequest,
2073
+ output: ListTapeMediaContentResponse,
2074
+ errors: [],
2075
+ protocol: ProxmoxBackupProtocol,
2076
+ retry: Retry.Retry,
2077
+ }));
2078
+
2079
+ export type ListTapeMediaListError = ProxmoxBackupOpError;
2080
+ /** List pool media */
2081
+ export const listTapeMediaList: API.OperationMethod<
2082
+ ListTapeMediaListRequest,
2083
+ ListTapeMediaListResponse,
2084
+ ListTapeMediaListError,
2085
+ ProxmoxBackupOpContext
2086
+ > = /*@__PURE__*/ API.make(() => ({
2087
+ input: ListTapeMediaListRequest,
2088
+ output: ListTapeMediaListResponse,
2089
+ errors: [],
2090
+ protocol: ProxmoxBackupProtocol,
2091
+ retry: Retry.Retry,
2092
+ }));
2093
+
2094
+ export type ListTapeMediaMediaSetsError = ProxmoxBackupOpError;
2095
+ /** List Media sets */
2096
+ export const listTapeMediaMediaSets: API.OperationMethod<
2097
+ ListTapeMediaMediaSetsRequest,
2098
+ ListTapeMediaMediaSetsResponse,
2099
+ ListTapeMediaMediaSetsError,
2100
+ ProxmoxBackupOpContext
2101
+ > = /*@__PURE__*/ API.make(() => ({
2102
+ input: ListTapeMediaMediaSetsRequest,
2103
+ output: ListTapeMediaMediaSetsResponse,
2104
+ errors: [],
2105
+ protocol: ProxmoxBackupProtocol,
2106
+ retry: Retry.Retry,
2107
+ }));
2108
+
2109
+ export type ListTapeScanChangersError = ProxmoxBackupOpError;
2110
+ /** Scan for SCSI tape changers */
2111
+ export const listTapeScanChangers: API.OperationMethod<
2112
+ ListTapeScanChangersRequest,
2113
+ ListTapeScanChangersResponse,
2114
+ ListTapeScanChangersError,
2115
+ ProxmoxBackupOpContext
2116
+ > = /*@__PURE__*/ API.make(() => ({
2117
+ input: ListTapeScanChangersRequest,
2118
+ output: ListTapeScanChangersResponse,
2119
+ errors: [],
2120
+ protocol: ProxmoxBackupProtocol,
2121
+ retry: Retry.Retry,
2122
+ }));
2123
+
2124
+ export type ListTapeScanDrivesError = ProxmoxBackupOpError;
2125
+ /** Scan tape drives */
2126
+ export const listTapeScanDrives: API.OperationMethod<
2127
+ ListTapeScanDrivesRequest,
2128
+ ListTapeScanDrivesResponse,
2129
+ ListTapeScanDrivesError,
2130
+ ProxmoxBackupOpContext
2131
+ > = /*@__PURE__*/ API.make(() => ({
2132
+ input: ListTapeScanDrivesRequest,
2133
+ output: ListTapeScanDrivesResponse,
2134
+ errors: [],
2135
+ protocol: ProxmoxBackupProtocol,
2136
+ retry: Retry.Retry,
2137
+ }));
2138
+
2139
+ export type MoveTapeMediaError = ProxmoxBackupOpError;
2140
+ /** Change Tape location to vault (if given), or offline. */
2141
+ export const moveTapeMedia: API.OperationMethod<
2142
+ MoveTapeMediaRequest,
2143
+ MoveTapeMediaResponse,
2144
+ MoveTapeMediaError,
2145
+ ProxmoxBackupOpContext
2146
+ > = /*@__PURE__*/ API.make(() => ({
2147
+ input: MoveTapeMediaRequest,
2148
+ output: MoveTapeMediaResponse,
2149
+ errors: [],
2150
+ protocol: ProxmoxBackupProtocol,
2151
+ retry: Retry.Retry,
2152
+ }));
2153
+
2154
+ export type PutTapeDriveCleanError = ProxmoxBackupOpError;
2155
+ /** Clean drive */
2156
+ export const putTapeDriveClean: API.OperationMethod<
2157
+ PutTapeDriveCleanRequest,
2158
+ PutTapeDriveCleanResponse,
2159
+ PutTapeDriveCleanError,
2160
+ ProxmoxBackupOpContext
2161
+ > = /*@__PURE__*/ API.make(() => ({
2162
+ input: PutTapeDriveCleanRequest,
2163
+ output: PutTapeDriveCleanResponse,
2164
+ errors: [],
2165
+ protocol: ProxmoxBackupProtocol,
2166
+ retry: Retry.Retry,
2167
+ }));
2168
+
2169
+ export type PutTapeDriveExportMediaError = ProxmoxBackupOpError;
2170
+ /** Export media with specified label */
2171
+ export const putTapeDriveExportMedia: API.OperationMethod<
2172
+ PutTapeDriveExportMediaRequest,
2173
+ PutTapeDriveExportMediaResponse,
2174
+ PutTapeDriveExportMediaError,
2175
+ ProxmoxBackupOpContext
2176
+ > = /*@__PURE__*/ API.make(() => ({
2177
+ input: PutTapeDriveExportMediaRequest,
2178
+ output: PutTapeDriveExportMediaResponse,
2179
+ errors: [],
2180
+ protocol: ProxmoxBackupProtocol,
2181
+ retry: Retry.Retry,
2182
+ }));
2183
+
2184
+ export type PutTapeDriveInventoryError = ProxmoxBackupOpError;
2185
+ /** Update inventory Note: Only useful for drives with associated changer device. This method queries the changer to get a list of media labels. It then loads any unknown media into the drive, reads the label, and store the result to the media database. If `catalog` is true, also tries to restore the catalog from tape. Note: This updates the media online status. */
2186
+ export const putTapeDriveInventory: API.OperationMethod<
2187
+ PutTapeDriveInventoryRequest,
2188
+ PutTapeDriveInventoryResponse,
2189
+ PutTapeDriveInventoryError,
2190
+ ProxmoxBackupOpContext
2191
+ > = /*@__PURE__*/ API.make(() => ({
2192
+ input: PutTapeDriveInventoryRequest,
2193
+ output: PutTapeDriveInventoryResponse,
2194
+ errors: [],
2195
+ protocol: ProxmoxBackupProtocol,
2196
+ retry: Retry.Retry,
2197
+ }));
2198
+
2199
+ export type RestoreTapeError = ProxmoxBackupOpError;
2200
+ /** Restore data from media-set. Namespaces will be automatically created if necessary. */
2201
+ export const restoreTape: API.OperationMethod<
2202
+ RestoreTapeRequest,
2203
+ RestoreTapeResponse,
2204
+ RestoreTapeError,
2205
+ ProxmoxBackupOpContext
2206
+ > = /*@__PURE__*/ API.make(() => ({
2207
+ input: RestoreTapeRequest,
2208
+ output: RestoreTapeResponse,
2209
+ errors: [],
2210
+ protocol: ProxmoxBackupProtocol,
2211
+ retry: Retry.Retry,
2212
+ }));
2213
+
2214
+ export type RestoreTapeDriveKeyError = ProxmoxBackupOpError;
2215
+ /** Try to restore a tape encryption key */
2216
+ export const restoreTapeDriveKey: API.OperationMethod<
2217
+ RestoreTapeDriveKeyRequest,
2218
+ RestoreTapeDriveKeyResponse,
2219
+ RestoreTapeDriveKeyError,
2220
+ ProxmoxBackupOpContext
2221
+ > = /*@__PURE__*/ API.make(() => ({
2222
+ input: RestoreTapeDriveKeyRequest,
2223
+ output: RestoreTapeDriveKeyResponse,
2224
+ errors: [],
2225
+ protocol: ProxmoxBackupProtocol,
2226
+ retry: Retry.Retry,
2227
+ }));
2228
+
2229
+ export type TransferTapeChangerError = ProxmoxBackupOpError;
2230
+ /** Transfers media from one slot to another */
2231
+ export const transferTapeChanger: API.OperationMethod<
2232
+ TransferTapeChangerRequest,
2233
+ TransferTapeChangerResponse,
2234
+ TransferTapeChangerError,
2235
+ ProxmoxBackupOpContext
2236
+ > = /*@__PURE__*/ API.make(() => ({
2237
+ input: TransferTapeChangerRequest,
2238
+ output: TransferTapeChangerResponse,
2239
+ errors: [],
2240
+ protocol: ProxmoxBackupProtocol,
2241
+ retry: Retry.Retry,
2242
+ }));
2243
+
2244
+ export type UpdateTapeBackupError = ProxmoxBackupOpError;
2245
+ /** Runs a tape backup job manually. */
2246
+ export const updateTapeBackup: API.OperationMethod<
2247
+ UpdateTapeBackupRequest,
2248
+ UpdateTapeBackupResponse,
2249
+ UpdateTapeBackupError,
2250
+ ProxmoxBackupOpContext
2251
+ > = /*@__PURE__*/ API.make(() => ({
2252
+ input: UpdateTapeBackupRequest,
2253
+ output: UpdateTapeBackupResponse,
2254
+ errors: [],
2255
+ protocol: ProxmoxBackupProtocol,
2256
+ retry: Retry.Retry,
2257
+ }));