$schema: http://support.riverbed.com/apis/service_def/2.2 description: User filesystem API id: http://support.riverbed.com/apis/npm.filesystem/1.0 name: npm.filesystem provider: riverbed resources: access_rights: additionalProperties: false description: Access rights associated to a file system resource. links: get: method: GET response: {$ref: '#/resources/access_rights'} self: {path: '$/access_rights/{+id}'} set: method: PUT request: {$ref: '#/resources/access_rights'} response: {$ref: '#/resources/access_rights'} properties: effective: description: Provides a summary of user's access to the object. This is a read-only type. properties: access_right: description: Access right type. enum: [NONE, READ_ONLY, READ_WRITE] readOnly: true tags: {cpptype: access_right_type} type: string required: [access_right] type: object id: {description: Resource unique identifier., type: string} owner: {description: Owner of the object., readOnly: true, type: string} public: description: Indicates if an object/resource is public. All public objects/resources are read_only. properties: access_right: description: Access right type. enum: [READ_ONLY] tags: {cpptype: pub_access_right_type} type: string required: [access_right] type: object shared: description: Property read_only - Specifies a list of roles that have read_only access to the resource/object. Property read_write - Specifies a list of roles that have read_write access to the resource/object. properties: read_only: {$ref: '#/types/roles_obj'} read_write: {$ref: '#/types/roles_obj'} type: object type: object checksum: additionalProperties: false description: Status of a checksum computation on a trace file. links: create: method: POST response: {$ref: '#/types/async_task_status'} delete: {method: DELETE} get: method: GET response: {$ref: '#/resources/checksum'} self: {path: '$/checksum/{+id}'} status: description: Returns the status of the checksum computation task. method: GET path: $/checksum_status/{+id} response: {$ref: '#/types/async_task_status'} properties: id: {description: Resource unique identifier., type: string} method: description: Checksum algorithm used. enum: [SHA256] type: string value: {description: Trace file's checksum., type: string} required: [id, value, method] type: object file: additionalProperties: false description: File or directory object. links: copy: description: Copies a file or a directory to the destination path. method: POST path: $/fileop/copy/{+id} request: additionalProperties: false description: Information required to copy a filesystem item. properties: destination: {description: Resource's destination id., type: string} required: [destination] type: object create: {method: POST} delete: {method: DELETE} download: {description: Downloads a file object., method: GET, path: '$/fileop/download/{+id}'} get: method: GET path: template: $/fs/{+id}{?access,access_rights,owner} vars: access: description: access informaton for file. enum: [all, private, shared, public] type: string access_rights: description: permission granted for login user for the file. enum: [all, read_only, read_write] type: string owner: {type: string} response: {$ref: '#/resources/file'} move: description: Moves a file or a directory to the destination path. method: POST path: $/fileop/move/{+id} request: additionalProperties: false description: Information required to move a filesystem item. properties: destination: {description: Resource's destination id., type: string} required: [destination] type: object self: {path: '$/fs/{+id}'} properties: dir: {$ref: '#/types/file_system_dir'} file: {$ref: '#/resources/virtualfile'} id: {description: Unique path/name for the file/directory., type: string} type: description: Type discriminator for filesystem items. enum: [FILE, DIRECTORY] type: string required: [id, type] type: object filesystem: additionalProperties: false description: Collection of directories on the device. links: get: method: GET path: template: $/fs{?access,access_rights,owner} vars: access: description: access informaton for file. enum: [all, private, shared, public] type: string access_rights: description: permission granted for login user for the file. enum: [all, read_only, read_write] type: string owner: {type: string} response: {$ref: '#/resources/filesystem'} self: {path: $/fs} properties: items: description: Array of directories. items: {$ref: '#/types/file_system_dir'} type: array type: object index: additionalProperties: false description: Status of a microflow index on a trace file. links: create: method: POST response: {$ref: '#/types/async_task_status'} delete: {method: DELETE} get: method: GET response: {$ref: '#/resources/index'} self: {path: '$/index/{+id}'} status: description: Returns the status of the indexing creation task. method: GET path: $/index_status/{+id} response: {$ref: '#/types/async_task_status'} properties: error: {$ref: '#/types/async_error'} id: {description: Index unique identifier., type: string} size: description: Size of index on the OS file system. tags: {cpptype: uint64} type: integer stats: additionalProperties: false description: Collection of microflow index statistics. properties: items: description: Array of microflow index statistics. items: {$ref: '#/types/index_info_stat'} type: array type: object status: description: Running state of an index. enum: [DONE, RUNNING, STOPPED, ERROR] type: string required: [id, status, stats] type: object timeskew: additionalProperties: false description: Status of a timeskew estimate on a multi-segment virtual file. links: create: method: POST path: template: $/timeskew/{+id}{?packet_count} vars: packet_count: tags: {cpptype: uint64, type: integer} response: {$ref: '#/types/async_task_status'} delete: {method: DELETE} get: method: GET response: {$ref: '#/resources/timeskew'} self: {path: '$/timeskew/{+id}'} status: description: Returns the status of the timeskew estimate task. method: GET path: $/timeskew_status/{+id} response: {$ref: '#/types/async_task_status'} properties: id: {description: Resource unique identifier., type: string} results: additionalProperties: false description: Collection of linked sources details. properties: items: description: Array of linked sources. items: {$ref: '#/types/ts_linked_file'} type: array type: object required: [id, results] type: object virtualfile: additionalProperties: false description: Details about a trace or virtual file. links: create: method: POST request: {$ref: '#/types/file_system_virtual_file_import'} self: {path: '$/virtualfile/{+id}'} set: method: PUT request: {$ref: '#/types/file_system_virtual_file_import'} properties: access_rights: {$ref: '#/resources/access_rights'} created: {description: Creation time in Unix time format., type: string} format: description: File time format. enum: [PCAP_US, PCAP_NS, PCAPNG_US, PCAPNG_NS, UNKNOWN] type: string id: {description: File unique identifier (path-like string)., type: string} index: {$ref: '#/resources/index'} link_type: description: Link layer type. enum: [NONE, EN10MB, JUNIPER_ETHER, RAW, IEEE802_11_RADIO, PPI, PPP_WITH_DIR, LINUX_SLL, C_HDLC, UNKNOWN] type: string linked_sources: {$ref: '#/types/file_system_linked_files'} modified: {description: Modification time in Unix time format., type: string} size: description: File size in bytes. tags: {cpptype: uint64} type: integer type: description: File type. enum: [MULTISEGMENT_FILE, MERGED_FILE, PCAP_FILE, PCAPNG_FILE, ERF_FILE, UNKNOWN_FILE] type: string required: [type, id] type: object title: User filesystem API types: async_error: additionalProperties: false description: Asynchronous task error object. properties: error_id: {description: Error code., type: string} error_metrics: description: Array of key/value error metrics, used for detailed error responses from async tasks. items: additionalProperties: false description: Individual error key/value. properties: key: {description: Error metric ID., type: string} value: {description: Error metric value., type: string} required: [key, value] type: object type: array error_text: {description: Error text., type: string} required: [error_id, error_text] type: object async_task_status: additionalProperties: false description: The status of an asynchronous task started via API calls. properties: elapsed_time: description: Duration of the task in microseconds. tags: {cpptype: timespan-hp} type: integer error: {$ref: '#/types/async_error'} message: {description: 'Message suitable for reporting completion status to a human user, returned only when returns 100.', type: string} progress: description: Integer percent completed indicator, which MUST return 100 *only* when the operation has been completed (either successfully or unsuccessfully). maximum: 100 minimum: 0 tags: {cpptype: uint32} type: integer resource_uri: {description: a URI upon which the client may perform GET operations to get the final representation of the resource that triggered the asynchronous job., type: string} status: description: Asynchronous task status code. enum: [SUCCESS, FAILURE] type: string uri: {description: 'URI upon which the client may perform GET operations to poll for completion. Each accepted asynchronous operation will receive a unique status URI, so that multiple operations may be initiated and tracked at once.', type: string} required: [uri, progress] type: object file_system_dir: additionalProperties: false description: Details about a directory. properties: created: {description: Creation time in Unix time format., type: string} description: {description: Directory description used as an alias name., type: string} dirs: {$ref: '#/resources/filesystem'} files: additionalProperties: false description: Collection of trace and virtual files on the device. properties: items: {$ref: '#/types/file_system_files_list'} type: object id: {description: Directory unique identifier., type: string} modified: {description: Modification time in Unix time format., type: string} required: [id, files, dirs] type: object file_system_files_list: description: Array of trace and virtual files. items: {$ref: '#/resources/virtualfile'} type: array file_system_linked_files: additionalProperties: false description: Collection of linked sources associated to the virtual file. properties: items: description: Array of linked sources. items: additionalProperties: false description: Details about a linked source. properties: default_source: {description: The default source is the reference source in a multisegment file collection and it is used as reference for the time skew calculation., type: boolean} description: {description: A simple description field associated with the linked source., type: string} path: {description: Linked source path. It could be either an absolute path (fs/ID) or a relative path starting from the aggregated file folder., type: string} timeskew: description: It is the packets timestamps offset associated with the linked source. tags: {cpptype: int64} type: integer required: [path] type: object type: array type: object file_system_virtual_file_import: additionalProperties: false description: Info about a new multisegment or merged file. properties: linked_sources: {$ref: '#/types/file_system_linked_files'} type: description: Linked file type. enum: [MULTISEGMENT_FILE, MERGED_FILE] type: string required: [type, linked_sources] type: object index_info_stat: additionalProperties: false description: Microflow index statistics. properties: end_time: {description: End time for an indexed interval., type: string} start_time: {description: Start time for an indexed interval., type: string} version: {description: Microflow index version., type: string} required: [version, start_time, end_time] type: object roles_obj: description: Collections of roles object. properties: roles: description: Array of roles. items: description: Role value. tags: {cpptype: uint64} type: integer type: array required: [roles] type: object ts_linked_file: additionalProperties: false description: Time skew information for linked source. properties: path: {description: Path of the linked source., type: string} timeskew: description: Estimated time skew compared to the default source. tags: {cpptype: int64} type: integer required: [path, timeskew] type: object version: '1.0'