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,474 @@
|
||||
{
|
||||
"default_microversion": "1.0",
|
||||
"max_microversion": "1.37",
|
||||
"operations": [
|
||||
{
|
||||
"collection_key": null,
|
||||
"introduced_in": "yoga",
|
||||
"kind": "custom",
|
||||
"method": "GET",
|
||||
"microversion_max": "1.37",
|
||||
"microversion_min": "1.0",
|
||||
"operation_id": "placement_root",
|
||||
"path": "/",
|
||||
"requires_auth": true,
|
||||
"requires_project": false,
|
||||
"resource_type": "version",
|
||||
"service": "placement",
|
||||
"status_code": 200
|
||||
},
|
||||
{
|
||||
"collection_key": "resource_providers",
|
||||
"introduced_in": "yoga",
|
||||
"kind": "collection",
|
||||
"method": "GET",
|
||||
"microversion_max": "1.37",
|
||||
"microversion_min": "1.0",
|
||||
"operation_id": "resource_provider_list",
|
||||
"path": "/resource_providers",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "resource_provider",
|
||||
"service": "placement",
|
||||
"status_code": 200
|
||||
},
|
||||
{
|
||||
"collection_key": "resource_providers",
|
||||
"create_status": 201,
|
||||
"introduced_in": "yoga",
|
||||
"item_key": "resource_provider",
|
||||
"kind": "collection",
|
||||
"method": "POST",
|
||||
"microversion_max": "1.37",
|
||||
"microversion_min": "1.0",
|
||||
"operation_id": "resource_provider_create",
|
||||
"path": "/resource_providers",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "resource_provider",
|
||||
"service": "placement",
|
||||
"status_code": 201
|
||||
},
|
||||
{
|
||||
"collection_key": "resource_providers",
|
||||
"introduced_in": "yoga",
|
||||
"item_key": "resource_provider",
|
||||
"kind": "item",
|
||||
"method": "GET",
|
||||
"microversion_max": "1.37",
|
||||
"microversion_min": "1.0",
|
||||
"operation_id": "resource_provider_show",
|
||||
"path": "/resource_providers/{id}",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "resource_provider",
|
||||
"service": "placement",
|
||||
"status_code": 200
|
||||
},
|
||||
{
|
||||
"collection_key": "resource_providers",
|
||||
"introduced_in": "yoga",
|
||||
"item_key": "resource_provider",
|
||||
"kind": "item",
|
||||
"method": "PUT",
|
||||
"microversion_max": "1.37",
|
||||
"microversion_min": "1.0",
|
||||
"operation_id": "resource_provider_update",
|
||||
"path": "/resource_providers/{id}",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "resource_provider",
|
||||
"service": "placement",
|
||||
"status_code": 200
|
||||
},
|
||||
{
|
||||
"collection_key": "resource_providers",
|
||||
"introduced_in": "yoga",
|
||||
"item_key": "resource_provider",
|
||||
"kind": "item",
|
||||
"method": "PATCH",
|
||||
"microversion_max": "1.37",
|
||||
"microversion_min": "1.0",
|
||||
"operation_id": "resource_provider_patch",
|
||||
"path": "/resource_providers/{id}",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "resource_provider",
|
||||
"service": "placement",
|
||||
"status_code": 200
|
||||
},
|
||||
{
|
||||
"collection_key": "resource_providers",
|
||||
"introduced_in": "yoga",
|
||||
"kind": "item",
|
||||
"method": "DELETE",
|
||||
"microversion_max": "1.37",
|
||||
"microversion_min": "1.0",
|
||||
"operation_id": "resource_provider_delete",
|
||||
"path": "/resource_providers/{id}",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "resource_provider",
|
||||
"service": "placement",
|
||||
"status_code": 204
|
||||
},
|
||||
{
|
||||
"collection_key": "resource_classes",
|
||||
"introduced_in": "yoga",
|
||||
"kind": "collection",
|
||||
"method": "GET",
|
||||
"microversion_max": "1.37",
|
||||
"microversion_min": "1.0",
|
||||
"operation_id": "resource_class_list",
|
||||
"path": "/resource_classes",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "resource_class",
|
||||
"service": "placement",
|
||||
"status_code": 200
|
||||
},
|
||||
{
|
||||
"collection_key": "resource_classes",
|
||||
"create_status": 201,
|
||||
"introduced_in": "yoga",
|
||||
"item_key": "resource_classe",
|
||||
"kind": "collection",
|
||||
"method": "POST",
|
||||
"microversion_max": "1.37",
|
||||
"microversion_min": "1.0",
|
||||
"operation_id": "resource_class_create",
|
||||
"path": "/resource_classes",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "resource_class",
|
||||
"service": "placement",
|
||||
"status_code": 201
|
||||
},
|
||||
{
|
||||
"collection_key": "resource_classes",
|
||||
"introduced_in": "yoga",
|
||||
"item_key": "resource_classe",
|
||||
"kind": "item",
|
||||
"method": "GET",
|
||||
"microversion_max": "1.37",
|
||||
"microversion_min": "1.0",
|
||||
"operation_id": "resource_class_show",
|
||||
"path": "/resource_classes/{id}",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "resource_class",
|
||||
"service": "placement",
|
||||
"status_code": 200
|
||||
},
|
||||
{
|
||||
"collection_key": "resource_classes",
|
||||
"introduced_in": "yoga",
|
||||
"item_key": "resource_classe",
|
||||
"kind": "item",
|
||||
"method": "PUT",
|
||||
"microversion_max": "1.37",
|
||||
"microversion_min": "1.0",
|
||||
"operation_id": "resource_class_update",
|
||||
"path": "/resource_classes/{id}",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "resource_class",
|
||||
"service": "placement",
|
||||
"status_code": 200
|
||||
},
|
||||
{
|
||||
"collection_key": "resource_classes",
|
||||
"introduced_in": "yoga",
|
||||
"item_key": "resource_classe",
|
||||
"kind": "item",
|
||||
"method": "PATCH",
|
||||
"microversion_max": "1.37",
|
||||
"microversion_min": "1.0",
|
||||
"operation_id": "resource_class_patch",
|
||||
"path": "/resource_classes/{id}",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "resource_class",
|
||||
"service": "placement",
|
||||
"status_code": 200
|
||||
},
|
||||
{
|
||||
"collection_key": "resource_classes",
|
||||
"introduced_in": "yoga",
|
||||
"kind": "item",
|
||||
"method": "DELETE",
|
||||
"microversion_max": "1.37",
|
||||
"microversion_min": "1.0",
|
||||
"operation_id": "resource_class_delete",
|
||||
"path": "/resource_classes/{id}",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "resource_class",
|
||||
"service": "placement",
|
||||
"status_code": 204
|
||||
},
|
||||
{
|
||||
"collection_key": "traits",
|
||||
"introduced_in": "yoga",
|
||||
"kind": "collection",
|
||||
"method": "GET",
|
||||
"microversion_max": "1.37",
|
||||
"microversion_min": "1.0",
|
||||
"operation_id": "trait_list",
|
||||
"path": "/traits",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "trait",
|
||||
"service": "placement",
|
||||
"status_code": 200
|
||||
},
|
||||
{
|
||||
"collection_key": "traits",
|
||||
"create_status": 201,
|
||||
"introduced_in": "yoga",
|
||||
"item_key": "trait",
|
||||
"kind": "collection",
|
||||
"method": "POST",
|
||||
"microversion_max": "1.37",
|
||||
"microversion_min": "1.0",
|
||||
"operation_id": "trait_create",
|
||||
"path": "/traits",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "trait",
|
||||
"service": "placement",
|
||||
"status_code": 201
|
||||
},
|
||||
{
|
||||
"collection_key": "traits",
|
||||
"introduced_in": "yoga",
|
||||
"item_key": "trait",
|
||||
"kind": "item",
|
||||
"method": "GET",
|
||||
"microversion_max": "1.37",
|
||||
"microversion_min": "1.0",
|
||||
"operation_id": "trait_show",
|
||||
"path": "/traits/{id}",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "trait",
|
||||
"service": "placement",
|
||||
"status_code": 200
|
||||
},
|
||||
{
|
||||
"collection_key": "traits",
|
||||
"introduced_in": "yoga",
|
||||
"item_key": "trait",
|
||||
"kind": "item",
|
||||
"method": "PUT",
|
||||
"microversion_max": "1.37",
|
||||
"microversion_min": "1.0",
|
||||
"operation_id": "trait_update",
|
||||
"path": "/traits/{id}",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "trait",
|
||||
"service": "placement",
|
||||
"status_code": 200
|
||||
},
|
||||
{
|
||||
"collection_key": "traits",
|
||||
"introduced_in": "yoga",
|
||||
"item_key": "trait",
|
||||
"kind": "item",
|
||||
"method": "PATCH",
|
||||
"microversion_max": "1.37",
|
||||
"microversion_min": "1.0",
|
||||
"operation_id": "trait_patch",
|
||||
"path": "/traits/{id}",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "trait",
|
||||
"service": "placement",
|
||||
"status_code": 200
|
||||
},
|
||||
{
|
||||
"collection_key": "traits",
|
||||
"introduced_in": "yoga",
|
||||
"kind": "item",
|
||||
"method": "DELETE",
|
||||
"microversion_max": "1.37",
|
||||
"microversion_min": "1.0",
|
||||
"operation_id": "trait_delete",
|
||||
"path": "/traits/{id}",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "trait",
|
||||
"service": "placement",
|
||||
"status_code": 204
|
||||
},
|
||||
{
|
||||
"collection_key": "allocations",
|
||||
"introduced_in": "yoga",
|
||||
"kind": "custom",
|
||||
"method": "GET",
|
||||
"microversion_max": "1.37",
|
||||
"microversion_min": "1.0",
|
||||
"operation_id": "allocation_show",
|
||||
"path": "/allocations/{consumer_uuid}",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "allocation",
|
||||
"service": "placement",
|
||||
"status_code": 200
|
||||
},
|
||||
{
|
||||
"collection_key": null,
|
||||
"introduced_in": "yoga",
|
||||
"kind": "custom",
|
||||
"method": "PUT",
|
||||
"microversion_max": "1.37",
|
||||
"microversion_min": "1.0",
|
||||
"operation_id": "allocation_set",
|
||||
"path": "/allocations/{consumer_uuid}",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "allocation",
|
||||
"service": "placement",
|
||||
"status_code": 204
|
||||
},
|
||||
{
|
||||
"introduced_in": "yoga",
|
||||
"kind": "custom",
|
||||
"method": "DELETE",
|
||||
"microversion_max": "1.37",
|
||||
"microversion_min": "1.0",
|
||||
"operation_id": "allocation_delete",
|
||||
"path": "/allocations/{consumer_uuid}",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "allocation",
|
||||
"service": "placement",
|
||||
"status_code": 204
|
||||
},
|
||||
{
|
||||
"collection_key": "allocation_requests",
|
||||
"introduced_in": "yoga",
|
||||
"kind": "custom",
|
||||
"method": "GET",
|
||||
"microversion_max": "1.37",
|
||||
"microversion_min": "1.0",
|
||||
"operation_id": "allocation_candidates",
|
||||
"path": "/allocation_candidates",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "allocation_candidate",
|
||||
"service": "placement",
|
||||
"status_code": 200
|
||||
},
|
||||
{
|
||||
"collection_key": "usages",
|
||||
"introduced_in": "yoga",
|
||||
"kind": "custom",
|
||||
"method": "GET",
|
||||
"microversion_max": "1.37",
|
||||
"microversion_min": "1.0",
|
||||
"operation_id": "usages",
|
||||
"path": "/usages",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "usage",
|
||||
"service": "placement",
|
||||
"status_code": 200
|
||||
},
|
||||
{
|
||||
"collection_key": "inventories",
|
||||
"introduced_in": "yoga",
|
||||
"kind": "custom",
|
||||
"method": "GET",
|
||||
"microversion_max": "1.37",
|
||||
"microversion_min": "1.0",
|
||||
"operation_id": "rp_inventories",
|
||||
"path": "/resource_providers/{id}/inventories",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "inventory",
|
||||
"service": "placement",
|
||||
"status_code": 200
|
||||
},
|
||||
{
|
||||
"collection_key": null,
|
||||
"introduced_in": "yoga",
|
||||
"kind": "custom",
|
||||
"method": "PUT",
|
||||
"microversion_max": "1.37",
|
||||
"microversion_min": "1.0",
|
||||
"operation_id": "rp_inventories_set",
|
||||
"path": "/resource_providers/{id}/inventories",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "inventory",
|
||||
"service": "placement",
|
||||
"status_code": 204
|
||||
},
|
||||
{
|
||||
"collection_key": "aggregates",
|
||||
"introduced_in": "yoga",
|
||||
"kind": "custom",
|
||||
"method": "GET",
|
||||
"microversion_max": "1.37",
|
||||
"microversion_min": "1.0",
|
||||
"operation_id": "rp_aggregates",
|
||||
"path": "/resource_providers/{id}/aggregates",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "aggregate",
|
||||
"service": "placement",
|
||||
"status_code": 200
|
||||
},
|
||||
{
|
||||
"collection_key": "traits",
|
||||
"introduced_in": "yoga",
|
||||
"kind": "custom",
|
||||
"method": "GET",
|
||||
"microversion_max": "1.37",
|
||||
"microversion_min": "1.0",
|
||||
"operation_id": "rp_traits",
|
||||
"path": "/resource_providers/{id}/traits",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "trait",
|
||||
"service": "placement",
|
||||
"status_code": 200
|
||||
},
|
||||
{
|
||||
"collection_key": "usages",
|
||||
"introduced_in": "yoga",
|
||||
"kind": "custom",
|
||||
"method": "GET",
|
||||
"microversion_max": "1.37",
|
||||
"microversion_min": "1.0",
|
||||
"operation_id": "rp_usages",
|
||||
"path": "/resource_providers/{id}/usages",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "usage",
|
||||
"service": "placement",
|
||||
"status_code": 200
|
||||
},
|
||||
{
|
||||
"collection_key": "allocations",
|
||||
"introduced_in": "yoga",
|
||||
"kind": "custom",
|
||||
"method": "GET",
|
||||
"microversion_max": "1.37",
|
||||
"microversion_min": "1.0",
|
||||
"operation_id": "rp_allocations",
|
||||
"path": "/resource_providers/{id}/allocations",
|
||||
"requires_auth": true,
|
||||
"requires_project": true,
|
||||
"resource_type": "allocation",
|
||||
"service": "placement",
|
||||
"status_code": 200
|
||||
}
|
||||
],
|
||||
"port": 8003,
|
||||
"service": "placement",
|
||||
"type": "placement",
|
||||
"version_path": "/"
|
||||
}
|
||||
Reference in New Issue
Block a user