CPVM HTTP API: Snapshot file metadata

Метаданные файлов снапшота назначаются автоматически на стороне сервера после его заморозки. На стороне клиента можно задать только метаданные фрагментов. Запросить метаданные с сервера можно так:

curl -XGET --netrc https://api.acapella.ru/cb/snapshots/my-project/1.0/files/existing/file/fragment.py
{
    "kind": "Fragment", 
    "fragmentMeta": {
        "runtime": "CPython",
        "runtimeVersion": "3.6",
        "format": "PythonSource"
    }
}

Общая структура ответа:

{
    "kind": "Fragment"
    // ...
    // rest of the meta depends on kind
}

От разновидности файла (kind) зависит то, какие метаданные будут указаны в ответе. Например, для kind = "Fragment" в ответе придет fragmentMeta.

File kind

  • Fragment - file metadata must contain fragmentMeta
  • Swagger - file metadata must contain modelFormat
  • Other

Fragment metadata

Example:

{
    "kind": "Fragment", 
    "fragmentMeta": {
        "runtime": "CPython",
        "runtimeVersion": "3.5",
        "format": "PythonSource",

        // optional flags, may be null
        "requireTvm": false,
        "requireSubFragments": false,
        "allowRestart": false
    }
}

Swagger model metadata

Example:

{
    "kind": "Swagger", 
    "modelFormat": "yaml"
}

Possible model formats: yaml, json, xml

Dokerfile and other

Для типов Dockerfile и Other никаких дополнительных метаданных нет.