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:
+1
@@ -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
+1
File diff suppressed because one or more lines are too long
+1
@@ -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
+1
File diff suppressed because one or more lines are too long
@@ -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 **6–9** (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.
|
||||
@@ -0,0 +1,22 @@
|
||||
**Language / Язык:** [English](README.md) | [Русский](README.ru.md)
|
||||
|
||||
# Хранилище контрактов
|
||||
|
||||
## Нативные vSphere stub-матрицы (`contracts/vsphere/`)
|
||||
|
||||
Версионированные файлы `manifest.json` для majors **6–9** (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 включена по умолчанию.
|
||||
+1
@@ -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
+1
File diff suppressed because one or more lines are too long
+1
@@ -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
+1
File diff suppressed because one or more lines are too long
@@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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
@@ -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`.
|
||||
@@ -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
Reference in New Issue
Block a user