Initial commit: stateful OpenStack API laboratory simulator.

Ship Keystone auth, multi-service handlers (Yoga→Dalmatian), Compose/Helm
packaging, API contract packs, and pytest/Pulumi coverage labs.
This commit is contained in:
2026-07-18 04:26:48 +03:00
commit 6033967e6a
509 changed files with 464404 additions and 0 deletions
+425
View File
@@ -0,0 +1,425 @@
{
"default_microversion": null,
"max_microversion": null,
"operations": [
{
"collection_key": "topology",
"introduced_in": "yoga",
"kind": "collection",
"method": "GET",
"operation_id": "topology_list",
"path": "/v1/topology",
"requires_auth": true,
"requires_project": true,
"resource_type": "topology",
"service": "vitrage",
"status_code": 200
},
{
"collection_key": "topology",
"create_status": 201,
"introduced_in": "yoga",
"item_key": "topology",
"kind": "collection",
"method": "POST",
"operation_id": "topology_create",
"path": "/v1/topology",
"requires_auth": true,
"requires_project": true,
"resource_type": "topology",
"service": "vitrage",
"status_code": 201
},
{
"collection_key": "topology",
"introduced_in": "yoga",
"item_key": "topology",
"kind": "item",
"method": "GET",
"operation_id": "topology_show",
"path": "/v1/topology/{id}",
"requires_auth": true,
"requires_project": true,
"resource_type": "topology",
"service": "vitrage",
"status_code": 200
},
{
"collection_key": "topology",
"introduced_in": "yoga",
"item_key": "topology",
"kind": "item",
"method": "PUT",
"operation_id": "topology_update",
"path": "/v1/topology/{id}",
"requires_auth": true,
"requires_project": true,
"resource_type": "topology",
"service": "vitrage",
"status_code": 200
},
{
"collection_key": "topology",
"introduced_in": "yoga",
"item_key": "topology",
"kind": "item",
"method": "PATCH",
"operation_id": "topology_patch",
"path": "/v1/topology/{id}",
"requires_auth": true,
"requires_project": true,
"resource_type": "topology",
"service": "vitrage",
"status_code": 200
},
{
"collection_key": "topology",
"introduced_in": "yoga",
"kind": "item",
"method": "DELETE",
"operation_id": "topology_delete",
"path": "/v1/topology/{id}",
"requires_auth": true,
"requires_project": true,
"resource_type": "topology",
"service": "vitrage",
"status_code": 204
},
{
"collection_key": "alarms",
"introduced_in": "yoga",
"kind": "collection",
"method": "GET",
"operation_id": "alarm_list",
"path": "/v1/alarm",
"requires_auth": true,
"requires_project": true,
"resource_type": "alarm",
"service": "vitrage",
"status_code": 200
},
{
"collection_key": "alarms",
"create_status": 201,
"introduced_in": "yoga",
"item_key": "alarm",
"kind": "collection",
"method": "POST",
"operation_id": "alarm_create",
"path": "/v1/alarm",
"requires_auth": true,
"requires_project": true,
"resource_type": "alarm",
"service": "vitrage",
"status_code": 201
},
{
"collection_key": "alarms",
"introduced_in": "yoga",
"item_key": "alarm",
"kind": "item",
"method": "GET",
"operation_id": "alarm_show",
"path": "/v1/alarm/{id}",
"requires_auth": true,
"requires_project": true,
"resource_type": "alarm",
"service": "vitrage",
"status_code": 200
},
{
"collection_key": "alarms",
"introduced_in": "yoga",
"item_key": "alarm",
"kind": "item",
"method": "PUT",
"operation_id": "alarm_update",
"path": "/v1/alarm/{id}",
"requires_auth": true,
"requires_project": true,
"resource_type": "alarm",
"service": "vitrage",
"status_code": 200
},
{
"collection_key": "alarms",
"introduced_in": "yoga",
"item_key": "alarm",
"kind": "item",
"method": "PATCH",
"operation_id": "alarm_patch",
"path": "/v1/alarm/{id}",
"requires_auth": true,
"requires_project": true,
"resource_type": "alarm",
"service": "vitrage",
"status_code": 200
},
{
"collection_key": "alarms",
"introduced_in": "yoga",
"kind": "item",
"method": "DELETE",
"operation_id": "alarm_delete",
"path": "/v1/alarm/{id}",
"requires_auth": true,
"requires_project": true,
"resource_type": "alarm",
"service": "vitrage",
"status_code": 204
},
{
"collection_key": "resources",
"introduced_in": "yoga",
"kind": "collection",
"method": "GET",
"operation_id": "resource_list",
"path": "/v1/resources",
"requires_auth": true,
"requires_project": true,
"resource_type": "resource",
"service": "vitrage",
"status_code": 200
},
{
"collection_key": "resources",
"create_status": 201,
"introduced_in": "yoga",
"item_key": "resource",
"kind": "collection",
"method": "POST",
"operation_id": "resource_create",
"path": "/v1/resources",
"requires_auth": true,
"requires_project": true,
"resource_type": "resource",
"service": "vitrage",
"status_code": 201
},
{
"collection_key": "resources",
"introduced_in": "yoga",
"item_key": "resource",
"kind": "item",
"method": "GET",
"operation_id": "resource_show",
"path": "/v1/resources/{id}",
"requires_auth": true,
"requires_project": true,
"resource_type": "resource",
"service": "vitrage",
"status_code": 200
},
{
"collection_key": "resources",
"introduced_in": "yoga",
"item_key": "resource",
"kind": "item",
"method": "PUT",
"operation_id": "resource_update",
"path": "/v1/resources/{id}",
"requires_auth": true,
"requires_project": true,
"resource_type": "resource",
"service": "vitrage",
"status_code": 200
},
{
"collection_key": "resources",
"introduced_in": "yoga",
"item_key": "resource",
"kind": "item",
"method": "PATCH",
"operation_id": "resource_patch",
"path": "/v1/resources/{id}",
"requires_auth": true,
"requires_project": true,
"resource_type": "resource",
"service": "vitrage",
"status_code": 200
},
{
"collection_key": "resources",
"introduced_in": "yoga",
"kind": "item",
"method": "DELETE",
"operation_id": "resource_delete",
"path": "/v1/resources/{id}",
"requires_auth": true,
"requires_project": true,
"resource_type": "resource",
"service": "vitrage",
"status_code": 204
},
{
"collection_key": "templates",
"introduced_in": "yoga",
"kind": "collection",
"method": "GET",
"operation_id": "template_list",
"path": "/v1/template",
"requires_auth": true,
"requires_project": true,
"resource_type": "template",
"service": "vitrage",
"status_code": 200
},
{
"collection_key": "templates",
"create_status": 201,
"introduced_in": "yoga",
"item_key": "template",
"kind": "collection",
"method": "POST",
"operation_id": "template_create",
"path": "/v1/template",
"requires_auth": true,
"requires_project": true,
"resource_type": "template",
"service": "vitrage",
"status_code": 201
},
{
"collection_key": "templates",
"introduced_in": "yoga",
"item_key": "template",
"kind": "item",
"method": "GET",
"operation_id": "template_show",
"path": "/v1/template/{id}",
"requires_auth": true,
"requires_project": true,
"resource_type": "template",
"service": "vitrage",
"status_code": 200
},
{
"collection_key": "templates",
"introduced_in": "yoga",
"item_key": "template",
"kind": "item",
"method": "PUT",
"operation_id": "template_update",
"path": "/v1/template/{id}",
"requires_auth": true,
"requires_project": true,
"resource_type": "template",
"service": "vitrage",
"status_code": 200
},
{
"collection_key": "templates",
"introduced_in": "yoga",
"item_key": "template",
"kind": "item",
"method": "PATCH",
"operation_id": "template_patch",
"path": "/v1/template/{id}",
"requires_auth": true,
"requires_project": true,
"resource_type": "template",
"service": "vitrage",
"status_code": 200
},
{
"collection_key": "templates",
"introduced_in": "yoga",
"kind": "item",
"method": "DELETE",
"operation_id": "template_delete",
"path": "/v1/template/{id}",
"requires_auth": true,
"requires_project": true,
"resource_type": "template",
"service": "vitrage",
"status_code": 204
},
{
"collection_key": "events",
"introduced_in": "yoga",
"kind": "collection",
"method": "GET",
"operation_id": "event_list",
"path": "/v1/event",
"requires_auth": true,
"requires_project": true,
"resource_type": "event",
"service": "vitrage",
"status_code": 200
},
{
"collection_key": "events",
"create_status": 201,
"introduced_in": "yoga",
"item_key": "event",
"kind": "collection",
"method": "POST",
"operation_id": "event_create",
"path": "/v1/event",
"requires_auth": true,
"requires_project": true,
"resource_type": "event",
"service": "vitrage",
"status_code": 201
},
{
"collection_key": "events",
"introduced_in": "yoga",
"item_key": "event",
"kind": "item",
"method": "GET",
"operation_id": "event_show",
"path": "/v1/event/{id}",
"requires_auth": true,
"requires_project": true,
"resource_type": "event",
"service": "vitrage",
"status_code": 200
},
{
"collection_key": "events",
"introduced_in": "yoga",
"item_key": "event",
"kind": "item",
"method": "PUT",
"operation_id": "event_update",
"path": "/v1/event/{id}",
"requires_auth": true,
"requires_project": true,
"resource_type": "event",
"service": "vitrage",
"status_code": 200
},
{
"collection_key": "events",
"introduced_in": "yoga",
"item_key": "event",
"kind": "item",
"method": "PATCH",
"operation_id": "event_patch",
"path": "/v1/event/{id}",
"requires_auth": true,
"requires_project": true,
"resource_type": "event",
"service": "vitrage",
"status_code": 200
},
{
"collection_key": "events",
"introduced_in": "yoga",
"kind": "item",
"method": "DELETE",
"operation_id": "event_delete",
"path": "/v1/event/{id}",
"requires_auth": true,
"requires_project": true,
"resource_type": "event",
"service": "vitrage",
"status_code": 204
}
],
"port": 8999,
"service": "vitrage",
"type": "rca",
"version_path": "/"
}