5445 lines
144 KiB
JSON
5445 lines
144 KiB
JSON
{
|
|
"openapi": "3.1.0",
|
|
"info": {
|
|
"title": "Arcadia Studio model API",
|
|
"version": "1.0.0",
|
|
"description": "Current schema-2 snapshots and conditional atomic writes. Request body limit: 8 MiB; at most 200 nested commands; no retained revisions, request receipts, automatic retries or persistent transition plans. See docs/api.rst. Fixed store capacity: 128 models / 256 MiB serialized envelopes. Stateless transition preview/apply. Artifact URI/revision strings remain opaque core fields. Model admission before structural validation: 5,000 graph objects, 20,000 total records and 50,000 ordered references. Preparation uses snapshots outside the catalog lock; final commits recheck the exact ETag."
|
|
},
|
|
"servers": [
|
|
{
|
|
"url": "http://127.0.0.1:8787"
|
|
}
|
|
],
|
|
"security": [
|
|
{
|
|
"bearerAuth": []
|
|
}
|
|
],
|
|
"paths": {
|
|
"/health": {
|
|
"get": {
|
|
"operationId": "_health",
|
|
"summary": "Store was opened and HTTP service is responding",
|
|
"parameters": [],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Success",
|
|
"headers": {
|
|
"ETag": {
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"description": "Project revision validator when scoped to a project."
|
|
},
|
|
"X-Request-ID": {
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
}
|
|
},
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"status": {
|
|
"const": "ok"
|
|
}
|
|
},
|
|
"required": [
|
|
"status"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"default": {
|
|
"$ref": "#/components/responses/Problem"
|
|
}
|
|
},
|
|
"security": []
|
|
}
|
|
},
|
|
"/health/live": {
|
|
"get": {
|
|
"operationId": "_health_live",
|
|
"summary": "Store was opened and HTTP service is responding",
|
|
"parameters": [],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Success",
|
|
"headers": {
|
|
"ETag": {
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"description": "Project revision validator when scoped to a project."
|
|
},
|
|
"X-Request-ID": {
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
}
|
|
},
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"status": {
|
|
"const": "ok"
|
|
}
|
|
},
|
|
"required": [
|
|
"status"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"default": {
|
|
"$ref": "#/components/responses/Problem"
|
|
}
|
|
},
|
|
"security": []
|
|
}
|
|
},
|
|
"/health/ready": {
|
|
"get": {
|
|
"operationId": "_health_ready",
|
|
"summary": "Store was opened and HTTP service is responding",
|
|
"parameters": [],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Success",
|
|
"headers": {
|
|
"ETag": {
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"description": "Project revision validator when scoped to a project."
|
|
},
|
|
"X-Request-ID": {
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
}
|
|
},
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"status": {
|
|
"const": "ok"
|
|
}
|
|
},
|
|
"required": [
|
|
"status"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"default": {
|
|
"$ref": "#/components/responses/Problem"
|
|
}
|
|
},
|
|
"security": []
|
|
}
|
|
},
|
|
"/openapi.json": {
|
|
"get": {
|
|
"operationId": "_openapi_json",
|
|
"summary": "OpenAPI contract",
|
|
"parameters": [],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Success",
|
|
"headers": {
|
|
"ETag": {
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"description": "Project revision validator when scoped to a project."
|
|
},
|
|
"X-Request-ID": {
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
}
|
|
},
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"default": {
|
|
"$ref": "#/components/responses/Problem"
|
|
}
|
|
},
|
|
"security": []
|
|
}
|
|
},
|
|
"/api/v1/openapi.json": {
|
|
"get": {
|
|
"operationId": "_api_v1_openapi_json",
|
|
"summary": "OpenAPI contract",
|
|
"parameters": [],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Success",
|
|
"headers": {
|
|
"ETag": {
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"description": "Project revision validator when scoped to a project."
|
|
},
|
|
"X-Request-ID": {
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
}
|
|
},
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"default": {
|
|
"$ref": "#/components/responses/Problem"
|
|
}
|
|
},
|
|
"security": []
|
|
}
|
|
},
|
|
"/api/v1/projects": {
|
|
"get": {
|
|
"operationId": "listProjects",
|
|
"summary": "List current hosted projects in UUID order",
|
|
"parameters": [
|
|
{
|
|
"name": "limit",
|
|
"in": "query",
|
|
"required": false,
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 1000,
|
|
"default": 100
|
|
}
|
|
},
|
|
{
|
|
"name": "after",
|
|
"in": "query",
|
|
"required": false,
|
|
"description": "",
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
},
|
|
{
|
|
"name": "q",
|
|
"in": "query",
|
|
"required": false,
|
|
"description": "",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Success",
|
|
"headers": {
|
|
"ETag": {
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"description": "Project revision validator when scoped to a project."
|
|
},
|
|
"X-Request-ID": {
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
}
|
|
},
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProjectPage"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"default": {
|
|
"$ref": "#/components/responses/Problem"
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"operationId": "createProject",
|
|
"summary": "Create and persist an empty model",
|
|
"parameters": [],
|
|
"responses": {
|
|
"201": {
|
|
"description": "Success",
|
|
"headers": {
|
|
"ETag": {
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"description": "Project revision validator when scoped to a project."
|
|
},
|
|
"X-Request-ID": {
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
}
|
|
},
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProjectSummary"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"default": {
|
|
"$ref": "#/components/responses/Problem"
|
|
}
|
|
},
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/NameRequest"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/projects/import": {
|
|
"post": {
|
|
"operationId": "importProject",
|
|
"summary": "Import JSON or UTF-8 Arcadia source as a new hosted resource",
|
|
"parameters": [],
|
|
"responses": {
|
|
"201": {
|
|
"description": "Success",
|
|
"headers": {
|
|
"ETag": {
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"description": "Project revision validator when scoped to a project."
|
|
},
|
|
"X-Request-ID": {
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
}
|
|
},
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProjectSummary"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"default": {
|
|
"$ref": "#/components/responses/Problem"
|
|
}
|
|
},
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Project"
|
|
}
|
|
},
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"description": "Schema-2 native JSON is described below. Schema-1 JSON is also accepted via the core's explicit migration adapter; see docs/language.rst for the legacy contract. Export emits schema 2."
|
|
}
|
|
},
|
|
"/api/v1/projects/{id}": {
|
|
"get": {
|
|
"operationId": "getProject",
|
|
"summary": "Get complete current envelope",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true,
|
|
"description": "Hosted resource UUID; distinct from editable model ID.",
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
},
|
|
{
|
|
"name": "If-None-Match",
|
|
"in": "header",
|
|
"required": false,
|
|
"description": "Return 304 when the current representation's revision matches.",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Success",
|
|
"headers": {
|
|
"ETag": {
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"description": "Project revision validator when scoped to a project."
|
|
},
|
|
"X-Request-ID": {
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
}
|
|
},
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/StoredProject"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"304": {
|
|
"description": "Unchanged; empty body."
|
|
},
|
|
"default": {
|
|
"$ref": "#/components/responses/Problem"
|
|
}
|
|
}
|
|
},
|
|
"patch": {
|
|
"operationId": "renameProject",
|
|
"summary": "Rename the project atomically",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true,
|
|
"description": "Hosted resource UUID; distinct from editable model ID.",
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
},
|
|
{
|
|
"name": "If-Match",
|
|
"in": "header",
|
|
"required": true,
|
|
"description": "One exact strong project ETag. Missing: 428; stale: 412. Weak/list/wildcard unsupported.",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Success",
|
|
"headers": {
|
|
"ETag": {
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"description": "Project revision validator when scoped to a project."
|
|
},
|
|
"X-Request-ID": {
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
}
|
|
},
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MutationResult"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"412": {
|
|
"$ref": "#/components/responses/Problem"
|
|
},
|
|
"428": {
|
|
"$ref": "#/components/responses/Problem"
|
|
},
|
|
"default": {
|
|
"$ref": "#/components/responses/Problem"
|
|
}
|
|
},
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/NameRequest"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"operationId": "deleteProject",
|
|
"summary": "Permanently delete the current hosted envelope",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true,
|
|
"description": "Hosted resource UUID; distinct from editable model ID.",
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
},
|
|
{
|
|
"name": "If-Match",
|
|
"in": "header",
|
|
"required": true,
|
|
"description": "One exact strong project ETag. Missing: 428; stale: 412. Weak/list/wildcard unsupported.",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": "Success",
|
|
"headers": {
|
|
"ETag": {
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"description": "Project revision validator when scoped to a project."
|
|
},
|
|
"X-Request-ID": {
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"412": {
|
|
"$ref": "#/components/responses/Problem"
|
|
},
|
|
"428": {
|
|
"$ref": "#/components/responses/Problem"
|
|
},
|
|
"default": {
|
|
"$ref": "#/components/responses/Problem"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/projects/{id}/model": {
|
|
"get": {
|
|
"operationId": "getModel",
|
|
"summary": "Export native model JSON",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true,
|
|
"description": "Hosted resource UUID; distinct from editable model ID.",
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
},
|
|
{
|
|
"name": "If-None-Match",
|
|
"in": "header",
|
|
"required": false,
|
|
"description": "Return 304 when the current representation's revision matches.",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Success",
|
|
"headers": {
|
|
"ETag": {
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"description": "Project revision validator when scoped to a project."
|
|
},
|
|
"X-Request-ID": {
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
}
|
|
},
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Project"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"304": {
|
|
"description": "Unchanged; empty body."
|
|
},
|
|
"default": {
|
|
"$ref": "#/components/responses/Problem"
|
|
}
|
|
}
|
|
},
|
|
"put": {
|
|
"operationId": "replaceModel",
|
|
"summary": "Conditionally replace model JSON",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true,
|
|
"description": "Hosted resource UUID; distinct from editable model ID.",
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
},
|
|
{
|
|
"name": "If-Match",
|
|
"in": "header",
|
|
"required": true,
|
|
"description": "One exact strong project ETag. Missing: 428; stale: 412. Weak/list/wildcard unsupported.",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Success",
|
|
"headers": {
|
|
"ETag": {
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"description": "Project revision validator when scoped to a project."
|
|
},
|
|
"X-Request-ID": {
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
}
|
|
},
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MutationResult"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"412": {
|
|
"$ref": "#/components/responses/Problem"
|
|
},
|
|
"428": {
|
|
"$ref": "#/components/responses/Problem"
|
|
},
|
|
"default": {
|
|
"$ref": "#/components/responses/Problem"
|
|
}
|
|
},
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Project"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/projects/{id}/source": {
|
|
"get": {
|
|
"operationId": "getSource",
|
|
"summary": "Export canonical Arcadia source",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true,
|
|
"description": "Hosted resource UUID; distinct from editable model ID.",
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
},
|
|
{
|
|
"name": "If-None-Match",
|
|
"in": "header",
|
|
"required": false,
|
|
"description": "Return 304 when the current representation's revision matches.",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Success",
|
|
"headers": {
|
|
"ETag": {
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"description": "Project revision validator when scoped to a project."
|
|
},
|
|
"X-Request-ID": {
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
}
|
|
},
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"304": {
|
|
"description": "Unchanged; empty body."
|
|
},
|
|
"default": {
|
|
"$ref": "#/components/responses/Problem"
|
|
}
|
|
}
|
|
},
|
|
"put": {
|
|
"operationId": "replaceSource",
|
|
"summary": "Conditionally replace from UTF-8 Arcadia source",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true,
|
|
"description": "Hosted resource UUID; distinct from editable model ID.",
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
},
|
|
{
|
|
"name": "If-Match",
|
|
"in": "header",
|
|
"required": true,
|
|
"description": "One exact strong project ETag. Missing: 428; stale: 412. Weak/list/wildcard unsupported.",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Success",
|
|
"headers": {
|
|
"ETag": {
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"description": "Project revision validator when scoped to a project."
|
|
},
|
|
"X-Request-ID": {
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
}
|
|
},
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MutationResult"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"412": {
|
|
"$ref": "#/components/responses/Problem"
|
|
},
|
|
"428": {
|
|
"$ref": "#/components/responses/Problem"
|
|
},
|
|
"default": {
|
|
"$ref": "#/components/responses/Problem"
|
|
}
|
|
},
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"text/plain": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/projects/{id}/elements": {
|
|
"get": {
|
|
"operationId": "listElements",
|
|
"summary": "Filter current elements; AND semantics",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true,
|
|
"description": "Hosted resource UUID; distinct from editable model ID.",
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
},
|
|
{
|
|
"name": "limit",
|
|
"in": "query",
|
|
"required": false,
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 1000,
|
|
"default": 100
|
|
}
|
|
},
|
|
{
|
|
"name": "after",
|
|
"in": "query",
|
|
"required": false,
|
|
"description": "",
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
},
|
|
{
|
|
"name": "revision",
|
|
"in": "query",
|
|
"required": false,
|
|
"description": "For project lists, pin current revision across pages; 409 if it changed. No historical snapshots.",
|
|
"schema": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"description": "Current revision counter; use ETag as the opaque write validator."
|
|
}
|
|
},
|
|
{
|
|
"name": "kind",
|
|
"in": "query",
|
|
"required": false,
|
|
"description": "",
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Kind"
|
|
}
|
|
},
|
|
{
|
|
"name": "layer",
|
|
"in": "query",
|
|
"required": false,
|
|
"description": "",
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Layer"
|
|
}
|
|
},
|
|
{
|
|
"name": "alias",
|
|
"in": "query",
|
|
"required": false,
|
|
"description": "",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "q",
|
|
"in": "query",
|
|
"required": false,
|
|
"description": "",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Success",
|
|
"headers": {
|
|
"ETag": {
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"description": "Project revision validator when scoped to a project."
|
|
},
|
|
"X-Request-ID": {
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
}
|
|
},
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ElementPage"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"default": {
|
|
"$ref": "#/components/responses/Problem"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/projects/{id}/relations": {
|
|
"get": {
|
|
"operationId": "listRelations",
|
|
"summary": "Filter relations by typed kind and endpoints",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true,
|
|
"description": "Hosted resource UUID; distinct from editable model ID.",
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
},
|
|
{
|
|
"name": "limit",
|
|
"in": "query",
|
|
"required": false,
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 1000,
|
|
"default": 100
|
|
}
|
|
},
|
|
{
|
|
"name": "after",
|
|
"in": "query",
|
|
"required": false,
|
|
"description": "",
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
},
|
|
{
|
|
"name": "revision",
|
|
"in": "query",
|
|
"required": false,
|
|
"description": "For project lists, pin current revision across pages; 409 if it changed. No historical snapshots.",
|
|
"schema": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"description": "Current revision counter; use ETag as the opaque write validator."
|
|
}
|
|
},
|
|
{
|
|
"name": "kind",
|
|
"in": "query",
|
|
"required": false,
|
|
"description": "",
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RelationKind"
|
|
}
|
|
},
|
|
{
|
|
"name": "source",
|
|
"in": "query",
|
|
"required": false,
|
|
"description": "",
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
},
|
|
{
|
|
"name": "target",
|
|
"in": "query",
|
|
"required": false,
|
|
"description": "",
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
},
|
|
{
|
|
"name": "incident_to",
|
|
"in": "query",
|
|
"required": false,
|
|
"description": "",
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Success",
|
|
"headers": {
|
|
"ETag": {
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"description": "Project revision validator when scoped to a project."
|
|
},
|
|
"X-Request-ID": {
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
}
|
|
},
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RelationPage"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"default": {
|
|
"$ref": "#/components/responses/Problem"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/projects/{id}/artifact-links": {
|
|
"get": {
|
|
"operationId": "listArtifacts",
|
|
"summary": "List model artifact links without fetching URIs",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true,
|
|
"description": "Hosted resource UUID; distinct from editable model ID.",
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
},
|
|
{
|
|
"name": "limit",
|
|
"in": "query",
|
|
"required": false,
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 1000,
|
|
"default": 100
|
|
}
|
|
},
|
|
{
|
|
"name": "after",
|
|
"in": "query",
|
|
"required": false,
|
|
"description": "",
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
},
|
|
{
|
|
"name": "revision",
|
|
"in": "query",
|
|
"required": false,
|
|
"description": "For project lists, pin current revision across pages; 409 if it changed. No historical snapshots.",
|
|
"schema": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"description": "Current revision counter; use ETag as the opaque write validator."
|
|
}
|
|
},
|
|
{
|
|
"name": "object",
|
|
"in": "query",
|
|
"required": false,
|
|
"description": "Owner ID.",
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Success",
|
|
"headers": {
|
|
"ETag": {
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"description": "Project revision validator when scoped to a project."
|
|
},
|
|
"X-Request-ID": {
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
}
|
|
},
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ArtifactPage"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"default": {
|
|
"$ref": "#/components/responses/Problem"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/projects/{id}/traces": {
|
|
"get": {
|
|
"operationId": "listTraces",
|
|
"summary": "List OA/SA traces",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true,
|
|
"description": "Hosted resource UUID; distinct from editable model ID.",
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
},
|
|
{
|
|
"name": "limit",
|
|
"in": "query",
|
|
"required": false,
|
|
"description": "",
|
|
"schema": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 1000,
|
|
"default": 100
|
|
}
|
|
},
|
|
{
|
|
"name": "after",
|
|
"in": "query",
|
|
"required": false,
|
|
"description": "",
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
},
|
|
{
|
|
"name": "revision",
|
|
"in": "query",
|
|
"required": false,
|
|
"description": "For project lists, pin current revision across pages; 409 if it changed. No historical snapshots.",
|
|
"schema": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"description": "Current revision counter; use ETag as the opaque write validator."
|
|
}
|
|
},
|
|
{
|
|
"name": "object",
|
|
"in": "query",
|
|
"required": false,
|
|
"description": "OA or SA endpoint ID.",
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Success",
|
|
"headers": {
|
|
"ETag": {
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"description": "Project revision validator when scoped to a project."
|
|
},
|
|
"X-Request-ID": {
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
}
|
|
},
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TracePage"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"default": {
|
|
"$ref": "#/components/responses/Problem"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/projects/{id}/query": {
|
|
"post": {
|
|
"operationId": "queryNeighborhood",
|
|
"summary": "Bounded graph neighborhood including relation endpoint closure",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true,
|
|
"description": "Hosted resource UUID; distinct from editable model ID.",
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Success",
|
|
"headers": {
|
|
"ETag": {
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"description": "Project revision validator when scoped to a project."
|
|
},
|
|
"X-Request-ID": {
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
}
|
|
},
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/NeighborhoodResult"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"default": {
|
|
"$ref": "#/components/responses/Problem"
|
|
}
|
|
},
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/NeighborhoodRequest"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/projects/{id}/validation": {
|
|
"get": {
|
|
"operationId": "validateCurrent",
|
|
"summary": "Shared core validation of current snapshot",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true,
|
|
"description": "Hosted resource UUID; distinct from editable model ID.",
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Success",
|
|
"headers": {
|
|
"ETag": {
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"description": "Project revision validator when scoped to a project."
|
|
},
|
|
"X-Request-ID": {
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
}
|
|
},
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ValidationResult"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"default": {
|
|
"$ref": "#/components/responses/Problem"
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"operationId": "validateCandidate",
|
|
"summary": "Check submitted model/source without mutation",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true,
|
|
"description": "Hosted resource UUID; distinct from editable model ID.",
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Success",
|
|
"headers": {
|
|
"ETag": {
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"description": "Project revision validator when scoped to a project."
|
|
},
|
|
"X-Request-ID": {
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
}
|
|
},
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ValidationResult"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"default": {
|
|
"$ref": "#/components/responses/Problem"
|
|
}
|
|
},
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ValidationRequest"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/projects/{id}/transactions": {
|
|
"post": {
|
|
"operationId": "executeTransaction",
|
|
"summary": "Atomic shared typed commands; optional dry run",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true,
|
|
"description": "Hosted resource UUID; distinct from editable model ID.",
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
},
|
|
{
|
|
"name": "If-Match",
|
|
"in": "header",
|
|
"required": true,
|
|
"description": "One exact strong project ETag. Missing: 428; stale: 412. Weak/list/wildcard unsupported.",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Success",
|
|
"headers": {
|
|
"ETag": {
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"description": "Project revision validator when scoped to a project."
|
|
},
|
|
"X-Request-ID": {
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
}
|
|
},
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TransactionResult"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"412": {
|
|
"$ref": "#/components/responses/Problem"
|
|
},
|
|
"428": {
|
|
"$ref": "#/components/responses/Problem"
|
|
},
|
|
"default": {
|
|
"$ref": "#/components/responses/Problem"
|
|
}
|
|
},
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TransactionRequest"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/projects/{id}/transitions/preview": {
|
|
"post": {
|
|
"operationId": "previewTransition",
|
|
"summary": "Preview a shared core transition without persisting a plan",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true,
|
|
"description": "Hosted resource UUID; distinct from editable model ID.",
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
},
|
|
{
|
|
"name": "If-Match",
|
|
"in": "header",
|
|
"required": true,
|
|
"description": "One exact strong project ETag. Missing: 428; stale: 412. Weak/list/wildcard unsupported.",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Validated result; preview may include unresolved conflicts.",
|
|
"headers": {
|
|
"ETag": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TransitionEnvelope"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"412": {
|
|
"$ref": "#/components/responses/Problem"
|
|
},
|
|
"428": {
|
|
"$ref": "#/components/responses/Problem"
|
|
},
|
|
"default": {
|
|
"$ref": "#/components/responses/Problem"
|
|
}
|
|
},
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TransitionRequest"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/projects/{id}/transitions/apply": {
|
|
"post": {
|
|
"operationId": "applyTransition",
|
|
"summary": "Apply client-held transition plan against its original revision",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true,
|
|
"description": "Hosted resource UUID; distinct from editable model ID.",
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
},
|
|
{
|
|
"name": "If-Match",
|
|
"in": "header",
|
|
"required": true,
|
|
"description": "One exact strong project ETag. Missing: 428; stale: 412. Weak/list/wildcard unsupported.",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Validated result; preview may include unresolved conflicts.",
|
|
"headers": {
|
|
"ETag": {
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MutationResult"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"412": {
|
|
"$ref": "#/components/responses/Problem"
|
|
},
|
|
"428": {
|
|
"$ref": "#/components/responses/Problem"
|
|
},
|
|
"default": {
|
|
"$ref": "#/components/responses/Problem"
|
|
}
|
|
},
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TransitionEnvelope"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"components": {
|
|
"securitySchemes": {
|
|
"bearerAuth": {
|
|
"type": "http",
|
|
"scheme": "bearer",
|
|
"description": "Optional for unconfigured loopback; required on non-loopback."
|
|
}
|
|
},
|
|
"responses": {
|
|
"Problem": {
|
|
"description": "Structured problem response. See code/detail and docs/api.rst status mapping.",
|
|
"content": {
|
|
"application/problem+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Problem"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"schemas": {
|
|
"Id": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"Revision": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"description": "Current revision counter; use ETag as the opaque write validator."
|
|
},
|
|
"Layer": {
|
|
"type": "string",
|
|
"enum": [
|
|
"Oa",
|
|
"Sa"
|
|
]
|
|
},
|
|
"Kind": {
|
|
"type": "string",
|
|
"enum": [
|
|
"Entity",
|
|
"Actor",
|
|
"Role",
|
|
"Activity",
|
|
"Capability",
|
|
"OperationalMission",
|
|
"Process",
|
|
"System",
|
|
"SystemActor",
|
|
"Function",
|
|
"SystemCapability",
|
|
"Mission",
|
|
"FunctionalChain",
|
|
"ExchangeItem",
|
|
"DataType",
|
|
"DataField",
|
|
"Interface",
|
|
"Port",
|
|
"Scenario",
|
|
"Lifeline",
|
|
"Occurrence",
|
|
"StateMachine",
|
|
"Region",
|
|
"State",
|
|
"Mode",
|
|
"Initial",
|
|
"Final",
|
|
"Choice",
|
|
"Junction",
|
|
"Fork",
|
|
"Join",
|
|
"ShallowHistory",
|
|
"DeepHistory",
|
|
"EntryPoint",
|
|
"ExitPoint",
|
|
"Terminate",
|
|
"Event",
|
|
"Constraint"
|
|
]
|
|
},
|
|
"RelationKind": {
|
|
"type": "string",
|
|
"enum": [
|
|
"Allocation",
|
|
"Interaction",
|
|
"CapabilityInvolvement",
|
|
"ChainInvolvement",
|
|
"RoleRealization",
|
|
"RoleAssignment",
|
|
"FunctionalExchange",
|
|
"BoundaryExchange",
|
|
"MissionCapability",
|
|
"StateTransition",
|
|
"Availability",
|
|
"ExchangeAllocation",
|
|
"InterfaceProvision",
|
|
"InterfaceRequirement",
|
|
"StateAction",
|
|
"CapabilityInclude",
|
|
"CapabilityExtend",
|
|
"CapabilityGeneralization",
|
|
"MissionInvolvement",
|
|
"SequenceLink"
|
|
]
|
|
},
|
|
"Position": {
|
|
"type": "object",
|
|
"properties": {
|
|
"x": {
|
|
"type": "number",
|
|
"minimum": -1000000,
|
|
"maximum": 1000000
|
|
},
|
|
"y": {
|
|
"type": "number",
|
|
"minimum": -1000000,
|
|
"maximum": 1000000
|
|
}
|
|
},
|
|
"required": [
|
|
"x",
|
|
"y"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"Size": {
|
|
"type": "object",
|
|
"properties": {
|
|
"width": {
|
|
"type": "number",
|
|
"exclusiveMinimum": 0
|
|
},
|
|
"height": {
|
|
"type": "number",
|
|
"exclusiveMinimum": 0
|
|
}
|
|
},
|
|
"required": [
|
|
"width",
|
|
"height"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"DataTypeDefinition": {
|
|
"oneOf": [
|
|
{
|
|
"type": "string",
|
|
"enum": [
|
|
"Boolean",
|
|
"Integer",
|
|
"Real",
|
|
"String",
|
|
"Record"
|
|
]
|
|
},
|
|
{
|
|
"oneOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"Enumeration": {
|
|
"type": "object",
|
|
"properties": {
|
|
"literals": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"literals"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": [
|
|
"Enumeration"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"TypeRef": {
|
|
"oneOf": [
|
|
{
|
|
"type": "string",
|
|
"enum": [
|
|
"Boolean",
|
|
"Integer",
|
|
"Real",
|
|
"String"
|
|
]
|
|
},
|
|
{
|
|
"oneOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"Named": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
},
|
|
"required": [
|
|
"Named"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"OccurrenceBody": {
|
|
"oneOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"Exchange": {
|
|
"type": "object",
|
|
"properties": {
|
|
"exchange": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"sender": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"receiver": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"message_kind": {
|
|
"$ref": "#/components/schemas/MessageKind",
|
|
"default": "Asynchronous"
|
|
},
|
|
"reply_to": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null
|
|
},
|
|
"values": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/MessageValue"
|
|
},
|
|
"default": []
|
|
}
|
|
},
|
|
"required": [
|
|
"exchange",
|
|
"sender",
|
|
"receiver"
|
|
],
|
|
"additionalProperties": false,
|
|
"description": "Missing new message fields use schema-2 compatibility defaults; canonical output makes these fields explicit."
|
|
}
|
|
},
|
|
"required": [
|
|
"Exchange"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"Action": {
|
|
"type": "object",
|
|
"properties": {
|
|
"action": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"lifeline": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"action",
|
|
"lifeline"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": [
|
|
"Action"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"State": {
|
|
"type": "object",
|
|
"properties": {
|
|
"state": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"lifeline": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"state",
|
|
"lifeline"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": [
|
|
"State"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"Fragment": {
|
|
"type": "object",
|
|
"properties": {
|
|
"operator": {
|
|
"type": "string",
|
|
"enum": [
|
|
"Alternative",
|
|
"Parallel",
|
|
"Loop",
|
|
"Optional"
|
|
]
|
|
},
|
|
"branches": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"operator",
|
|
"branches"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": [
|
|
"Fragment"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"Branch": {
|
|
"type": "object",
|
|
"properties": {
|
|
"guard": {
|
|
"type": "string"
|
|
},
|
|
"occurrences": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"guard",
|
|
"occurrences"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": [
|
|
"Branch"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"Control": {
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": {
|
|
"$ref": "#/components/schemas/ControlKind"
|
|
}
|
|
},
|
|
"required": [
|
|
"kind"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": [
|
|
"Control"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"SequenceReference": {
|
|
"type": "object",
|
|
"properties": {
|
|
"sequence": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"sequence"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": [
|
|
"SequenceReference"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"ScenarioUse": {
|
|
"type": "object",
|
|
"properties": {
|
|
"scenario": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"bindings": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/LifelineBinding"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"scenario",
|
|
"bindings"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": [
|
|
"ScenarioUse"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
},
|
|
"SharedBody": {
|
|
"oneOf": [
|
|
{
|
|
"type": "string",
|
|
"enum": [
|
|
"StateMachine",
|
|
"Region"
|
|
]
|
|
},
|
|
{
|
|
"oneOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"ExchangeItem": {
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": {
|
|
"type": "string",
|
|
"enum": [
|
|
"Information",
|
|
"Material",
|
|
"Energy",
|
|
"Event"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"kind"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": [
|
|
"ExchangeItem"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"DataType": {
|
|
"type": "object",
|
|
"properties": {
|
|
"definition": {
|
|
"$ref": "#/components/schemas/DataTypeDefinition"
|
|
}
|
|
},
|
|
"required": [
|
|
"definition"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": [
|
|
"DataType"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"DataField": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type_ref": {
|
|
"$ref": "#/components/schemas/TypeRef"
|
|
},
|
|
"minimum": {
|
|
"type": "integer",
|
|
"minimum": 0
|
|
},
|
|
"maximum": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"unit": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"type_ref",
|
|
"minimum",
|
|
"maximum",
|
|
"unit"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": [
|
|
"DataField"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"Interface": {
|
|
"type": "object",
|
|
"properties": {
|
|
"items": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"items"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": [
|
|
"Interface"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"Port": {
|
|
"type": "object",
|
|
"properties": {
|
|
"direction": {
|
|
"type": "string",
|
|
"enum": [
|
|
"In",
|
|
"Out",
|
|
"InOut"
|
|
]
|
|
},
|
|
"interface": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"direction",
|
|
"interface"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": [
|
|
"Port"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"Scenario": {
|
|
"type": "object",
|
|
"properties": {
|
|
"context": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"precondition": {
|
|
"type": "string"
|
|
},
|
|
"postcondition": {
|
|
"type": "string"
|
|
},
|
|
"steps": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
},
|
|
"viewpoint": {
|
|
"$ref": "#/components/schemas/ScenarioViewpoint",
|
|
"default": "MixedLegacy",
|
|
"description": "Omitted schema-2 viewpoint retains legacy mixed lifelines. New graphical factories select OperationalActivity or Functional explicitly."
|
|
}
|
|
},
|
|
"required": [
|
|
"context",
|
|
"precondition",
|
|
"postcondition",
|
|
"steps"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": [
|
|
"Scenario"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"Lifeline": {
|
|
"type": "object",
|
|
"properties": {
|
|
"represented": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"represented"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": [
|
|
"Lifeline"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"Occurrence": {
|
|
"type": "object",
|
|
"properties": {
|
|
"body": {
|
|
"$ref": "#/components/schemas/OccurrenceBody"
|
|
},
|
|
"precondition": {
|
|
"type": "string"
|
|
},
|
|
"postcondition": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"body",
|
|
"precondition",
|
|
"postcondition"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": [
|
|
"Occurrence"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"State": {
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": {
|
|
"$ref": "#/components/schemas/StateKind"
|
|
},
|
|
"entry": {
|
|
"type": "string"
|
|
},
|
|
"exit": {
|
|
"type": "string"
|
|
},
|
|
"do_activity": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"kind",
|
|
"entry",
|
|
"exit",
|
|
"do_activity"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": [
|
|
"State"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"Constraint": {
|
|
"type": "object",
|
|
"properties": {
|
|
"expression": {
|
|
"type": "string"
|
|
},
|
|
"constrained": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"expression",
|
|
"constrained"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": [
|
|
"Constraint"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"Event": {
|
|
"type": "object",
|
|
"properties": {
|
|
"body": {
|
|
"$ref": "#/components/schemas/EventBody"
|
|
}
|
|
},
|
|
"required": [
|
|
"body"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": [
|
|
"Event"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"OaBody": {
|
|
"oneOf": [
|
|
{
|
|
"type": "string",
|
|
"enum": [
|
|
"Entity",
|
|
"Actor",
|
|
"Role",
|
|
"Activity",
|
|
"Capability",
|
|
"Mission"
|
|
]
|
|
},
|
|
{
|
|
"oneOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"Process": {
|
|
"type": "object",
|
|
"properties": {
|
|
"steps": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"steps"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": [
|
|
"Process"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"Shared": {
|
|
"$ref": "#/components/schemas/SharedBody"
|
|
}
|
|
},
|
|
"required": [
|
|
"Shared"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"SaBody": {
|
|
"oneOf": [
|
|
{
|
|
"type": "string",
|
|
"enum": [
|
|
"System",
|
|
"Actor",
|
|
"Function",
|
|
"Capability",
|
|
"Mission"
|
|
]
|
|
},
|
|
{
|
|
"oneOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"FunctionalChain": {
|
|
"type": "object",
|
|
"properties": {
|
|
"steps": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"steps"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": [
|
|
"FunctionalChain"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"Shared": {
|
|
"$ref": "#/components/schemas/SharedBody"
|
|
}
|
|
},
|
|
"required": [
|
|
"Shared"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"ElementBody": {
|
|
"oneOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"Oa": {
|
|
"$ref": "#/components/schemas/OaBody"
|
|
}
|
|
},
|
|
"required": [
|
|
"Oa"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"Sa": {
|
|
"$ref": "#/components/schemas/SaBody"
|
|
}
|
|
},
|
|
"required": [
|
|
"Sa"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
},
|
|
"Element": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"alias": {
|
|
"type": "string",
|
|
"pattern": "^[A-Za-z_][A-Za-z0-9_]*$",
|
|
"description": "Unique persistent alias; core reserved words are forbidden."
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"parent": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"body": {
|
|
"$ref": "#/components/schemas/ElementBody"
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"alias",
|
|
"name",
|
|
"description",
|
|
"parent",
|
|
"body"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"RelationBody": {
|
|
"oneOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"Allocation": {
|
|
"type": "object",
|
|
"properties": {
|
|
"source": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"target": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
},
|
|
"required": [
|
|
"source",
|
|
"target"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": [
|
|
"Allocation"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"CapabilityInvolvement": {
|
|
"type": "object",
|
|
"properties": {
|
|
"source": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"target": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
},
|
|
"required": [
|
|
"source",
|
|
"target"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": [
|
|
"CapabilityInvolvement"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"ChainInvolvement": {
|
|
"type": "object",
|
|
"properties": {
|
|
"source": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"target": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
},
|
|
"required": [
|
|
"source",
|
|
"target"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": [
|
|
"ChainInvolvement"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"RoleRealization": {
|
|
"type": "object",
|
|
"properties": {
|
|
"source": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"target": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
},
|
|
"required": [
|
|
"source",
|
|
"target"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": [
|
|
"RoleRealization"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"RoleAssignment": {
|
|
"type": "object",
|
|
"properties": {
|
|
"source": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"target": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
},
|
|
"required": [
|
|
"source",
|
|
"target"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": [
|
|
"RoleAssignment"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"MissionCapability": {
|
|
"type": "object",
|
|
"properties": {
|
|
"source": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"target": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
},
|
|
"required": [
|
|
"source",
|
|
"target"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": [
|
|
"MissionCapability"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"Availability": {
|
|
"type": "object",
|
|
"properties": {
|
|
"source": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"target": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
},
|
|
"required": [
|
|
"source",
|
|
"target"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": [
|
|
"Availability"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"ExchangeAllocation": {
|
|
"type": "object",
|
|
"properties": {
|
|
"source": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"target": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
},
|
|
"required": [
|
|
"source",
|
|
"target"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": [
|
|
"ExchangeAllocation"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"InterfaceProvision": {
|
|
"type": "object",
|
|
"properties": {
|
|
"source": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"target": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
},
|
|
"required": [
|
|
"source",
|
|
"target"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": [
|
|
"InterfaceProvision"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"InterfaceRequirement": {
|
|
"type": "object",
|
|
"properties": {
|
|
"source": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"target": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
},
|
|
"required": [
|
|
"source",
|
|
"target"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": [
|
|
"InterfaceRequirement"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"Interaction": {
|
|
"type": "object",
|
|
"properties": {
|
|
"source": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"target": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"items": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"source",
|
|
"target",
|
|
"items"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": [
|
|
"Interaction"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"BoundaryExchange": {
|
|
"type": "object",
|
|
"properties": {
|
|
"source": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"target": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"items": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"source",
|
|
"target",
|
|
"items"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": [
|
|
"BoundaryExchange"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"FunctionalExchange": {
|
|
"type": "object",
|
|
"properties": {
|
|
"source": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"target": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"source_port": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"target_port": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"items": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"source",
|
|
"target",
|
|
"source_port",
|
|
"target_port",
|
|
"items"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": [
|
|
"FunctionalExchange"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"StateTransition": {
|
|
"type": "object",
|
|
"properties": {
|
|
"source": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"target": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"trigger": {
|
|
"type": "string"
|
|
},
|
|
"guard": {
|
|
"type": "string"
|
|
},
|
|
"effect": {
|
|
"type": "string"
|
|
},
|
|
"transition_kind": {
|
|
"$ref": "#/components/schemas/TransitionKind",
|
|
"default": "External",
|
|
"description": "Omitted legacy schema-2 value is External."
|
|
},
|
|
"triggers": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/Id"
|
|
},
|
|
"uniqueItems": true,
|
|
"description": "Same-layer Event or Activity/Function references; alternatives, not implicit conjunction.",
|
|
"default": []
|
|
},
|
|
"effects": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/Id"
|
|
},
|
|
"uniqueItems": true,
|
|
"description": "Same-layer Activity/Function references describing transition effects.",
|
|
"default": []
|
|
}
|
|
},
|
|
"required": [
|
|
"source",
|
|
"target",
|
|
"trigger",
|
|
"guard",
|
|
"effect"
|
|
],
|
|
"additionalProperties": false,
|
|
"description": "Existing trigger, guard and effect prose is preserved exactly. New typed properties are optional only for staged schema-2 compatibility. Removing the last typed trigger retains a descriptive unresolved-trigger placeholder instead of silently introducing completion semantics."
|
|
}
|
|
},
|
|
"required": [
|
|
"StateTransition"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"StateAction": {
|
|
"type": "object",
|
|
"properties": {
|
|
"source": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"target": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"phase": {
|
|
"type": "string",
|
|
"enum": [
|
|
"Entry",
|
|
"Do",
|
|
"Exit"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"source",
|
|
"target",
|
|
"phase"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": [
|
|
"StateAction"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"CapabilityInclude": {
|
|
"type": "object",
|
|
"properties": {
|
|
"source": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"target": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
},
|
|
"required": [
|
|
"source",
|
|
"target"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": [
|
|
"CapabilityInclude"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"CapabilityExtend": {
|
|
"type": "object",
|
|
"properties": {
|
|
"source": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"target": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"condition": {
|
|
"type": "string",
|
|
"description": "Engineering condition under which the extending capability adds behavior."
|
|
}
|
|
},
|
|
"required": [
|
|
"source",
|
|
"target",
|
|
"condition"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": [
|
|
"CapabilityExtend"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"CapabilityGeneralization": {
|
|
"type": "object",
|
|
"properties": {
|
|
"source": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"target": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
},
|
|
"required": [
|
|
"source",
|
|
"target"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": [
|
|
"CapabilityGeneralization"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"MissionInvolvement": {
|
|
"type": "object",
|
|
"properties": {
|
|
"source": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"target": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
},
|
|
"required": [
|
|
"source",
|
|
"target"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": [
|
|
"MissionInvolvement"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"SequenceLink": {
|
|
"type": "object",
|
|
"properties": {
|
|
"source": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"target": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"guard": {
|
|
"type": "string",
|
|
"description": "Condition for a contextual process/chain path. Choice and loop paths should use explicit conditions or else."
|
|
}
|
|
},
|
|
"required": [
|
|
"source",
|
|
"target",
|
|
"guard"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": [
|
|
"SequenceLink"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
},
|
|
"Relation": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"alias": {
|
|
"type": "string",
|
|
"pattern": "^[A-Za-z_][A-Za-z0-9_]*$",
|
|
"description": "Unique persistent alias; core reserved words are forbidden."
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"body": {
|
|
"$ref": "#/components/schemas/RelationBody"
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"alias",
|
|
"name",
|
|
"description",
|
|
"body"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"NodePlacement": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"alias": {
|
|
"type": "string",
|
|
"pattern": "^[A-Za-z_][A-Za-z0-9_]*$",
|
|
"description": "Unique persistent alias; core reserved words are forbidden."
|
|
},
|
|
"element": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"position": {
|
|
"$ref": "#/components/schemas/Position"
|
|
},
|
|
"size": {
|
|
"$ref": "#/components/schemas/Size"
|
|
},
|
|
"collapsed": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"alias",
|
|
"element",
|
|
"position",
|
|
"size",
|
|
"collapsed"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"Diagram": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"alias": {
|
|
"type": "string",
|
|
"pattern": "^[A-Za-z_][A-Za-z0-9_]*$",
|
|
"description": "Unique persistent alias; core reserved words are forbidden."
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"layer": {
|
|
"$ref": "#/components/schemas/Layer"
|
|
},
|
|
"projection": {
|
|
"type": "string",
|
|
"enum": [
|
|
"FunctionalDataflow",
|
|
"Capabilities",
|
|
"Overview",
|
|
"Decomposition",
|
|
"Allocation",
|
|
"Traceability"
|
|
]
|
|
},
|
|
"nodes": {
|
|
"type": "object",
|
|
"propertyNames": {
|
|
"format": "uuid"
|
|
},
|
|
"additionalProperties": {
|
|
"$ref": "#/components/schemas/NodePlacement"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"alias",
|
|
"name",
|
|
"description",
|
|
"layer",
|
|
"projection",
|
|
"nodes"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"ArtifactLink": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"alias": {
|
|
"type": "string",
|
|
"pattern": "^[A-Za-z_][A-Za-z0-9_]*$",
|
|
"description": "Unique persistent alias; core reserved words are forbidden."
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"owner": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"relation": {
|
|
"type": "string",
|
|
"enum": [
|
|
"References",
|
|
"Satisfies",
|
|
"Verifies",
|
|
"Implements",
|
|
"DerivedFrom"
|
|
]
|
|
},
|
|
"uri": {
|
|
"type": "string",
|
|
"description": "Opaque external artifact reference. Server never fetches or executes it."
|
|
},
|
|
"revision": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"fragment": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"alias",
|
|
"name",
|
|
"description",
|
|
"owner",
|
|
"relation",
|
|
"uri",
|
|
"revision",
|
|
"fragment"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"TracedProperties": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"name",
|
|
"description"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"TraceBaseline": {
|
|
"type": "object",
|
|
"properties": {
|
|
"oa": {
|
|
"$ref": "#/components/schemas/TracedProperties"
|
|
},
|
|
"sa": {
|
|
"$ref": "#/components/schemas/TracedProperties"
|
|
}
|
|
},
|
|
"required": [
|
|
"oa",
|
|
"sa"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"Trace": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"alias": {
|
|
"type": "string",
|
|
"pattern": "^[A-Za-z_][A-Za-z0-9_]*$",
|
|
"description": "Unique persistent alias; core reserved words are forbidden."
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"oa": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"sa": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"kind": {
|
|
"type": "string",
|
|
"enum": [
|
|
"Refinement",
|
|
"Participant",
|
|
"Capability",
|
|
"Mission",
|
|
"Exchange",
|
|
"Sequence",
|
|
"Item",
|
|
"Scenario",
|
|
"State",
|
|
"Manual"
|
|
]
|
|
},
|
|
"baseline": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/TraceBaseline"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"alias",
|
|
"name",
|
|
"description",
|
|
"oa",
|
|
"sa",
|
|
"kind",
|
|
"baseline"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"Project": {
|
|
"type": "object",
|
|
"properties": {
|
|
"schema_version": {
|
|
"type": "integer",
|
|
"const": 2
|
|
},
|
|
"id": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"alias": {
|
|
"type": "string",
|
|
"pattern": "^[A-Za-z_][A-Za-z0-9_]*$",
|
|
"description": "Unique persistent alias; core reserved words are forbidden."
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"elements": {
|
|
"type": "object",
|
|
"propertyNames": {
|
|
"format": "uuid"
|
|
},
|
|
"additionalProperties": {
|
|
"$ref": "#/components/schemas/Element"
|
|
}
|
|
},
|
|
"relations": {
|
|
"type": "object",
|
|
"propertyNames": {
|
|
"format": "uuid"
|
|
},
|
|
"additionalProperties": {
|
|
"$ref": "#/components/schemas/Relation"
|
|
}
|
|
},
|
|
"diagrams": {
|
|
"type": "object",
|
|
"propertyNames": {
|
|
"format": "uuid"
|
|
},
|
|
"additionalProperties": {
|
|
"$ref": "#/components/schemas/Diagram"
|
|
}
|
|
},
|
|
"artifact_links": {
|
|
"type": "object",
|
|
"propertyNames": {
|
|
"format": "uuid"
|
|
},
|
|
"additionalProperties": {
|
|
"$ref": "#/components/schemas/ArtifactLink"
|
|
}
|
|
},
|
|
"traces": {
|
|
"type": "object",
|
|
"propertyNames": {
|
|
"format": "uuid"
|
|
},
|
|
"additionalProperties": {
|
|
"$ref": "#/components/schemas/Trace"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"schema_version",
|
|
"id",
|
|
"alias",
|
|
"name",
|
|
"description",
|
|
"elements",
|
|
"relations",
|
|
"diagrams",
|
|
"artifact_links",
|
|
"traces"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"StoredProject": {
|
|
"type": "object",
|
|
"properties": {
|
|
"resource_id": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"revision": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"description": "Current revision counter; use ETag as the opaque write validator."
|
|
},
|
|
"model": {
|
|
"$ref": "#/components/schemas/Project"
|
|
}
|
|
},
|
|
"required": [
|
|
"resource_id",
|
|
"revision",
|
|
"model"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"ProjectSummary": {
|
|
"type": "object",
|
|
"properties": {
|
|
"resource_id": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"revision": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"description": "Current revision counter; use ETag as the opaque write validator."
|
|
},
|
|
"model_id": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"schema_version": {
|
|
"type": "integer"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"elements": {
|
|
"type": "integer",
|
|
"minimum": 0
|
|
},
|
|
"relations": {
|
|
"type": "integer",
|
|
"minimum": 0
|
|
}
|
|
},
|
|
"required": [
|
|
"resource_id",
|
|
"revision",
|
|
"model_id",
|
|
"schema_version",
|
|
"name",
|
|
"elements",
|
|
"relations"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"Issue": {
|
|
"type": "object",
|
|
"properties": {
|
|
"severity": {
|
|
"type": "string",
|
|
"enum": [
|
|
"error",
|
|
"warning"
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
},
|
|
"object_id": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"line": {
|
|
"type": "integer",
|
|
"minimum": 1
|
|
},
|
|
"column": {
|
|
"type": "integer",
|
|
"minimum": 1
|
|
},
|
|
"code": {
|
|
"type": "string"
|
|
},
|
|
"field": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"severity",
|
|
"message",
|
|
"code"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"Problem": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string"
|
|
},
|
|
"title": {
|
|
"type": "string"
|
|
},
|
|
"status": {
|
|
"type": "integer"
|
|
},
|
|
"code": {
|
|
"type": "string"
|
|
},
|
|
"detail": {
|
|
"type": "string"
|
|
},
|
|
"current_revision": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"description": "Current revision counter; use ETag as the opaque write validator."
|
|
},
|
|
"issues": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/Issue"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"type",
|
|
"title",
|
|
"status",
|
|
"code",
|
|
"detail"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"NameRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"name"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"Command": {
|
|
"oneOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"Replace": {
|
|
"$ref": "#/components/schemas/Project"
|
|
}
|
|
},
|
|
"required": [
|
|
"Replace"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"Batch": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/Command"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"Batch"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"Add": {
|
|
"$ref": "#/components/schemas/Kind"
|
|
}
|
|
},
|
|
"required": [
|
|
"Add"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"AddElement": {
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": {
|
|
"$ref": "#/components/schemas/Kind"
|
|
},
|
|
"layer": {
|
|
"$ref": "#/components/schemas/Layer"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"parent": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"kind",
|
|
"layer",
|
|
"name",
|
|
"parent"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": [
|
|
"AddElement"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"Connect": {
|
|
"type": "array",
|
|
"prefixItems": [
|
|
{
|
|
"$ref": "#/components/schemas/RelationKind"
|
|
},
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
],
|
|
"minItems": 4,
|
|
"maxItems": 4
|
|
}
|
|
},
|
|
"required": [
|
|
"Connect"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"EditProject": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"alias": {
|
|
"type": "string",
|
|
"pattern": "^[A-Za-z_][A-Za-z0-9_]*$",
|
|
"description": "Unique persistent alias; core reserved words are forbidden."
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"alias",
|
|
"name",
|
|
"description"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": [
|
|
"EditProject"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"Reparent": {
|
|
"type": "object",
|
|
"properties": {
|
|
"element": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"parent": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"element",
|
|
"parent"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": [
|
|
"Reparent"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"Reidentify": {
|
|
"type": "array",
|
|
"prefixItems": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
],
|
|
"minItems": 2,
|
|
"maxItems": 2
|
|
}
|
|
},
|
|
"required": [
|
|
"Reidentify"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"Rename": {
|
|
"type": "array",
|
|
"prefixItems": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
],
|
|
"minItems": 2,
|
|
"maxItems": 2
|
|
}
|
|
},
|
|
"required": [
|
|
"Rename"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"Describe": {
|
|
"type": "array",
|
|
"prefixItems": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
],
|
|
"minItems": 2,
|
|
"maxItems": 2
|
|
}
|
|
},
|
|
"required": [
|
|
"Describe"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"SetAlias": {
|
|
"type": "array",
|
|
"prefixItems": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
],
|
|
"minItems": 2,
|
|
"maxItems": 2
|
|
}
|
|
},
|
|
"required": [
|
|
"SetAlias"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"Delete": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
},
|
|
"required": [
|
|
"Delete"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"AddStep": {
|
|
"type": "array",
|
|
"prefixItems": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
],
|
|
"minItems": 2,
|
|
"maxItems": 2
|
|
}
|
|
},
|
|
"required": [
|
|
"AddStep"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"RemoveStep": {
|
|
"type": "array",
|
|
"prefixItems": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0
|
|
}
|
|
],
|
|
"minItems": 2,
|
|
"maxItems": 2
|
|
}
|
|
},
|
|
"required": [
|
|
"RemoveStep"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"MoveStep": {
|
|
"type": "array",
|
|
"prefixItems": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0
|
|
},
|
|
{
|
|
"type": "integer",
|
|
"minimum": 0
|
|
}
|
|
],
|
|
"minItems": 3,
|
|
"maxItems": 3
|
|
}
|
|
},
|
|
"required": [
|
|
"MoveStep"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"SetSteps": {
|
|
"type": "array",
|
|
"prefixItems": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
}
|
|
],
|
|
"minItems": 2,
|
|
"maxItems": 2
|
|
}
|
|
},
|
|
"required": [
|
|
"SetSteps"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"Layout": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
},
|
|
"required": [
|
|
"Layout"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"CreateNode": {
|
|
"type": "object",
|
|
"properties": {
|
|
"diagram": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"node": {
|
|
"$ref": "#/components/schemas/NodePlacement"
|
|
}
|
|
},
|
|
"required": [
|
|
"diagram",
|
|
"node"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": [
|
|
"CreateNode"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"EditNode": {
|
|
"type": "object",
|
|
"properties": {
|
|
"diagram": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"original": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"node": {
|
|
"$ref": "#/components/schemas/NodePlacement"
|
|
}
|
|
},
|
|
"required": [
|
|
"diagram",
|
|
"original",
|
|
"node"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": [
|
|
"EditNode"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"RelocateNode": {
|
|
"type": "object",
|
|
"description": "Move an existing placement to another diagram while preserving its UUID, alias, geometry, collapse state and dependent artifact references. The target diagram must accept the element and must not already contain its placement.",
|
|
"properties": {
|
|
"node": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"diagram": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
},
|
|
"required": [
|
|
"node",
|
|
"diagram"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": [
|
|
"RelocateNode"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"MoveNode": {
|
|
"type": "object",
|
|
"properties": {
|
|
"diagram": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"node": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"position": {
|
|
"$ref": "#/components/schemas/Position"
|
|
},
|
|
"with_descendants": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"diagram",
|
|
"node",
|
|
"position",
|
|
"with_descendants"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": [
|
|
"MoveNode"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"CreateElement": {
|
|
"$ref": "#/components/schemas/Element"
|
|
}
|
|
},
|
|
"required": [
|
|
"CreateElement"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"EditElement": {
|
|
"type": "array",
|
|
"prefixItems": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/Element"
|
|
}
|
|
],
|
|
"minItems": 2,
|
|
"maxItems": 2
|
|
}
|
|
},
|
|
"required": [
|
|
"EditElement"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"CreateRelation": {
|
|
"$ref": "#/components/schemas/Relation"
|
|
}
|
|
},
|
|
"required": [
|
|
"CreateRelation"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"EditRelation": {
|
|
"type": "array",
|
|
"prefixItems": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/Relation"
|
|
}
|
|
],
|
|
"minItems": 2,
|
|
"maxItems": 2
|
|
}
|
|
},
|
|
"required": [
|
|
"EditRelation"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"CreateDiagram": {
|
|
"$ref": "#/components/schemas/Diagram"
|
|
}
|
|
},
|
|
"required": [
|
|
"CreateDiagram"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"EditDiagram": {
|
|
"type": "array",
|
|
"prefixItems": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/Diagram"
|
|
}
|
|
],
|
|
"minItems": 2,
|
|
"maxItems": 2
|
|
}
|
|
},
|
|
"required": [
|
|
"EditDiagram"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"CreateArtifact": {
|
|
"$ref": "#/components/schemas/ArtifactLink"
|
|
}
|
|
},
|
|
"required": [
|
|
"CreateArtifact"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"EditArtifact": {
|
|
"type": "array",
|
|
"prefixItems": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/ArtifactLink"
|
|
}
|
|
],
|
|
"minItems": 2,
|
|
"maxItems": 2
|
|
}
|
|
},
|
|
"required": [
|
|
"EditArtifact"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"CreateTrace": {
|
|
"$ref": "#/components/schemas/Trace"
|
|
}
|
|
},
|
|
"required": [
|
|
"CreateTrace"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"EditTrace": {
|
|
"type": "array",
|
|
"prefixItems": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/Trace"
|
|
}
|
|
],
|
|
"minItems": 2,
|
|
"maxItems": 2
|
|
}
|
|
},
|
|
"required": [
|
|
"EditTrace"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
},
|
|
"TransactionRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"commands": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/Command"
|
|
},
|
|
"minItems": 1,
|
|
"maxItems": 200
|
|
},
|
|
"dry_run": {
|
|
"type": "boolean",
|
|
"default": false
|
|
}
|
|
},
|
|
"required": [
|
|
"commands"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"TransactionResult": {
|
|
"type": "object",
|
|
"properties": {
|
|
"revision": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"description": "Current revision counter; use ETag as the opaque write validator."
|
|
},
|
|
"dry_run": {
|
|
"type": "boolean"
|
|
},
|
|
"changed": {
|
|
"type": "boolean"
|
|
},
|
|
"issues": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/Issue"
|
|
}
|
|
},
|
|
"model": {
|
|
"$ref": "#/components/schemas/Project"
|
|
}
|
|
},
|
|
"required": [
|
|
"revision",
|
|
"dry_run",
|
|
"changed",
|
|
"issues"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"MutationResult": {
|
|
"type": "object",
|
|
"properties": {
|
|
"revision": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"description": "Current revision counter; use ETag as the opaque write validator."
|
|
},
|
|
"changed": {
|
|
"type": "boolean"
|
|
},
|
|
"issues": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/Issue"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"revision",
|
|
"changed"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"ValidationRequest": {
|
|
"oneOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"format": {
|
|
"const": "json"
|
|
},
|
|
"model": {
|
|
"$ref": "#/components/schemas/Project"
|
|
}
|
|
},
|
|
"required": [
|
|
"format",
|
|
"model"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"format": {
|
|
"const": "arcadia"
|
|
},
|
|
"source": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"format",
|
|
"source"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
},
|
|
"ValidationResult": {
|
|
"type": "object",
|
|
"properties": {
|
|
"revision": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"description": "Current revision counter; use ETag as the opaque write validator."
|
|
},
|
|
"valid": {
|
|
"type": "boolean"
|
|
},
|
|
"issues": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/Issue"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"revision",
|
|
"valid",
|
|
"issues"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"NeighborhoodRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"roots": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"minItems": 1,
|
|
"maxItems": 100
|
|
},
|
|
"direction": {
|
|
"type": "string",
|
|
"enum": [
|
|
"incoming",
|
|
"outgoing",
|
|
"both"
|
|
],
|
|
"default": "both"
|
|
},
|
|
"relation_kinds": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/RelationKind"
|
|
}
|
|
},
|
|
"max_depth": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 4,
|
|
"default": 1
|
|
},
|
|
"max_objects": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 1000,
|
|
"default": 200
|
|
},
|
|
"revision": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"description": "Current revision counter; use ETag as the opaque write validator."
|
|
}
|
|
},
|
|
"required": [
|
|
"roots"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"NeighborhoodResult": {
|
|
"type": "object",
|
|
"properties": {
|
|
"revision": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"description": "Current revision counter; use ETag as the opaque write validator."
|
|
},
|
|
"elements": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/Element"
|
|
}
|
|
},
|
|
"relations": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/Relation"
|
|
}
|
|
},
|
|
"truncated": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"revision",
|
|
"elements",
|
|
"relations",
|
|
"truncated"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"ElementPage": {
|
|
"type": "object",
|
|
"properties": {
|
|
"revision": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"description": "Current revision counter; use ETag as the opaque write validator."
|
|
},
|
|
"items": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/Element"
|
|
}
|
|
},
|
|
"next_after": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"revision",
|
|
"items",
|
|
"next_after"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"RelationPage": {
|
|
"type": "object",
|
|
"properties": {
|
|
"revision": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"description": "Current revision counter; use ETag as the opaque write validator."
|
|
},
|
|
"items": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/Relation"
|
|
}
|
|
},
|
|
"next_after": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"revision",
|
|
"items",
|
|
"next_after"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"ArtifactPage": {
|
|
"type": "object",
|
|
"properties": {
|
|
"revision": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"description": "Current revision counter; use ETag as the opaque write validator."
|
|
},
|
|
"items": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ArtifactLink"
|
|
}
|
|
},
|
|
"next_after": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"revision",
|
|
"items",
|
|
"next_after"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"TracePage": {
|
|
"type": "object",
|
|
"properties": {
|
|
"revision": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"description": "Current revision counter; use ETag as the opaque write validator."
|
|
},
|
|
"items": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/Trace"
|
|
}
|
|
},
|
|
"next_after": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"revision",
|
|
"items",
|
|
"next_after"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"ProjectPage": {
|
|
"type": "object",
|
|
"properties": {
|
|
"items": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ProjectSummary"
|
|
}
|
|
},
|
|
"next_after": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"items",
|
|
"next_after"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"TransitionDirection": {
|
|
"type": "string",
|
|
"enum": [
|
|
"OaToSa",
|
|
"SaToOa"
|
|
]
|
|
},
|
|
"TransitionField": {
|
|
"type": "string",
|
|
"enum": [
|
|
"Name",
|
|
"Description"
|
|
]
|
|
},
|
|
"TransitionMapping": {
|
|
"type": "object",
|
|
"properties": {
|
|
"source": {
|
|
"$ref": "#/components/schemas/Id"
|
|
},
|
|
"target": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/Id"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"target_kind": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/Kind"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"source",
|
|
"target",
|
|
"target_kind"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"FieldDecision": {
|
|
"oneOf": [
|
|
{
|
|
"type": "string",
|
|
"enum": [
|
|
"TakeSource",
|
|
"KeepTarget"
|
|
]
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"Value": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"Value"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
},
|
|
"FieldResolution": {
|
|
"type": "object",
|
|
"properties": {
|
|
"source": {
|
|
"$ref": "#/components/schemas/Id"
|
|
},
|
|
"field": {
|
|
"$ref": "#/components/schemas/TransitionField"
|
|
},
|
|
"decision": {
|
|
"$ref": "#/components/schemas/FieldDecision"
|
|
}
|
|
},
|
|
"required": [
|
|
"source",
|
|
"field",
|
|
"decision"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"TransitionRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"direction": {
|
|
"$ref": "#/components/schemas/TransitionDirection"
|
|
},
|
|
"sources": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/Id"
|
|
},
|
|
"maxItems": 100
|
|
},
|
|
"scope": {
|
|
"type": "string",
|
|
"enum": [
|
|
"SelectedOnly",
|
|
"Required",
|
|
"Subtree"
|
|
]
|
|
},
|
|
"mappings": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/TransitionMapping"
|
|
},
|
|
"maxItems": 200
|
|
},
|
|
"fields": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/TransitionField"
|
|
}
|
|
},
|
|
"resolutions": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/FieldResolution"
|
|
},
|
|
"maxItems": 400
|
|
},
|
|
"destination_diagram": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/Id"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"direction",
|
|
"sources",
|
|
"scope",
|
|
"mappings",
|
|
"fields",
|
|
"resolutions",
|
|
"destination_diagram"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"FieldChange": {
|
|
"type": "object",
|
|
"properties": {
|
|
"field": {
|
|
"$ref": "#/components/schemas/TransitionField"
|
|
},
|
|
"before": {
|
|
"type": "string"
|
|
},
|
|
"after": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"field",
|
|
"before",
|
|
"after"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"TransitionChange": {
|
|
"type": "object",
|
|
"properties": {
|
|
"source": {
|
|
"$ref": "#/components/schemas/Id"
|
|
},
|
|
"target": {
|
|
"$ref": "#/components/schemas/Id"
|
|
},
|
|
"action": {
|
|
"type": "string",
|
|
"enum": [
|
|
"Create",
|
|
"Update",
|
|
"Reuse"
|
|
]
|
|
},
|
|
"fields": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/FieldChange"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"source",
|
|
"target",
|
|
"action",
|
|
"fields"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"TransitionConflict": {
|
|
"type": "object",
|
|
"properties": {
|
|
"source": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/Id"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"target": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/Id"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"field": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/TransitionField"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"source",
|
|
"target",
|
|
"field",
|
|
"message"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"TransitionPlan": {
|
|
"type": "object",
|
|
"properties": {
|
|
"base_fingerprint": {
|
|
"type": "string"
|
|
},
|
|
"request": {
|
|
"$ref": "#/components/schemas/TransitionRequest"
|
|
},
|
|
"changes": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/TransitionChange"
|
|
}
|
|
},
|
|
"conflicts": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/TransitionConflict"
|
|
}
|
|
},
|
|
"warnings": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"commands": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/Command"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"base_fingerprint",
|
|
"request",
|
|
"changes",
|
|
"conflicts",
|
|
"warnings",
|
|
"commands"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"TransitionEnvelope": {
|
|
"type": "object",
|
|
"properties": {
|
|
"base_revision": {
|
|
"$ref": "#/components/schemas/Revision"
|
|
},
|
|
"plan": {
|
|
"$ref": "#/components/schemas/TransitionPlan"
|
|
}
|
|
},
|
|
"required": [
|
|
"base_revision",
|
|
"plan"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"ControlKind": {
|
|
"type": "string",
|
|
"enum": [
|
|
"Choice",
|
|
"Merge",
|
|
"Fork",
|
|
"Join",
|
|
"Loop"
|
|
]
|
|
},
|
|
"ScenarioViewpoint": {
|
|
"type": "string",
|
|
"enum": [
|
|
"OperationalActivity",
|
|
"ParticipantInteraction",
|
|
"Functional",
|
|
"BoundaryInterface",
|
|
"MixedLegacy"
|
|
]
|
|
},
|
|
"MessageKind": {
|
|
"oneOf": [
|
|
{
|
|
"type": "string",
|
|
"enum": [
|
|
"Asynchronous",
|
|
"Call",
|
|
"Reply",
|
|
"Create",
|
|
"Delete"
|
|
]
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"Timer": {
|
|
"type": "object",
|
|
"properties": {
|
|
"expression": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"expression"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": [
|
|
"Timer"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
},
|
|
"MessageValue": {
|
|
"type": "object",
|
|
"properties": {
|
|
"field": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"expression": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"field",
|
|
"expression"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"LifelineBinding": {
|
|
"type": "object",
|
|
"properties": {
|
|
"referenced": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"local": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
},
|
|
"required": [
|
|
"referenced",
|
|
"local"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"StateKind": {
|
|
"type": "string",
|
|
"enum": [
|
|
"State",
|
|
"Mode",
|
|
"Initial",
|
|
"Final",
|
|
"Choice",
|
|
"Junction",
|
|
"Fork",
|
|
"Join",
|
|
"ShallowHistory",
|
|
"DeepHistory",
|
|
"EntryPoint",
|
|
"ExitPoint",
|
|
"Terminate"
|
|
]
|
|
},
|
|
"TimeEventKind": {
|
|
"type": "string",
|
|
"enum": [
|
|
"After",
|
|
"At"
|
|
],
|
|
"description": "After is relative to source-state activation; At describes an absolute instant. Expressions are descriptive, not executed."
|
|
},
|
|
"TransitionKind": {
|
|
"type": "string",
|
|
"enum": [
|
|
"External",
|
|
"Local",
|
|
"Internal"
|
|
]
|
|
},
|
|
"EventBody": {
|
|
"oneOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"Signal": {
|
|
"type": "object",
|
|
"properties": {
|
|
"items": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/Id"
|
|
},
|
|
"uniqueItems": true,
|
|
"description": "Same-layer ExchangeItem identities carried by the signal."
|
|
}
|
|
},
|
|
"required": [
|
|
"items"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": [
|
|
"Signal"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"Time": {
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": {
|
|
"$ref": "#/components/schemas/TimeEventKind"
|
|
},
|
|
"expression": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"kind",
|
|
"expression"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": [
|
|
"Time"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"Change": {
|
|
"type": "object",
|
|
"properties": {
|
|
"expression": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"expression"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": [
|
|
"Change"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|