cta_admin.proto 24 KB
Newer Older
1
2
// @project        The CERN Tape Archive (CTA)
// @brief          CTA Admin Command API definition
3
// @copyright      Copyright 2019 CERN
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// @license        This program is free software: you can redistribute it and/or modify
//                 it under the terms of the GNU General Public License as published by
//                 the Free Software Foundation, either version 3 of the License, or
//                 (at your option) any later version.
//
//                 This program is distributed in the hope that it will be useful,
//                 but WITHOUT ANY WARRANTY; without even the implied warranty of
//                 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//                 GNU General Public License for more details.
//
//                 You should have received a copy of the GNU General Public License
//                 along with this program.  If not, see <http://www.gnu.org/licenses/>.

syntax  = "proto3";
package cta.admin;

import "cta_common.proto";

//
// Command Options
//

message OptionBoolean {
  enum Key {
    DISABLED                           =  0;
    ENCRYPTED                          =  1;
    FORCE                              =  2;
    FULL                               =  3;
32
    READ_ONLY                          =  4;
33
    FROM_CASTOR                        =  5;
34
35

    // hasOption options
36
37
    ALL                                =  6;
    CHECK_CHECKSUM                     =  7;
38
    EXTENDED                           =  8;    // DEPRECATED
39
40
41
42
43
44
    JUSTARCHIVE                        =  9;
    JUSTADDCOPIES                      = 10;
    JUSTMOVE                           = 11;
    JUSTRETRIEVE                       = 12;
    SHOW_LOG_ENTRIES                   = 13;
    SUMMARY                            = 14;
Michael Davis's avatar
Michael Davis committed
45
    LOOKUP_NAMESPACE                   = 15;
Michael Davis's avatar
Michael Davis committed
46
    SHOW_SUPERSEDED                    = 16;
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
  }

  Key key                              =  1;
  bool value                           =  2;
}

message OptionUInt64 {
  enum Key {
    ARCHIVE_FILE_ID                    =  0;
    ARCHIVE_PRIORITY                   =  1;
    RETRIEVE_PRIORITY                  =  2;
    CAPACITY                           =  3;
    COPY_NUMBER                        =  4;
    FIRST_FSEQ                         =  5;
    FILE_SIZE                          =  6;
62
63
64
65
66
67
68
69
70
    GID                                =  7;
    LAST_FSEQ                          =  8;
    MAX_DRIVES_ALLOWED                 =  9;
    MIN_ARCHIVE_REQUEST_AGE            = 10;
    MIN_RETRIEVE_REQUEST_AGE           = 11;
    NUMBER_OF_FILES                    = 12;
    OWNER_UID                          = 13;
    PARTIAL                            = 14;
    PARTIAL_TAPES_NUMBER               = 15;
71
72
    REFRESH_INTERVAL                   = 16;
    TARGETED_FREE_SPACE                = 17;
73
74
    READ_MOUNT_COUNT                   = 18;
    WRITE_MOUNT_COUNT                  = 19;
75
    SLEEP_TIME                         = 20;
76
77
78
79
80
    MAX_LPOS                           = 21;
    MIN_LPOS                           = 22;
    NUMBER_OF_WRAPS                    = 23;
    PRIMARY_DENSITY_CODE               = 24;
    SECONDARY_DENSITY_CODE             = 25;
81
82
83
84
85
86
87
88
89
90
91
  }

  Key key                              =  1;
  uint64 value                         =  2;
}

message OptionString {
  enum Key {
    COMMENT                            =  0;
    DISKID                             =  1;
    DRIVE                              =  2;
92
    ENCRYPTION_KEY_NAME                =  3;
93
    FILENAME                           =  4;
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
    HOSTNAME                           =  5;
    INPUT                              =  6;
    INSTANCE                           =  7;
    LOGICAL_LIBRARY                    =  8;
    MOUNT_POLICY                       =  9;
    OUTPUT                             = 10;
    PATH                               = 11;
    STORAGE_CLASS                      = 12;
    TAPE_POOL                          = 13;
    USERNAME                           = 14;
    VID                                = 15;
    VO                                 = 16;
    BUFFERURL                          = 17;
    MEDIA_TYPE                         = 18;
    VENDOR                             = 19;
109
    SUPPLY                             = 20;
110
111
112
    DISK_SYSTEM                        = 21;
    FILE_REGEXP                        = 22;
    FREE_SPACE_QUERY_URL               = 23;
113
    REASON                             = 24;
114
    CARTRIDGE                          = 25;
115
    FXID                               = 26;
116
117
118
119
120
121
  }

  Key key                              =  1;
  string value                         =  2;
}

