// @project The CERN Tape Archive (CTA)
// @brief CTA Frontend XRootD API definition
// @copyright Copyright 2017 CERN
// @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 .
syntax = "proto3";
package cta.xrd;
import "cta_admin.proto";
import "cta_eos.proto";
//
// Requests sent to the CTA Frontend
//
message Request {
oneof request {
cta.eos.Notification notification = 1; //< EOS WFE Notification
cta.admin.AdminCmd admincmd = 2; //< CTA Admin Command
}
string client_cta_version = 3; //< Client CTA version
string client_xrootd_ssi_protobuf_interface_version = 4; // Client xrootd-ssi-protobuf-interface version
}
//
// Metadata responses sent by the CTA Frontend
//
message Response {
enum ResponseType {
RSP_INVALID = 0; //< Response type was not set
RSP_SUCCESS = 1; //< Request is valid and was accepted for processing
RSP_ERR_PROTOBUF = 2; //< Framework error caused by Google Protocol Buffers layer
RSP_ERR_CTA = 3; //< Server error reported by CTA Frontend
RSP_ERR_USER = 4; //< User request is invalid
}
ResponseType type = 1; //< Encode the type of this response
map xattr = 2; //< xattribute map
string message_txt = 3; //< Optional response message text
cta.admin.HeaderType show_header = 4; //< Type of header to display (for stream responses)
}
//
// Stream/Data responses sent by the CTA Frontend
//
// Note: enum values for not-yet-implemented stream responses are reserved in advance. This allows us
// to implement them on a case-by-case basis without needing to recompile all the code that uses
// these protobufs.
//
message Data {
oneof data {
cta.admin.AdminLsItem adls_item = 1;
cta.admin.ArchiveFileLsItem afls_item = 2; //< Data for a single archive file
cta.admin.ArchiveFileLsSummary afls_summary = 3; //< Summary line for archive files
cta.admin.ArchiveRouteLsItem arls_item = 4; //< Data for a single archive route
cta.admin.DriveLsItem drls_item = 5; //< Data for a single drive
cta.admin.FailedRequestLsItem frls_item = 6; //< Data for a single failed request
cta.admin.FailedRequestLsSummary frls_summary = 7; //< Summary line for failed requests
cta.admin.GroupMountRuleLsItem gmrls_item = 8; //< Data for a single group mount rule
cta.admin.ListPendingArchivesItem lpa_item = 9; //< Data for a single pending archive file
cta.admin.ListPendingArchivesSummary lpa_summary = 10; //< Summary line for pending archive files
cta.admin.ListPendingRetrievesItem lpr_item = 11; //< Data for a single pending retreive file
cta.admin.ListPendingRetrievesSummary lpr_summary = 12; //< Summary line for pending retrieve files
cta.admin.LogicalLibraryLsItem llls_item = 13; //< Data for a single logical library
cta.admin.MountPolicyLsItem mpls_item = 14; //< Data for a single mount policy
cta.admin.RepackLsItem rels_item = 15; //< Data for a single repack request
cta.admin.RequesterMountRuleLsItem rmrls_item = 16; //< Data for a single requester mount rule
cta.admin.ShowQueuesItem sq_item = 17; //< Data for a single queue summary
cta.admin.StorageClassLsItem scls_item = 18; //< Data for a single storage class
cta.admin.TapeLsItem tals_item = 19; //< Data for a single tape
cta.admin.TapePoolLsItem tpls_item = 20; //< Data for a single tapepool
cta.admin.DiskSystemLsItem dsls_item = 21; //< Data for a single disksystem
cta.admin.TapeFileLsItem tfls_item = 22; //< Data for a single tape file
cta.admin.VirtualOrganizationLsItem vols_item = 23; //< Data for a single virtual organization
cta.admin.VersionItem version_item = 24; //< Data for a single version item
cta.admin.MediaTypeLsItem mtls_item = 25; //< Data for a single tape media type
// 26 deprecated
cta.admin.RecycleTapeFileLsItem rtfls_item = 27; //< Data for a single recycle tape file item
cta.admin.ActivityMountRuleLsItem amrls_item = 28; //< Data for a single activity mount rule
cta.admin.DiskInstanceLsItem dils_item = 29; //< Data for a single disk instance
cta.admin.DiskInstanceSpaceLsItem disls_item = 30; //< Data for a single disk instance space
cta.admin.SchedulingInfoLsItem sils_item = 31; //< Data for a single scheduling info item
}
}
//
// Alert Messages
//
message Alert {
enum Audience {
LOG = 0; //< Message intended for client log
ENDUSER = 1; //< Message intended for end user
}
Audience audience = 1; //< The intended audience of the message
string message_txt = 2; //< Text of the message
}