/  Yamcs HTTP API  /  File Transfer  /  Subscribe Transfers

Subscribe TransfersΒΆ

Subscribe to transfer updates

WebSocket

This method requires to upgrade an HTTP connection to WebSocket. See details on how Yamcs uses WebSocket.

Use the message type file-transfers.

Input Type

interface SubscribeTransfersRequest {

  // Yamcs instance name
  instance: string;

  // File transfer service name
  serviceName: string;

  // If true, send info on all currently ongoing transfers,
  // as well as any future updates (recommended).
  //
  // For legacy reasons, the default is ``false``, which will
  // send also finished transfers upon subscription. This behaviour
  // is due for removal in a future release (if you want to receive
  // past transfers, do a GET request).
  ongoingOnly: boolean;
}

Output Type

interface TransferInfo {

  //unique identifier assigned by the file transfer service
  id: string;  // String decimal

  //when the transfer has started. Note that this will not be set for QUEUED transfers.
  startTime: string;  // RFC 3339 timestamp
  state: TransferState;
  bucket: string;
  objectName: string;
  remotePath: string;
  direction: TransferDirection;
  totalSize: string;  // String decimal
  sizeTransferred: string;  // String decimal

  //reliable = true -> class 2 transfer
  //reliable = false -> class 1 transfer
  reliable: boolean;

  //in case the transcation is failed, this provides more information
  failureReason: string;

  // valid for CFDP: transaction id;
  // for the incoming transfers it is assigned by the remote peer so therefore might not be unique
  transactionId: TransactionId;

  // when the transfer has been created.
  creationTime: string;  // RFC 3339 timestamp

  // depending on the implementation, can mean normal file transfer, directory listing request, file download request, etc.
  transferType: string;

  // Local entity, may be empty if there is only one such entity.
  localEntity: EntityInfo;

  // Remote entity, may be empty if there is only one such entity.
  remoteEntity: EntityInfo;
}

Related Types

interface TransactionId {
  sequenceNumber: number;
  initiatorEntity: string;  // String decimal
}

interface EntityInfo {
  name: string;
  id: string;  // String decimal
}

enum TransferState {
  RUNNING = "RUNNING",
  PAUSED = "PAUSED",
  FAILED = "FAILED",
  COMPLETED = "COMPLETED",
  QUEUED = "QUEUED",
  CANCELLING = "CANCELLING",
}

enum TransferDirection {
  UPLOAD = "UPLOAD",
  DOWNLOAD = "DOWNLOAD",
}