122
123
124
message OptionStrList {
  enum Key {
    VID                                =  0;
125
    FILE_ID                            =  1;
126
127
128
129
130
131
  }

  Key key                              =  1;
  repeated string item                 =  2;
}

132
133
134
135
136
137
138
139
//
// CTA Admin Command API
//

message AdminCmd {
  enum Cmd {
    CMD_NONE                           =  0;
    CMD_ADMIN                          =  1;
140
    CMD_ARCHIVEFILE                    =  2;    // DEPRECATED
141
142
    CMD_ARCHIVEROUTE                   =  3;
    CMD_DRIVE                          =  4;
143
144
    CMD_FAILEDREQUEST                  =  5;
    CMD_GROUPMOUNTRULE                 =  6;
145
146
    CMD_LISTPENDINGARCHIVES            =  7;    // DEPRECATED
    CMD_LISTPENDINGRETRIEVES           =  8;    // DEPRECATED
147
148
149
150
151
    CMD_LOGICALLIBRARY                 =  9;
    CMD_MOUNTPOLICY                    = 10;
    CMD_REPACK                         = 11;
    CMD_REQUESTERMOUNTRULE             = 12;
    CMD_SHOWQUEUES                     = 13;
Michael Davis's avatar
Michael Davis committed
152
153
154
    CMD_STORAGECLASS                   = 14;
    CMD_TAPE                           = 15;
    CMD_TAPEPOOL                       = 16;
155
    CMD_DISKSYSTEM                     = 17;
Michael Davis's avatar
Michael Davis committed
156
    CMD_TAPEFILE                       = 18;
157
    CMD_VIRTUALORGANIZATION            = 19;
158
    CMD_VERSION                        = 20;
159
    CMD_MEDIATYPE                      = 21;
160
    CMD_SCHEDULINGINFOS                = 22;
161
162
163
164
165
  }
  enum SubCmd {
    SUBCMD_NONE                        =  0;
    SUBCMD_ADD                         =  1;
    SUBCMD_CH                          =  2;
Michael Davis's avatar
Michael Davis committed
166
167
168
169
170
171
172
173
174
    SUBCMD_ERR                         =  3;
    SUBCMD_LABEL                       =  4;
    SUBCMD_LS                          =  5;
    SUBCMD_RECLAIM                     =  6;
    SUBCMD_RM                          =  7;
    SUBCMD_UP                          =  8;
    SUBCMD_DOWN                        =  9;
    SUBCMD_RETRY                       = 10;
    SUBCMD_SHOW                        = 11;
175
176
  }

177
178
179
180
181
182
  Cmd cmd                                = 1;    //< The primary command
  SubCmd subcmd                          = 2;    //< The secondary command
  repeated OptionBoolean option_bool     = 3;    //< List of boolean options
  repeated OptionUInt64  option_uint64   = 4;    //< List of integer options
  repeated OptionString  option_str      = 5;    //< List of string options
  repeated OptionStrList option_str_list = 6;    //< List of string list options
183
184
}

185
186
187
188
189
190
//
// Stream response header type
//

