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
@@ -0,0 +1,272 @@
{
"default_microversion": null,
"max_microversion": null,
"operations": [
{
"collection_key": null,
"introduced_in": "yoga",
"kind": "custom",
"method": "GET",
"operation_id": "masakari_versions",
"path": "/v1",
"requires_auth": true,
"requires_project": false,
"resource_type": "version",
"service": "masakari",
"status_code": 200
},
{
"collection_key": "segments",
"introduced_in": "yoga",
"kind": "collection",
"method": "GET",
"operation_id": "segment_list",
"path": "/v1/segments",
"requires_auth": true,
"requires_project": true,
"resource_type": "segment",
"service": "masakari",
"status_code": 200
},
{
"collection_key": "segments",
"create_status": 201,
"introduced_in": "yoga",
"item_key": "segment",
"kind": "collection",
"method": "POST",
"operation_id": "segment_create",
"path": "/v1/segments",
"requires_auth": true,
"requires_project": true,
"resource_type": "segment",
"service": "masakari",
"status_code": 201
},
{
"collection_key": "segments",
"introduced_in": "yoga",
"item_key": "segment",
"kind": "item",
"method": "GET",
"operation_id": "segment_show",
"path": "/v1/segments/{id}",
"requires_auth": true,
"requires_project": true,
"resource_type": "segment",
"service": "masakari",
"status_code": 200
},
{
"collection_key": "segments",
"introduced_in": "yoga",
"item_key": "segment",
"kind": "item",
"method": "PUT",
"operation_id": "segment_update",
"path": "/v1/segments/{id}",
"requires_auth": true,
"requires_project": true,
"resource_type": "segment",
"service": "masakari",
"status_code": 200
},
{
"collection_key": "segments",
"introduced_in": "yoga",
"item_key": "segment",
"kind": "item",
"method": "PATCH",
"operation_id": "segment_patch",
"path": "/v1/segments/{id}",
"requires_auth": true,
"requires_project": true,
"resource_type": "segment",
"service": "masakari",
"status_code": 200
},
{
"collection_key": "segments",
"introduced_in": "yoga",
"kind": "item",
"method": "DELETE",
"operation_id": "segment_delete",
"path": "/v1/segments/{id}",
"requires_auth": true,
"requires_project": true,
"resource_type": "segment",
"service": "masakari",
"status_code": 204
},
{
"collection_key": "hosts",
"introduced_in": "yoga",
"kind": "collection",
"method": "GET",
"operation_id": "host_list",
"path": "/v1/segments/{segment_id}/hosts",
"requires_auth": true,
"requires_project": true,
"resource_type": "host",
"service": "masakari",
"status_code": 200
},
{
"collection_key": "hosts",
"create_status": 201,
"introduced_in": "yoga",
"item_key": "host",
"kind": "collection",
"method": "POST",
"operation_id": "host_create",
"path": "/v1/segments/{segment_id}/hosts",
"requires_auth": true,
"requires_project": true,
"resource_type": "host",
"service": "masakari",
"status_code": 201
},
{
"collection_key": "hosts",
"introduced_in": "yoga",
"item_key": "host",
"kind": "item",
"method": "GET",
"operation_id": "host_show",
"path": "/v1/segments/{segment_id}/hosts/{id}",
"requires_auth": true,
"requires_project": true,
"resource_type": "host",
"service": "masakari",
"status_code": 200
},
{
"collection_key": "hosts",
"introduced_in": "yoga",
"item_key": "host",
"kind": "item",
"method": "PUT",
"operation_id": "host_update",
"path": "/v1/segments/{segment_id}/hosts/{id}",
"requires_auth": true,
"requires_project": true,
"resource_type": "host",
"service": "masakari",
"status_code": 200
},
{
"collection_key": "hosts",
"introduced_in": "yoga",
"item_key": "host",
"kind": "item",
"method": "PATCH",
"operation_id": "host_patch",
"path": "/v1/segments/{segment_id}/hosts/{id}",
"requires_auth": true,
"requires_project": true,
"resource_type": "host",
"service": "masakari",
"status_code": 200
},
{
"collection_key": "hosts",
"introduced_in": "yoga",
"kind": "item",
"method": "DELETE",
"operation_id": "host_delete",
"path": "/v1/segments/{segment_id}/hosts/{id}",
"requires_auth": true,
"requires_project": true,
"resource_type": "host",
"service": "masakari",
"status_code": 204
},
{
"collection_key": "notifications",
"introduced_in": "yoga",
"kind": "collection",
"method": "GET",
"operation_id": "notification_list",
"path": "/v1/notifications",
"requires_auth": true,
"requires_project": true,
"resource_type": "notification",
"service": "masakari",
"status_code": 200
},
{
"collection_key": "notifications",
"create_status": 201,
"introduced_in": "yoga",
"item_key": "notification",
"kind": "collection",
"method": "POST",
"operation_id": "notification_create",
"path": "/v1/notifications",
"requires_auth": true,
"requires_project": true,
"resource_type": "notification",
"service": "masakari",
"status_code": 201
},
{
"collection_key": "notifications",
"introduced_in": "yoga",
"item_key": "notification",
"kind": "item",
"method": "GET",
"operation_id": "notification_show",
"path": "/v1/notifications/{id}",
"requires_auth": true,
"requires_project": true,
"resource_type": "notification",
"service": "masakari",
"status_code": 200
},
{
"collection_key": "notifications",
"introduced_in": "yoga",
"item_key": "notification",
"kind": "item",
"method": "PUT",
"operation_id": "notification_update",
"path": "/v1/notifications/{id}",
"requires_auth": true,
"requires_project": true,
"resource_type": "notification",
"service": "masakari",
"status_code": 200
},
{
"collection_key": "notifications",
"introduced_in": "yoga",
"item_key": "notification",
"kind": "item",
"method": "PATCH",
"operation_id": "notification_patch",
"path": "/v1/notifications/{id}",
"requires_auth": true,
"requires_project": true,
"resource_type": "notification",
"service": "masakari",
"status_code": 200
},
{
"collection_key": "notifications",
"introduced_in": "yoga",
"kind": "item",
"method": "DELETE",
"operation_id": "notification_delete",
"path": "/v1/notifications/{id}",
"requires_auth": true,
"requires_project": true,
"resource_type": "notification",
"service": "masakari",
"status_code": 204
}
],
"port": 15868,
"service": "masakari",
"type": "instance-ha",
"version_path": "/v1/"
}