###################
Developer Reference
###################

Architecture
============

REST API Reference
==================

Rendered documentation for SuperMaaS' REST API can be found `here
</reference/api/http/>`_; an interactive version can also be found at the
``/api/`` endpoint of any running SuperMaaS deployment.

Command-Line Client
===================

.. autoprogram:: supermaas.client.settings:parser

SuperMaaS Packs
===============

A SuperMaaS pack is an on-disk representation of a registerable artifact. At
minimum a pack consists of a *pack definition* file (with a ``.spdef``
extension) which stores metadata about the artifact in question. Most kinds of
packs also require an accompanying *pack archive file* (with a ``.sparc``
extension), which stores the artifact's data files, which are fetched as
necessary.

The schemas of pack definitions (and the layouts of the corresponding archive
files) are subject to change over time, as newer capabilities are added to
SuperMaaS. Compatibility with older versions of pack definitions are maintained
on a best-effort basis. The schema for the current version of pack definition is
shown below:

.. json-schema:: supermaas.pack.v1.Definition