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,516 @@
|
||||
{
|
||||
"default_microversion": null,
|
||||
"max_microversion": null,
|
||||
"operations": [
|
||||
{
|
||||
"collection_key": null,
|
||||
"introduced_in": "yoga",
|
||||
"kind": "custom",
|
||||
"method": "GET",
|
||||
"operation_id": "glance_versions",
|
||||
"path": "/v2",
|
||||
"requires_auth": true,
|
||||
"requires_project": false,
|
||||
"resource_type": "version",
|
||||
"service": "glance",
|
||||
"status_code": 200
|
||||
},
|
||||
{
|
||||
"collection_key": "images",
|
||||
"introduced_in": "yoga",
|
||||
"kind": "collection",
|
||||
"method": "GET",
|
||||
"operation_id": "image_list",
|
||||
"path": "/v2/images",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "image",
|
||||
"service": "glance",
|
||||
"status_code": 200
|
||||
},
|
||||
{
|
||||
"collection_key": "images",
|
||||
"create_status": 201,
|
||||
"introduced_in": "yoga",
|
||||
"item_key": "image",
|
||||
"kind": "collection",
|
||||
"method": "POST",
|
||||
"operation_id": "image_create",
|
||||
"path": "/v2/images",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "image",
|
||||
"service": "glance",
|
||||
"status_code": 201
|
||||
},
|
||||
{
|
||||
"collection_key": "images",
|
||||
"introduced_in": "yoga",
|
||||
"item_key": "image",
|
||||
"kind": "item",
|
||||
"method": "GET",
|
||||
"operation_id": "image_show",
|
||||
"path": "/v2/images/{id}",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "image",
|
||||
"service": "glance",
|
||||
"status_code": 200
|
||||
},
|
||||
{
|
||||
"collection_key": "images",
|
||||
"introduced_in": "yoga",
|
||||
"item_key": "image",
|
||||
"kind": "item",
|
||||
"method": "PUT",
|
||||
"operation_id": "image_update",
|
||||
"path": "/v2/images/{id}",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "image",
|
||||
"service": "glance",
|
||||
"status_code": 200
|
||||
},
|
||||
{
|
||||
"collection_key": "images",
|
||||
"introduced_in": "yoga",
|
||||
"item_key": "image",
|
||||
"kind": "item",
|
||||
"method": "PATCH",
|
||||
"operation_id": "image_patch",
|
||||
"path": "/v2/images/{id}",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "image",
|
||||
"service": "glance",
|
||||
"status_code": 200
|
||||
},
|
||||
{
|
||||
"collection_key": "images",
|
||||
"introduced_in": "yoga",
|
||||
"kind": "item",
|
||||
"method": "DELETE",
|
||||
"operation_id": "image_delete",
|
||||
"path": "/v2/images/{id}",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "image",
|
||||
"service": "glance",
|
||||
"status_code": 204
|
||||
},
|
||||
{
|
||||
"collection_key": null,
|
||||
"introduced_in": "yoga",
|
||||
"kind": "custom",
|
||||
"method": "PUT",
|
||||
"operation_id": "image_upload",
|
||||
"path": "/v2/images/{id}/file",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "image",
|
||||
"service": "glance",
|
||||
"status_code": 204
|
||||
},
|
||||
{
|
||||
"collection_key": null,
|
||||
"introduced_in": "yoga",
|
||||
"kind": "custom",
|
||||
"method": "GET",
|
||||
"operation_id": "image_download",
|
||||
"path": "/v2/images/{id}/file",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "image",
|
||||
"service": "glance",
|
||||
"status_code": 200
|
||||
},
|
||||
{
|
||||
"collection_key": "namespaces",
|
||||
"introduced_in": "yoga",
|
||||
"kind": "collection",
|
||||
"method": "GET",
|
||||
"operation_id": "metadef_namespace_list",
|
||||
"path": "/v2/metadefs/namespaces",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "metadef_namespace",
|
||||
"service": "glance",
|
||||
"status_code": 200
|
||||
},
|
||||
{
|
||||
"collection_key": "namespaces",
|
||||
"create_status": 201,
|
||||
"introduced_in": "yoga",
|
||||
"item_key": "namespace",
|
||||
"kind": "collection",
|
||||
"method": "POST",
|
||||
"operation_id": "metadef_namespace_create",
|
||||
"path": "/v2/metadefs/namespaces",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "metadef_namespace",
|
||||
"service": "glance",
|
||||
"status_code": 201
|
||||
},
|
||||
{
|
||||
"collection_key": "namespaces",
|
||||
"introduced_in": "yoga",
|
||||
"item_key": "namespace",
|
||||
"kind": "item",
|
||||
"method": "GET",
|
||||
"operation_id": "metadef_namespace_show",
|
||||
"path": "/v2/metadefs/namespaces/{id}",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "metadef_namespace",
|
||||
"service": "glance",
|
||||
"status_code": 200
|
||||
},
|
||||
{
|
||||
"collection_key": "namespaces",
|
||||
"introduced_in": "yoga",
|
||||
"item_key": "namespace",
|
||||
"kind": "item",
|
||||
"method": "PUT",
|
||||
"operation_id": "metadef_namespace_update",
|
||||
"path": "/v2/metadefs/namespaces/{id}",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "metadef_namespace",
|
||||
"service": "glance",
|
||||
"status_code": 200
|
||||
},
|
||||
{
|
||||
"collection_key": "namespaces",
|
||||
"introduced_in": "yoga",
|
||||
"item_key": "namespace",
|
||||
"kind": "item",
|
||||
"method": "PATCH",
|
||||
"operation_id": "metadef_namespace_patch",
|
||||
"path": "/v2/metadefs/namespaces/{id}",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "metadef_namespace",
|
||||
"service": "glance",
|
||||
"status_code": 200
|
||||
},
|
||||
{
|
||||
"collection_key": "namespaces",
|
||||
"introduced_in": "yoga",
|
||||
"kind": "item",
|
||||
"method": "DELETE",
|
||||
"operation_id": "metadef_namespace_delete",
|
||||
"path": "/v2/metadefs/namespaces/{id}",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "metadef_namespace",
|
||||
"service": "glance",
|
||||
"status_code": 204
|
||||
},
|
||||
{
|
||||
"collection_key": "tasks",
|
||||
"introduced_in": "yoga",
|
||||
"kind": "collection",
|
||||
"method": "GET",
|
||||
"operation_id": "task_list",
|
||||
"path": "/v2/tasks",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "task",
|
||||
"service": "glance",
|
||||
"status_code": 200
|
||||
},
|
||||
{
|
||||
"collection_key": "tasks",
|
||||
"create_status": 201,
|
||||
"introduced_in": "yoga",
|
||||
"item_key": "task",
|
||||
"kind": "collection",
|
||||
"method": "POST",
|
||||
"operation_id": "task_create",
|
||||
"path": "/v2/tasks",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "task",
|
||||
"service": "glance",
|
||||
"status_code": 201
|
||||
},
|
||||
{
|
||||
"collection_key": "tasks",
|
||||
"introduced_in": "yoga",
|
||||
"item_key": "task",
|
||||
"kind": "item",
|
||||
"method": "GET",
|
||||
"operation_id": "task_show",
|
||||
"path": "/v2/tasks/{id}",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "task",
|
||||
"service": "glance",
|
||||
"status_code": 200
|
||||
},
|
||||
{
|
||||
"collection_key": "tasks",
|
||||
"introduced_in": "yoga",
|
||||
"item_key": "task",
|
||||
"kind": "item",
|
||||
"method": "PUT",
|
||||
"operation_id": "task_update",
|
||||
"path": "/v2/tasks/{id}",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "task",
|
||||
"service": "glance",
|
||||
"status_code": 200
|
||||
},
|
||||
{
|
||||
"collection_key": "tasks",
|
||||
"introduced_in": "yoga",
|
||||
"item_key": "task",
|
||||
"kind": "item",
|
||||
"method": "PATCH",
|
||||
"operation_id": "task_patch",
|
||||
"path": "/v2/tasks/{id}",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "task",
|
||||
"service": "glance",
|
||||
"status_code": 200
|
||||
},
|
||||
{
|
||||
"collection_key": "tasks",
|
||||
"introduced_in": "yoga",
|
||||
"kind": "item",
|
||||
"method": "DELETE",
|
||||
"operation_id": "task_delete",
|
||||
"path": "/v2/tasks/{id}",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "task",
|
||||
"service": "glance",
|
||||
"status_code": 204
|
||||
},
|
||||
{
|
||||
"collection_key": null,
|
||||
"introduced_in": "yoga",
|
||||
"kind": "custom",
|
||||
"method": "GET",
|
||||
"operation_id": "glance_schema_image",
|
||||
"path": "/v2/schemas/image",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "schema",
|
||||
"service": "glance",
|
||||
"status_code": 200
|
||||
},
|
||||
{
|
||||
"collection_key": null,
|
||||
"introduced_in": "yoga",
|
||||
"kind": "custom",
|
||||
"method": "GET",
|
||||
"operation_id": "glance_schema_images",
|
||||
"path": "/v2/schemas/images",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "schema",
|
||||
"service": "glance",
|
||||
"status_code": 200
|
||||
},
|
||||
{
|
||||
"collection_key": null,
|
||||
"introduced_in": "yoga",
|
||||
"kind": "custom",
|
||||
"method": "POST",
|
||||
"operation_id": "image_deactivate",
|
||||
"path": "/v2/images/{id}/actions/deactivate",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "image",
|
||||
"service": "glance",
|
||||
"status_code": 204
|
||||
},
|
||||
{
|
||||
"collection_key": null,
|
||||
"introduced_in": "yoga",
|
||||
"kind": "custom",
|
||||
"method": "POST",
|
||||
"operation_id": "image_reactivate",
|
||||
"path": "/v2/images/{id}/actions/reactivate",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "image",
|
||||
"service": "glance",
|
||||
"status_code": 204
|
||||
},
|
||||
{
|
||||
"collection_key": "members",
|
||||
"introduced_in": "yoga",
|
||||
"kind": "collection",
|
||||
"method": "GET",
|
||||
"operation_id": "image_member_list",
|
||||
"path": "/v2/images/{image_id}/members",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "image_member",
|
||||
"service": "glance",
|
||||
"status_code": 200
|
||||
},
|
||||
{
|
||||
"collection_key": "members",
|
||||
"create_status": 201,
|
||||
"introduced_in": "yoga",
|
||||
"item_key": "member",
|
||||
"kind": "collection",
|
||||
"method": "POST",
|
||||
"operation_id": "image_member_create",
|
||||
"path": "/v2/images/{image_id}/members",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "image_member",
|
||||
"service": "glance",
|
||||
"status_code": 201
|
||||
},
|
||||
{
|
||||
"collection_key": "members",
|
||||
"introduced_in": "yoga",
|
||||
"item_key": "member",
|
||||
"kind": "item",
|
||||
"method": "GET",
|
||||
"operation_id": "image_member_show",
|
||||
"path": "/v2/images/{image_id}/members/{id}",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "image_member",
|
||||
"service": "glance",
|
||||
"status_code": 200
|
||||
},
|
||||
{
|
||||
"collection_key": "members",
|
||||
"introduced_in": "yoga",
|
||||
"item_key": "member",
|
||||
"kind": "item",
|
||||
"method": "PUT",
|
||||
"operation_id": "image_member_update",
|
||||
"path": "/v2/images/{image_id}/members/{id}",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "image_member",
|
||||
"service": "glance",
|
||||
"status_code": 200
|
||||
},
|
||||
{
|
||||
"collection_key": "members",
|
||||
"introduced_in": "yoga",
|
||||
"item_key": "member",
|
||||
"kind": "item",
|
||||
"method": "PATCH",
|
||||
"operation_id": "image_member_patch",
|
||||
"path": "/v2/images/{image_id}/members/{id}",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "image_member",
|
||||
"service": "glance",
|
||||
"status_code": 200
|
||||
},
|
||||
{
|
||||
"collection_key": "members",
|
||||
"introduced_in": "yoga",
|
||||
"kind": "item",
|
||||
"method": "DELETE",
|
||||
"operation_id": "image_member_delete",
|
||||
"path": "/v2/images/{image_id}/members/{id}",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "image_member",
|
||||
"service": "glance",
|
||||
"status_code": 204
|
||||
},
|
||||
{
|
||||
"collection_key": "tags",
|
||||
"introduced_in": "yoga",
|
||||
"kind": "collection",
|
||||
"method": "GET",
|
||||
"operation_id": "image_tag_list",
|
||||
"path": "/v2/images/{image_id}/tags",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "image_tag",
|
||||
"service": "glance",
|
||||
"status_code": 200
|
||||
},
|
||||
{
|
||||
"collection_key": "tags",
|
||||
"create_status": 201,
|
||||
"introduced_in": "yoga",
|
||||
"item_key": "tag",
|
||||
"kind": "collection",
|
||||
"method": "POST",
|
||||
"operation_id": "image_tag_create",
|
||||
"path": "/v2/images/{image_id}/tags",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "image_tag",
|
||||
"service": "glance",
|
||||
"status_code": 201
|
||||
},
|
||||
{
|
||||
"collection_key": "tags",
|
||||
"introduced_in": "yoga",
|
||||
"item_key": "tag",
|
||||
"kind": "item",
|
||||
"method": "GET",
|
||||
"operation_id": "image_tag_show",
|
||||
"path": "/v2/images/{image_id}/tags/{id}",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "image_tag",
|
||||
"service": "glance",
|
||||
"status_code": 200
|
||||
},
|
||||
{
|
||||
"collection_key": "tags",
|
||||
"introduced_in": "yoga",
|
||||
"item_key": "tag",
|
||||
"kind": "item",
|
||||
"method": "PUT",
|
||||
"operation_id": "image_tag_update",
|
||||
"path": "/v2/images/{image_id}/tags/{id}",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "image_tag",
|
||||
"service": "glance",
|
||||
"status_code": 200
|
||||
},
|
||||
{
|
||||
"collection_key": "tags",
|
||||
"introduced_in": "yoga",
|
||||
"item_key": "tag",
|
||||
"kind": "item",
|
||||
"method": "PATCH",
|
||||
"operation_id": "image_tag_patch",
|
||||
"path": "/v2/images/{image_id}/tags/{id}",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "image_tag",
|
||||
"service": "glance",
|
||||
"status_code": 200
|
||||
},
|
||||
{
|
||||
"collection_key": "tags",
|
||||
"introduced_in": "yoga",
|
||||
"kind": "item",
|
||||
"method": "DELETE",
|
||||
"operation_id": "image_tag_delete",
|
||||
"path": "/v2/images/{image_id}/tags/{id}",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "image_tag",
|
||||
"service": "glance",
|
||||
"status_code": 204
|
||||
}
|
||||
],
|
||||
"port": 9292,
|
||||
"service": "glance",
|
||||
"type": "image",
|
||||
"version_path": "/v2/"
|
||||
}
|
||||
Reference in New Issue
Block a user