enum HeaderType {
  NONE                         =  0;    //< No header (default)
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
  ADMIN_LS                     =  1;    //< cta-admin admin ls
  ARCHIVEFILE_LS               =  2;    //< cta-admin archivefile ls
  ARCHIVEFILE_LS_SUMMARY       =  3;    //< cta-admin archivefile ls -S
  ARCHIVEROUTE_LS              =  4;    //< cta-admin archiveroute ls
  DRIVE_LS                     =  5;    //< cta-admin drive ls
  FAILEDREQUEST_LS             =  6;    //< cta-admin failedrequest ls
  FAILEDREQUEST_LS_SUMMARY     =  7;    //< cta-admin failedrequest ls -S
  GROUPMOUNTRULE_LS            =  8;    //< cta-admin groupmountrule ls
  LISTPENDINGARCHIVES          =  9;    //< cta-admin listpendingarchives -x
  LISTPENDINGARCHIVES_SUMMARY  = 10;    //< cta-admin listpendingarchives
  LISTPENDINGRETRIEVES         = 11;    //< cta-admin listpendingretrieves -x
  LISTPENDINGRETRIEVES_SUMMARY = 12;    //< cta-admin listpendingretrieves
  LOGICALLIBRARY_LS            = 13;    //< cta-admin logicallibrary ls
  MOUNTPOLICY_LS               = 14;    //< cta-admin mountpolicy ls
  REPACK_LS                    = 15;    //< cta-admin repack ls
  REQUESTERMOUNTRULE_LS        = 16;    //< cta-admin requestermountrule ls
207
  SHOWQUEUES                   = 17;    //< cta-admin showqueues ls
208
209
210
  STORAGECLASS_LS              = 18;    //< cta-admin storageclass ls
  TAPE_LS                      = 19;    //< cta-admin ta ls
  TAPEPOOL_LS                  = 20;    //< cta-admin tapepool ls
211
  DISKSYSTEM_LS                = 21;    //< cta-admin disksystem ls
Michael Davis's avatar
Michael Davis committed
212
  TAPEFILE_LS                  = 22;    //< cta-admin tapefile ls
213
  VIRTUALORGANIZATION_LS       = 23;    //< cta-admin virtualorganization ls
214
  VERSION_CMD                  = 24;    //< cta-admin version (This can't be called VERSION as it clashes with an EOS macro)
215
  MEDIATYPE_LS                 = 25;    //< cta-admin mediatype ls
216
  SCHEDULINGINFOS_LS           = 26;    //< cta-admin schedulinginfos ls
217
218
}

219
//
220
// Stream response types
221
222
//

223
224
225
226
227
228
229
230
231
232
enum MountType {
  UNKNOWN_MOUNT_TYPE                        = 0;
  NO_MOUNT                                  = 1;
  ARCHIVE_FOR_USER                          = 2;
  ARCHIVE_FOR_REPACK                        = 3;
  ARCHIVE_ALL_TYPES                         = 4;
  RETRIEVE                                  = 5;
  LABEL                                     = 6;
}

233
enum RequestType {
234
235
236
237
238
239
240
241
242
243
  TOTAL                                     = 0;    //< Used for summary totals
  ARCHIVE_REQUEST                           = 1;    //< Archive request
  RETRIEVE_REQUEST                          = 2;    //< Retrieve request
}

message AdminLsItem {
  string user                               = 1;
  cta.common.EntryLog creation_log          = 2;
  cta.common.EntryLog last_modification_log = 3;
  string comment                            = 4;
244
245
}

246
message ArchiveFileLsItem {
247
248
249
  cta.common.ArchiveFile af                 = 1;
  cta.common.TapeFile tf                    = 2;
  uint64 copy_nb                            = 3;
250
}
251

252
message ArchiveFileLsSummary {
253
254
255
256
257
  uint64 total_files                        = 1;
  uint64 total_size                         = 2;
}

message ArchiveRouteLsItem {
258
259
260
261
262
263
  string storage_class                      = 1;
  uint32 copy_number                        = 2;
  string tapepool                           = 3;
  cta.common.EntryLog creation_log          = 4;
  cta.common.EntryLog last_modification_log = 5;
  string comment                            = 6;
Michael Davis's avatar
Michael Davis committed
264
265
266

  // DEPRECATED: will be removed
  string instance                           = 9999;
267
268
}

269
270
271
272
273
274
275
message DriveConfigItem {
  string category                  = 1;
  string key                       = 2;
  string value                     = 3;
  string source                    = 4;
}

276
message DriveLsItem {
277
  enum DriveStatus {
278
    UNKNOWN_DRIVE_STATUS                    =  0;
279
    DOWN                                    =  1;
280
281
282
283
284
285
286
287
288
289
290
291
    UP                                      =  2;
    PROBING                                 =  3;
    STARTING                                =  4;
    MOUNTING                                =  5;
    TRANSFERRING                            =  6;
    UNLOADING                               =  7;
    UNMOUNTING                              =  8;
    DRAINING_TO_DISK                        =  9;
    CLEANING_UP                             = 10;
    SHUTDOWN                                = 11;
  }

292
293
294
  string logical_library                    =  1;
  string drive_name                         =  2;
  string host                               =  3;
295
296
297
  DriveStatus desired_drive_state           =  4;
  MountType mount_type                      =  5;
  DriveStatus drive_status                  =  6;
298
299
300
301
  uint64 drive_status_since                 =  7;
  string vid                                =  8;
  string tapepool                           =  9;
  uint64 files_transferred_in_session       = 10;
302
303
  uint64 bytes_transferred_in_session       = 11;
  uint64 latest_bandwidth                   = 12;
304
305
  uint64 session_id                         = 13;
  uint64 time_since_last_update             = 14;
306
307
  uint64 current_priority                   = 15;
  string current_activity                   = 16;
308
  string cta_version                        = 17;
309
310
311
  string dev_file_name                      = 18;
  string raw_library_slot                   = 19;
  repeated DriveConfigItem drive_config     = 20;
312
313
  string comment                            = 21;
  string reason                             = 22;
314
315
}

