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:
@@ -0,0 +1,462 @@
|
||||
{
|
||||
"default_microversion": null,
|
||||
"max_microversion": null,
|
||||
"operations": [
|
||||
{
|
||||
"collection_key": null,
|
||||
"introduced_in": "yoga",
|
||||
"kind": "custom",
|
||||
"method": "GET",
|
||||
"operation_id": "zun_versions",
|
||||
"path": "/v1",
|
||||
"requires_auth": true,
|
||||
"requires_project": false,
|
||||
"resource_type": "version",
|
||||
"service": "zun",
|
||||
"status_code": 200
|
||||
},
|
||||
{
|
||||
"collection_key": "containers",
|
||||
"introduced_in": "yoga",
|
||||
"kind": "collection",
|
||||
"method": "GET",
|
||||
"operation_id": "container_list",
|
||||
"path": "/v1/containers",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "container",
|
||||
"service": "zun",
|
||||
"status_code": 200
|
||||
},
|
||||
{
|
||||
"collection_key": "containers",
|
||||
"create_status": 201,
|
||||
"introduced_in": "yoga",
|
||||
"item_key": "container",
|
||||
"kind": "collection",
|
||||
"method": "POST",
|
||||
"operation_id": "container_create",
|
||||
"path": "/v1/containers",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "container",
|
||||
"service": "zun",
|
||||
"status_code": 201
|
||||
},
|
||||
{
|
||||
"collection_key": "containers",
|
||||
"introduced_in": "yoga",
|
||||
"item_key": "container",
|
||||
"kind": "item",
|
||||
"method": "GET",
|
||||
"operation_id": "container_show",
|
||||
"path": "/v1/containers/{id}",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "container",
|
||||
"service": "zun",
|
||||
"status_code": 200
|
||||
},
|
||||
{
|
||||
"collection_key": "containers",
|
||||
"introduced_in": "yoga",
|
||||
"item_key": "container",
|
||||
"kind": "item",
|
||||
"method": "PUT",
|
||||
"operation_id": "container_update",
|
||||
"path": "/v1/containers/{id}",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "container",
|
||||
"service": "zun",
|
||||
"status_code": 200
|
||||
},
|
||||
{
|
||||
"collection_key": "containers",
|
||||
"introduced_in": "yoga",
|
||||
"item_key": "container",
|
||||
"kind": "item",
|
||||
"method": "PATCH",
|
||||
"operation_id": "container_patch",
|
||||
"path": "/v1/containers/{id}",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "container",
|
||||
"service": "zun",
|
||||
"status_code": 200
|
||||
},
|
||||
{
|
||||
"collection_key": "containers",
|
||||
"introduced_in": "yoga",
|
||||
"kind": "item",
|
||||
"method": "DELETE",
|
||||
"operation_id": "container_delete",
|
||||
"path": "/v1/containers/{id}",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "container",
|
||||
"service": "zun",
|
||||
"status_code": 204
|
||||
},
|
||||
{
|
||||
"collection_key": "images",
|
||||
"introduced_in": "yoga",
|
||||
"kind": "collection",
|
||||
"method": "GET",
|
||||
"operation_id": "image_list",
|
||||
"path": "/v1/images",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "image",
|
||||
"service": "zun",
|
||||
"status_code": 200
|
||||
},
|
||||
{
|
||||
"collection_key": "images",
|
||||
"create_status": 201,
|
||||
"introduced_in": "yoga",
|
||||
"item_key": "image",
|
||||
"kind": "collection",
|
||||
"method": "POST",
|
||||
"operation_id": "image_create",
|
||||
"path": "/v1/images",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "image",
|
||||
"service": "zun",
|
||||
"status_code": 201
|
||||
},
|
||||
{
|
||||
"collection_key": "images",
|
||||
"introduced_in": "yoga",
|
||||
"item_key": "image",
|
||||
"kind": "item",
|
||||
"method": "GET",
|
||||
"operation_id": "image_show",
|
||||
"path": "/v1/images/{id}",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "image",
|
||||
"service": "zun",
|
||||
"status_code": 200
|
||||
},
|
||||
{
|
||||
"collection_key": "images",
|
||||
"introduced_in": "yoga",
|
||||
"item_key": "image",
|
||||
"kind": "item",
|
||||
"method": "PUT",
|
||||
"operation_id": "image_update",
|
||||
"path": "/v1/images/{id}",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "image",
|
||||
"service": "zun",
|
||||
"status_code": 200
|
||||
},
|
||||
{
|
||||
"collection_key": "images",
|
||||
"introduced_in": "yoga",
|
||||
"item_key": "image",
|
||||
"kind": "item",
|
||||
"method": "PATCH",
|
||||
"operation_id": "image_patch",
|
||||
"path": "/v1/images/{id}",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "image",
|
||||
"service": "zun",
|
||||
"status_code": 200
|
||||
},
|
||||
{
|
||||
"collection_key": "images",
|
||||
"introduced_in": "yoga",
|
||||
"kind": "item",
|
||||
"method": "DELETE",
|
||||
"operation_id": "image_delete",
|
||||
"path": "/v1/images/{id}",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "image",
|
||||
"service": "zun",
|
||||
"status_code": 204
|
||||
},
|
||||
{
|
||||
"collection_key": "capsules",
|
||||
"introduced_in": "dalmatian",
|
||||
"kind": "collection",
|
||||
"method": "GET",
|
||||
"operation_id": "capsule_list",
|
||||
"path": "/v1/capsules",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "capsule",
|
||||
"service": "zun",
|
||||
"status_code": 200
|
||||
},
|
||||
{
|
||||
"collection_key": "capsules",
|
||||
"create_status": 201,
|
||||
"introduced_in": "dalmatian",
|
||||
"item_key": "capsule",
|
||||
"kind": "collection",
|
||||
"method": "POST",
|
||||
"operation_id": "capsule_create",
|
||||
"path": "/v1/capsules",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "capsule",
|
||||
"service": "zun",
|
||||
"status_code": 201
|
||||
},
|
||||
{
|
||||
"collection_key": "capsules",
|
||||
"introduced_in": "dalmatian",
|
||||
"item_key": "capsule",
|
||||
"kind": "item",
|
||||
"method": "GET",
|
||||
"operation_id": "capsule_show",
|
||||
"path": "/v1/capsules/{id}",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "capsule",
|
||||
"service": "zun",
|
||||
"status_code": 200
|
||||
},
|
||||
{
|
||||
"collection_key": "capsules",
|
||||
"introduced_in": "dalmatian",
|
||||
"item_key": "capsule",
|
||||
"kind": "item",
|
||||
"method": "PUT",
|
||||
"operation_id": "capsule_update",
|
||||
"path": "/v1/capsules/{id}",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "capsule",
|
||||
"service": "zun",
|
||||
"status_code": 200
|
||||
},
|
||||
{
|
||||
"collection_key": "capsules",
|
||||
"introduced_in": "dalmatian",
|
||||
"item_key": "capsule",
|
||||
"kind": "item",
|
||||
"method": "PATCH",
|
||||
"operation_id": "capsule_patch",
|
||||
"path": "/v1/capsules/{id}",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "capsule",
|
||||
"service": "zun",
|
||||
"status_code": 200
|
||||
},
|
||||
{
|
||||
"collection_key": "capsules",
|
||||
"introduced_in": "dalmatian",
|
||||
"kind": "item",
|
||||
"method": "DELETE",
|
||||
"operation_id": "capsule_delete",
|
||||
"path": "/v1/capsules/{id}",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "capsule",
|
||||
"service": "zun",
|
||||
"status_code": 204
|
||||
},
|
||||
{
|
||||
"collection_key": "hosts",
|
||||
"introduced_in": "yoga",
|
||||
"kind": "collection",
|
||||
"method": "GET",
|
||||
"operation_id": "host_list",
|
||||
"path": "/v1/hosts",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "host",
|
||||
"service": "zun",
|
||||
"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/hosts",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "host",
|
||||
"service": "zun",
|
||||
"status_code": 201
|
||||
},
|
||||
{
|
||||
"collection_key": "hosts",
|
||||
"introduced_in": "yoga",
|
||||
"item_key": "host",
|
||||
"kind": "item",
|
||||
"method": "GET",
|
||||
"operation_id": "host_show",
|
||||
"path": "/v1/hosts/{id}",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "host",
|
||||
"service": "zun",
|
||||
"status_code": 200
|
||||
},
|
||||
{
|
||||
"collection_key": "hosts",
|
||||
"introduced_in": "yoga",
|
||||
"item_key": "host",
|
||||
"kind": "item",
|
||||
"method": "PUT",
|
||||
"operation_id": "host_update",
|
||||
"path": "/v1/hosts/{id}",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "host",
|
||||
"service": "zun",
|
||||
"status_code": 200
|
||||
},
|
||||
{
|
||||
"collection_key": "hosts",
|
||||
"introduced_in": "yoga",
|
||||
"item_key": "host",
|
||||
"kind": "item",
|
||||
"method": "PATCH",
|
||||
"operation_id": "host_patch",
|
||||
"path": "/v1/hosts/{id}",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "host",
|
||||
"service": "zun",
|
||||
"status_code": 200
|
||||
},
|
||||
{
|
||||
"collection_key": "hosts",
|
||||
"introduced_in": "yoga",
|
||||
"kind": "item",
|
||||
"method": "DELETE",
|
||||
"operation_id": "host_delete",
|
||||
"path": "/v1/hosts/{id}",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "host",
|
||||
"service": "zun",
|
||||
"status_code": 204
|
||||
},
|
||||
{
|
||||
"collection_key": "services",
|
||||
"introduced_in": "yoga",
|
||||
"kind": "collection",
|
||||
"method": "GET",
|
||||
"operation_id": "service_list",
|
||||
"path": "/v1/services",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "service",
|
||||
"service": "zun",
|
||||
"status_code": 200
|
||||
},
|
||||
{
|
||||
"collection_key": "services",
|
||||
"create_status": 201,
|
||||
"introduced_in": "yoga",
|
||||
"item_key": "service",
|
||||
"kind": "collection",
|
||||
"method": "POST",
|
||||
"operation_id": "service_create",
|
||||
"path": "/v1/services",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "service",
|
||||
"service": "zun",
|
||||
"status_code": 201
|
||||
},
|
||||
{
|
||||
"collection_key": "services",
|
||||
"introduced_in": "yoga",
|
||||
"item_key": "service",
|
||||
"kind": "item",
|
||||
"method": "GET",
|
||||
"operation_id": "service_show",
|
||||
"path": "/v1/services/{id}",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "service",
|
||||
"service": "zun",
|
||||
"status_code": 200
|
||||
},
|
||||
{
|
||||
"collection_key": "services",
|
||||
"introduced_in": "yoga",
|
||||
"item_key": "service",
|
||||
"kind": "item",
|
||||
"method": "PUT",
|
||||
"operation_id": "service_update",
|
||||
"path": "/v1/services/{id}",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "service",
|
||||
"service": "zun",
|
||||
"status_code": 200
|
||||
},
|
||||
{
|
||||
"collection_key": "services",
|
||||
"introduced_in": "yoga",
|
||||
"item_key": "service",
|
||||
"kind": "item",
|
||||
"method": "PATCH",
|
||||
"operation_id": "service_patch",
|
||||
"path": "/v1/services/{id}",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "service",
|
||||
"service": "zun",
|
||||
"status_code": 200
|
||||
},
|
||||
{
|
||||
"collection_key": "services",
|
||||
"introduced_in": "yoga",
|
||||
"kind": "item",
|
||||
"method": "DELETE",
|
||||
"operation_id": "service_delete",
|
||||
"path": "/v1/services/{id}",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "service",
|
||||
"service": "zun",
|
||||
"status_code": 204
|
||||
},
|
||||
{
|
||||
"introduced_in": "yoga",
|
||||
"kind": "action",
|
||||
"method": "POST",
|
||||
"operation_id": "container_action",
|
||||
"path": "/v1/containers/{id}/start",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "container",
|
||||
"service": "zun",
|
||||
"status_code": 202
|
||||
},
|
||||
{
|
||||
"introduced_in": "yoga",
|
||||
"kind": "action",
|
||||
"method": "POST",
|
||||
"operation_id": "container_stop",
|
||||
"path": "/v1/containers/{id}/stop",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "container",
|
||||
"service": "zun",
|
||||
"status_code": 202
|
||||
}
|
||||
],
|
||||
"port": 9517,
|
||||
"service": "zun",
|
||||
"type": "container",
|
||||
"version_path": "/v1/"
|
||||
}
|
||||
Reference in New Issue
Block a user