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:
2026-07-18 04:42:11 +03:00
commit f8d3cbdd59
422 changed files with 361335 additions and 0 deletions
@@ -0,0 +1 @@
{"method_count":540,"path_count":364,"raw_sha256":"125f0af24951e901800e49559593678edd95af66da27c88311faecda708ebaf1","snapshot_sha256":"2cf632fa6ea4939ca9cb7998ade688150db25b0684600f53ac0ca95730f1d99f","source_version":"7.4-16"}
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
{"method_count":504,"path_count":338,"raw_sha256":"374156fc7188fb23c40982d0ff63fb7dce601f80f7319032bbb94882f47af69f","snapshot_sha256":"96cd7121e75cdb3efd58f79ca988f6b235a2f28e6f7eae276ae243f65d8a6724","source_version":"6.4-15"}
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
+21
View File
@@ -0,0 +1,21 @@
**Language / Язык:** [English](README.md) | [Русский](README.ru.md)
# Contract store
## Native vSphere stub matrices (`contracts/vsphere/`)
Versioned `manifest.json` files for majors **69** (vSphere 7.0 → 8.0 U2).
They are **stub OpenAPI stand-ins** derived from
`app/vsphere/contracts/matrix.py` (handler registry + per-path floors), not
Broadcom OpenAPI dumps.
- Catalog browse and compatibility UI read these bundles.
- `POST /ui/api/contract/apply?major=N` hot-swaps the active **catalog** major
for Web UI / evidence only; runtime still serves the full registered surface
(no HTTP 501 from version floor).
- Regenerate: `python scripts/write_vsphere_bundles.py` / `make vsphere-bundles`
## Legacy Proxmox SHA directories
SHA-addressed snapshot directories remain for optional `ENABLE_PVE_STUB=true`
lab mode only. They are **not** used when the native vSphere plane is default.
+22
View File
@@ -0,0 +1,22 @@
**Language / Язык:** [English](README.md) | [Русский](README.ru.md)
# Хранилище контрактов
## Нативные vSphere stub-матрицы (`contracts/vsphere/`)
Версионированные файлы `manifest.json` для majors **69** (vSphere 7.0 → 8.0 U2).
Это **stub OpenAPI stand-in'ы**, выведенные из
`app/vsphere/contracts/matrix.py` (реестр обработчиков + per-path floors), а не
дампы Broadcom OpenAPI.
- Browse каталога и UI совместимости читают эти bundles.
- `POST /ui/api/contract/apply?major=N` hot-swap'ает активный **catalog** major
только для Web UI / evidence; runtime по-прежнему обслуживает полную
зарегистрированную поверхность (без HTTP 501 из-за version floor).
- Перегенерация: `python scripts/write_vsphere_bundles.py` / `make vsphere-bundles`
## Legacy-каталоги Proxmox SHA
SHA-адресованные каталоги snapshot остаются только для опционального lab-режима
`ENABLE_PVE_STUB=true`. Они **не** используются, когда нативная плоскость
vSphere включена по умолчанию.
@@ -0,0 +1 @@
{"method_count":675,"path_count":444,"raw_sha256":"f2b77b57c71f3781a0993cc5062940ef31e0843fd9a6bcfdb4de4dd2001d6d9e","snapshot_sha256":"e61a893e996d05d376579226e7dfbedbcfce8b71787adacffbc557e6e35901c1","source_version":"9.2.3"}
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
{"method_count":605,"path_count":398,"raw_sha256":"bbe03a42c55b3f9ae77a5b5216c1a8554f4fffd0f4b266848f4af26be295946e","snapshot_sha256":"fce6db0a784b3a9b447895895fc6ff4b4437c2dce82e5f3db99227af217726fa","source_version":"8.4.5"}
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
+167
View File
@@ -0,0 +1,167 @@
{
"product": "vmware-api-simulator",
"plane": "vsphere-rest",
"major": 6,
"series": "vSphere 7.0",
"version": "7.0.0",
"kind": "stub-openapi-matrix",
"notes": "Stub contract derived from app/vsphere/rest/coverage.py + PATH_FLOOR. Not a Broadcom OpenAPI dump; used for catalog browse and hot-swap gating.",
"method_count": 31,
"methods": [
{
"verb": "DELETE",
"path": "/api/session",
"status": "implemented"
},
{
"verb": "DELETE",
"path": "/api/vcenter/vm/{vm}",
"status": "implemented"
},
{
"verb": "DELETE",
"path": "/rest/com/vmware/cis/session",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/appliance/system/version",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/session",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/cluster",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/datacenter",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/datastore",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/datastore/{datastore}",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/folder",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/host",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/host/{host}",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/network",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/resource-pool",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/vm",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/vm/{vm}",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/vm/{vm}/guest/identity",
"status": "implemented"
},
{
"verb": "GET",
"path": "/rest/appliance/system/version",
"status": "implemented"
},
{
"verb": "GET",
"path": "/rest/com/vmware/cis/session",
"status": "implemented"
},
{
"verb": "GET",
"path": "/rest/vcenter/cluster",
"status": "implemented"
},
{
"verb": "GET",
"path": "/rest/vcenter/datacenter",
"status": "implemented"
},
{
"verb": "GET",
"path": "/rest/vcenter/datastore",
"status": "implemented"
},
{
"verb": "GET",
"path": "/rest/vcenter/host",
"status": "implemented"
},
{
"verb": "GET",
"path": "/rest/vcenter/network",
"status": "implemented"
},
{
"verb": "GET",
"path": "/rest/vcenter/vm",
"status": "implemented"
},
{
"verb": "GET",
"path": "/rest/vcenter/vm/{vm}",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/session",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/vm",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/vm/{vm}/power",
"status": "implemented"
},
{
"verb": "POST",
"path": "/rest/com/vmware/cis/session",
"status": "implemented"
},
{
"verb": "POST",
"path": "/rest/vcenter/vm/{vm}/power",
"status": "implemented"
}
]
}
+397
View File
@@ -0,0 +1,397 @@
{
"product": "vmware-api-simulator",
"plane": "vsphere-rest",
"major": 7,
"series": "vSphere 7.0 U3",
"version": "7.0.3",
"kind": "stub-openapi-matrix",
"notes": "Stub contract derived from app/vsphere/rest/coverage.py + PATH_FLOOR. Not a Broadcom OpenAPI dump; used for catalog browse and hot-swap gating.",
"method_count": 77,
"methods": [
{
"verb": "DELETE",
"path": "/api/cis/tagging/category/{category_id}",
"status": "implemented"
},
{
"verb": "DELETE",
"path": "/api/cis/tagging/tag/{tag_id}",
"status": "implemented"
},
{
"verb": "DELETE",
"path": "/api/session",
"status": "implemented"
},
{
"verb": "DELETE",
"path": "/api/vcenter/cluster/{cluster}",
"status": "implemented"
},
{
"verb": "DELETE",
"path": "/api/vcenter/datacenter/{datacenter}",
"status": "implemented"
},
{
"verb": "DELETE",
"path": "/api/vcenter/folder/{folder}",
"status": "implemented"
},
{
"verb": "DELETE",
"path": "/api/vcenter/resource-pool/{resource_pool}",
"status": "implemented"
},
{
"verb": "DELETE",
"path": "/api/vcenter/vm/{vm}",
"status": "implemented"
},
{
"verb": "DELETE",
"path": "/api/vcenter/vm/{vm}/snapshots/{snapshot}",
"status": "implemented"
},
{
"verb": "DELETE",
"path": "/rest/com/vmware/cis/session",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/appliance/system/version",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/cis/tagging/category",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/cis/tagging/category/{category_id}",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/cis/tagging/tag",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/cis/tagging/tag/{tag_id}",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/cis/tasks",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/cis/tasks/{task}",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/session",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/cluster",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/datacenter",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/datastore",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/datastore/{datastore}",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/datastore/{datastore}/files",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/folder",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/folder/{folder}/children",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/host",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/host/{host}",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/network",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/resource-pool",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/vm",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/vm/{vm}",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/vm/{vm}/guest/identity",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/vm/{vm}/guest/networking",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/vm/{vm}/guest/power",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/vm/{vm}/hardware",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/vm/{vm}/hardware/boot",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/vm/{vm}/hardware/cpu",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/vm/{vm}/hardware/disk",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/vm/{vm}/hardware/ethernet",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/vm/{vm}/hardware/memory",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/vm/{vm}/snapshots",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/vm/{vm}/tools",
"status": "implemented"
},
{
"verb": "GET",
"path": "/rest/appliance/system/version",
"status": "implemented"
},
{
"verb": "GET",
"path": "/rest/com/vmware/cis/session",
"status": "implemented"
},
{
"verb": "GET",
"path": "/rest/vcenter/cluster",
"status": "implemented"
},
{
"verb": "GET",
"path": "/rest/vcenter/datacenter",
"status": "implemented"
},
{
"verb": "GET",
"path": "/rest/vcenter/datastore",
"status": "implemented"
},
{
"verb": "GET",
"path": "/rest/vcenter/host",
"status": "implemented"
},
{
"verb": "GET",
"path": "/rest/vcenter/network",
"status": "implemented"
},
{
"verb": "GET",
"path": "/rest/vcenter/vm",
"status": "implemented"
},
{
"verb": "GET",
"path": "/rest/vcenter/vm/{vm}",
"status": "implemented"
},
{
"verb": "PATCH",
"path": "/api/vcenter/vm/{vm}/hardware/cpu",
"status": "implemented"
},
{
"verb": "PATCH",
"path": "/api/vcenter/vm/{vm}/hardware/memory",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/cis/tagging/category",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/cis/tagging/tag",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/cis/tagging/tag-association",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/session",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/cluster",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/datacenter",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/datastore/{datastore}/files",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/folder",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/folder/{folder}",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/host/{host}/maintenance",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/resource-pool",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/vm",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/vm/{vm}",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/vm/{vm}/clone",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/vm/{vm}/guest/power",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/vm/{vm}/hardware/disk",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/vm/{vm}/hardware/ethernet",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/vm/{vm}/power",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/vm/{vm}/relocate",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/vm/{vm}/snapshots",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/vm/{vm}/snapshots/{snapshot}",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/vm/{vm}/tools",
"status": "implemented"
},
{
"verb": "POST",
"path": "/rest/com/vmware/cis/session",
"status": "implemented"
},
{
"verb": "POST",
"path": "/rest/vcenter/vm/{vm}/power",
"status": "implemented"
}
]
}
+527
View File
@@ -0,0 +1,527 @@
{
"product": "vmware-api-simulator",
"plane": "vsphere-rest",
"major": 8,
"series": "vSphere 8.0",
"version": "8.0.0",
"kind": "stub-openapi-matrix",
"notes": "Stub contract derived from app/vsphere/rest/coverage.py + PATH_FLOOR. Not a Broadcom OpenAPI dump; used for catalog browse and hot-swap gating.",
"method_count": 103,
"methods": [
{
"verb": "DELETE",
"path": "/api/cis/tagging/category/{category_id}",
"status": "implemented"
},
{
"verb": "DELETE",
"path": "/api/cis/tagging/tag/{tag_id}",
"status": "implemented"
},
{
"verb": "DELETE",
"path": "/api/session",
"status": "implemented"
},
{
"verb": "DELETE",
"path": "/api/vcenter/authorization/permissions/{permission_id}",
"status": "implemented"
},
{
"verb": "DELETE",
"path": "/api/vcenter/cluster/{cluster}",
"status": "implemented"
},
{
"verb": "DELETE",
"path": "/api/vcenter/datacenter/{datacenter}",
"status": "implemented"
},
{
"verb": "DELETE",
"path": "/api/vcenter/folder/{folder}",
"status": "implemented"
},
{
"verb": "DELETE",
"path": "/api/vcenter/resource-pool/{resource_pool}",
"status": "implemented"
},
{
"verb": "DELETE",
"path": "/api/vcenter/vm/{vm}",
"status": "implemented"
},
{
"verb": "DELETE",
"path": "/api/vcenter/vm/{vm}/snapshots/{snapshot}",
"status": "implemented"
},
{
"verb": "DELETE",
"path": "/rest/com/vmware/cis/session",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/appliance/health/system",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/appliance/networking",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/appliance/system/version",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/appliance/timesync",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/cis/tagging/category",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/cis/tagging/category/{category_id}",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/cis/tagging/tag",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/cis/tagging/tag/{tag_id}",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/cis/tasks",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/cis/tasks/{task}",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/content/library",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/content/library/item",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/session",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vapi/metadata/authentication/component",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vapi/metadata/metamodel/service",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/activity-history",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/authorization/permissions",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/authorization/roles",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/cluster",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/datacenter",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/datastore",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/datastore/{datastore}",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/datastore/{datastore}/files",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/folder",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/folder/{folder}/children",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/host",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/host/{host}",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/host/{host}/networking",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/host/{host}/storage/storage-device",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/identity/providers",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/network",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/network/dvs",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/privilege",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/resource-pool",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/storage/policies",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/storage/policies/{policy}/vm",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/vm",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/vm/{vm}",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/vm/{vm}/guest/identity",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/vm/{vm}/guest/networking",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/vm/{vm}/guest/power",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/vm/{vm}/hardware",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/vm/{vm}/hardware/boot",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/vm/{vm}/hardware/cpu",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/vm/{vm}/hardware/disk",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/vm/{vm}/hardware/ethernet",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/vm/{vm}/hardware/memory",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/vm/{vm}/snapshots",
"status": "implemented"
},
{
"verb": "GET",
"path": "/api/vcenter/vm/{vm}/tools",
"status": "implemented"
},
{
"verb": "GET",
"path": "/rest/appliance/system/version",
"status": "implemented"
},
{
"verb": "GET",
"path": "/rest/com/vmware/cis/session",
"status": "implemented"
},
{
"verb": "GET",
"path": "/rest/vcenter/cluster",
"status": "implemented"
},
{
"verb": "GET",
"path": "/rest/vcenter/datacenter",
"status": "implemented"
},
{
"verb": "GET",
"path": "/rest/vcenter/datastore",
"status": "implemented"
},
{
"verb": "GET",
"path": "/rest/vcenter/host",
"status": "implemented"
},
{
"verb": "GET",
"path": "/rest/vcenter/network",
"status": "implemented"
},
{
"verb": "GET",
"path": "/rest/vcenter/vm",
"status": "implemented"
},
{
"verb": "GET",
"path": "/rest/vcenter/vm/{vm}",
"status": "implemented"
},
{
"verb": "PATCH",
"path": "/api/vcenter/vm/{vm}/hardware/cpu",
"status": "implemented"
},
{
"verb": "PATCH",
"path": "/api/vcenter/vm/{vm}/hardware/memory",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/cis/tagging/category",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/cis/tagging/tag",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/cis/tagging/tag-association",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/content/library/item",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/content/local-library",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/session",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/authorization/permissions",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/cluster",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/datacenter",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/datastore/{datastore}/files",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/folder",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/folder/{folder}",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/host/{host}/maintenance",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/network/dvpg",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/network/dvs",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/ovf/library-item/{item_id}",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/resource-pool",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/vm",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/vm/{vm}",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/vm/{vm}/clone",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/vm/{vm}/console/tickets",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/vm/{vm}/guest/customization",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/vm/{vm}/guest/power",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/vm/{vm}/hardware/disk",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/vm/{vm}/hardware/ethernet",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/vm/{vm}/power",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/vm/{vm}/relocate",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/vm/{vm}/snapshots",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/vm/{vm}/snapshots/{snapshot}",
"status": "implemented"
},
{
"verb": "POST",
"path": "/api/vcenter/vm/{vm}/tools",
"status": "implemented"
},
{
"verb": "POST",
"path": "/rest/com/vmware/cis/session",
"status": "implemented"
},
{
"verb": "POST",
"path": "/rest/vcenter/vm/{vm}/power",
"status": "implemented"
}
]
}
File diff suppressed because it is too large Load Diff
+9
View File
@@ -0,0 +1,9 @@
**Language / Язык:** [English](README.md) | [Русский](README.ru.md)
# vSphere stub contracts
Versioned JSON matrices generated from `app/vsphere/contracts/matrix.py`.
Hot-swap (`POST /ui/api/contract/apply?major=N`) switches the active **catalog**
major for Web UI / evidence only; runtime still serves the full registered
surface (no HTTP 501 from version floor). Regenerate with
`make vsphere-bundles`.
+9
View File
@@ -0,0 +1,9 @@
**Language / Язык:** [English](README.md) | [Русский](README.ru.md)
# vSphere stub-контракты
Версионированные JSON-матрицы, сгенерированные из `app/vsphere/contracts/matrix.py`.
Hot-swap (`POST /ui/api/contract/apply?major=N`) переключает активный **catalog**
major только для Web UI / evidence; runtime по-прежнему обслуживает полную
зарегистрированную поверхность (без HTTP 501 из-за version floor).
Перегенерация: `make vsphere-bundles`.
File diff suppressed because it is too large Load Diff