316
message FailedRequestLsItem {
317
318
319
320
321
322
323
324
325
  string object_id                          = 1;    //< Address of the request in the objectstore
  RequestType request_type                  = 2;
  cta.common.RequesterId requester          = 3;
  cta.common.ArchiveFile af                 = 4;
  cta.common.TapeFile tf                    = 5;
  string tapepool                           = 6;    //< For archive requests only
  uint64 copy_nb                            = 7;
  uint32 totalretries                       = 8;
  repeated string failurelogs               = 9;
326
327
  uint32 totalreportretries                 = 10;
  repeated string reportfailurelogs         = 11;
328
329
330
}

message FailedRequestLsSummary {
331
332
333
334
335
336
337
  RequestType request_type                  = 1;
  uint64 total_files                        = 2;
  uint64 total_size                         = 3;
}

message GroupMountRuleLsItem {
  string disk_instance                      = 1;
338
  string group_mount_rule                   = 2;
339
340
341
  string mount_policy                       = 3;
  cta.common.EntryLog creation_log          = 4;
  cta.common.EntryLog last_modification_log = 5;
342
  string comment                            = 6;
343
344
}

345
message ListPendingArchivesItem {
346
347
348
349
  cta.common.ArchiveFile af                 = 1;
  cta.common.TapeFile tf                    = 2;
  uint64 copy_nb                            = 3;
  string tapepool                           = 4;
350
}
351

352
message ListPendingArchivesSummary {
353
354
355
  string tapepool                           = 1;
  uint64 total_files                        = 2;
  uint64 total_size                         = 3;
356
357
358
}

message ListPendingRetrievesItem {
359
360
361
  cta.common.ArchiveFile af                 = 1;
  cta.common.TapeFile tf                    = 2;
  uint64 copy_nb                            = 3;
362
}
363

364
message ListPendingRetrievesSummary {
365
  string vid                                = 1;
366
367
  uint64 total_files                        = 2;
  uint64 total_size                         = 3;
368
369
}

370
371
372
373
374
375
message LogicalLibraryLsItem {
  string name                               = 1;
  bool is_disabled                          = 2;
  cta.common.EntryLog creation_log          = 3;
  cta.common.EntryLog last_modification_log = 4;
  string comment                            = 5;
Cedric CAFFY's avatar
Cedric CAFFY committed
376
377
}

378
379
380
381
382
383
384
385
386
387
388
389
390
391
message MediaTypeLsItem {
  string name                               =  1;
  string cartridge                          =  2;
  uint64 capacity                           =  3;
  uint64 primary_density_code               =  4;
  uint64 secondary_density_code             =  5;
  uint64 number_of_wraps                    =  6;
  uint64 min_lpos                           =  7;
  uint64 max_lpos                           =  8;
  string comment                            =  9;
  cta.common.EntryLog creation_log          = 10;
  cta.common.EntryLog last_modification_log = 11;
}

392
393
394
395
396
397
398
399
400
401
message MountPolicyLsItem {
  string name                               = 1;
  uint64 archive_priority                   = 2;
  uint64 archive_min_request_age            = 3;
  uint64 retrieve_priority                  = 4;
  uint64 retrieve_min_request_age           = 5;
  uint64 max_drives_allowed                 = 6;
  cta.common.EntryLog creation_log          = 7;
  cta.common.EntryLog last_modification_log = 8;
  string comment                            = 9;
Cedric CAFFY's avatar
Cedric CAFFY committed
402
403
}

404
message RepackDestinationInfos{
405
406
407
  string vid                                = 1;
  uint64 files                              = 2;
  uint64 bytes                              = 3;
408
409
}

