Initial commit: VMware vSphere API simulator scaffold.
Add the FastAPI app, PostgreSQL migrations, Docker/Helm packaging, API contracts, docs, client examples, and the unit/integration/compatibility test suite for local client and tooling labs without a real vCenter.
This commit is contained in:
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
+15132
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,223 @@
|
||||
{
|
||||
"format_version": 1,
|
||||
"profile": "pve-9.2",
|
||||
"source_version": "9.2.3",
|
||||
"records": [
|
||||
{
|
||||
"path": "/version",
|
||||
"verb": "GET",
|
||||
"dimensions": ["http_status", "json_structure", "response_field_types", "response_required_fields"],
|
||||
"sources": ["tests/compatibility/test_proxmoxer.py", "tests/unit/test_core_handlers.py"]
|
||||
},
|
||||
{
|
||||
"path": "/access/ticket",
|
||||
"verb": "POST",
|
||||
"dimensions": ["input_parameters", "parameter_requiredness", "types_constraints", "http_status", "json_structure", "response_field_types", "response_required_fields", "headers_cookies", "errors_prohibitions"],
|
||||
"sources": ["tests/compatibility/test_proxmoxer.py", "tests/unit/test_auth.py", "tests/unit/test_dynamic_routes.py"]
|
||||
},
|
||||
{
|
||||
"path": "/nodes",
|
||||
"verb": "GET",
|
||||
"dimensions": ["http_status", "json_structure", "response_field_types", "response_required_fields", "permissions"],
|
||||
"sources": ["tests/compatibility/test_proxmoxer.py", "tests/unit/test_core_handlers.py", "tests/unit/test_acl.py"]
|
||||
},
|
||||
{
|
||||
"path": "/nodes/{node}/qemu",
|
||||
"verb": "GET",
|
||||
"dimensions": ["input_parameters", "parameter_requiredness", "types_constraints", "http_status", "json_structure", "response_field_types", "response_required_fields", "permissions"],
|
||||
"sources": ["tests/compatibility/test_proxmoxer.py", "tests/unit/test_core_handlers.py", "tests/unit/test_acl.py"]
|
||||
},
|
||||
{
|
||||
"path": "/nodes/{node}/qemu/{vmid}/status/current",
|
||||
"verb": "GET",
|
||||
"dimensions": ["input_parameters", "parameter_requiredness", "types_constraints", "http_status", "json_structure", "response_field_types", "response_required_fields", "permissions"],
|
||||
"sources": ["tests/compatibility/test_proxmoxer.py", "tests/unit/test_core_handlers.py"]
|
||||
},
|
||||
{
|
||||
"path": "/nodes/{node}/qemu/{vmid}/status/start",
|
||||
"verb": "POST",
|
||||
"dimensions": ["input_parameters", "parameter_requiredness", "types_constraints", "http_status", "json_structure", "headers_cookies", "state_semantics", "long_task_behavior", "errors_prohibitions", "permissions"],
|
||||
"sources": ["tests/compatibility/test_proxmoxer.py", "tests/unit/test_qemu_task.py", "tests/unit/test_transitions.py"]
|
||||
},
|
||||
{
|
||||
"path": "/nodes/{node}/qemu/{vmid}/status/stop",
|
||||
"verb": "POST",
|
||||
"dimensions": ["input_parameters", "parameter_requiredness", "types_constraints", "http_status", "json_structure", "headers_cookies", "state_semantics", "long_task_behavior", "errors_prohibitions", "permissions"],
|
||||
"sources": ["tests/compatibility/test_proxmoxer.py", "tests/unit/test_qemu_task.py", "tests/unit/test_transitions.py"]
|
||||
},
|
||||
{
|
||||
"path": "/nodes/{node}/tasks/{upid}/status",
|
||||
"verb": "GET",
|
||||
"dimensions": ["input_parameters", "parameter_requiredness", "types_constraints", "http_status", "json_structure", "response_field_types", "response_required_fields", "long_task_behavior", "permissions"],
|
||||
"sources": ["tests/compatibility/test_proxmoxer.py", "tests/unit/test_task_worker.py", "tests/unit/test_upid.py"]
|
||||
},
|
||||
{
|
||||
"path": "/nodes/{node}/qemu",
|
||||
"verb": "POST",
|
||||
"dimensions": ["input_parameters", "parameter_requiredness", "types_constraints", "http_status", "json_structure", "state_semantics", "long_task_behavior", "errors_prohibitions", "permissions"],
|
||||
"sources": ["tests/compatibility/test_proxmoxer.py", "tests/unit/test_qemu_handlers.py", "tests/unit/test_qemu_task.py"]
|
||||
},
|
||||
{
|
||||
"path": "/nodes/{node}/qemu/{vmid}",
|
||||
"verb": "DELETE",
|
||||
"dimensions": ["input_parameters", "parameter_requiredness", "types_constraints", "http_status", "json_structure", "state_semantics", "long_task_behavior", "errors_prohibitions", "permissions"],
|
||||
"sources": ["tests/compatibility/test_proxmoxer.py", "tests/unit/test_qemu_handlers.py", "tests/unit/test_qemu_task.py"]
|
||||
},
|
||||
{
|
||||
"path": "/nodes/{node}/qemu/{vmid}/config",
|
||||
"verb": "POST",
|
||||
"dimensions": ["input_parameters", "parameter_requiredness", "types_constraints", "http_status", "json_structure", "state_semantics", "long_task_behavior", "errors_prohibitions", "permissions"],
|
||||
"sources": ["tests/compatibility/test_proxmoxer.py", "tests/unit/test_qemu_handlers.py", "tests/unit/test_qemu_task.py", "tests/unit/test_acl.py"]
|
||||
},
|
||||
{
|
||||
"path": "/nodes/{node}/qemu/{vmid}/config",
|
||||
"verb": "PUT",
|
||||
"dimensions": ["input_parameters", "parameter_requiredness", "types_constraints", "http_status", "json_structure", "state_semantics", "errors_prohibitions", "permissions"],
|
||||
"sources": ["tests/compatibility/test_proxmoxer.py", "tests/unit/test_qemu_handlers.py", "tests/unit/test_acl.py"]
|
||||
},
|
||||
{
|
||||
"path": "/nodes/{node}/qemu/{vmid}/status/shutdown",
|
||||
"verb": "POST",
|
||||
"dimensions": ["input_parameters", "parameter_requiredness", "types_constraints", "http_status", "json_structure", "state_semantics", "long_task_behavior", "errors_prohibitions", "permissions"],
|
||||
"sources": ["tests/compatibility/test_proxmoxer.py", "tests/unit/test_transitions.py", "tests/unit/test_qemu_task.py"]
|
||||
},
|
||||
{
|
||||
"path": "/nodes/{node}/qemu/{vmid}/status/reboot",
|
||||
"verb": "POST",
|
||||
"dimensions": ["input_parameters", "parameter_requiredness", "types_constraints", "http_status", "json_structure", "state_semantics", "long_task_behavior", "errors_prohibitions", "permissions"],
|
||||
"sources": ["tests/compatibility/test_proxmoxer.py", "tests/unit/test_transitions.py", "tests/unit/test_qemu_task.py"]
|
||||
},
|
||||
{
|
||||
"path": "/nodes/{node}/qemu/{vmid}/status/reset",
|
||||
"verb": "POST",
|
||||
"dimensions": ["input_parameters", "parameter_requiredness", "types_constraints", "http_status", "json_structure", "state_semantics", "long_task_behavior", "errors_prohibitions", "permissions"],
|
||||
"sources": ["tests/compatibility/test_proxmoxer.py", "tests/unit/test_transitions.py", "tests/unit/test_qemu_task.py"]
|
||||
},
|
||||
{
|
||||
"path": "/nodes/{node}/qemu/{vmid}/status/suspend",
|
||||
"verb": "POST",
|
||||
"dimensions": ["input_parameters", "parameter_requiredness", "types_constraints", "http_status", "json_structure", "state_semantics", "long_task_behavior", "errors_prohibitions", "permissions"],
|
||||
"sources": ["tests/compatibility/test_proxmoxer.py", "tests/unit/test_transitions.py", "tests/unit/test_qemu_task.py"]
|
||||
},
|
||||
{
|
||||
"path": "/nodes/{node}/qemu/{vmid}/status/resume",
|
||||
"verb": "POST",
|
||||
"dimensions": ["input_parameters", "parameter_requiredness", "types_constraints", "http_status", "json_structure", "state_semantics", "long_task_behavior", "errors_prohibitions", "permissions"],
|
||||
"sources": ["tests/compatibility/test_proxmoxer.py", "tests/unit/test_transitions.py", "tests/unit/test_qemu_task.py"]
|
||||
},
|
||||
{
|
||||
"path": "/nodes/{node}/qemu/{vmid}/snapshot",
|
||||
"verb": "GET",
|
||||
"dimensions": ["input_parameters", "parameter_requiredness", "types_constraints", "http_status", "json_structure", "state_semantics", "errors_prohibitions", "permissions"],
|
||||
"sources": ["tests/compatibility/test_proxmoxer.py", "tests/unit/test_qemu_task.py"]
|
||||
},
|
||||
{
|
||||
"path": "/nodes/{node}/qemu/{vmid}/snapshot",
|
||||
"verb": "POST",
|
||||
"dimensions": ["input_parameters", "parameter_requiredness", "types_constraints", "http_status", "json_structure", "state_semantics", "long_task_behavior", "errors_prohibitions", "permissions"],
|
||||
"sources": ["tests/compatibility/test_proxmoxer.py", "tests/unit/test_qemu_task.py"]
|
||||
},
|
||||
{
|
||||
"path": "/nodes/{node}/qemu/{vmid}/snapshot/{snapname}",
|
||||
"verb": "GET",
|
||||
"dimensions": ["input_parameters", "parameter_requiredness", "types_constraints", "http_status", "json_structure", "state_semantics", "errors_prohibitions", "permissions"],
|
||||
"sources": ["tests/compatibility/test_proxmoxer.py"]
|
||||
},
|
||||
{
|
||||
"path": "/nodes/{node}/qemu/{vmid}/snapshot/{snapname}",
|
||||
"verb": "DELETE",
|
||||
"dimensions": ["input_parameters", "parameter_requiredness", "types_constraints", "http_status", "json_structure", "state_semantics", "long_task_behavior", "errors_prohibitions", "permissions"],
|
||||
"sources": ["tests/compatibility/test_proxmoxer.py", "tests/unit/test_qemu_task.py"]
|
||||
},
|
||||
{
|
||||
"path": "/nodes/{node}/qemu/{vmid}/snapshot/{snapname}/config",
|
||||
"verb": "GET",
|
||||
"dimensions": ["input_parameters", "parameter_requiredness", "types_constraints", "http_status", "json_structure", "state_semantics", "errors_prohibitions", "permissions"],
|
||||
"sources": ["tests/compatibility/test_proxmoxer.py"]
|
||||
},
|
||||
{
|
||||
"path": "/nodes/{node}/qemu/{vmid}/snapshot/{snapname}/config",
|
||||
"verb": "PUT",
|
||||
"dimensions": ["input_parameters", "parameter_requiredness", "types_constraints", "http_status", "json_structure", "state_semantics", "errors_prohibitions", "permissions"],
|
||||
"sources": ["tests/compatibility/test_proxmoxer.py"]
|
||||
},
|
||||
{
|
||||
"path": "/nodes/{node}/qemu/{vmid}/snapshot/{snapname}/rollback",
|
||||
"verb": "POST",
|
||||
"dimensions": ["input_parameters", "parameter_requiredness", "types_constraints", "http_status", "json_structure", "state_semantics", "long_task_behavior", "errors_prohibitions", "permissions"],
|
||||
"sources": ["tests/compatibility/test_proxmoxer.py", "tests/unit/test_qemu_task.py"]
|
||||
},
|
||||
{
|
||||
"path": "/nodes/{node}/qemu/{vmid}/clone",
|
||||
"verb": "POST",
|
||||
"dimensions": ["input_parameters", "parameter_requiredness", "types_constraints", "http_status", "json_structure", "state_semantics", "long_task_behavior", "errors_prohibitions", "permissions"],
|
||||
"sources": ["tests/compatibility/test_proxmoxer.py", "tests/unit/test_qemu_handlers.py", "tests/unit/test_qemu_task.py"]
|
||||
},
|
||||
{
|
||||
"path": "/nodes/{node}/qemu/{vmid}/migrate",
|
||||
"verb": "GET",
|
||||
"dimensions": ["input_parameters", "parameter_requiredness", "types_constraints", "http_status", "json_structure", "state_semantics", "errors_prohibitions", "permissions"],
|
||||
"sources": ["tests/compatibility/test_proxmoxer.py", "tests/unit/test_qemu_handlers.py"]
|
||||
},
|
||||
{
|
||||
"path": "/nodes/{node}/qemu/{vmid}/migrate",
|
||||
"verb": "POST",
|
||||
"dimensions": ["input_parameters", "parameter_requiredness", "types_constraints", "http_status", "json_structure", "state_semantics", "long_task_behavior", "errors_prohibitions", "permissions"],
|
||||
"sources": ["tests/compatibility/test_proxmoxer.py", "tests/unit/test_qemu_handlers.py", "tests/unit/test_qemu_task.py"]
|
||||
},
|
||||
{
|
||||
"path": "/nodes/{node}/qemu/{vmid}/resize",
|
||||
"verb": "PUT",
|
||||
"dimensions": ["input_parameters", "parameter_requiredness", "types_constraints", "http_status", "json_structure", "state_semantics", "errors_prohibitions", "permissions"],
|
||||
"sources": ["tests/compatibility/test_proxmoxer.py", "tests/unit/test_compatible_io.py", "tests/unit/test_qemu_handlers.py"]
|
||||
},
|
||||
{
|
||||
"path": "/nodes/{node}/qemu/{vmid}/move_disk",
|
||||
"verb": "POST",
|
||||
"dimensions": ["input_parameters", "parameter_requiredness", "types_constraints", "http_status", "json_structure", "state_semantics", "long_task_behavior", "errors_prohibitions", "permissions"],
|
||||
"sources": ["tests/compatibility/test_proxmoxer.py", "tests/unit/test_qemu_handlers.py", "tests/unit/test_qemu_task.py"]
|
||||
},
|
||||
{
|
||||
"path": "/nodes/{node}/qemu/{vmid}/pending",
|
||||
"verb": "GET",
|
||||
"dimensions": ["input_parameters", "parameter_requiredness", "types_constraints", "http_status", "json_structure", "state_semantics", "errors_prohibitions", "permissions"],
|
||||
"sources": ["tests/compatibility/test_proxmoxer.py", "tests/unit/test_qemu_handlers.py"]
|
||||
},
|
||||
{
|
||||
"path": "/nodes/{node}/qemu/{vmid}/agent/info",
|
||||
"verb": "GET",
|
||||
"dimensions": ["input_parameters", "parameter_requiredness", "types_constraints", "http_status", "json_structure", "state_semantics", "errors_prohibitions", "permissions"],
|
||||
"sources": ["tests/compatibility/test_proxmoxer.py", "tests/unit/test_qemu_handlers.py"]
|
||||
},
|
||||
{
|
||||
"path": "/nodes/{node}/qemu/{vmid}/agent/get-osinfo",
|
||||
"verb": "GET",
|
||||
"dimensions": ["input_parameters", "parameter_requiredness", "types_constraints", "http_status", "json_structure", "state_semantics", "errors_prohibitions", "permissions"],
|
||||
"sources": ["tests/compatibility/test_proxmoxer.py", "tests/unit/test_qemu_handlers.py"]
|
||||
},
|
||||
{
|
||||
"path": "/nodes/{node}/qemu/{vmid}/agent/get-host-name",
|
||||
"verb": "GET",
|
||||
"dimensions": ["input_parameters", "parameter_requiredness", "types_constraints", "http_status", "json_structure", "state_semantics", "errors_prohibitions", "permissions"],
|
||||
"sources": ["tests/compatibility/test_proxmoxer.py", "tests/unit/test_qemu_handlers.py"]
|
||||
},
|
||||
{
|
||||
"path": "/nodes/{node}/qemu/{vmid}/agent/network-get-interfaces",
|
||||
"verb": "GET",
|
||||
"dimensions": ["input_parameters", "parameter_requiredness", "types_constraints", "http_status", "json_structure", "state_semantics", "errors_prohibitions", "permissions"],
|
||||
"sources": ["tests/compatibility/test_proxmoxer.py", "tests/unit/test_qemu_handlers.py"]
|
||||
},
|
||||
{
|
||||
"path": "/nodes/{node}/qemu/{vmid}/agent/get-time",
|
||||
"verb": "GET",
|
||||
"dimensions": ["input_parameters", "parameter_requiredness", "types_constraints", "http_status", "json_structure", "state_semantics", "errors_prohibitions", "permissions"],
|
||||
"sources": ["tests/compatibility/test_proxmoxer.py", "tests/unit/test_qemu_handlers.py"]
|
||||
},
|
||||
{
|
||||
"path": "/nodes/{node}/qemu/{vmid}/agent/ping",
|
||||
"verb": "POST",
|
||||
"dimensions": ["input_parameters", "parameter_requiredness", "types_constraints", "http_status", "json_structure", "state_semantics", "errors_prohibitions", "permissions"],
|
||||
"sources": ["tests/compatibility/test_proxmoxer.py", "tests/unit/test_qemu_handlers.py"]
|
||||
}
|
||||
]
|
||||
}
|
||||
+16971
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,81 @@
|
||||
{
|
||||
"product": "vmware-api-simulator",
|
||||
"api_version": "7.0.0",
|
||||
"major": 6,
|
||||
"series": "vSphere 7.0",
|
||||
"plane": "vsphere-rest",
|
||||
"generated_at": "2026-07-15T23:58:55Z",
|
||||
"notes": "Ledger derived from app/vsphere/rest/coverage.py + PATH_FLOOR. implemented_methods = available at this major; universe_methods = full simulator registry.",
|
||||
"summary": {
|
||||
"implemented_methods": 31,
|
||||
"universe_methods": 1077,
|
||||
"unsupported_in_version": 1046,
|
||||
"coverage": 0.0288,
|
||||
"by_verb": {
|
||||
"DELETE": 3,
|
||||
"GET": 23,
|
||||
"POST": 5
|
||||
},
|
||||
"status": "partial-clone"
|
||||
},
|
||||
"levels": {
|
||||
"declared": {
|
||||
"count": 1077,
|
||||
"score": 1.0
|
||||
},
|
||||
"gated": {
|
||||
"count": 1046,
|
||||
"score": 0.9712
|
||||
},
|
||||
"schema_only": {
|
||||
"count": 1046,
|
||||
"score": 0.9712
|
||||
},
|
||||
"implemented": {
|
||||
"count": 31,
|
||||
"score": 0.0288
|
||||
},
|
||||
"observed": {
|
||||
"count": 31,
|
||||
"score": 0.0288
|
||||
},
|
||||
"verified": {
|
||||
"count": 31,
|
||||
"score": 0.0288
|
||||
}
|
||||
},
|
||||
"dimensions": {
|
||||
"route_method": {
|
||||
"count": 31,
|
||||
"score": 0.0288
|
||||
},
|
||||
"get": {
|
||||
"count": 23,
|
||||
"score": 0.042
|
||||
},
|
||||
"post": {
|
||||
"count": 5,
|
||||
"score": 0.0214
|
||||
},
|
||||
"patch": {
|
||||
"count": 0,
|
||||
"score": 0.0
|
||||
},
|
||||
"delete": {
|
||||
"count": 3,
|
||||
"score": 0.0261
|
||||
},
|
||||
"auth_session": {
|
||||
"count": 6,
|
||||
"score": 1.0
|
||||
},
|
||||
"inventory": {
|
||||
"count": 15,
|
||||
"score": 0.026
|
||||
},
|
||||
"legacy_rest": {
|
||||
"count": 12,
|
||||
"score": 1.0
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,82 @@
|
||||
{
|
||||
"product": "vmware-api-simulator",
|
||||
"api_version": "7.0.3",
|
||||
"major": 7,
|
||||
"series": "vSphere 7.0 U3",
|
||||
"plane": "vsphere-rest",
|
||||
"generated_at": "2026-07-15T23:58:55Z",
|
||||
"notes": "Ledger derived from app/vsphere/rest/coverage.py + PATH_FLOOR. implemented_methods = available at this major; universe_methods = full simulator registry.",
|
||||
"summary": {
|
||||
"implemented_methods": 77,
|
||||
"universe_methods": 1077,
|
||||
"unsupported_in_version": 1000,
|
||||
"coverage": 0.0715,
|
||||
"by_verb": {
|
||||
"DELETE": 10,
|
||||
"GET": 41,
|
||||
"PATCH": 2,
|
||||
"POST": 24
|
||||
},
|
||||
"status": "partial-clone"
|
||||
},
|
||||
"levels": {
|
||||
"declared": {
|
||||
"count": 1077,
|
||||
"score": 1.0
|
||||
},
|
||||
"gated": {
|
||||
"count": 1000,
|
||||
"score": 0.9285
|
||||
},
|
||||
"schema_only": {
|
||||
"count": 1000,
|
||||
"score": 0.9285
|
||||
},
|
||||
"implemented": {
|
||||
"count": 77,
|
||||
"score": 0.0715
|
||||
},
|
||||
"observed": {
|
||||
"count": 77,
|
||||
"score": 0.0715
|
||||
},
|
||||
"verified": {
|
||||
"count": 77,
|
||||
"score": 0.0715
|
||||
}
|
||||
},
|
||||
"dimensions": {
|
||||
"route_method": {
|
||||
"count": 77,
|
||||
"score": 0.0715
|
||||
},
|
||||
"get": {
|
||||
"count": 41,
|
||||
"score": 0.0748
|
||||
},
|
||||
"post": {
|
||||
"count": 24,
|
||||
"score": 0.1026
|
||||
},
|
||||
"patch": {
|
||||
"count": 2,
|
||||
"score": 0.023
|
||||
},
|
||||
"delete": {
|
||||
"count": 10,
|
||||
"score": 0.087
|
||||
},
|
||||
"auth_session": {
|
||||
"count": 6,
|
||||
"score": 1.0
|
||||
},
|
||||
"inventory": {
|
||||
"count": 50,
|
||||
"score": 0.0865
|
||||
},
|
||||
"legacy_rest": {
|
||||
"count": 12,
|
||||
"score": 1.0
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,82 @@
|
||||
{
|
||||
"product": "vmware-api-simulator",
|
||||
"api_version": "8.0.0",
|
||||
"major": 8,
|
||||
"series": "vSphere 8.0",
|
||||
"plane": "vsphere-rest",
|
||||
"generated_at": "2026-07-15T23:58:55Z",
|
||||
"notes": "Ledger derived from app/vsphere/rest/coverage.py + PATH_FLOOR. implemented_methods = available at this major; universe_methods = full simulator registry.",
|
||||
"summary": {
|
||||
"implemented_methods": 103,
|
||||
"universe_methods": 1077,
|
||||
"unsupported_in_version": 974,
|
||||
"coverage": 0.0956,
|
||||
"by_verb": {
|
||||
"DELETE": 11,
|
||||
"GET": 58,
|
||||
"PATCH": 2,
|
||||
"POST": 32
|
||||
},
|
||||
"status": "partial-clone"
|
||||
},
|
||||
"levels": {
|
||||
"declared": {
|
||||
"count": 1077,
|
||||
"score": 1.0
|
||||
},
|
||||
"gated": {
|
||||
"count": 974,
|
||||
"score": 0.9044
|
||||
},
|
||||
"schema_only": {
|
||||
"count": 974,
|
||||
"score": 0.9044
|
||||
},
|
||||
"implemented": {
|
||||
"count": 103,
|
||||
"score": 0.0956
|
||||
},
|
||||
"observed": {
|
||||
"count": 103,
|
||||
"score": 0.0956
|
||||
},
|
||||
"verified": {
|
||||
"count": 103,
|
||||
"score": 0.0956
|
||||
}
|
||||
},
|
||||
"dimensions": {
|
||||
"route_method": {
|
||||
"count": 103,
|
||||
"score": 0.0956
|
||||
},
|
||||
"get": {
|
||||
"count": 58,
|
||||
"score": 0.1058
|
||||
},
|
||||
"post": {
|
||||
"count": 32,
|
||||
"score": 0.1368
|
||||
},
|
||||
"patch": {
|
||||
"count": 2,
|
||||
"score": 0.023
|
||||
},
|
||||
"delete": {
|
||||
"count": 11,
|
||||
"score": 0.0957
|
||||
},
|
||||
"auth_session": {
|
||||
"count": 6,
|
||||
"score": 1.0
|
||||
},
|
||||
"inventory": {
|
||||
"count": 67,
|
||||
"score": 0.1159
|
||||
},
|
||||
"legacy_rest": {
|
||||
"count": 12,
|
||||
"score": 1.0
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,83 @@
|
||||
{
|
||||
"product": "vmware-api-simulator",
|
||||
"api_version": "8.0.2",
|
||||
"major": 9,
|
||||
"series": "vSphere 8.0 U2",
|
||||
"plane": "vsphere-rest",
|
||||
"generated_at": "2026-07-15T23:58:55Z",
|
||||
"notes": "Ledger derived from app/vsphere/rest/coverage.py + PATH_FLOOR. implemented_methods = available at this major; universe_methods = full simulator registry.",
|
||||
"summary": {
|
||||
"implemented_methods": 1077,
|
||||
"universe_methods": 1077,
|
||||
"unsupported_in_version": 0,
|
||||
"coverage": 1.0,
|
||||
"by_verb": {
|
||||
"DELETE": 115,
|
||||
"GET": 548,
|
||||
"PATCH": 87,
|
||||
"POST": 234,
|
||||
"PUT": 93
|
||||
},
|
||||
"status": "registry-complete"
|
||||
},
|
||||
"levels": {
|
||||
"declared": {
|
||||
"count": 1077,
|
||||
"score": 1.0
|
||||
},
|
||||
"gated": {
|
||||
"count": 0,
|
||||
"score": 0.0
|
||||
},
|
||||
"schema_only": {
|
||||
"count": 0,
|
||||
"score": 0.0
|
||||
},
|
||||
"implemented": {
|
||||
"count": 1077,
|
||||
"score": 1.0
|
||||
},
|
||||
"observed": {
|
||||
"count": 1077,
|
||||
"score": 1.0
|
||||
},
|
||||
"verified": {
|
||||
"count": 1077,
|
||||
"score": 1.0
|
||||
}
|
||||
},
|
||||
"dimensions": {
|
||||
"route_method": {
|
||||
"count": 1077,
|
||||
"score": 1.0
|
||||
},
|
||||
"get": {
|
||||
"count": 548,
|
||||
"score": 1.0
|
||||
},
|
||||
"post": {
|
||||
"count": 234,
|
||||
"score": 1.0
|
||||
},
|
||||
"patch": {
|
||||
"count": 87,
|
||||
"score": 1.0
|
||||
},
|
||||
"delete": {
|
||||
"count": 115,
|
||||
"score": 1.0
|
||||
},
|
||||
"auth_session": {
|
||||
"count": 6,
|
||||
"score": 1.0
|
||||
},
|
||||
"inventory": {
|
||||
"count": 578,
|
||||
"score": 1.0
|
||||
},
|
||||
"legacy_rest": {
|
||||
"count": 12,
|
||||
"score": 1.0
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user