410
message RepackLsItem {
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
  string vid                                        =  1;
  string repack_buffer_url                          =  2;
  uint64 user_provided_files                        =  3;
  uint64 total_files_to_retrieve                    =  4;
  uint64 total_bytes_to_retrieve                    =  5;
  uint64 total_files_to_archive                     =  6;
  uint64 total_bytes_to_archive                     =  7;
  uint64 retrieved_files                            =  8;
  uint64 archived_files                             =  9;
  uint64 failed_to_retrieve_files                   = 10;
  uint64 failed_to_retrieve_bytes                   = 11;
  uint64 failed_to_archive_files                    = 12;
  uint64 failed_to_archive_bytes                    = 13;
  uint64 last_expanded_fseq                         = 14;
  string status                                     = 15;
  repeated RepackDestinationInfos destination_infos = 16;
Cedric CAFFY's avatar
Cedric CAFFY committed
427
428
}

429
430
message RequesterMountRuleLsItem {
  string disk_instance                      = 1;
431
  string requester_mount_rule               = 2;
432
433
  string mount_policy                       = 3;
  cta.common.EntryLog creation_log          = 4;
Cedric CAFFY's avatar
Cedric CAFFY committed
434
  cta.common.EntryLog last_modification_log = 5;
435
  string comment                            = 6;
Cedric CAFFY's avatar
Cedric CAFFY committed
436
437
}

438
message ShowQueuesItem {
439
  MountType mount_type                      =  1;
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
  string tapepool                           =  2;
  string logical_library                    =  3;
  string vid                                =  4;
  uint64 queued_files                       =  5;
  uint64 queued_bytes                       =  6;
  uint64 oldest_age                         =  7;
  uint64 priority                           =  8;
  uint64 min_age                            =  9;
  uint64 max_drives                         = 10;
  uint64 cur_mounts                         = 11;
  uint64 cur_files                          = 12;
  uint64 cur_bytes                          = 13;
  uint64 bytes_per_second                   = 14;
  uint64 next_mounts                        = 15;
  uint64 tapes_capacity                     = 16;
  uint64 tapes_files                        = 17;
  uint64 tapes_bytes                        = 18;
  uint64 full_tapes                         = 19;
  uint64 empty_tapes                        = 20;
  uint64 disabled_tapes                     = 21;
460
461
  uint64 rdonly_tapes                       = 22;
  uint64 writable_tapes                     = 23;
462
463
464
  bool sleeping_for_space                   = 24;
  uint64 sleep_start_time                   = 25;
  string disk_system_slept_for              = 26;
Cedric CAFFY's avatar
Cedric CAFFY committed
465
466
}

467
message StorageClassLsItem {
468
469
470
471
472
473
  string name                               = 1;
  uint64 nb_copies                          = 2;
  string vo                                 = 3;
  cta.common.EntryLog creation_log          = 4;
  cta.common.EntryLog last_modification_log = 5;
  string comment                            = 6;
Michael Davis's avatar
Michael Davis committed
474
475
476

  // DEPRECATED: will be removed
  string disk_instance                      = 9999;
Cedric CAFFY's avatar
Cedric CAFFY committed
477
478
}

479
480
481
482
483
484
485
message TapeLsItem {
  string vid                                =  1;
  string media_type                         =  2;
  string vendor                             =  3;
  string logical_library                    =  4;
  string tapepool                           =  5;
  string vo                                 =  6;
486
  string encryption_key_name                =  7;
487
488
489
490
491
  uint64 capacity                           =  8;
  uint64 occupancy                          =  9;
  uint64 last_fseq                          = 10;
  bool full                                 = 11;
  bool disabled                             = 12;
492
  bool rdonly                               = 13;
493
494
495
496
497
498
499
500
501
  bool from_castor                          = 14;
  uint64 read_mount_count                   = 15;
  uint64 write_mount_count                  = 16;
  cta.common.TapeLog label_log              = 17;
  cta.common.TapeLog last_written_log       = 18;
  cta.common.TapeLog last_read_log          = 19;
  cta.common.EntryLog creation_log          = 20;
  cta.common.EntryLog last_modification_log = 21;
  string comment                            = 22;
502
503
  uint64 nb_master_files                    = 23;
  uint64 master_data_in_bytes               = 24;
Cedric CAFFY's avatar
Cedric CAFFY committed
504
505
}

Michael Davis's avatar
Michael Davis committed
506
message TapeFileLsItem {
507
  message Checksum {
508
509
510
    common.ChecksumBlob.Checksum.Type type  = 1;       //< Checksum type
    string value                            = 2;       //< Checksum value, differs from cta.common.ChecksumBlob.Checksum.value
                                                       //< in that value is a decoded string not a byte array
511
512
  }
  message ArchiveFile {
513
514
515
516
517
    uint64 archive_id                       = 1;       //< Archive File ID
    string storage_class                    = 2;       //< Storage Class
    uint64 creation_time                    = 3;       //< Creation Time
    repeated Checksum checksum              = 4;       //< Array of checksums
    uint64 size                             = 5;       //< File size
518
519
  }
  message DiskFile {
520
521
522
523
    string disk_id                          = 1;       //< Disk file ID
    string disk_instance                    = 2;       //< Disk instance
    cta.common.OwnerId owner_id             = 3;       //< Owner user ID and group ID of the disk file
    string path                             = 4;       //< Path of the disk file
524
525
  }
  message TapeFile {
526
527
    string vid                              = 1;       //< Volume ID of the tape on which the file has been written
    uint32 copy_nb                          = 2;       //< Copy number
528
529
530
531
    uint64 block_id                         = 3;       //< The position of the file on tape: Logical Block ID
    uint64 f_seq                            = 4;       //< The position of the file on tape: File Sequence number
    uint64 superseded_by_f_seq              = 5;       //< The fSeq of the superseding tape file. Only valid if superseded_by_vid is not empty.
    string superseded_by_vid                = 6;       //< The Volume ID of the tape file superseding this one. Can be empty.
532
533
  }

534
535
536
  ArchiveFile af                            = 1;
  DiskFile df                               = 2;
  TapeFile tf                               = 3;
Michael Davis's avatar
Michael Davis committed
537
538
}

539
540
541
542
543
544
545
546
547
548
549
550
551
message TapePoolLsItem {
  string name                               =  1;
  string vo                                 =  2;
  uint64 num_tapes                          =  3;
  uint64 num_partial_tapes                  =  4;
  uint64 num_physical_files                 =  5;
  uint64 capacity_bytes                     =  6;
  uint64 data_bytes                         =  7;
  bool   encrypt                            =  8;
  string supply                             =  9;
  cta.common.EntryLog created               = 10;
  cta.common.EntryLog modified              = 11;
  string comment                            = 12;
Cedric CAFFY's avatar
Cedric CAFFY committed
552
553
}

554
555
556
557
558
559
message DiskSystemLsItem {
  string name                               =  1;
  string file_regexp                        =  2;
  string free_space_query_url               =  3;
  uint64 refresh_interval                   =  4;
  uint64 targeted_free_space                =  5;
560
  uint64 sleep_time                         =  9;
561
562
563
564
  cta.common.EntryLog creation_log          =  6;
  cta.common.EntryLog last_modification_log =  7;
  string comment                            =  8;
}
565
566
567
568
569
570
571

message VirtualOrganizationLsItem {
  string name                               =  1;
  cta.common.EntryLog creation_log          =  2;
  cta.common.EntryLog last_modification_log =  3;
  string comment                            =  4;
}
572
573
574
575
576
577
578
579
580
581
582

message Version{
  string cta_version = 1;
  string xrootd_ssi_protobuf_interface_version = 2;
}

message VersionItem {
  Version client_version = 1;
  Version server_version = 2;
  string catalogue_connection_string = 3;
  string catalogue_version = 4;
583
}
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609

message PotentialMount {
  string vid = 1;
  string tapepool = 2;
  string vo = 3;
  string media_type = 4;
  string vendor = 5;
  MountType mount_type = 6;
  uint64 tape_capacity_in_bytes = 7;
  uint64 mount_policy_priority = 8;
  uint64 mount_policy_min_request_age = 9;
  uint64 mount_policy_max_drives_allowed = 10;
  uint64 files_queued = 11;
  uint64 bytes_queued = 12;
  uint64 oldest_job_start_time = 13;
  bool sleeping_mount = 14;
  uint64 sleep_time = 15;
  string disk_system_slept_for = 16;
  uint32 mount_count = 17;
  string logical_library = 18; 
}

message SchedulingInfosLsItem {
  string logical_library = 1;
  repeated PotentialMount potential_mounts = 2;
}