From 2a8ce3a287d5c1ca408e1c73edde11c166486f51 Mon Sep 17 00:00:00 2001 From: Sergey Antropoff Date: Sat, 18 Jul 2026 08:47:16 +0300 Subject: [PATCH] Add OpenStack request-body schemas and nested console PARAM sync. --- Makefile | 59 +- app/lifespan.py | 4 +- app/openstack/contract_loader.py | 18 + app/openstack/demo_cloud.py | 354 +- app/openstack/engine.py | 11 +- app/openstack/opspec.py | 2 + app/openstack/registry.py | 7 +- app/openstack/request_bodies.py | 127 + app/openstack/request_examples.py | 262 + app/openstack/routes/glance.py | 5 +- app/openstack/routes/heat.py | 86 +- app/openstack/routes/neutron.py | 11 +- app/openstack/routes/nova.py | 93 +- app/openstack/routes/swift.py | 31 +- app/openstack/schema_engine.py | 15 +- app/openstack/seed.py | 93 +- app/openstack/seed_cli.py | 24 +- app/openstack/singular.py | 33 + app/openstack/surface_probe.py | 226 +- app/web/index.html | 998 +- app/web/openstack_catalog.py | 40 +- app/web/routes.py | 30 +- .../openstack/antelope/adjutant/api.json | 8 +- contracts/openstack/caracal/adjutant/api.json | 8 +- .../openstack/dalmatian/adjutant/api.json | 8 +- .../openstack/request_bodies/adjutant.json | 2278 ++ contracts/openstack/request_bodies/aodh.json | 2356 ++ .../openstack/request_bodies/barbican.json | 2618 ++ .../openstack/request_bodies/blazar.json | 944 + .../openstack/request_bodies/cinder.json | 5734 +++ .../openstack/request_bodies/cloudkitty.json | 2612 ++ .../openstack/request_bodies/designate.json | 3592 ++ .../openstack/request_bodies/freezer.json | 2728 ++ .../openstack/request_bodies/glance.json | 4458 +++ .../openstack/request_bodies/heat-cfn.json | 356 + contracts/openstack/request_bodies/heat.json | 4150 ++ .../openstack/request_bodies/ironic.json | 6134 +++ .../openstack/request_bodies/keystone.json | 5630 +++ .../openstack/request_bodies/magnum.json | 2836 ++ .../openstack/request_bodies/manila.json | 5018 +++ .../openstack/request_bodies/masakari.json | 834 + .../openstack/request_bodies/mistral.json | 3182 ++ .../openstack/request_bodies/neutron.json | 32376 ++++++++++++++++ contracts/openstack/request_bodies/nova.json | 10356 +++++ .../openstack/request_bodies/octavia.json | 6910 ++++ .../openstack/request_bodies/placement.json | 1358 + contracts/openstack/request_bodies/swift.json | 1006 + .../openstack/request_bodies/tacker.json | 2748 ++ contracts/openstack/request_bodies/trove.json | 3078 ++ .../openstack/request_bodies/vitrage.json | 3222 ++ .../openstack/request_bodies/watcher.json | 5272 +++ contracts/openstack/request_bodies/zaqar.json | 1414 + contracts/openstack/request_bodies/zun.json | 2442 ++ contracts/openstack/yoga/adjutant/api.json | 8 +- docker-compose.override.example.yml | 41 + docs/api-versions.md | 2 +- docs/api_coverage.md | 2 +- docs/configuration.md | 5 +- docs/examples/troubleshooting-clients.md | 2 +- docs/getting-started.md | 8 +- docs/images/web-ui/api-catalog.png | Bin 0 -> 49983 bytes docs/images/web-ui/authentication.png | Bin 0 -> 31227 bytes docs/images/web-ui/console-main.png | Bin 0 -> 25836 bytes docs/images/web-ui/data.png | Bin 0 -> 52236 bytes docs/images/web-ui/endpoints.png | Bin 0 -> 38448 bytes docs/images/web-ui/environment.png | Bin 0 -> 37595 bytes docs/images/web-ui/help-compatibility.png | Bin 0 -> 53093 bytes docs/images/web-ui/history.png | Bin 0 -> 49369 bytes docs/images/web-ui/request-parameters.png | Bin 0 -> 35987 bytes docs/images/web-ui/request-response.png | Bin 0 -> 57450 bytes docs/operations.md | 15 + docs/ru/api-versions.md | 2 +- docs/ru/api_coverage.md | 2 +- docs/ru/configuration.md | 5 +- docs/ru/examples/troubleshooting-clients.md | 2 +- docs/ru/getting-started.md | 8 +- docs/ru/operations.md | 15 + docs/ru/web-ui.md | 63 +- docs/web-ui.md | 63 +- pulumi-tests/README.md | 45 +- pulumi-tests/README.ru.md | 44 +- pulumi-tests/docker-compose.yml | 4 +- pulumi-tests/pulumi/_lib/http_coverage.py | 51 +- pulumi-tests/pulumi/_lib/report_html.py | 10 +- pulumi-tests/pulumi/run_suite.py | 28 +- pulumi-tests/reports/pulumi-junit.xml | 2 +- pulumi-tests/reports/pulumi-report.html | 36 +- pulumi-tests/reports/series-antelope.json | 4692 ++- pulumi-tests/reports/series-caracal.json | 5033 ++- pulumi-tests/reports/series-dalmatian.json | 5704 ++- pulumi-tests/reports/series-yoga.json | 4494 ++- pulumi-tests/reports/summary.json | 10 +- pyproject.toml | 2 + .../conformance/test_specialized_lifecycle.py | 562 + tests/openstack/test_demo_cloud.py | 43 +- tests/unit/test_request_bodies.py | 136 + tests/unit/test_web_openstack_catalog.py | 34 + tools/os_api_inventory/catalog.py | 6 +- .../generate_request_bodies.py | 113 + .../os_api_inventory/import_openapi_bodies.py | 208 + .../os_api_inventory/request_body_catalog.py | 1345 + 101 files changed, 150428 insertions(+), 612 deletions(-) create mode 100644 app/openstack/request_bodies.py create mode 100644 app/openstack/request_examples.py create mode 100644 app/openstack/singular.py create mode 100644 contracts/openstack/request_bodies/adjutant.json create mode 100644 contracts/openstack/request_bodies/aodh.json create mode 100644 contracts/openstack/request_bodies/barbican.json create mode 100644 contracts/openstack/request_bodies/blazar.json create mode 100644 contracts/openstack/request_bodies/cinder.json create mode 100644 contracts/openstack/request_bodies/cloudkitty.json create mode 100644 contracts/openstack/request_bodies/designate.json create mode 100644 contracts/openstack/request_bodies/freezer.json create mode 100644 contracts/openstack/request_bodies/glance.json create mode 100644 contracts/openstack/request_bodies/heat-cfn.json create mode 100644 contracts/openstack/request_bodies/heat.json create mode 100644 contracts/openstack/request_bodies/ironic.json create mode 100644 contracts/openstack/request_bodies/keystone.json create mode 100644 contracts/openstack/request_bodies/magnum.json create mode 100644 contracts/openstack/request_bodies/manila.json create mode 100644 contracts/openstack/request_bodies/masakari.json create mode 100644 contracts/openstack/request_bodies/mistral.json create mode 100644 contracts/openstack/request_bodies/neutron.json create mode 100644 contracts/openstack/request_bodies/nova.json create mode 100644 contracts/openstack/request_bodies/octavia.json create mode 100644 contracts/openstack/request_bodies/placement.json create mode 100644 contracts/openstack/request_bodies/swift.json create mode 100644 contracts/openstack/request_bodies/tacker.json create mode 100644 contracts/openstack/request_bodies/trove.json create mode 100644 contracts/openstack/request_bodies/vitrage.json create mode 100644 contracts/openstack/request_bodies/watcher.json create mode 100644 contracts/openstack/request_bodies/zaqar.json create mode 100644 contracts/openstack/request_bodies/zun.json create mode 100644 docker-compose.override.example.yml create mode 100644 docs/images/web-ui/api-catalog.png create mode 100644 docs/images/web-ui/authentication.png create mode 100644 docs/images/web-ui/console-main.png create mode 100644 docs/images/web-ui/data.png create mode 100644 docs/images/web-ui/endpoints.png create mode 100644 docs/images/web-ui/environment.png create mode 100644 docs/images/web-ui/help-compatibility.png create mode 100644 docs/images/web-ui/history.png create mode 100644 docs/images/web-ui/request-parameters.png create mode 100644 docs/images/web-ui/request-response.png create mode 100644 tests/openstack/conformance/test_specialized_lifecycle.py create mode 100644 tests/unit/test_request_bodies.py create mode 100644 tests/unit/test_web_openstack_catalog.py create mode 100644 tools/os_api_inventory/generate_request_bodies.py create mode 100644 tools/os_api_inventory/import_openapi_bodies.py create mode 100644 tools/os_api_inventory/request_body_catalog.py diff --git a/Makefile b/Makefile index 5110335..b9e280c 100644 --- a/Makefile +++ b/Makefile @@ -12,9 +12,13 @@ PUSH_LATEST ?= 1 COMPOSE_RELEASE ?= $(COMPOSE) -f docker-compose.release.yml HELM_CHART ?= ./helm/openstack-api-simulator +OVERRIDE_EXAMPLE ?= docker-compose.override.example.yml +OVERRIDE_FILE ?= docker-compose.override.yml +COMPOSE_LOCAL ?= $(COMPOSE) -f docker-compose.yml -f $(OVERRIDE_FILE) -.PHONY: help install format lint typecheck test test-unit test-integration test-contract test-compatibility test-surface evidence coverage run dev up down restart logs docker-build docker-up docker-down docker-logs docker-restart db-up db-down db-migrate db-reset api-import api-diff seed seed-demo smoke clean ci ci-all shell release release-build release-up release-down release-seed helm-deps helm-template \ - test-pulumi-smoke test-pulumi pulumi-tests test-smoke-all-lab test-all-lab clean-test-resources +.PHONY: help install format lint typecheck test test-unit test-integration test-contract test-compatibility test-surface evidence coverage run dev up up-local down down-local restart logs docker-build docker-up docker-down docker-logs docker-restart db-up db-down db-migrate db-reset api-import api-diff seed seed-demo smoke clean ci ci-all shell push release release-build release-up release-down release-seed helm-deps helm-template \ + test-pulumi-smoke test-pulumi pulumi-tests test-smoke-all-lab test-all-lab clean-test-resources \ + request-bodies-generate request-bodies-import request-bodies-coverage help: ## Show available commands @awk 'BEGIN {FS = ":.*## "}; /^[a-zA-Z0-9_-]+:.*## / {printf "%-22s %s\n", $$1, $$2}' $(MAKEFILE_LIST) @@ -72,9 +76,27 @@ up: ## Start PostgreSQL, simulator, and TLS gateway @test -f .env || cp .env.example .env $(COMPOSE) up -d --build --wait +up-local: ## Start stack with gitignored port overrides (Keystone/console on :15000) + @test -f .env || cp .env.example .env + @if [ ! -f "$(OVERRIDE_FILE)" ]; then \ + cp "$(OVERRIDE_EXAMPLE)" "$(OVERRIDE_FILE)"; \ + echo "Created $(OVERRIDE_FILE) from $(OVERRIDE_EXAMPLE) (gitignored)."; \ + else \ + echo "Using existing $(OVERRIDE_FILE) (gitignored)."; \ + fi + $(COMPOSE_LOCAL) up -d --build --wait + @echo "Local console: http://127.0.0.1:15000/" + down: ## Stop local services $(COMPOSE) down +down-local: ## Stop stack started with make up-local + @if [ -f "$(OVERRIDE_FILE)" ]; then \ + $(COMPOSE_LOCAL) down; \ + else \ + $(COMPOSE) -f docker-compose.yml -f $(OVERRIDE_EXAMPLE) down; \ + fi + restart: ## Rebuild and restart the stack @test -f .env || cp .env.example .env $(COMPOSE) up -d --build --force-recreate --wait @@ -122,13 +144,22 @@ api-import: ## Import an API snapshot api-diff: ## Compare API snapshots $(COMPOSE) run --rm --no-deps $(SERVICE_DEV) openstack-api-contract diff $(ARGS) +request-bodies-generate: ## Regenerate contracts/openstack/request_bodies from api-ref catalog + $(COMPOSE) run --rm --no-deps $(SERVICE_DEV) python tools/os_api_inventory/generate_request_bodies.py + +request-bodies-import: ## Merge Tier-1 request schemas from gtema/openstack-openapi + $(COMPOSE) run --rm --no-deps $(SERVICE_DEV) sh -c 'pip install -q pyyaml && python tools/os_api_inventory/import_openapi_bodies.py' + +request-bodies-coverage: ## Fail if any write op lacks a request_schema + $(COMPOSE) run --rm --no-deps $(SERVICE_DEV) python tools/os_api_inventory/generate_request_bodies.py --coverage + seed: ## Seed minimal OpenStack lab data @test -f .env || cp .env.example .env SEED_PROFILE="$${PROFILE:-minimal}" $(COMPOSE) run --rm --entrypoint python $(SERVICE_SIM) -m app.openstack.seed_cli --profile "$${PROFILE:-minimal}" -seed-demo: ## Seed full OpenStack demo cloud (~1000 servers) +seed-demo: ## Seed demo cloud (SIZE=small|large|big, default large = 1000 VMs) @test -f .env || cp .env.example .env - $(COMPOSE) run --rm --entrypoint python $(SERVICE_SIM) -m app.openstack.seed_cli --profile demo + $(COMPOSE) run --rm --entrypoint python $(SERVICE_SIM) -m app.openstack.seed_cli --profile "demo-$${SIZE:-large}" smoke: ## Keystone → multi-service OpenStack smoke @test -f .env || cp .env.example .env @@ -138,6 +169,26 @@ smoke: ## Keystone → multi-service OpenStack smoke shell: ## Open an interactive shell in the development container $(COMPOSE) run --rm --no-deps $(SERVICE_DEV) bash +push: ## git add ., ask for commit message, push to origin + antropoff + @git add . + @if git diff --cached --quiet; then \ + echo "Nothing to commit (working tree clean after git add .)."; \ + else \ + if [ -n "$(MSG)" ]; then \ + msg="$(MSG)"; \ + else \ + printf "Commit message: "; \ + IFS= read -r msg < /dev/tty; \ + fi; \ + if [ -z "$$msg" ]; then \ + echo "Empty commit message; aborting." >&2; \ + exit 1; \ + fi; \ + git commit -m "$$msg"; \ + fi + git push origin HEAD + git push antropoff HEAD + clean: ## Remove generated local artifacts rm -rf .coverage coverage.xml htmlcov .mypy_cache .pytest_cache .ruff_cache diff --git a/app/lifespan.py b/app/lifespan.py index 11851c0..7bff31b 100644 --- a/app/lifespan.py +++ b/app/lifespan.py @@ -38,7 +38,7 @@ def create_lifespan( await database.connect() app.state.database = database if isinstance(database, AsyncpgDatabase): - from app.openstack.demo_cloud import DEMO_PROFILE + from app.openstack.demo_cloud import is_demo_profile from app.openstack.seed import seed_openstack async with database.pool.acquire() as connection: @@ -49,7 +49,7 @@ def create_lifespan( ) except Exception: profile = None - if profile != DEMO_PROFILE: + if not is_demo_profile(profile): await seed_openstack(connection) workers = tuple(factory(database) for factory in worker_factories) worker_tasks = tuple(asyncio.create_task(worker.run()) for worker in workers) diff --git a/app/openstack/contract_loader.py b/app/openstack/contract_loader.py index 1884465..ec0ec35 100644 --- a/app/openstack/contract_loader.py +++ b/app/openstack/contract_loader.py @@ -9,6 +9,7 @@ from pathlib import Path from typing import Any from app.openstack.opspec import OperationSpec, SeriesManifest, ServicePack +from app.openstack.request_bodies import attach_request_schemas, clear_request_body_cache _CONTRACTS_ROOT = Path(__file__).resolve().parents[2] / "contracts" / "openstack" @@ -43,6 +44,17 @@ def list_series() -> list[dict[str, Any]]: if not man.is_file(): continue data = json.loads(man.read_text()) + microversions = [ + { + "name": str(svc.get("name") or ""), + "default_microversion": svc.get("default_microversion"), + "max_microversion": svc.get("max_microversion"), + } + for svc in data.get("services") or [] + if isinstance(svc, dict) + and svc.get("name") + and (svc.get("default_microversion") or svc.get("max_microversion")) + ] result.append( { "series": data.get("series", path.name), @@ -51,6 +63,7 @@ def list_series() -> list[dict[str, Any]]: "service_count": data.get("service_count", 0), "checksum": data.get("checksum", ""), "generated_at": data.get("generated_at", ""), + "microversions": microversions, } ) return result @@ -92,6 +105,7 @@ def load_series_pack(series: str) -> dict[str, ServicePack]: data = json.loads(api.read_text()) name = str(data["service"]) ops = [_op_from_dict(name, raw) for raw in data.get("operations") or []] + ops = attach_request_schemas(name, ops) packs[name] = ServicePack( name=name, typ=str(data.get("type") or name), @@ -129,9 +143,13 @@ class ContractRuntime: def reload(self, series: str | None = None) -> dict[str, Any]: with self._lock: + clear_request_body_cache() target = (series or self.series).lower() + series_changed = target != self.series self.packs = load_series_pack(target) self.series = target + if series_changed: + self.microversion_overrides.clear() man = load_manifest(target) return { "series": man.series, diff --git a/app/openstack/demo_cloud.py b/app/openstack/demo_cloud.py index c3c6568..fff9fe6 100644 --- a/app/openstack/demo_cloud.py +++ b/app/openstack/demo_cloud.py @@ -1,8 +1,9 @@ -"""Enterprise-scale OpenStack demo cloud seed (~1000 servers + full topology).""" +"""Sized OpenStack demo cloud seed (small / large / big synthetic clusters).""" from __future__ import annotations import json +from dataclasses import asdict, dataclass from typing import Any from uuid import UUID @@ -12,14 +13,108 @@ from app.openstack.ids import oid from app.security.auth import hash_secret DEMO_PROFILE = "openstack-demo-cloud" +DEMO_SIZE_DEFAULT = "large" -DEMO_SERVER_COUNT = 1000 -DEMO_VOLUME_COUNT = 600 -DEMO_HYPERVISOR_COUNT = 16 -DEMO_IRONIC_COUNT = 24 -DEMO_LB_COUNT = 12 -DEMO_STACK_COUNT = 30 -DEMO_FIP_COUNT = 120 + +@dataclass(frozen=True, slots=True) +class DemoClusterSize: + """Proportional inventory for a demo cluster size button.""" + + name: str + hypervisors: int + servers: int + volumes: int + ironic_nodes: int + loadbalancers: int + stacks: int + floating_ips: int + surface_samples: int + server_groups: int + nested_samples: int + pack_per_type: int + extra_networks: int + extra_security_groups: int + keypairs_per_user: int + edge_routers: int + + +def _scale(base: int, factor: float, minimum: int) -> int: + return max(minimum, int(round(base * factor))) + + +def _cluster(name: str, *, hypervisors: int, servers: int) -> DemoClusterSize: + """Derive secondary counts from the large (1000 VM) reference ratios.""" + + factor = servers / 1000 + return DemoClusterSize( + name=name, + hypervisors=hypervisors, + servers=servers, + volumes=_scale(600, factor, 20), + ironic_nodes=_scale(24, factor, 2), + loadbalancers=_scale(12, factor, 2), + stacks=_scale(30, factor, 3), + floating_ips=_scale(120, factor, 6), + surface_samples=_scale(8, factor, 3), + server_groups=_scale(16, factor, 3), + nested_samples=_scale(24, factor, 8), + pack_per_type=_scale(3, factor, 2), + # Topology density (large reference: 3 extra nets, 3 SG tiers, 4 keys, 1 edge router). + extra_networks=_scale(3, factor, 1), + extra_security_groups=_scale(3, factor, 1), + keypairs_per_user=_scale(4, factor, 2), + edge_routers=_scale(1, factor, 0), + ) + + +DEMO_CLUSTER_SIZES: dict[str, DemoClusterSize] = { + "small": _cluster("small", hypervisors=3, servers=50), + "large": _cluster("large", hypervisors=10, servers=1000), + "big": _cluster("big", hypervisors=20, servers=2000), +} + + +def resolve_demo_size(size: str | None) -> DemoClusterSize: + key = (size or DEMO_SIZE_DEFAULT).strip().lower() + aliases = { + "demo": "large", + "demo-cloud": "large", + "openstack-demo-cloud": "large", + "demo-small": "small", + "demo-large": "large", + "demo-big": "big", + "medium": "large", + } + key = aliases.get(key, key) + if key not in DEMO_CLUSTER_SIZES: + known = ", ".join(sorted(DEMO_CLUSTER_SIZES)) + raise ValueError(f"unknown demo size {size!r} (use {known})") + return DEMO_CLUSTER_SIZES[key] + + +def demo_profile_name(size: str | DemoClusterSize) -> str: + name = size.name if isinstance(size, DemoClusterSize) else resolve_demo_size(size).name + return f"{DEMO_PROFILE}:{name}" + + +def is_demo_profile(profile: str | None) -> bool: + if not profile: + return False + return profile == DEMO_PROFILE or profile.startswith(f"{DEMO_PROFILE}:") + + +def list_demo_sizes() -> list[dict[str, Any]]: + return [asdict(cfg) for cfg in DEMO_CLUSTER_SIZES.values()] + + +# Backward-compatible aliases → large cluster (default demo). +DEMO_SERVER_COUNT = DEMO_CLUSTER_SIZES["large"].servers +DEMO_VOLUME_COUNT = DEMO_CLUSTER_SIZES["large"].volumes +DEMO_HYPERVISOR_COUNT = DEMO_CLUSTER_SIZES["large"].hypervisors +DEMO_IRONIC_COUNT = DEMO_CLUSTER_SIZES["large"].ironic_nodes +DEMO_LB_COUNT = DEMO_CLUSTER_SIZES["large"].loadbalancers +DEMO_STACK_COUNT = DEMO_CLUSTER_SIZES["large"].stacks +DEMO_FIP_COUNT = DEMO_CLUSTER_SIZES["large"].floating_ips AZS = ("az-1", "az-2", "az-3") @@ -104,9 +199,32 @@ async def clear_openstack_state(conn: Connection) -> None: ) -async def seed_openstack_demo(conn: Connection, *, password: str = "secret") -> dict[str, Any]: +async def seed_openstack_demo( + conn: Connection, + *, + size: str = DEMO_SIZE_DEFAULT, + password: str = "secret", +) -> dict[str, Any]: """Load a full synthetic OpenStack cloud. Replaces prior OpenStack state.""" + cfg = resolve_demo_size(size) + server_count = cfg.servers + volume_count = cfg.volumes + hypervisor_count = cfg.hypervisors + ironic_count = cfg.ironic_nodes + lb_count = cfg.loadbalancers + stack_count = cfg.stacks + fip_count = cfg.floating_ips + surface_sample_count = cfg.surface_samples + server_group_count = cfg.server_groups + nested_sample_count = cfg.nested_samples + pack_per_type = cfg.pack_per_type + extra_networks = cfg.extra_networks + extra_security_groups = cfg.extra_security_groups + keypairs_per_user = cfg.keypairs_per_user + edge_routers = cfg.edge_routers + profile = demo_profile_name(cfg) + await clear_openstack_state(conn) pw = hash_secret(password, salt=b"openstack-sim-v1") @@ -185,10 +303,10 @@ async def seed_openstack_demo(conn: Connection, *, password: str = "secret") -> '{"available": true}', ) - for i in range(DEMO_HYPERVISOR_COUNT): + for i in range(hypervisor_count): host = f"compute-{(i // len(AZS)) + 1:02d}.{AZS[i % len(AZS)]}" az = AZS[i % len(AZS)] - vms_share = DEMO_SERVER_COUNT // DEMO_HYPERVISOR_COUNT + vms_share = max(1, server_count // hypervisor_count) await conn.execute( """INSERT INTO os_hypervisors( id, hypervisor_hostname, state, status, host_ip, vcpus, vcpus_used, @@ -223,7 +341,7 @@ async def seed_openstack_demo(conn: Connection, *, password: str = "secret") -> for i, az in enumerate(AZS): hosts = [ f"compute-{(j // len(AZS)) + 1:02d}.{az}" - for j in range(i, DEMO_HYPERVISOR_COUNT, len(AZS)) + for j in range(i, hypervisor_count, len(AZS)) ] await conn.execute( """INSERT INTO os_aggregates(id, name, availability_zone, hosts, metadata) @@ -377,10 +495,19 @@ async def seed_openstack_demo(conn: Connection, *, password: str = "secret") -> prefix, ) - # Extra project topology (realistic inventory: multiple nets / SGs / routers) + # Extra project topology — density scales with cluster size. + extra_net_suffixes = ("mgmt", "storage", "dmz", "backup", "ci", "gpu") + sg_tiers = ( + ("web", "HTTP/S", 443), + ("db", "Database tier", 5432), + ("cache", "Cache tier", 6379), + ("mq", "Message bus", 5672), + ("internal", "Internal RPC", 9696), + ("monitoring", "Metrics / scrape", 9100), + ) for pname, pid in project_ids.items(): base = cidr_base[pname] - for extra_i, suffix in enumerate(("mgmt", "storage", "dmz"), start=1): + for extra_i, suffix in enumerate(extra_net_suffixes[:extra_networks], start=1): net_id = oid(f"net:{pname}-{suffix}") subnet_id = oid(f"subnet:{pname}-{suffix}") await conn.execute( @@ -400,11 +527,7 @@ async def seed_openstack_demo(conn: Connection, *, password: str = "secret") -> f"10.{base}.{extra_i * 10}.0/24", f"10.{base}.{extra_i * 10}.1", ) - for sg_name, desc in ( - ("web", f"HTTP/S for {pname}"), - ("db", f"Database tier for {pname}"), - ("cache", f"Cache tier for {pname}"), - ): + for sg_name, desc_prefix, port in sg_tiers[:extra_security_groups]: sg_id = oid(f"sg:{pname}-{sg_name}") await conn.execute( """INSERT INTO os_security_groups(id, project_id, name, description) @@ -412,7 +535,7 @@ async def seed_openstack_demo(conn: Connection, *, password: str = "secret") -> sg_id, pid, sg_name, - desc, + f"{desc_prefix} for {pname}", ) await conn.execute( """INSERT INTO os_security_group_rules( @@ -422,30 +545,35 @@ async def seed_openstack_demo(conn: Connection, *, password: str = "secret") -> oid(f"sgrule:{pname}:{sg_name}"), sg_id, pid, - 443 if sg_name == "web" else (5432 if sg_name == "db" else 6379), - 443 if sg_name == "web" else (5432 if sg_name == "db" else 6379), + port, + port, + ) + # Secondary edge routers (0 on tiny clusters, more on big). + for edge_i in range(edge_routers): + await conn.execute( + """INSERT INTO os_routers(id, project_id, name, status, admin_state_up, external_gateway_info) + VALUES($1,$2,$3,'ACTIVE',true,$4::jsonb)""", + oid(f"router:{pname}-edge-{edge_i}"), + pid, + f"{pname}-edge-router-{edge_i}" if edge_routers > 1 else f"{pname}-edge-router", + json.dumps( + { + "network_id": str(public_net), + "enable_snat": True, + "external_fixed_ips": [ + { + "ip_address": f"203.0.113.{base + 1 + edge_i}", + "subnet_id": str(public_subnet), + } + ], + } + ), ) - # Secondary router (HA / edge) - await conn.execute( - """INSERT INTO os_routers(id, project_id, name, status, admin_state_up, external_gateway_info) - VALUES($1,$2,$3,'ACTIVE',true,$4::jsonb)""", - oid(f"router:{pname}-edge"), - pid, - f"{pname}-edge-router", - json.dumps( - { - "network_id": str(public_net), - "enable_snat": True, - "external_fixed_ips": [ - {"ip_address": f"203.0.113.{base + 1}", "subnet_id": str(public_subnet)} - ], - } - ), - ) - # Keypairs (several per user — list is user-scoped) + # Keypairs (several per user — list is user-scoped; count scales with size) + keypair_suffixes = ("key", "deploy", "ci", "bastion", "ops", "batch", "gpu", "lab") for uname, uid in user_ids.items(): - for suffix in ("key", "deploy", "ci", "bastion"): + for suffix in keypair_suffixes[:keypairs_per_user]: await conn.execute( """INSERT INTO os_keypairs(name, user_id, fingerprint, public_key, type) VALUES($1,$2,$3,$4,'ssh')""", @@ -459,12 +587,12 @@ async def seed_openstack_demo(conn: Connection, *, password: str = "secret") -> tenant_cycle = ("admin", "demo", "production", "staging", "development", "demo") hypervisor_names = [ f"compute-{(i // len(AZS)) + 1:02d}.{AZS[i % len(AZS)]}" - for i in range(DEMO_HYPERVISOR_COUNT) + for i in range(hypervisor_count) ] server_rows = [] port_rows = [] - for i in range(DEMO_SERVER_COUNT): + for i in range(server_count): pname = tenant_cycle[i % len(tenant_cycle)] pid = project_ids[pname] net_id, _subnet = project_nets[pname] @@ -546,17 +674,40 @@ async def seed_openstack_demo(conn: Connection, *, password: str = "secret") -> VALUES($1,$2,$3,$4,$5,$6,$7,$8,$9::jsonb)""", port_rows, ) + # One create action per server so GET …/os-instance-actions is never empty. + action_rows = [ + ( + oid(f"nova:instance_action:create:{i}"), + row[1], # project_id + f"create-{i}", + json.dumps( + { + "action": "create", + "instance_uuid": str(row[0]), + "server_id": str(row[0]), + "request_id": f"req-seed-{str(row[0])[:8]}", + "message": None, + } + ), + ) + for i, row in enumerate(server_rows) + ] + await conn.executemany( + """INSERT INTO os_api_objects(id, service, resource_type, project_id, name, status, data) + VALUES($1,'nova','instance_action',$2,$3,'DONE',$4::jsonb)""", + action_rows, + ) # Volumes volume_rows = [] - for i in range(DEMO_VOLUME_COUNT): + for i in range(volume_count): pname = tenant_cycle[i % len(tenant_cycle)] volume_rows.append( ( oid(f"volume:demo:{i}"), project_ids[pname], f"vol-{pname}-{i:04d}", - "in-use" if i < DEMO_SERVER_COUNT // 2 else "available", + "in-use" if i < server_count // 2 else "available", (i % 5 + 1) * 10, "lvmdriver-1" if i % 3 else "ceph", i % 11 == 0, @@ -571,10 +722,10 @@ async def seed_openstack_demo(conn: Connection, *, password: str = "secret") -> # Per-server nested rows so any listed server has DB-backed attachments/allocations. attachment_rows = [] - for i in range(DEMO_SERVER_COUNT): + for i in range(server_count): pname = tenant_cycle[i % len(tenant_cycle)] sid = str(oid(f"server:demo:{i}")) - vid = str(oid(f"volume:demo:{i % DEMO_VOLUME_COUNT}")) + vid = str(oid(f"volume:demo:{i % volume_count}")) port_id = str(oid(f"port:demo:{i}")) pid = project_ids[pname] attachment_rows.append( @@ -635,7 +786,7 @@ async def seed_openstack_demo(conn: Connection, *, password: str = "secret") -> ) # Floating IPs - for i in range(DEMO_FIP_COUNT): + for i in range(fip_count): pname = tenant_cycle[i % len(tenant_cycle)] await conn.execute( """INSERT INTO os_floating_ips( @@ -650,7 +801,7 @@ async def seed_openstack_demo(conn: Connection, *, password: str = "secret") -> ) # Ironic nodes - for i in range(DEMO_IRONIC_COUNT): + for i in range(ironic_count): await conn.execute( """INSERT INTO os_nodes( id, name, driver, provision_state, power_state, resource_class, @@ -664,7 +815,7 @@ async def seed_openstack_demo(conn: Connection, *, password: str = "secret") -> ) # Octavia LBs - for i in range(DEMO_LB_COUNT): + for i in range(lb_count): pname = tenant_cycle[i % len(tenant_cycle)] await conn.execute( """INSERT INTO os_loadbalancers( @@ -686,7 +837,7 @@ async def seed_openstack_demo(conn: Connection, *, password: str = "secret") -> ) # Heat stacks - for i in range(DEMO_STACK_COUNT): + for i in range(stack_count): pname = tenant_cycle[i % len(tenant_cycle)] await conn.execute( """INSERT INTO os_stacks( @@ -724,7 +875,7 @@ async def seed_openstack_demo(conn: Connection, *, password: str = "secret") -> # Generic service samples (multiple per service) — keep resource_type aligned # with pack operation resource_type so schema list endpoints return rows. samples = [] - for i in range(8): + for i in range(surface_sample_count): samples.extend( [ ("barbican", "secret", f"secret-{i}", {"secret_type": "passphrase"}), @@ -1342,11 +1493,12 @@ async def seed_openstack_demo(conn: Connection, *, password: str = "secret") -> ) # Nova server groups (specialized table) — denser in demo project - for i in range(16): - pname = "demo" if i < 8 else tenant_cycle[i % len(tenant_cycle)] + for i in range(server_group_count): + pname = "demo" if i < max(1, server_group_count // 2) else tenant_cycle[i % len(tenant_cycle)] + span = max(1, min(8, max(1, server_count // 4))) members = [ - str(oid(f"server:demo:{3 + (i % 8) * 6}")), - str(oid(f"server:demo:{3 + ((i + 1) % 8) * 6}")), + str(oid(f"server:demo:{(3 + (i % span) * 6) % server_count}")), + str(oid(f"server:demo:{(3 + ((i + 1) % span) * 6) % server_count}")), ] await conn.execute( """INSERT INTO os_server_groups(id, project_id, name, policies, members) @@ -1368,14 +1520,15 @@ async def seed_openstack_demo(conn: Connection, *, password: str = "secret") -> demo_trunk = str(oid("neutron:trunk:trunk-0")) demo_local_ip = str(oid("neutron:local_ip:lip-0")) demo_bgpvpn = str(oid("neutron:bgpvpn:bgpvpn-0")) - demo_stack_id = str(oid("stack:demo:3")) - demo_stack_name = "stack-demo-03" + demo_stack_idx = min(3, max(0, stack_count - 1)) + demo_stack_id = str(oid(f"stack:demo:{demo_stack_idx}")) + demo_stack_name = f"stack-demo-{demo_stack_idx:02d}" nested_samples: list[tuple[str, str, str, dict[str, Any]]] = [] # Cover the first listed servers (and a wider spread) so nested GETs hit DB rows. - for i in range(24): - sidx = i + for i in range(nested_sample_count): + sidx = i % server_count sid = str(oid(f"server:demo:{sidx}")) - vid = str(oid(f"volume:demo:{sidx}")) + vid = str(oid(f"volume:demo:{sidx % volume_count}")) port_id = str(oid(f"port:demo:{sidx}")) nested_samples.extend( [ @@ -1638,24 +1791,56 @@ async def seed_openstack_demo(conn: Connection, *, password: str = "secret") -> for service, rtype, name, data in nested_samples: item_id = oid(f"{service}:{rtype}:{name}") payload = {"id": str(item_id), "name": name, "status": data.get("status", "ACTIVE"), **data} + # Scope nested rows to the parent server's project (tenant_cycle index). + owner_pid = demo_pid + server_ref = str(data.get("server_id") or data.get("instance_uuid") or "") + for idx in range(min(server_count, 64)): + if server_ref == str(oid(f"server:demo:{idx}")): + owner_pid = project_ids[tenant_cycle[idx % len(tenant_cycle)]] + break await conn.execute( """INSERT INTO os_api_objects(id, service, resource_type, project_id, name, status, data) VALUES($1,$2,$3,$4,$5,$6,$7::jsonb)""", item_id, service, rtype, - None, # shared — nested lists visible for any project token + owner_pid, name, str(payload.get("status") or "ACTIVE"), json.dumps(payload), ) # Quotas as api objects (name=project id so Neutron-style /quotas/{project_id} resolves) + quota_factor = max(1.0, server_count / 1000) for pname, pid in project_ids.items(): for svc, rtype, data in ( - ("nova", "quota_set", {"instances": 200, "cores": 800, "ram": 1_024_000}), - ("cinder", "quota_set", {"volumes": 200, "gigabytes": 50_000}), - ("neutron", "quota", {"network": 50, "subnet": 100, "port": 500, "floatingip": 50}), + ( + "nova", + "quota_set", + { + "instances": _scale(200, quota_factor, 40), + "cores": _scale(800, quota_factor, 80), + "ram": _scale(1_024_000, quota_factor, 64_000), + }, + ), + ( + "cinder", + "quota_set", + { + "volumes": _scale(200, quota_factor, 40), + "gigabytes": _scale(50_000, quota_factor, 5_000), + }, + ), + ( + "neutron", + "quota", + { + "network": _scale(50, quota_factor, 10), + "subnet": _scale(100, quota_factor, 20), + "port": _scale(500, quota_factor, 80), + "floatingip": _scale(50, quota_factor, 10), + }, + ), ): await conn.execute( """INSERT INTO os_api_objects(id, service, resource_type, project_id, name, status, data) @@ -1675,31 +1860,44 @@ async def seed_openstack_demo(conn: Connection, *, password: str = "secret") -> from app.openstack.seed_discovery import seed_discovery_documents discovery = await seed_discovery_documents(conn) - pack_seed = await seed_pack_surface_samples(conn, per_type=3) + pack_seed = await seed_pack_surface_samples(conn, per_type=pack_per_type) pack_seed = {**pack_seed, **discovery} await conn.execute( - """INSERT INTO os_demo_meta(key, value) VALUES('profile', $1), ('servers', $2), ('password', $3)""", - DEMO_PROFILE, - str(DEMO_SERVER_COUNT), + """INSERT INTO os_demo_meta(key, value) + VALUES('profile', $1), ('size', $2), ('servers', $3), ('password', $4)""", + profile, + cfg.name, + str(server_count), password, ) return { - "profile": DEMO_PROFILE, - "servers": DEMO_SERVER_COUNT, + "profile": profile, + "size": cfg.name, + "servers": server_count, "pack_seed": pack_seed, - "volumes": DEMO_VOLUME_COUNT, - "hypervisors": DEMO_HYPERVISOR_COUNT, + "volumes": volume_count, + "hypervisors": hypervisor_count, + "ironic_nodes": ironic_count, + "loadbalancers": lb_count, + "stacks": stack_count, + "floating_ips": fip_count, + "extra_networks": extra_networks, + "extra_security_groups": extra_security_groups, + "keypairs_per_user": keypairs_per_user, + "edge_routers": edge_routers, "projects": list(project_ids.keys()), "users": list(user_ids.keys()), "password": password, "availability_zones": list(AZS), + "cluster": asdict(cfg), } async def openstack_demo_summary(conn: Connection) -> dict[str, Any]: profile = await conn.fetchval("SELECT value FROM os_demo_meta WHERE key='profile'") + size = await conn.fetchval("SELECT value FROM os_demo_meta WHERE key='size'") servers = await conn.fetchval("SELECT count(*) FROM os_servers") volumes = await conn.fetchval("SELECT count(*) FROM os_volumes") networks = await conn.fetchval("SELECT count(*) FROM os_networks") @@ -1712,9 +1910,14 @@ async def openstack_demo_summary(conn: Connection) -> dict[str, Any]: stacks = await conn.fetchval("SELECT count(*) FROM os_stacks") nodes = await conn.fetchval("SELECT count(*) FROM os_nodes") fips = await conn.fetchval("SELECT count(*) FROM os_floating_ips") + loaded = is_demo_profile(profile) + cfg = DEMO_CLUSTER_SIZES.get(str(size or ""), None) + if cfg is None and loaded and isinstance(profile, str) and ":" in profile: + cfg = DEMO_CLUSTER_SIZES.get(profile.rsplit(":", 1)[-1]) return { - "loaded": profile == DEMO_PROFILE, + "loaded": loaded, "profile": profile or "minimal", + "size": (cfg.name if cfg else size) or None, "servers": int(servers or 0), "volumes": int(volumes or 0), "networks": int(networks or 0), @@ -1727,5 +1930,6 @@ async def openstack_demo_summary(conn: Connection) -> dict[str, Any]: "stacks": int(stacks or 0), "ironic_nodes": int(nodes or 0), "floating_ips": int(fips or 0), - "target_servers": DEMO_SERVER_COUNT, + "target_servers": cfg.servers if cfg else int(servers or 0), + "sizes": list_demo_sizes(), } diff --git a/app/openstack/engine.py b/app/openstack/engine.py index 99db20e..225b659 100644 --- a/app/openstack/engine.py +++ b/app/openstack/engine.py @@ -14,21 +14,12 @@ from fastapi.responses import JSONResponse from app.openstack.auth import TokenContext from app.openstack.deps import get_conn, require_project_token, require_token from app.openstack.errors import OpenStackError +from app.openstack.singular import singular as _singular from app.openstack.surface import SERVICES, ServiceSpec _PATH_PARAM = re.compile(r"\{([^{}]+)\}") -def _singular(collection_key: str) -> str: - if collection_key.endswith("ies"): - return collection_key[:-3] + "y" - if collection_key.endswith("ses"): - return collection_key[:-2] - if collection_key.endswith("s") and not collection_key.endswith("ss"): - return collection_key[:-1] - return collection_key - - def _wrap_list(collection_key: str, items: list[dict[str, Any]]) -> dict[str, Any]: return {collection_key: items} diff --git a/app/openstack/opspec.py b/app/openstack/opspec.py index 495b4cd..6a9607f 100644 --- a/app/openstack/opspec.py +++ b/app/openstack/opspec.py @@ -29,6 +29,8 @@ class OperationSpec: action_name: str | None = None response_fixture: dict[str, Any] | None = None notes: str = "" + # Full JSON Schema for the HTTP request body (merged from request_bodies/). + request_schema: dict[str, Any] | None = None def path_params(self) -> list[str]: import re diff --git a/app/openstack/registry.py b/app/openstack/registry.py index cca6571..eaa9be5 100644 --- a/app/openstack/registry.py +++ b/app/openstack/registry.py @@ -190,11 +190,16 @@ def register_openstack_contract_routes( full_path = f"/_os/{pack.name}{path}" name = f"{_ROUTE_NAME_PREFIX}{pack.name}:{op.method}:{op.path}" endpoint = _make_contract_endpoint(pack, op, handlers, dispatch_fn) + # FastAPI only auto-adds HEAD for @app.get(); contract routes use + # add_api_route — register HEAD beside every GET for the matrix. + methods = [op.method] + if op.method.upper() == "GET": + methods.append("HEAD") app.add_api_route( full_path, endpoint, - methods=[op.method], + methods=methods, name=name, include_in_schema=True, tags=[service_openapi_tag(pack.name)], diff --git a/app/openstack/request_bodies.py b/app/openstack/request_bodies.py new file mode 100644 index 0000000..497d903 --- /dev/null +++ b/app/openstack/request_bodies.py @@ -0,0 +1,127 @@ +"""Load and resolve OpenStack request-body JSON Schemas. + +Schemas live in ``contracts/openstack/request_bodies/.json`` and are +merged onto ``OperationSpec`` at pack load time (shared across series). +""" + +from __future__ import annotations + +import json +from dataclasses import replace +from functools import lru_cache +from pathlib import Path +from typing import Any + +from app.openstack.opspec import OperationSpec + +_BODIES_ROOT = Path(__file__).resolve().parents[2] / "contracts" / "openstack" / "request_bodies" + + +def request_bodies_root() -> Path: + return _BODIES_ROOT + + +@lru_cache(maxsize=1) +def _load_all() -> dict[str, dict[str, Any]]: + root = request_bodies_root() + out: dict[str, dict[str, Any]] = {} + if not root.is_dir(): + return out + for path in sorted(root.glob("*.json")): + data = json.loads(path.read_text()) + service = str(data.get("service") or path.stem) + ops = data.get("operations") or {} + by_path = data.get("by_path") or {} + out[service] = {"operations": dict(ops), "by_path": dict(by_path)} + return out + + +def clear_request_body_cache() -> None: + _load_all.cache_clear() + + +def _path_key(method: str, path: str) -> str: + return f"{method.upper()} {path}" + + +def lookup_request_schema(service: str, op: OperationSpec) -> dict[str, Any] | None: + """Return the JSON Schema for an operation, or None if missing.""" + + store = _load_all().get(service) or {} + ops = store.get("operations") or {} + schema = ops.get(op.operation_id) + if schema is None: + schema = (store.get("by_path") or {}).get(_path_key(op.method, op.path)) + if schema is None: + return None + return _resolve_schema(schema, microversion=op.microversion_max) + + +def _resolve_schema(schema: dict[str, Any], *, microversion: str | None) -> dict[str, Any]: + """Pick a concrete schema from OpenStack oneOf discriminators when present.""" + + if not isinstance(schema, dict): + return {} + if "oneOf" in schema and isinstance(schema["oneOf"], list): + xos = schema.get("x-openstack") or {} + discriminator = xos.get("discriminator") + variants = [item for item in schema["oneOf"] if isinstance(item, dict)] + if discriminator == "action": + # Prefer first variant; callers match action via separate ops. + chosen = variants[0] if variants else schema + return _resolve_schema(chosen, microversion=microversion) + if discriminator == "microversion" and microversion: + best: dict[str, Any] | None = None + for item in variants: + meta = item.get("x-openstack") or {} + min_ver = str(meta.get("min-ver") or "0") + max_ver = meta.get("max-ver") + if _mv_le(min_ver, microversion) and ( + max_ver is None or _mv_le(microversion, str(max_ver)) + ): + best = item + if best is not None: + return _resolve_schema(best, microversion=microversion) + if variants: + return _resolve_schema(variants[-1], microversion=microversion) + return schema + + +def _mv_le(left: str, right: str) -> bool: + def parts(value: str) -> tuple[int, ...]: + out: list[int] = [] + for piece in value.split("."): + try: + out.append(int(piece)) + except ValueError: + out.append(0) + return tuple(out) + + return parts(left) <= parts(right) + + +def attach_request_schemas(service: str, ops: list[OperationSpec]) -> list[OperationSpec]: + """Return new OperationSpec list with ``request_schema`` filled where known.""" + + attached: list[OperationSpec] = [] + for op in ops: + schema = lookup_request_schema(service, op) + if schema is None: + attached.append(op) + continue + attached.append(replace(op, request_schema=schema)) + return attached + + +def missing_write_schemas(packs: dict[str, Any]) -> list[tuple[str, str, str, str]]: + """List (service, method, path, operation_id) missing request schemas.""" + + missing: list[tuple[str, str, str, str]] = [] + for name, pack in sorted(packs.items()): + for op in pack.operations: + if op.method not in {"POST", "PUT", "PATCH"}: + continue + if op.request_schema: + continue + missing.append((name, op.method, op.path, op.operation_id)) + return missing diff --git a/app/openstack/request_examples.py b/app/openstack/request_examples.py new file mode 100644 index 0000000..e61fe57 --- /dev/null +++ b/app/openstack/request_examples.py @@ -0,0 +1,262 @@ +"""Build UI body_fields / body_example from JSON Schema request bodies.""" + +from __future__ import annotations + +from typing import Any + + +def schema_example(schema: dict[str, Any] | None, *, name: str | None = None) -> Any: + """Build a representative JSON value from a JSON Schema fragment.""" + + if not schema: + return None + if "example" in schema: + return schema["example"] + if "default" in schema: + return schema["default"] + enum_values = schema.get("enum") or [] + if enum_values: + return enum_values[0] + if "const" in schema: + return schema["const"] + + schema_type = schema.get("type") + if isinstance(schema_type, list): + schema_type = next((t for t in schema_type if t != "null"), schema_type[0]) + + if schema_type == "object" or ("properties" in schema and schema_type is None): + props = schema.get("properties") or {} + required = set(schema.get("required") or []) + out: dict[str, Any] = {} + for key, child in props.items(): + if not isinstance(child, dict): + continue + # Include required always; also optional fields that declare example/default. + include = key in required or "example" in child or "default" in child + if not include: + # Still include optional leaves for api-ref-style full previews. + include = True + if include: + out[key] = schema_example(child, name=key) + return out + + if schema_type == "array": + items = schema.get("items") + if isinstance(items, dict): + return [schema_example(items, name=name)] + return [] + + if schema_type == "boolean": + return False + if schema_type == "integer": + minimum = schema.get("minimum") + return int(minimum) if minimum is not None else 1 + if schema_type == "number": + minimum = schema.get("minimum") + return float(minimum) if minimum is not None else 1.0 + if schema_type == "null": + return None + + # string / unknown + fmt = schema.get("format") + if fmt == "uri" or fmt == "url": + return "http://example.com" + if fmt == "email": + return "user@example.com" + if fmt == "uuid" or (name and (name.endswith("_id") or name == "id")): + return "00000000-0000-0000-0000-000000000001" + if name in {"name", "stack_name", "display_name"}: + return "example" + if name in {"cidr", "remote_ip_prefix"}: + return "10.0.0.0/24" + if name in {"password"}: + return "secret" + return "example" + + +def flatten_schema_fields( + schema: dict[str, Any] | None, + *, + prefix: str = "", + max_depth: int = 6, +) -> list[dict[str, Any]]: + """Flatten a JSON Schema into dotted PARAM field descriptors for the console.""" + + if not schema or max_depth < 0: + return [] + schema_type = schema.get("type") + if isinstance(schema_type, list): + schema_type = next((t for t in schema_type if t != "null"), schema_type[0]) + + props = schema.get("properties") + if (schema_type == "object" or props) and isinstance(props, dict): + required = set(schema.get("required") or []) + fields: list[dict[str, Any]] = [] + for key, child in props.items(): + if not isinstance(child, dict): + continue + path = f"{prefix}.{key}" if prefix else key + child_type = child.get("type") + if isinstance(child_type, list): + child_type = next((t for t in child_type if t != "null"), child_type[0]) + nested_props = child.get("properties") + if (child_type == "object" or nested_props) and isinstance(nested_props, dict): + fields.extend( + flatten_schema_fields(child, prefix=path, max_depth=max_depth - 1) + ) + elif child_type == "array": + items = child.get("items") + if isinstance(items, dict) and ( + items.get("type") == "object" or isinstance(items.get("properties"), dict) + ): + # Expand one sample element so nested array object fields appear. + fields.extend( + flatten_schema_fields( + items, prefix=f"{path}.0", max_depth=max_depth - 1 + ) + ) + else: + fields.append( + { + "name": path, + "type": "array", + "description": child.get("description") or f"Array {path}", + "optional": key not in required, + "enum": list(child.get("enum") or []), + "example": schema_example(child, name=key), + } + ) + else: + fields.append( + { + "name": path, + "type": str(child_type or "string"), + "description": child.get("description"), + "optional": key not in required, + "enum": list(child.get("enum") or []), + "example": schema_example(child, name=key), + } + ) + return fields + + if prefix: + return [ + { + "name": prefix, + "type": str(schema_type or "string"), + "description": schema.get("description"), + "optional": False, + "enum": list(schema.get("enum") or []), + "example": schema_example(schema, name=prefix), + } + ] + return [] + + +def body_fields_from_example(body_example: dict[str, Any] | None) -> list[dict[str, Any]]: + """PARAM inputs derived from body_example, including nested scalar paths. + + Mirrors oVirt console behaviour: walk the Engine/OpenStack-shaped example and + emit one PARAM row per leaf (dotted paths, numeric segments for arrays). + """ + + if not isinstance(body_example, dict) or not body_example: + return [] + + fields: list[dict[str, Any]] = [] + + def _leaf_type(value: Any) -> str: + if isinstance(value, bool): + return "boolean" + if isinstance(value, int) and not isinstance(value, bool): + return "integer" + if isinstance(value, float): + return "number" + if value is None: + return "null" + return "string" + + def _walk(prefix: str, value: Any) -> None: + if isinstance(value, dict): + for key, child in value.items(): + path = f"{prefix}.{key}" if prefix else str(key) + _walk(path, child) + return + if isinstance(value, list): + if not value: + fields.append( + { + "name": prefix, + "type": "array", + "description": prefix, + "optional": True, + "enum": [], + "example": [], + } + ) + return + for index, child in enumerate(value): + path = f"{prefix}.{index}" if prefix else str(index) + _walk(path, child) + return + fields.append( + { + "name": prefix, + "type": _leaf_type(value), + "description": prefix, + "optional": True, + "enum": [], + "example": value, + } + ) + + _walk("", body_example) + return fields + + +def unflatten_body(values: dict[str, Any]) -> dict[str, Any]: + """Turn dotted keys into a nested dict (supports numeric array segments).""" + + root: dict[str, Any] = {} + + def _set(path: str, value: Any) -> None: + parts = path.split(".") + cur: Any = root + for i, part in enumerate(parts[:-1]): + nxt = parts[i + 1] + want_array = nxt.isdigit() + if part.isdigit(): + idx = int(part) + if not isinstance(cur, list): + return + while len(cur) <= idx: + cur.append([] if want_array else {}) + if cur[idx] is None or (want_array and not isinstance(cur[idx], list)) or ( + not want_array and not isinstance(cur[idx], dict) + ): + cur[idx] = [] if want_array else {} + cur = cur[idx] + continue + if want_array: + if not isinstance(cur.get(part), list): + cur[part] = [] + elif not isinstance(cur.get(part), dict): + cur[part] = {} + cur = cur[part] + leaf = parts[-1] + if leaf.isdigit(): + idx = int(leaf) + if not isinstance(cur, list): + return + while len(cur) <= idx: + cur.append(None) + cur[idx] = value + return + if isinstance(cur, dict): + cur[leaf] = value + + for dotted, value in sorted(values.items(), key=lambda item: item[0].count(".")): + if value is None or value == "": + continue + _set(dotted, value) + return root diff --git a/app/openstack/routes/glance.py b/app/openstack/routes/glance.py index 6f81be9..355af9d 100644 --- a/app/openstack/routes/glance.py +++ b/app/openstack/routes/glance.py @@ -244,12 +244,13 @@ async def download_image_file( size = int((data or {}).get("size") or 0) else: size = int(row["size"] or 0) - # Always return at least one byte so clients / coverage see a real payload. + # Lab payload is capped; Content-Length must match the bytes we actually send + # (advertising the virtual image size breaks urllib/clients with IncompleteRead). content = b"\0" * min(size, 64) if size else b"probe-image" return Response( content=content, media_type="application/octet-stream", - headers={"Content-Length": str(len(content) if not size else size)}, + headers={"Content-Length": str(len(content))}, ) diff --git a/app/openstack/routes/heat.py b/app/openstack/routes/heat.py index 6a2fc8c..2399593 100644 --- a/app/openstack/routes/heat.py +++ b/app/openstack/routes/heat.py @@ -146,6 +146,52 @@ async def show_stack_by_id( return {"stack": _stack(row)} +async def _update_stack( + *, + project_id: Any, + stack_id: str | None, + stack_name: str | None, + request: Request, + conn: Connection, +) -> dict[str, object]: + payload = await request.json() + stack = payload.get("stack") or payload + if stack_id: + row = await conn.fetchrow( + "SELECT * FROM os_stacks WHERE project_id=$1 AND id::text=$2", + project_id, + stack_id, + ) + else: + row = await conn.fetchrow( + """SELECT * FROM os_stacks + WHERE project_id=$1 AND (id::text=$2 OR stack_name=$2) + ORDER BY created_at DESC LIMIT 1""", + project_id, + stack_name, + ) + if row is None: + raise OpenStackError("StackNotFound", "Stack not found", status_code=404) + desc = stack.get("description") if "description" in stack else row["description"] + template = stack.get("template") if isinstance(stack.get("template"), dict) else None + parameters = stack.get("parameters") if isinstance(stack.get("parameters"), dict) else None + await conn.execute( + """UPDATE os_stacks + SET description=$1, + template=COALESCE($2::jsonb, template), + parameters=COALESCE($3::jsonb, parameters), + updated_at=now(), + stack_status='UPDATE_COMPLETE' + WHERE id=$4""", + desc, + json.dumps(template) if template is not None else None, + json.dumps(parameters) if parameters is not None else None, + row["id"], + ) + row = await conn.fetchrow("SELECT * FROM os_stacks WHERE id=$1", row["id"]) + return {"stack": _stack(row)} + + @router.put("/v1/{tenant_id}/stacks/{id}") @router.patch("/v1/{tenant_id}/stacks/{id}") async def update_stack_by_id( @@ -156,23 +202,33 @@ async def update_stack_by_id( ctx: Annotated[TokenContext, Depends(require_project_token)], ) -> dict[str, object]: _ = tenant_id - payload = await request.json() - stack = payload.get("stack") or payload - row = await conn.fetchrow( - "SELECT * FROM os_stacks WHERE project_id=$1 AND (id::text=$2 OR stack_name=$2) ORDER BY created_at DESC LIMIT 1", - ctx.project_id, - id, + return await _update_stack( + project_id=ctx.project_id, + stack_id=None, + stack_name=id, + request=request, + conn=conn, ) - if row is None: - raise OpenStackError("StackNotFound", "Stack not found", status_code=404) - desc = stack.get("description") if "description" in stack else row["description"] - await conn.execute( - "UPDATE os_stacks SET description=$1, updated_at=now(), stack_status='UPDATE_COMPLETE' WHERE id=$2", - desc, - row["id"], + + +@router.put("/v1/{tenant_id}/stacks/{stack_name}/{stack_id}") +@router.patch("/v1/{tenant_id}/stacks/{stack_name}/{stack_id}") +async def update_stack_by_name( + tenant_id: str, + stack_name: str, + stack_id: str, + request: Request, + conn: Annotated[Connection, Depends(get_conn)], + ctx: Annotated[TokenContext, Depends(require_project_token)], +) -> dict[str, object]: + _ = tenant_id, stack_name + return await _update_stack( + project_id=ctx.project_id, + stack_id=stack_id, + stack_name=None, + request=request, + conn=conn, ) - row = await conn.fetchrow("SELECT * FROM os_stacks WHERE id=$1", row["id"]) - return {"stack": _stack(row)} @router.delete("/v1/{tenant_id}/stacks/{id}", status_code=204) diff --git a/app/openstack/routes/neutron.py b/app/openstack/routes/neutron.py index 9bfc5e3..4404cd0 100644 --- a/app/openstack/routes/neutron.py +++ b/app/openstack/routes/neutron.py @@ -17,17 +17,20 @@ router = APIRouter(tags=["Neutron"]) def _net(row: Any) -> dict[str, Any]: + # Lab convention: shared network named "public" is the external provider net. + name = str(row["name"] or "") + is_external = bool(row["shared"]) and name == "public" return { "id": str(row["id"]), - "name": row["name"], + "name": name, "status": row["status"], "shared": row["shared"], "admin_state_up": row["admin_state_up"], "tenant_id": str(row["project_id"]), "project_id": str(row["project_id"]), - "router:external": False, - "provider:network_type": "vxlan", - "mtu": 1450, + "router:external": is_external, + "provider:network_type": "flat" if is_external else "vxlan", + "mtu": 1500 if is_external else 1450, } diff --git a/app/openstack/routes/nova.py b/app/openstack/routes/nova.py index ff67ccc..783212e 100644 --- a/app/openstack/routes/nova.py +++ b/app/openstack/routes/nova.py @@ -409,8 +409,8 @@ async def server_action( "unrescue": "ACTIVE", "os-stop": "SHUTOFF", "osStop": "SHUTOFF", - "shelve": "SHUTOFF", - "shelveOffload": "SHUTOFF", + "shelve": "SHELVED", + "shelveOffload": "SHELVED_OFFLOADED", "pause": "PAUSED", "suspend": "SUSPENDED", "rescue": "RESCUE", @@ -905,6 +905,18 @@ async def availability_zones( } +def _aggregate_dict(row: Any) -> dict[str, object]: + hosts = row["hosts"] + metadata = row["metadata"] + return { + "id": row["id"], + "name": row["name"], + "availability_zone": row["availability_zone"], + "hosts": hosts if not isinstance(hosts, str) else json.loads(hosts), + "metadata": metadata if not isinstance(metadata, str) else json.loads(metadata), + } + + @router.get("/v2.1/os-aggregates") async def list_aggregates( conn: Annotated[Connection, Depends(get_conn)], @@ -914,20 +926,24 @@ async def list_aggregates( rows = await conn.fetch("SELECT * FROM os_aggregates ORDER BY id") except Exception: rows = [] - return { - "aggregates": [ - { - "id": r["id"], - "name": r["name"], - "availability_zone": r["availability_zone"], - "hosts": r["hosts"] if not isinstance(r["hosts"], str) else json.loads(r["hosts"]), - "metadata": r["metadata"] - if not isinstance(r["metadata"], str) - else json.loads(r["metadata"]), - } - for r in rows - ] - } + return {"aggregates": [_aggregate_dict(r) for r in rows]} + + +@router.get("/v2.1/os-aggregates/{aggregate_id}") +async def show_aggregate( + aggregate_id: str, + conn: Annotated[Connection, Depends(get_conn)], + _ctx: Annotated[TokenContext, Depends(require_project_token)], +) -> dict[str, object]: + row = await conn.fetchrow( + """SELECT * FROM os_aggregates + WHERE id::text=$1 OR name=$1 + LIMIT 1""", + aggregate_id, + ) + if row is None: + raise OpenStackError("NotFound", f"aggregate {aggregate_id} not found", status_code=404) + return {"aggregate": _aggregate_dict(row)} @router.get("/v2.1/os-services") @@ -1137,7 +1153,8 @@ async def instance_actions( ) -> dict[str, object]: rows = await conn.fetch( """SELECT id, name, data FROM os_api_objects - WHERE service='nova' AND resource_type='instance_action' AND project_id=$1 + WHERE service='nova' AND resource_type='instance_action' + AND (project_id=$1 OR project_id IS NULL) AND (data->>'server_id'=$2 OR data->>'instance_uuid'=$2) ORDER BY created_at DESC LIMIT 20""", @@ -1170,7 +1187,8 @@ async def show_instance_action( ) -> dict[str, object]: row = await conn.fetchrow( """SELECT id, name, data FROM os_api_objects - WHERE service='nova' AND resource_type='instance_action' AND project_id=$1 + WHERE service='nova' AND resource_type='instance_action' + AND (project_id=$1 OR project_id IS NULL) AND (id::text=$2 OR data->>'request_id'=$2 OR name=$2) ORDER BY created_at DESC LIMIT 1""", @@ -1181,7 +1199,8 @@ async def show_instance_action( # Prefer an existing action for this server; otherwise persist the requested id. row = await conn.fetchrow( """SELECT id, name, data FROM os_api_objects - WHERE service='nova' AND resource_type='instance_action' AND project_id=$1 + WHERE service='nova' AND resource_type='instance_action' + AND (project_id=$1 OR project_id IS NULL) AND (data->>'server_id'=$2 OR data->>'instance_uuid'=$2) ORDER BY created_at DESC LIMIT 1""", ctx.project_id, @@ -1243,7 +1262,8 @@ async def _load_server_metadata( return metadata, public api = await conn.fetchrow( """SELECT data FROM os_api_objects - WHERE service='nova' AND resource_type='server_metadata' AND project_id=$1 + WHERE service='nova' AND resource_type='server_metadata' + AND (project_id=$1 OR project_id IS NULL) AND (data->>'server_id'=$2 OR id::text=$2) ORDER BY created_at LIMIT 1""", project_id, @@ -1557,6 +1577,36 @@ async def server_security_groups( } +@router.get("/v2.1/servers/{server_id}/os-security-groups/{security_group_id}") +async def show_server_security_group( + server_id: str, + security_group_id: str, + conn: Annotated[Connection, Depends(get_conn)], + ctx: Annotated[TokenContext, Depends(require_project_token)], +) -> dict[str, object]: + _ = server_id + row = await conn.fetchrow( + """SELECT * FROM os_security_groups + WHERE project_id=$1 AND (id::text=$2 OR name=$2) + LIMIT 1""", + ctx.project_id, + security_group_id, + ) + if row is None: + raise OpenStackError( + "NotFound", + f"security_group {security_group_id} not found", + status_code=404, + ) + return { + "security_group": { + "id": str(row["id"]), + "name": row["name"], + "description": row["description"], + } + } + + @router.get("/v2.1/servers/{server_id}/topology") async def server_topology( server_id: str, @@ -1648,7 +1698,8 @@ async def volume_attachments( ) -> dict[str, object]: rows = await conn.fetch( """SELECT * FROM os_api_objects - WHERE service='nova' AND resource_type='volume_attachment' AND project_id=$1 + WHERE service='nova' AND resource_type='volume_attachment' + AND (project_id=$1 OR project_id IS NULL) AND (data->>'server_id'=$2 OR data->>'serverId'=$2) ORDER BY created_at""", ctx.project_id, diff --git a/app/openstack/routes/swift.py b/app/openstack/routes/swift.py index 0f754f3..dcd978a 100644 --- a/app/openstack/routes/swift.py +++ b/app/openstack/routes/swift.py @@ -8,7 +8,6 @@ from uuid import uuid4 from asyncpg import Connection from fastapi import APIRouter, Depends, Request, Response -from fastapi.responses import PlainTextResponse from app.openstack.auth import TokenContext from app.openstack.deps import get_conn, require_token @@ -72,6 +71,36 @@ async def create_container( return Response(status_code=201) +@router.delete("/v1/{account}/{container}", status_code=204) +async def delete_container( + account: str, + container: str, + conn: Annotated[Connection, Depends(get_conn)], + ctx: Annotated[TokenContext, Depends(require_token)], +) -> Response: + _ = account + acct = _account(ctx) + objects = await conn.fetchval( + "SELECT count(*) FROM os_swift_objects WHERE account=$1 AND container=$2", + acct, + container, + ) + if int(objects or 0) > 0: + raise OpenStackError( + "Conflict", + "Container is not empty", + status_code=409, + ) + result = await conn.execute( + "DELETE FROM os_swift_containers WHERE account=$1 AND name=$2", + acct, + container, + ) + if result.endswith("0"): + raise OpenStackError("NotFound", "Container not found", status_code=404) + return Response(status_code=204) + + @router.get("/v1/{account}/{container}") async def list_objects( account: str, diff --git a/app/openstack/schema_engine.py b/app/openstack/schema_engine.py index 5967506..bd0e9d0 100644 --- a/app/openstack/schema_engine.py +++ b/app/openstack/schema_engine.py @@ -17,20 +17,11 @@ from app.openstack.auth import TokenContext, extract_token, validate_token from app.openstack.contract_loader import ensure_loaded, get_runtime from app.openstack.errors import OpenStackError from app.openstack.opspec import OperationSpec, ServicePack +from app.openstack.singular import singular as _singular _PATH_PARAM = re.compile(r"\{([^{}]+)\}") -def _singular(collection_key: str) -> str: - if collection_key.endswith("ies"): - return collection_key[:-3] + "y" - if collection_key.endswith("ses"): - return collection_key[:-2] - if collection_key.endswith("s") and not collection_key.endswith("ss"): - return collection_key[:-1] - return collection_key - - def _fastapi_path(path: str) -> str: """Convert {param} to FastAPI {param} (already compatible).""" return path if path.startswith("/") else f"/{path}" @@ -44,9 +35,7 @@ def _parent_scope(path: str, path_params: dict[str, str]) -> dict[str, str]: match = re.search(r"/([^/]+)/\{id\}(?:/|$)", path) if match: segment = match.group(1) - singular = ( - segment[:-1] if segment.endswith("s") and not segment.endswith("ss") else segment - ) + singular = _singular(segment) parent.setdefault(f"{singular}_id", path_params["id"]) parent.setdefault(singular, path_params["id"]) parent.setdefault("parent_id", path_params["id"]) diff --git a/app/openstack/seed.py b/app/openstack/seed.py index 9963604..0685bb9 100644 --- a/app/openstack/seed.py +++ b/app/openstack/seed.py @@ -2,6 +2,8 @@ from __future__ import annotations +import json + from asyncpg import Connection from app.openstack.ids import oid @@ -149,6 +151,22 @@ async def seed_openstack(conn: Connection, *, password: str = "secret") -> dict[ '{"demo-net":[{"OS-EXT-IPS-MAC:mac_addr":"fa:16:3e:00:00:01","version":4,"addr":"10.0.0.12","OS-EXT-IPS:type":"fixed"}]}', '{"env":"lab","_tags":["lab","env","demo"]}', ) + await conn.execute( + """INSERT INTO os_api_objects(id, service, resource_type, project_id, name, status, data) + VALUES($1,'nova','instance_action',$2,'create','DONE',$3::jsonb) + ON CONFLICT (id) DO NOTHING""", + oid("nova:instance_action:demo-1"), + demo_project, + json.dumps( + { + "action": "create", + "instance_uuid": str(server), + "server_id": str(server), + "request_id": f"req-seed-{str(server)[:8]}", + "message": None, + } + ), + ) await seed_openstack_extras(conn) @@ -226,12 +244,85 @@ async def seed_openstack_extras(conn: Connection) -> None: prefix, ) + # Shared external provider network for floating IPs / router gateways. + public_net = oid("net:public") + await conn.execute( + """INSERT INTO os_networks(id, project_id, name, status, shared, admin_state_up) + VALUES($1,$2,'public','ACTIVE',true,true) ON CONFLICT (id) DO NOTHING""", + public_net, + admin_project, + ) + public_subnet = oid("subnet:public") + await conn.execute( + """INSERT INTO os_subnets(id, network_id, project_id, name, cidr, ip_version, gateway_ip) + VALUES($1,$2,$3,'public-subnet','203.0.113.0/24',4,'203.0.113.1') + ON CONFLICT (id) DO NOTHING""", + public_subnet, + public_net, + admin_project, + ) await conn.execute( """INSERT INTO os_routers(id, project_id, name, status, admin_state_up, external_gateway_info) - VALUES($1,$2,'demo-router','ACTIVE',true,NULL) ON CONFLICT (id) DO NOTHING""", + VALUES($1,$2,'demo-router','ACTIVE',true,$3::jsonb) ON CONFLICT (id) DO NOTHING""", oid("router:demo"), demo_project, + json.dumps( + { + "network_id": str(public_net), + "enable_snat": True, + "external_fixed_ips": [ + {"ip_address": "203.0.113.2", "subnet_id": str(public_subnet)} + ], + } + ), ) + await conn.execute( + """INSERT INTO os_floating_ips( + id, project_id, floating_ip_address, floating_network_id, port_id, status) + VALUES($1,$2,'203.0.113.50',$3,NULL,'DOWN') ON CONFLICT (id) DO NOTHING""", + oid("fip:demo"), + demo_project, + public_net, + ) + + demo_net = oid("net:demo-net") + demo_subnet = oid("subnet:demo-subnet") + demo_server = oid("server:demo-1") + await conn.execute( + """INSERT INTO os_ports( + id, network_id, project_id, name, status, mac_address, + device_id, device_owner, fixed_ips) + VALUES( + $1,$2,$3,'demo-port','ACTIVE','fa:16:3e:00:00:aa', + $4,'compute:nova', + $5::jsonb + ) ON CONFLICT (id) DO NOTHING""", + oid("port:demo"), + demo_net, + demo_project, + str(demo_server), + json.dumps([{"subnet_id": str(demo_subnet), "ip_address": "10.0.0.12"}]), + ) + await conn.execute( + """INSERT INTO os_server_groups(id, project_id, name, policies, members) + VALUES($1,$2,'demo-sg',$3::jsonb,'[]'::jsonb) ON CONFLICT (id) DO NOTHING""", + oid("sgroup:demo"), + demo_project, + json.dumps(["soft-anti-affinity"]), + ) + try: + await conn.execute( + """INSERT INTO os_aggregates(id, name, availability_zone, hosts, metadata) + VALUES(1,'agg-nova','nova','["compute-1"]'::jsonb,'{}'::jsonb) + ON CONFLICT (id) DO NOTHING""" + ) + await conn.execute( + """INSERT INTO os_compute_services("binary", host, zone, status, state) + VALUES('nova-compute','compute-1','nova','enabled','up')""" + ) + except Exception: + # Topology tables from migration 011 may be absent in partial installs. + pass await conn.execute( """INSERT INTO os_nodes(id, name, driver, provision_state, power_state, resource_class, properties, driver_info, ports) diff --git a/app/openstack/seed_cli.py b/app/openstack/seed_cli.py index d9114ec..87f44ba 100644 --- a/app/openstack/seed_cli.py +++ b/app/openstack/seed_cli.py @@ -6,12 +6,16 @@ import argparse import asyncio import json import os -import sys import asyncpg from app.config import get_settings -from app.openstack.demo_cloud import clear_openstack_state, seed_openstack_demo +from app.openstack.demo_cloud import ( + DEMO_CLUSTER_SIZES, + clear_openstack_state, + resolve_demo_size, + seed_openstack_demo, +) from app.openstack.seed import seed_openstack @@ -20,22 +24,28 @@ async def _run(profile: str, password: str) -> dict[str, object]: conn = await asyncpg.connect(settings.database_url.get_secret_value()) try: async with conn.transaction(): - if profile in {"demo", "demo-cloud", "openstack-demo-cloud"}: - return await seed_openstack_demo(conn, password=password) - if profile in {"minimal", "lab", "small"}: + key = profile.strip().lower() + if key in {"minimal", "lab"}: await clear_openstack_state(conn) return await seed_openstack(conn, password=password) - raise SystemExit(f"unknown profile: {profile} (use minimal|demo)") + # demo / demo-small / small / large / big / openstack-demo-cloud:… + try: + cfg = resolve_demo_size(key) + except ValueError as exc: + known = "minimal | demo | demo-small | demo-large | demo-big | small | large | big" + raise SystemExit(f"unknown profile: {profile} (use {known})") from exc + return await seed_openstack_demo(conn, size=cfg.name, password=password) finally: await conn.close() def main(argv: list[str] | None = None) -> int: + sizes = ", ".join(sorted(DEMO_CLUSTER_SIZES)) parser = argparse.ArgumentParser(description=__doc__) parser.add_argument( "--profile", default=os.environ.get("SEED_PROFILE", "minimal"), - help="minimal | demo", + help=f"minimal | demo | demo-small | demo-large | demo-big | {sizes}", ) parser.add_argument("--password", default=os.environ.get("OS_PASSWORD", "secret")) args = parser.parse_args(argv) diff --git a/app/openstack/singular.py b/app/openstack/singular.py new file mode 100644 index 0000000..532ff66 --- /dev/null +++ b/app/openstack/singular.py @@ -0,0 +1,33 @@ +"""Shared plural→singular helpers for OpenStack resource keys.""" + +from __future__ import annotations + +# Words that already look plural-ending but must not lose a trailing "s". +_IRREGULAR: dict[str, str] = { + "status": "status", + "statuses": "status", + "addresses": "address", + "quotas": "quota", + "metadata": "metadata", + "series": "series", + "os-services": "os-service", + "os-hosts": "os-host", +} + + +def singular(collection_key: str) -> str: + """Return a singular resource key for an OpenStack collection name.""" + + key = collection_key.strip() + if not key: + return key + lower = key.lower() + if lower in _IRREGULAR: + return _IRREGULAR[lower] + if key.endswith("ies") and len(key) > 3: + return key[:-3] + "y" + if key.endswith("ses") and len(key) > 3: + return key[:-2] + if key.endswith("s") and not key.endswith("ss"): + return key[:-1] + return key diff --git a/app/openstack/surface_probe.py b/app/openstack/surface_probe.py index 87a9d49..b48947e 100644 --- a/app/openstack/surface_probe.py +++ b/app/openstack/surface_probe.py @@ -14,10 +14,13 @@ import urllib.request from collections import defaultdict from dataclasses import dataclass, field from typing import Any +from urllib.parse import urlparse from uuid import uuid4 from app.openstack.contract_loader import load_series_pack from app.openstack.opspec import OperationSpec, ServicePack +from app.openstack.singular import singular as _singular +from app.openstack.surface import all_service_ports _PATH_PARAM = re.compile(r"\{([^{}]+)\}") @@ -26,6 +29,59 @@ ACCEPTABLE = frozenset({200, 201, 202, 204, 300, 400, 401, 403, 404, 405, 409, 4 # Lifecycle success for exercised CRUD steps. SUCCESS = frozenset({200, 201, 202, 204}) +# OpenStack-API-Version type tokens (service name → header type). +_MV_TYPE = { + "nova": "compute", + "cinder": "volume", + "placement": "placement", + "manila": "share", + "ironic": "baremetal", +} + + +def gateway_hostname(host: str) -> tuple[str, str]: + """Return (scheme, hostname) from a Keystone/gateway base URL.""" + + parsed = urlparse(host if "://" in host else f"http://{host}") + return parsed.scheme or "http", parsed.hostname or "127.0.0.1" + + +def service_base_url(host: str, service: str, *, port: int | None = None) -> str: + """Build ``scheme://hostname:`` for real OpenStack ports. + + ``host`` is the Keystone/gateway URL (may use up-local :15000). Service calls + always use the catalog port from ``docs/ports.md`` / ``ServicePack.port``. + """ + + scheme, hostname = gateway_hostname(host) + ports = all_service_ports() + svc_port = port if port is not None else ports.get(service) + if svc_port is None: + # Fall back to the host as-is (route-service header still applied). + return host.rstrip("/") + return f"{scheme}://{hostname}:{svc_port}" + + +def microversion_headers(pack: ServicePack, op: OperationSpec) -> dict[str, str]: + """Headers when the pack declares a microversion for this service/op.""" + + ver = op.microversion_min or pack.default_microversion + if not ver: + return {} + typ = _MV_TYPE.get(pack.name) or (pack.typ if pack.typ and pack.typ != pack.name else pack.name) + headers = {"OpenStack-API-Version": f"{typ} {ver}"} + if pack.name == "nova": + headers["X-OpenStack-Nova-API-Version"] = ver + return headers + + +def count_declared_ops(packs: dict[str, ServicePack]) -> tuple[int, int]: + """Return (pack_ops, synthetic_head_ops) for coverage arithmetic.""" + + pack_ops = sum(len(p.operations) for p in packs.values()) + head_ops = sum(1 for p in packs.values() for op in p.operations if op.method == "GET") + return pack_ops, head_ops + @dataclass class ProbeResult: @@ -123,16 +179,6 @@ def fill_path(template: str, ctx: dict[str, str] | None = None) -> str: return _PATH_PARAM.sub(repl, template) -def _singular(key: str) -> str: - if key.endswith("ies"): - return key[:-3] + "y" - if key.endswith("ses"): - return key[:-2] - if key.endswith("s") and not key.endswith("ss"): - return key[:-1] - return key - - def _body_for( op: OperationSpec, *, @@ -259,27 +305,31 @@ def http_request( token: str | None = None, service: str | None = None, data: dict[str, Any] | None = None, + headers: dict[str, str] | None = None, timeout: float = 20.0, ) -> tuple[int, Any]: body = None if data is None else json.dumps(data).encode() - headers = {"Accept": "application/json"} + hdrs = {"Accept": "application/json"} if data is not None: - headers["Content-Type"] = "application/json" + hdrs["Content-Type"] = "application/json" if token: - headers["X-Auth-Token"] = token + hdrs["X-Auth-Token"] = token if service: - headers["X-OpenStack-Route-Service"] = service - req = urllib.request.Request(url, data=body, headers=headers, method=method) + # Fallback when the client cannot reach the real service port. + hdrs["X-OpenStack-Route-Service"] = service + if headers: + hdrs.update(headers) + req = urllib.request.Request(url, data=body, headers=hdrs, method=method) try: with urllib.request.urlopen(req, timeout=timeout) as res: - raw = res.read().decode() + raw = res.read().decode() if method.upper() != "HEAD" else "" try: parsed: Any = json.loads(raw) if raw else None except json.JSONDecodeError: parsed = raw return res.status, parsed except urllib.error.HTTPError as exc: - raw = exc.read().decode() + raw = exc.read().decode() if method.upper() != "HEAD" else "" try: parsed = json.loads(raw) if raw else None except json.JSONDecodeError: @@ -434,6 +484,7 @@ def probe_operation( ctx: dict[str, str] | None = None, project_id: str | None = None, mode: str = "probe", + method_override: str | None = None, ) -> tuple[ProbeResult, Any]: path_ctx = dict(ctx or {}) if project_id: @@ -442,27 +493,72 @@ def probe_operation( path_ctx.setdefault("tenant_id", project_id) path_ctx.setdefault("account", project_id) path = fill_path(op.path, path_ctx) - url = f"{host.rstrip('/')}{path}" - data = _body_for(op, ctx=path_ctx, project_id=project_id) - status, payload = http_request(op.method, url, token=token, service=pack.name, data=data) + base = service_base_url(host, pack.name, port=pack.port) + url = f"{base}{path}" + method = (method_override or op.method).upper() + data = None if method in {"GET", "HEAD", "DELETE"} else _body_for(op, ctx=path_ctx, project_id=project_id) + mv = microversion_headers(pack, op) + status, payload = http_request( + method, + url, + token=token, + service=pack.name, + data=data, + headers=mv or None, + ) detail = "" - check = SUCCESS if mode == "lifecycle" else ACCEPTABLE + # Synthetic HEAD: accept the same codes as probe (no body expected). + if method == "HEAD": + check = ACCEPTABLE + result_mode = "head" + else: + check = SUCCESS if mode == "lifecycle" else ACCEPTABLE + result_mode = mode if status not in check: detail = json.dumps(payload)[:300] if not isinstance(payload, str) else str(payload)[:300] result = ProbeResult( service=pack.name, - method=op.method, + method=method, path=op.path, - operation_id=op.operation_id, + operation_id=op.operation_id if method != "HEAD" else f"{op.operation_id}__head", status=status, detail=detail, - mode=mode, + mode=result_mode, payload=payload, collection_key=op.collection_key, ) return result, payload +def _append_synthetic_heads( + report: ProbeReport, + packs: dict[str, ServicePack], + *, + host: str, + token: str, + project_id: str, + ctx: dict[str, str], +) -> None: + """Issue HEAD for every pack GET path (contract matrix Layer A).""" + + for name in sorted(packs): + pack = packs[name] + for op in pack.operations: + if op.method != "GET": + continue + result, _ = probe_operation( + host, + pack, + op, + token=token, + ctx=ctx, + project_id=project_id, + mode="probe", + method_override="HEAD", + ) + report.results.append(result) + + def _seed_context( host: str, token: str, @@ -490,11 +586,33 @@ def _seed_context( ("ironic", "/v1/nodes", "nodes", "node"), ("ironic", "/v1/drivers", "drivers", "driver"), ("octavia", "/v2/lbaas/loadbalancers", "loadbalancers", "loadbalancer"), - ("swift", f"/v1/{project_id}", None, "account"), + ("swift", f"/v1/AUTH_{project_id}", None, "account"), ] for service, path, key, alias in seeds: - st, body = http_request("GET", f"{host.rstrip('/')}{path}", token=token, service=service) - if st >= 400 or not isinstance(body, dict): + url = f"{service_base_url(host, service)}{path}" + st, body = http_request("GET", url, token=token, service=service) + if st >= 400: + continue + # Swift account listing is a JSON array, not an envelope object. + if service == "swift" and isinstance(body, list) and body: + ctx["account"] = f"AUTH_{project_id}" + first = body[0] if isinstance(body[0], dict) else {} + if first.get("name"): + ctx["container"] = str(first["name"]) + # Seed object name from the first container listing when present. + ost, objs = http_request( + "GET", + f"{service_base_url(host, 'swift')}/v1/{ctx['account']}/{ctx['container']}", + token=token, + service="swift", + ) + if ost < 400 and isinstance(objs, list) and objs: + oname = objs[0].get("name") if isinstance(objs[0], dict) else None + if oname: + ctx["object"] = str(oname) + ctx["object_name"] = str(oname) + continue + if not isinstance(body, dict): continue ids = _extract_ids(body, key) if ids: @@ -527,7 +645,7 @@ def _ensure_swift_resources(host: str, token: str, project_id: str, ctx: dict[st account = ctx.get("account") or project_id container = ctx.get("container") or f"probe-c-{uuid4().hex[:8]}" obj = ctx.get("object") or ctx.get("object_name") or f"probe-o-{uuid4().hex[:8]}.txt" - base = host.rstrip("/") + base = service_base_url(host, "swift") st, _ = http_request( "PUT", f"{base}/v1/{account}/{container}", token=token, service="swift", data={} ) @@ -766,6 +884,34 @@ def probe_series_lifecycle( local["_item_id"] = rid local["id"] = rid local["server_id"] = rid + # Swift: empty the container before DELETE so the API returns 204 + # (409 Conflict for a non-empty container is correct OpenStack behaviour). + if ( + op.method == "DELETE" + and pack.name == "swift" + and op.resource_type == "container" + ): + acct = local.get("account") or project_id + cname = local.get("container") or local.get("id") + if acct and cname: + base = service_base_url(host, "swift", port=pack.port) + st_list, objs = http_request( + "GET", + f"{base}/v1/{acct}/{cname}", + token=token, + service="swift", + ) + if st_list in SUCCESS and isinstance(objs, list): + for obj in objs: + name = obj.get("name") if isinstance(obj, dict) else None + if name: + http_request( + "DELETE", + f"{base}/v1/{acct}/{cname}/{name}", + token=token, + service="swift", + ) + result, payload = probe_operation( host, pack, op, token=token, ctx=local, project_id=project_id, mode="lifecycle" ) @@ -819,6 +965,9 @@ def probe_series_lifecycle( report.results.append(result) done.add((op.method, op.path)) + _append_synthetic_heads( + report, packs, host=host, token=token, project_id=project_id, ctx=base_ctx + ) return report @@ -852,6 +1001,27 @@ def probe_series( host, pack, op, token=token, ctx=ctx, project_id=project_id, mode="probe" ) report.results.append(result) + if not collections_only: + _append_synthetic_heads( + report, packs, host=host, token=token, project_id=project_id, ctx=ctx + ) + else: + # Smoke: HEAD only for the collection GET paths we probed. + for pack in packs.values(): + for op in pack.operations: + if op.method != "GET" or "{" in op.path: + continue + result, _ = probe_operation( + host, + pack, + op, + token=token, + ctx=ctx, + project_id=project_id, + mode="probe", + method_override="HEAD", + ) + report.results.append(result) return report diff --git a/app/web/index.html b/app/web/index.html index 612dce8..fcc9c2e 100644 --- a/app/web/index.html +++ b/app/web/index.html @@ -583,6 +583,126 @@ padding-top: 2px; } + .demo-size-grid { + display: grid; + grid-template-columns: repeat(3, minmax(0, 1fr)); + gap: 12px; + margin-top: 4px; + } + + @media (max-width: 900px) { + .demo-size-grid { + grid-template-columns: 1fr; + } + } + + .demo-size-card { + display: flex; + flex-direction: column; + gap: 10px; + padding: 14px 14px 12px; + border: 1px solid var(--border); + border-radius: 10px; + background: + linear-gradient(165deg, color-mix(in srgb, var(--brand-accent) 8%, var(--surface-raised)) 0%, var(--surface-raised) 55%); + min-height: 168px; + } + + .demo-size-card.is-active { + border-color: color-mix(in srgb, var(--brand-accent) 55%, var(--border)); + box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--brand-accent) 25%, transparent); + } + + .demo-size-card-head { + display: flex; + align-items: baseline; + justify-content: space-between; + gap: 8px; + } + + .demo-size-card-title { + margin: 0; + font-size: 15px; + font-weight: 700; + letter-spacing: 0.01em; + color: var(--text); + text-transform: capitalize; + } + + .demo-size-card-chip { + font-size: 10px; + font-weight: 700; + letter-spacing: 0.06em; + text-transform: uppercase; + color: var(--brand-accent); + background: color-mix(in srgb, var(--brand-accent) 12%, transparent); + border-radius: 999px; + padding: 3px 8px; + white-space: nowrap; + } + + .demo-size-card-metrics { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 6px 10px; + margin: 0; + } + + .demo-size-card-metrics div { + display: flex; + flex-direction: column; + gap: 1px; + } + + .demo-size-card-metrics dt { + margin: 0; + font-size: 10px; + text-transform: uppercase; + letter-spacing: 0.04em; + color: var(--muted); + } + + .demo-size-card-metrics dd { + margin: 0; + font-size: 13px; + font-weight: 600; + color: var(--text); + } + + .demo-size-card-note { + margin: 0; + font-size: 11px; + line-height: 1.4; + color: var(--muted); + flex: 1; + } + + .demo-size-card .btn-demo-load { + width: 100%; + justify-content: center; + margin-top: auto; + } + + .demo-toolbar { + display: flex; + flex-wrap: nowrap; + gap: 8px; + align-items: stretch; + margin-top: 12px; + padding-top: 12px; + border-top: 1px solid var(--border); + width: 100%; + } + + .demo-toolbar .btn { + flex: 1 1 0; + display: inline-flex; + align-items: center; + justify-content: center; + min-width: 0; + text-align: center; + } + .btn-demo-load { background: var(--brand-accent); border-color: var(--brand-accent); @@ -1380,20 +1500,16 @@ } .catalog-option { - display: grid; - grid-template-columns: 1fr auto; - grid-template-rows: auto auto; - gap: 2px 8px; + display: flex; + flex-direction: column; + gap: 0; width: 100%; - padding: 8px 10px; border: 1px solid var(--border); border-left: 3px solid transparent; border-radius: 0; background: var(--surface-raised); - text-align: left; - cursor: pointer; - font: inherit; color: var(--text); + overflow: hidden; } .catalog-option:hover { background: var(--surface-hover); } @@ -1405,6 +1521,60 @@ box-shadow: none; } + .catalog-option-main { + display: grid; + grid-template-columns: 1fr auto; + grid-template-rows: auto auto; + gap: 2px 8px; + width: 100%; + padding: 8px 10px; + border: 0; + background: transparent; + text-align: left; + cursor: pointer; + font: inherit; + color: inherit; + } + + .catalog-option-mv { + display: none; + padding: 0 10px 8px; + border-top: 1px solid transparent; + } + + .catalog-option.active .catalog-option-mv { + display: block; + border-top-color: var(--border); + padding-top: 8px; + } + + .catalog-option-mv-label { + display: block; + margin-bottom: 4px; + font-size: 10px; + font-weight: 700; + letter-spacing: 0.06em; + text-transform: uppercase; + color: var(--muted); + } + + .catalog-mv-select { + width: 100%; + min-height: 30px; + padding: 4px 8px; + border: 1px solid var(--border); + border-radius: 0; + background: var(--surface); + color: var(--text); + font: inherit; + font-size: 12px; + } + + .catalog-mv-select:disabled { + opacity: 0.55; + cursor: not-allowed; + } + .catalog-source { margin-bottom: 12px; padding: 0; @@ -3402,6 +3572,10 @@ Catalog +
+ Microversion + +

Cloud

@@ -3430,34 +3604,9 @@
-

OpenStack API pack

-
-
- Series - -
-
- Operations - -
-
- Services - -
-
- -
- - -
- -
- - - - -
-

Surface-complete contract packs drive schema routes for every API-ref operation.

+

+ Change series / microversion in API catalog. +

@@ -3606,7 +3755,7 @@

- Apply swaps the live OpenStack series pack in memory. Process restart returns to OPENSTACK_SERIES. + Select a series card → pick microversion on the card → Apply as runtime.

@@ -3718,6 +3867,7 @@ const LS_SELECTION = "os-sim-selection"; const LS_PARAMS = "os-sim-params"; const LS_THEME = "os-sim-theme"; + const LS_MICROVERSION = "os-sim-microversion"; const HISTORY_LIMIT = 100; const PARAMS_STORE_LIMIT = 200; @@ -3738,6 +3888,8 @@ major: 9, majors: [], runtimeVersion: null, + osPack: null, + pendingMicroversion: {}, catalog: null, method: null, pathValues: {}, @@ -3855,6 +4007,7 @@ uiModalConfirm: document.getElementById("ui-modal-confirm"), statRuntime: document.getElementById("stat-runtime"), statCatalog: document.getElementById("stat-catalog"), + statMicroversion: document.getElementById("stat-microversion"), statClusterName: document.getElementById("stat-cluster-name"), statNodes: document.getElementById("stat-nodes"), statQemu: document.getElementById("stat-qemu"), @@ -3862,16 +4015,6 @@ statStorage: document.getElementById("stat-storage"), statQuorum: document.getElementById("stat-quorum"), statImpl: document.getElementById("stat-impl"), - statOsSeries: document.getElementById("stat-os-series"), - statOsOps: document.getElementById("stat-os-ops"), - statOsServices: document.getElementById("stat-os-services"), - osSeriesSelect: document.getElementById("os-series-select"), - btnOsSeriesActivate: document.getElementById("btn-os-series-activate"), - osMvService: document.getElementById("os-mv-service"), - osMvVersion: document.getElementById("os-mv-version"), - btnOsMvSet: document.getElementById("btn-os-mv-set"), - btnOsMvClear: document.getElementById("btn-os-mv-clear"), - osPackNote: document.getElementById("os-pack-note"), }; function setText(el, value) { @@ -4229,11 +4372,49 @@ return { pathValues, bodyValues, body }; } + function formatParamDisplayValue(value) { + if (value == null) return ""; + // Objects/arrays must become JSON — String({...}) is "[object Object]". + if (typeof value === "object") { + try { + return JSON.stringify(value); + } catch { + return ""; + } + } + const text = String(value); + // Drop corrupt leftovers from older String(object) coercion. + if (text === "[object Object]" || text === "[object Array]") return ""; + return text; + } + + function coerceBodyFieldValue(raw) { + const text = String(raw ?? "").trim(); + if (!text) return undefined; + if (text === "true" || text === "false") return text === "true"; + if (text === "null") return null; + if (/^-?\d+$/.test(text)) return Number(text); + if (/^-?\d+\.\d+$/.test(text)) return Number(text); + if ( + (text.startsWith("{") && text.endsWith("}")) + || (text.startsWith("[") && text.endsWith("]")) + ) { + try { + return JSON.parse(text); + } catch { + /* keep as string */ + } + } + return text; + } + function storedParamValue(store, name) { if (!store || typeof store !== "object" || !(name in store)) return null; const value = store[name]; if (value == null) return ""; - return String(value); + // Legacy String(object) leftovers — treat as missing so examples apply. + if (value === "[object Object]" || value === "[object Array]") return null; + return formatParamDisplayValue(value); } function resolveParamValue(fieldName, endpointStore, example) { @@ -4241,7 +4422,7 @@ if (endpointValue != null) return endpointValue; const globalValue = storedParamValue(readGlobalParamFields(), fieldName); if (globalValue != null) return globalValue; - return String(example ?? ""); + return formatParamDisplayValue(example); } function captureParamInputs() { @@ -4466,6 +4647,111 @@ return `${escapeHtml(formatCacheAge(cached.savedAt))} · ${escapeHtml(cached.source_version)}`; } + function microversionServicesForMajor(major) { + const info = majorInfo(major); + const fromMajor = info?.microversions; + if (Array.isArray(fromMajor) && fromMajor.length) return fromMajor; + if (runtimeMajorMatches(major) && Array.isArray(state.osPack?.services)) { + return state.osPack.services.filter( + (s) => s.default_microversion || s.max_microversion, + ); + } + return []; + } + + function readStoredMicroversions() { + try { + const raw = JSON.parse(localStorage.getItem(LS_MICROVERSION) || "{}"); + return raw && typeof raw === "object" ? raw : {}; + } catch { + return {}; + } + } + + function writeStoredMicroversion(major, value) { + try { + const store = readStoredMicroversions(); + store[String(major)] = String(value || "default"); + localStorage.setItem(LS_MICROVERSION, JSON.stringify(store)); + } catch { + /* ignore quota / private mode */ + } + } + + function microversionLabel(value) { + const raw = String(value || "default"); + if (raw === "default") return "Pack defaults"; + if (raw === "custom") { + const overrides = state.osPack?.microversion_overrides || {}; + const parts = Object.entries(overrides).map(([svc, ver]) => `${svc} ${ver}`); + return parts.length ? parts.join(", ") : "Custom"; + } + return raw.replace(":", " "); + } + + function updateEnvironmentMicroversion() { + if (!els.statMicroversion) return; + const major = runtimeMajorFromVersion(state.runtimeVersion); + if (major == null) { + setText(els.statMicroversion, "—"); + return; + } + setText(els.statMicroversion, microversionLabel(currentMicroversionSelectValue(major))); + } + + function currentMicroversionSelectValue(major) { + const pending = state.pendingMicroversion?.[major]; + if (pending != null) return pending; + if (runtimeMajorMatches(major)) { + const overrides = state.osPack?.microversion_overrides || {}; + const entries = Object.entries(overrides); + if (entries.length === 1) { + const [service, version] = entries[0]; + return `${service}:${version}`; + } + if (entries.length > 1) return "custom"; + } + const stored = readStoredMicroversions()[String(major)]; + return stored || "default"; + } + + function renderMicroversionOptions(major) { + const services = microversionServicesForMajor(major); + const highlight = ["nova", "cinder", "placement", "manila", "ironic"]; + const sorted = [...services].sort((a, b) => { + const ai = highlight.indexOf(a.name); + const bi = highlight.indexOf(b.name); + if (ai === -1 && bi === -1) return String(a.name).localeCompare(String(b.name)); + if (ai === -1) return 1; + if (bi === -1) return -1; + return ai - bi; + }); + const options = [``]; + const selected = currentMicroversionSelectValue(major); + if (selected === "custom") { + options.push(``); + } + for (const svc of sorted) { + const name = String(svc.name || ""); + if (!name) continue; + const def = svc.default_microversion; + const max = svc.max_microversion; + if (def) { + const value = `${name}:${def}`; + options.push( + ``, + ); + } + if (max && max !== def) { + const value = `${name}:${max}`; + options.push( + ``, + ); + } + } + return options.join(""); + } + function renderCatalogSourceInfo(major = state.major) { if (!els.catalogSourceInfo) return; const info = majorInfo(major); @@ -4481,6 +4767,7 @@ ? `Bundled` : `Remote only`; els.catalogSourceInfo.hidden = false; + const mvLabel = microversionLabel(currentMicroversionSelectValue(major)); els.catalogSourceInfo.innerHTML = `

Catalog source · ${escapeHtml(info.series || ("Series " + info.major))}

@@ -4492,6 +4779,7 @@
Delivery
${bundleLabel}
Source URL
${escapeHtml(info.artifact_url)}
Runtime
${escapeHtml(state.runtimeVersion || "—")}${runtimeMajorMatches(major) ? ' active' : ""}
+
Microversion
${escapeHtml(mvLabel)}
`; updateApplyButton(); @@ -4525,7 +4813,7 @@ : `Apply ${seriesLabel(state.major)} as runtime`; if (els.catalogApplyNote) { els.catalogApplyNote.textContent = - "Apply activates the OpenStack series pack in memory (schema remount). Restart returns to the boot series."; + "Select a series card → pick microversion on the card → Apply as runtime. Restart returns to the boot series."; } } @@ -4534,20 +4822,50 @@ const store = readCatalogStore(); els.catalogOptions.innerHTML = state.majors.map((m) => { const cached = store[String(m.major)]; - const active = m.major === state.major ? "active" : ""; + const selected = m.major === state.major; + const isRuntime = runtimeMajorMatches(m.major); const slug = String(m.latest_version || m.series || m.major) .replace(/^openstack-/i, "") .toLowerCase(); const ops = Number(m.operation_count || 0); - const meta = cached ? formatCacheAge(cached.savedAt) : "remote download"; + const mvLabel = microversionLabel(currentMicroversionSelectValue(m.major)); + const meta = isRuntime + ? (mvLabel === "Pack defaults" ? "runtime" : mvLabel) + : (cached ? formatCacheAge(cached.savedAt) : "bundled"); return ` - `; +
+ +
+ + +
+
`; }).join(""); + const select = els.catalogOptions.querySelector( + `.catalog-mv-select[data-major="${state.major}"]`, + ); + if (select) { + const value = currentMicroversionSelectValue(state.major); + if ([...select.options].some((opt) => opt.value === value)) { + select.value = value; + } else { + select.value = "default"; + } + select.disabled = false; + } + renderCatalogSourceInfo(state.major); } @@ -4559,8 +4877,13 @@ els.catalogDrawer.setAttribute("aria-hidden", open ? "false" : "true"); els.catalogBackdrop.setAttribute("aria-hidden", open ? "false" : "true"); if (open) { - renderCatalogPanel(); refreshCatalogCoverage().catch((error) => console.error(error)); + refreshOpenStackPack() + .then(() => renderCatalogPanel()) + .catch((error) => { + console.error(error); + renderCatalogPanel(); + }); } } @@ -4843,6 +5166,15 @@ if (hasStoredBody) { els.body.value = isEmptyRequestBody(storedBody) ? "" : storedBody; updateBodyHighlight(); + } else if ( + method.body_example + && typeof method.body_example === "object" + && !Array.isArray(method.body_example) + && Object.keys(method.body_example).length > 0 + ) { + // Prefer full OpenStack-shaped body_example over PARAM field stubs. + els.body.value = JSON.stringify(method.body_example, null, 2); + updateBodyHighlight(); } else if (canBuildBody) { syncBodyFromFields({ syncVisibility: false }); } else { @@ -5206,8 +5538,45 @@ function buildDemoDataHtml(data) { const loaded = Boolean(data?.loaded); + const activeSize = data?.size || null; + const profile = loaded + ? (activeSize || String(data?.profile || "").split(":").pop() || "demo") + : "minimal"; + const badgeLabel = loaded ? String(profile) : "Minimal"; + const sizes = [ + { + id: "small", + label: "Small", + chip: "lab", + hosts: 3, + vms: 50, + volumes: 30, + nets: 11, + note: "3 AZ · light nets/SG · 30 volumes · 6 FIPs", + }, + { + id: "large", + label: "Large", + chip: "default", + hosts: 10, + vms: 1000, + volumes: 600, + nets: 21, + note: "3 AZ · fuller topology · 600 volumes · 120 FIPs", + }, + { + id: "big", + label: "Big", + chip: "heavy", + hosts: 20, + vms: 2000, + volumes: 1200, + nets: 36, + note: "3 AZ · dense topology · 1200 volumes · 240 FIPs", + }, + ]; const stats = [ - ["Profile", data?.profile ?? "—", loaded ? "ok" : ""], + ["Profile", profile, loaded ? "ok" : ""], ["Servers", data?.servers ?? "—", ""], ["Hypervisors", data?.hypervisors ?? "—", ""], ["Networks", data?.networks ?? "—", ""], @@ -5224,13 +5593,11 @@

OpenStack demo cloud

-

Load a synthetic full OpenStack cloud into PostgreSQL for client and UI exploration.

- ${loaded ? "Loaded" : "Minimal"} +

Pick a cluster size — inventory (hosts, VMs, volumes, nets, FIPs, LBs, stacks…) scales together.

+ ${escapeHtml(badgeLabel)}

- ~1000 servers · 16 hypervisors · 3 AZs · 5 projects · networks/ports/FIPs · 600 volumes · - Octavia LBs · Heat stacks · Ironic · Swift · Keystone users (admin/ops/developer…). - Password for all users: secret. Loading replaces current OpenStack state. + Password for all users: secret. Loading replaces current OpenStack state and invalidates active tokens.

${stats.map(([label, value, tone]) => ` @@ -5240,8 +5607,29 @@
`).join("")}
-
- +
+ ${sizes.map((s) => { + const active = activeSize === s.id || profile === s.id; + return ` +
+
+

${escapeHtml(s.label)}

+ ${escapeHtml(s.chip)} +
+
+
Hosts
${s.hosts}
+
VMs
${s.vms}
+
Volumes
${s.volumes}
+
Networks
${s.nets}
+
+

${escapeHtml(s.note)}

+ +
`; + }).join("")} +
+
@@ -5280,35 +5668,139 @@ renderDemoState(await res.json()); } - async function loadDemoData() { - const loadBtn = document.getElementById("btn-demo-load"); - if (loadBtn) loadBtn.disabled = true; + async function reissueSessionAfterSeed() { + // Seed truncates os_tokens (+ users). Old Keystone tickets are dead — mint a fresh one + // from the credentials still in the auth form / previous session. + const wasSignedIn = Boolean(state.ticket || state.username || readStoredAuth()?.username); + const stored = readStoredAuth(); + const username = ( + state.username || stored?.username || els.username?.value || "admin" + ).trim() || "admin"; + const project = ( + state.project + || stored?.project + || document.getElementById("os-project")?.value + || "admin" + ).trim() || "admin"; + const password = els.password?.value !== undefined && els.password.value !== "" + ? els.password.value + : "secret"; + + state.ticket = null; + state.csrf = null; + if (els.username) els.username.value = username; + const projectEl = document.getElementById("os-project"); + if (projectEl) projectEl.value = project; + + if (!wasSignedIn) { + setAuth(false); + persistAuth(); + return false; + } + + try { + const res = await fetch("/v3/auth/tokens", { + method: "POST", + headers: { + "Content-Type": "application/json", + Accept: "application/json", + "X-OpenStack-Route-Service": "keystone", + }, + body: JSON.stringify({ + auth: { + identity: { + methods: ["password"], + password: { + user: { + name: username, + domain: { name: "Default" }, + password, + }, + }, + }, + scope: { + project: { name: project, domain: { name: "Default" } }, + }, + }, + }), + }); + const body = await res.json().catch(() => ({})); + const token = + res.headers.get("X-Subject-Token") + || res.headers.get("x-subject-token") + || body?.token?.id + || null; + if (!res.ok || !token) { + throw new Error( + (body.error && (body.error.message || body.error.title)) + || body.detail + || `HTTP ${res.status}`, + ); + } + state.ticket = token; + state.csrf = ""; + state.username = username; + state.project = project; + setAuth(true); + persistAuth(); + return true; + } catch (error) { + console.warn("reissue session after seed", error); + state.ticket = null; + state.csrf = null; + state.username = null; + state.project = null; + setAuth(false); + persistAuth(); + return false; + } + } + + async function loadDemoData(size = "large") { + const loadBtns = document.querySelectorAll("[data-demo-size]"); + loadBtns.forEach((btn) => { btn.disabled = true; }); setLoading(true); try { - const res = await fetch("/ui/api/demo/load", { method: "POST" }); + const res = await fetch("/ui/api/demo/load", { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify({ size }), + }); const body = await res.json().catch(() => ({})); if (!res.ok) { - throw new Error(body.detail || `Load failed: ${res.status}`); + const detail = body.detail; + const msg = typeof detail === "string" + ? detail + : (detail != null ? JSON.stringify(detail) : `Load failed: ${res.status}`); + throw new Error(msg); } renderDemoState(body.summary || {}); - if (state.ticket) syncAuthCookie(state.ticket); - refreshOverview(); - toast("OpenStack demo cloud loaded (~1000 servers)", "ok"); - if (!state.ticket) { + const signedIn = await reissueSessionAfterSeed(); + try { + await refreshOverview(); + } catch (error) { + console.warn("overview refresh after demo load", error); + } + const seed = body.seed || body.summary || {}; + toast( + `Cluster ${seed.size || size} loaded (${seed.hypervisors ?? seed.hosts ?? "?"} hosts · ${seed.servers ?? "?"} VMs)`, + "ok", + ); + if (!signedIn) { toast("Sign in (admin / secret, project admin) to call OpenStack APIs", "warn"); } } finally { - if (loadBtn) loadBtn.disabled = false; + loadBtns.forEach((btn) => { btn.disabled = false; }); setLoading(false); } } async function unloadDemoData() { const confirmed = await showConfirm({ - title: "Remove demo data?", - message: "This wipes simulator DB state (demo data and anything created via the API), then reloads a minimal cluster.", - confirmLabel: "Remove demo data", - cancelLabel: "Keep demo data", + title: "Reset to minimal?", + message: "This wipes current OpenStack state (demo cluster and anything created via the API), then loads the minimal lab cluster.", + confirmLabel: "Reset to minimal", + cancelLabel: "Cancel", tone: "danger", }); if (!confirmed) return; @@ -5319,11 +5811,19 @@ const res = await fetch("/ui/api/demo/unload", { method: "POST" }); const body = await res.json().catch(() => ({})); if (!res.ok) { - throw new Error(body.detail || `Unload failed: ${res.status}`); + throw new Error(body.detail || `Reset failed: ${res.status}`); } renderDemoState(body.summary || {}); - refreshOverview(); - toast("Demo data removed", "info"); + const signedIn = await reissueSessionAfterSeed(); + try { + await refreshOverview(); + } catch (error) { + console.warn("overview refresh after reset", error); + } + toast("Minimal cluster loaded", "info"); + if (!signedIn) { + toast("Sign in again if you need API access", "warn"); + } } finally { if (unloadBtn) unloadBtn.disabled = false; setLoading(false); @@ -5671,17 +6171,21 @@ if (!els.dataPanel || els.dataPanel.dataset.demoBound) return; els.dataPanel.dataset.demoBound = "1"; els.dataPanel.addEventListener("click", (event) => { - const target = event.target.closest("#btn-demo-load, #btn-demo-unload, #btn-demo-refresh"); - if (!target) return; - if (target.id === "btn-demo-load") { - loadDemoData().catch((error) => { + const sizeBtn = event.target.closest("[data-demo-size]"); + if (sizeBtn) { + const size = sizeBtn.getAttribute("data-demo-size") || "large"; + loadDemoData(size).catch((error) => { showError(String(error)); toast("Failed to load demo data", "error"); }); - } else if (target.id === "btn-demo-unload") { + return; + } + const target = event.target.closest("#btn-demo-unload, #btn-demo-refresh"); + if (!target) return; + if (target.id === "btn-demo-unload") { unloadDemoData().catch((error) => { showError(String(error)); - toast("Failed to remove demo data", "error"); + toast("Failed to reset to minimal", "error"); }); } else if (target.id === "btn-demo-refresh") { renderDataPanel().catch((error) => showError(String(error))); @@ -6074,17 +6578,82 @@ }); } + async function commitMicroversionChoice(major, rawValue, { quiet = false } = {}) { + const value = String(rawValue || "default"); + if (value === "custom") return; + if (value === "default") { + const services = microversionServicesForMajor(major); + for (const svc of services) { + const name = String(svc.name || ""); + if (!name) continue; + await fetch("/ui/api/openstack/microversions", { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify({ service: name, version: "default" }), + }); + } + if (!quiet) toast(`Pack defaults · ${seriesLabel(major)}`, "ok"); + return; + } + const [service, version] = value.split(":"); + if (!service || !version) { + if (!quiet) toast("Invalid microversion choice", "warn"); + return; + } + // Keep the card select single-choice: clear other service overrides. + for (const svc of microversionServicesForMajor(major)) { + const name = String(svc.name || ""); + if (!name || name === service) continue; + await fetch("/ui/api/openstack/microversions", { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify({ service: name, version: "default" }), + }); + } + const res = await fetch("/ui/api/openstack/microversions", { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify({ service, version }), + }); + if (!res.ok) { + if (!quiet) toast(`Microversion set failed: ${res.status}`, "error"); + throw new Error(`Microversion set failed: ${res.status}`); + } + if (!quiet) toast(`${service} → ${version}`, "ok"); + } + + async function applyMicroversionChoice(major, rawValue) { + const value = String(rawValue || "default"); + state.pendingMicroversion = { ...(state.pendingMicroversion || {}), [major]: value }; + writeStoredMicroversion(major, value); + updateEnvironmentMicroversion(); + if (!runtimeMajorMatches(major)) { + toast("Microversion saved — Apply as runtime to activate", "debug"); + updateApplyButton(); + return; + } + await commitMicroversionChoice(major, value); + delete state.pendingMicroversion[major]; + await refreshOpenStackPack({ skipMvSync: true }); + updateEnvironmentMicroversion(); + updateApplyButton(); + } + function bindCatalogOptions() { if (!els.catalogOptions || els.catalogOptions.dataset.bound) return; els.catalogOptions.dataset.bound = "1"; els.catalogOptions.addEventListener("click", async (event) => { - const btn = event.target.closest(".catalog-option[data-major]"); + if (event.target.closest(".catalog-mv-select, .catalog-option-mv")) return; + const btn = event.target.closest(".catalog-option-main[data-major], .catalog-option[data-major]"); if (!btn) return; event.preventDefault(); event.stopPropagation(); const major = Number(btn.dataset.major); renderCatalogSourceInfo(major); - if (major === state.major) return; + if (major === state.major) { + renderCatalogPanel(); + return; + } try { await loadCatalog({ major, preserveSelection: false, silent: true }); toggleCatalogDrawer(true); @@ -6092,10 +6661,29 @@ showError(String(error)); } }); + els.catalogOptions.addEventListener("change", async (event) => { + const select = event.target.closest(".catalog-mv-select[data-major]"); + if (!select) return; + event.stopPropagation(); + const major = Number(select.dataset.major); + select.disabled = true; + try { + if (major !== state.major) { + await loadCatalog({ major, preserveSelection: false, silent: true }); + } + await applyMicroversionChoice(major, select.value); + } catch (error) { + showError(String(error)); + } finally { + select.disabled = false; + renderCatalogPanel(); + } + }); els.catalogOptions.addEventListener("mouseover", (event) => { - const btn = event.target.closest(".catalog-option[data-major]"); - if (!btn) return; - renderCatalogSourceInfo(Number(btn.dataset.major)); + if (event.target.closest(".catalog-mv-select, .catalog-option-mv")) return; + const card = event.target.closest(".catalog-option[data-major]"); + if (!card) return; + renderCatalogSourceInfo(Number(card.dataset.major)); }); } @@ -6333,12 +6921,12 @@ } container.innerHTML = fields.map((f) => { const stored = kind === "path" ? state.pathValues[f.name] : state.bodyValues[f.name]; - const val = stored ?? f.example ?? ""; + const val = formatParamDisplayValue(stored ?? f.example ?? ""); const desc = f.description ? `
${f.description}
` : ""; return ` ${f.name}${desc} ${formatParamTypeBadges(f)} - + `; }).join(""); container.querySelectorAll("input[data-field]").forEach((input) => { @@ -6470,8 +7058,9 @@ const parsed = JSON.parse(body || "{}"); if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) { for (const field of bodyFields) { - if (Object.prototype.hasOwnProperty.call(parsed, field.name)) { - state.bodyValues[field.name] = String(parsed[field.name] ?? ""); + const nested = getByPath(parsed, field.name); + if (nested !== undefined && nested !== null) { + state.bodyValues[field.name] = formatParamDisplayValue(nested); } } } @@ -6544,32 +7133,83 @@ return target === "cluster" ? buildClusterUrl(apiPath) : buildEmulatorUrl(apiPath); } + function deepCloneJson(value) { + if (value == null) return value; + return JSON.parse(JSON.stringify(value)); + } + + function getByPath(root, path) { + if (!path) return root; + const parts = String(path).split("."); + let cur = root; + for (const part of parts) { + if (cur == null || typeof cur !== "object") return undefined; + cur = cur[part]; + } + return cur; + } + + function setByPath(root, path, value) { + const parts = String(path).split("."); + let cur = root; + for (let i = 0; i < parts.length - 1; i += 1) { + const part = parts[i]; + const next = parts[i + 1]; + const wantArray = /^\d+$/.test(next); + if (cur[part] == null || typeof cur[part] !== "object") { + cur[part] = wantArray ? [] : {}; + } + cur = cur[part]; + } + cur[parts[parts.length - 1]] = value; + } + + function deleteByPath(root, path) { + const parts = String(path).split("."); + let cur = root; + for (let i = 0; i < parts.length - 1; i += 1) { + if (cur == null || typeof cur !== "object") return; + cur = cur[parts[i]]; + } + if (cur && typeof cur === "object") delete cur[parts[parts.length - 1]]; + } + function syncBodyFromFields({ syncVisibility = true } = {}) { if (!state.method) return; const inputs = [...(els.bodyFields?.querySelectorAll("input[data-field]") || [])]; - const body = {}; + const example = state.method.body_example; + // Start from full OpenStack-shaped example; PARAM edits merge in (oVirt-style). + const root = deepCloneJson( + example && typeof example === "object" && !Array.isArray(example) ? example : {}, + ) || {}; + let touched = false; inputs.forEach((input) => { const name = input.dataset.field; + if (!name) return; const raw = input.value.trim(); - if (!raw) return; - if (raw === "true" || raw === "false") body[name] = raw === "true"; - else if (/^-?\d+$/.test(raw)) body[name] = Number(raw); - else if (/^-?\d+\.\d+$/.test(raw)) body[name] = Number(raw); - else body[name] = raw; - }); - // If PARAM fields are empty, fall back to method body_example so the editor - // updates when switching verbs / endpoints. - if (!Object.keys(body).length) { - const example = state.method.body_example; - if (example && typeof example === "object" && !Array.isArray(example)) { - for (const [key, value] of Object.entries(example)) { - if (value === undefined || value === null || value === "") continue; - body[key] = value; - } + const existing = getByPath(root, name); + // Empty input with no prior leaf (or null action stub) — leave example as-is. + if (!raw && (existing === undefined || existing === null)) return; + touched = true; + if (!raw) { + deleteByPath(root, name); + return; } + const coerced = coerceBodyFieldValue(raw); + if (coerced === undefined) { + deleteByPath(root, name); + return; + } + setByPath(root, name, coerced); + }); + // Empty PARAM inputs → keep full body_example. + if (!touched && example && typeof example === "object" && !Array.isArray(example)) { + els.body.value = Object.keys(example).length ? JSON.stringify(example, null, 2) : ""; + updateBodyHighlight(); + if (syncVisibility) updateBodyPaneVisibility(state.method); + return; } - // Keep empty object out of the editor — do not show `{}`. - els.body.value = Object.keys(body).length ? JSON.stringify(body, null, 2) : ""; + els.body.value = Object.keys(root).length ? JSON.stringify(root, null, 2) : ""; updateBodyHighlight(); if (syncVisibility) { updateBodyPaneVisibility(state.method); @@ -6758,6 +7398,7 @@ const series = majorInfo(major)?.latest_version || ({ 6: "yoga", 7: "antelope", 8: "caracal", 9: "dalmatian" })[major]; + const pendingMv = currentMicroversionSelectValue(major); els.btnContractApply.disabled = true; setLoading(true); try { @@ -6780,14 +7421,20 @@ || (payload.series ? `openstack-${payload.series}` : null) || (series ? `openstack-${series}` : state.runtimeVersion); setText(els.statRuntime, state.runtimeVersion || "—"); + await commitMicroversionChoice(major, pendingMv, { quiet: true }); + writeStoredMicroversion(major, pendingMv); + delete state.pendingMicroversion[major]; await loadVersions(); await loadCatalog({ major, preserveSelection: true, silent: true }); await refreshOverview(); - await refreshOpenStackPack(); - toast(`Runtime switched to ${state.runtimeVersion || seriesLabel(major)}`, "ok"); + await refreshOpenStackPack({ skipMvSync: true }); + updateEnvironmentMicroversion(); + const mvNote = pendingMv && pendingMv !== "default" ? ` · ${microversionLabel(pendingMv)}` : ""; + toast(`Runtime switched to ${state.runtimeVersion || seriesLabel(major)}${mvNote}`, "ok"); } finally { setLoading(false); updateApplyButton(); + renderCatalogPanel(); } } @@ -6805,84 +7452,67 @@ applyMethodDetails(payload); } - async function refreshOpenStackPack() { + async function syncStoredMicroversionToRuntime() { + const major = runtimeMajorFromVersion(state.runtimeVersion); + if (major == null) { + updateEnvironmentMicroversion(); + return; + } + const overrides = state.osPack?.microversion_overrides || {}; + const entries = Object.entries(overrides); + if (entries.length === 1) { + writeStoredMicroversion(major, `${entries[0][0]}:${entries[0][1]}`); + updateEnvironmentMicroversion(); + return; + } + if (entries.length > 1) { + writeStoredMicroversion(major, "custom"); + updateEnvironmentMicroversion(); + return; + } + const stored = readStoredMicroversions()[String(major)]; + if (!stored || stored === "default" || stored === "custom") { + writeStoredMicroversion(major, "default"); + updateEnvironmentMicroversion(); + return; + } + try { + await commitMicroversionChoice(major, stored, { quiet: true }); + await refreshOpenStackPack({ skipMvSync: true }); + } catch (error) { + console.warn("Failed to restore microversion preference:", error); + } + updateEnvironmentMicroversion(); + } + + async function refreshOpenStackPack({ skipMvSync = false } = {}) { try { const res = await fetch("/ui/api/openstack/contracts"); if (!res.ok) return; const data = await res.json(); const active = data.active || {}; - setText(els.statOsSeries, active.series || "—"); - setText(els.statOsOps, String(active.operation_count ?? data.schema_ops_mounted ?? "—")); - setText(els.statOsServices, String(active.service_count ?? "—")); - if (els.osSeriesSelect) { - const available = data.available || []; - els.osSeriesSelect.innerHTML = available.map((s) => - `` - ).join(""); + state.osPack = active; + if (active.series) { + state.runtimeVersion = `openstack-${active.series}`; } - if (els.osMvService) { - const services = (active.services || []).filter((s) => s.max_microversion); - els.osMvService.innerHTML = services.map((s) => - `` - ).join(""); + if (els.statCatalog && active.series) { + setText(els.statCatalog, `${active.series} · ${active.operation_count ?? "?"} ops`); } - if (els.osPackNote) { - els.osPackNote.textContent = `Pack ${active.series || "—"} · ${active.operation_count || 0} operations · checksum ${(active.checksum || "").slice(0, 12)}…`; + if (!skipMvSync) { + await syncStoredMicroversionToRuntime(); + } else { + updateEnvironmentMicroversion(); + } + if (els.catalogDrawer?.classList.contains("open")) { + renderCatalogPanel(); + } else { + renderCatalogSourceInfo(state.major); } } catch (e) { console.error(e); } } - function bindOpenStackPackActions() { - els.btnOsSeriesActivate?.addEventListener("click", async () => { - const series = els.osSeriesSelect?.value; - if (!series) return; - const res = await fetch("/ui/api/openstack/contracts/activate", { - method: "POST", - headers: { "Content-Type": "application/json" }, - body: JSON.stringify({ series }), - }); - const payload = await res.json().catch(() => ({})); - if (!res.ok) { - toast(payload.detail || `Activate failed: ${res.status}`, "error"); - return; - } - toast(`OpenStack pack: ${payload.series} (${payload.operation_count} ops)`, "ok"); - await refreshOpenStackPack(); - }); - els.btnOsMvSet?.addEventListener("click", async () => { - const service = els.osMvService?.value; - const version = els.osMvVersion?.value?.trim(); - if (!service || !version) { - toast("Pick a service and microversion", "warn"); - return; - } - const res = await fetch("/ui/api/openstack/microversions", { - method: "POST", - headers: { "Content-Type": "application/json" }, - body: JSON.stringify({ service, version }), - }); - if (!res.ok) { - toast(`Microversion set failed: ${res.status}`, "error"); - return; - } - toast(`${service} → ${version}`, "ok"); - await refreshOpenStackPack(); - }); - els.btnOsMvClear?.addEventListener("click", async () => { - const service = els.osMvService?.value; - if (!service) return; - await fetch("/ui/api/openstack/microversions", { - method: "POST", - headers: { "Content-Type": "application/json" }, - body: JSON.stringify({ service, version: "default" }), - }); - toast(`${service} microversion reset`, "ok"); - await refreshOpenStackPack(); - }); - } - async function refreshOverview() { try { const v = await fetch("/v3/").then((r) => r.json()).catch(() => null); @@ -6893,6 +7523,7 @@ await refreshClusterStats(); await refreshCatalogCoverage(); await refreshOpenStackPack(); + updateEnvironmentMicroversion(); } catch (e) { console.error(e); } } @@ -7184,7 +7815,6 @@ bindCatalogOptions(); bindHelpNav(); bindDataPanelActions(); - bindOpenStackPackActions(); bindModal(); bindTooltips(); bindEndpointTree(); diff --git a/app/web/openstack_catalog.py b/app/web/openstack_catalog.py index 30d195a..b8d87a3 100644 --- a/app/web/openstack_catalog.py +++ b/app/web/openstack_catalog.py @@ -12,6 +12,7 @@ from app.openstack.contract_loader import ( major_for_series, series_for_major, ) +from app.openstack.request_examples import body_fields_from_example, schema_example _PATH_PARAM = re.compile(r"\{([^{}]+)\}") @@ -87,25 +88,24 @@ def openstack_method_payload( for name in path_params ] body_fields: list[dict[str, Any]] = [] - if op.method in {"POST", "PUT", "PATCH"} and op.kind in { - "collection", - "item", - "action", - "custom", - }: - key = op.item_key or op.collection_key or "resource" - body_fields.append( - { - "name": key, - "type": "object", - "description": "Request body envelope", - "optional": op.kind == "action", - "enum": [], - "example": {key: {"name": "example"}} - if op.kind != "action" - else {op.action_name or "os-start": None}, - } - ) + body_example: dict[str, Any] = {} + if op.method in {"POST", "PUT", "PATCH"}: + if op.request_schema: + example = schema_example(op.request_schema) + body_example = example if isinstance(example, dict) else {} + # PARAM drawer: nested leaves from body_example (oVirt-style). + body_fields = body_fields_from_example(body_example) + else: + # Schemas are required for write ops; keep a minimal + # envelope only as a last-resort safety net. + key = op.item_key or op.collection_key or "resource" + if op.kind == "action": + action = op.action_name or "os-start" + body_example = {action: None} + body_fields = body_fields_from_example(body_example) + else: + body_example = {key: {"name": "example"}} + body_fields = body_fields_from_example(body_example) return { "major": major, "series": series, @@ -138,6 +138,7 @@ def openstack_method_payload( if op.method == "GET" and op.kind in {"collection", "detail"} else [], "body_fields": body_fields, + "body_example": body_example, "returns": {"type": "object"}, "permissions": [], "service": pack.name, @@ -160,6 +161,7 @@ def openstack_series_majors(runtime_version: str | None = None) -> dict[str, obj "artifact_url": f"contracts/openstack/{item['series']}", "bundled": True, "operation_count": item["operation_count"], + "microversions": item.get("microversions") or [], } for item in sorted(series, key=lambda row: row["major"]) ], diff --git a/app/web/routes.py b/app/web/routes.py index de0aa65..92df285 100644 --- a/app/web/routes.py +++ b/app/web/routes.py @@ -291,20 +291,42 @@ async def ui_openstack_microversions(request: Request) -> JSONResponse: @router.post("/ui/api/demo/load", include_in_schema=False) async def ui_demo_load(request: Request) -> JSONResponse: - """Load synthetic OpenStack cloud (~1000 servers + full topology).""" + """Load synthetic OpenStack cloud (size: small | large | big).""" + + from app.openstack.demo_cloud import DEMO_SIZE_DEFAULT, resolve_demo_size + + size = DEMO_SIZE_DEFAULT + try: + payload = await request.json() + except Exception: + payload = {} + if isinstance(payload, dict) and payload.get("size"): + size = str(payload["size"]) + elif request.query_params.get("size"): + size = str(request.query_params.get("size")) + try: + resolve_demo_size(size) + except ValueError as error: + raise HTTPException(status_code=400, detail=str(error)) from error pool = _database_pool(request) try: async with pool.acquire() as connection: async with connection.transaction(): - result = await seed_openstack_demo(connection) + result = await seed_openstack_demo(connection, size=size) summary = await openstack_demo_summary(connection) except Exception as error: raise HTTPException( status_code=500, detail=f"failed to load OpenStack demo cloud: {error}" ) from error return JSONResponse( - {"ok": True, "profile": result["profile"], "summary": summary, "seed": result} + { + "ok": True, + "profile": result["profile"], + "size": result.get("size"), + "summary": summary, + "seed": result, + } ) @@ -323,7 +345,7 @@ async def ui_demo_unload(request: Request) -> JSONResponse: summary = await openstack_demo_summary(connection) except Exception as error: raise HTTPException( - status_code=500, detail=f"failed to remove demo data: {error}" + status_code=500, detail=f"failed to reset to minimal cluster: {error}" ) from error return JSONResponse( {"ok": True, "profile": result.get("profile", "minimal"), "summary": summary} diff --git a/contracts/openstack/antelope/adjutant/api.json b/contracts/openstack/antelope/adjutant/api.json index bc4c31d..f3943b7 100644 --- a/contracts/openstack/antelope/adjutant/api.json +++ b/contracts/openstack/antelope/adjutant/api.json @@ -268,7 +268,7 @@ "collection_key": "status", "create_status": 201, "introduced_in": "yoga", - "item_key": "statu", + "item_key": "status", "kind": "collection", "method": "POST", "operation_id": "status_create", @@ -282,7 +282,7 @@ { "collection_key": "status", "introduced_in": "yoga", - "item_key": "statu", + "item_key": "status", "kind": "item", "method": "GET", "operation_id": "status_show", @@ -296,7 +296,7 @@ { "collection_key": "status", "introduced_in": "yoga", - "item_key": "statu", + "item_key": "status", "kind": "item", "method": "PUT", "operation_id": "status_update", @@ -310,7 +310,7 @@ { "collection_key": "status", "introduced_in": "yoga", - "item_key": "statu", + "item_key": "status", "kind": "item", "method": "PATCH", "operation_id": "status_patch", diff --git a/contracts/openstack/caracal/adjutant/api.json b/contracts/openstack/caracal/adjutant/api.json index bc4c31d..f3943b7 100644 --- a/contracts/openstack/caracal/adjutant/api.json +++ b/contracts/openstack/caracal/adjutant/api.json @@ -268,7 +268,7 @@ "collection_key": "status", "create_status": 201, "introduced_in": "yoga", - "item_key": "statu", + "item_key": "status", "kind": "collection", "method": "POST", "operation_id": "status_create", @@ -282,7 +282,7 @@ { "collection_key": "status", "introduced_in": "yoga", - "item_key": "statu", + "item_key": "status", "kind": "item", "method": "GET", "operation_id": "status_show", @@ -296,7 +296,7 @@ { "collection_key": "status", "introduced_in": "yoga", - "item_key": "statu", + "item_key": "status", "kind": "item", "method": "PUT", "operation_id": "status_update", @@ -310,7 +310,7 @@ { "collection_key": "status", "introduced_in": "yoga", - "item_key": "statu", + "item_key": "status", "kind": "item", "method": "PATCH", "operation_id": "status_patch", diff --git a/contracts/openstack/dalmatian/adjutant/api.json b/contracts/openstack/dalmatian/adjutant/api.json index bc4c31d..f3943b7 100644 --- a/contracts/openstack/dalmatian/adjutant/api.json +++ b/contracts/openstack/dalmatian/adjutant/api.json @@ -268,7 +268,7 @@ "collection_key": "status", "create_status": 201, "introduced_in": "yoga", - "item_key": "statu", + "item_key": "status", "kind": "collection", "method": "POST", "operation_id": "status_create", @@ -282,7 +282,7 @@ { "collection_key": "status", "introduced_in": "yoga", - "item_key": "statu", + "item_key": "status", "kind": "item", "method": "GET", "operation_id": "status_show", @@ -296,7 +296,7 @@ { "collection_key": "status", "introduced_in": "yoga", - "item_key": "statu", + "item_key": "status", "kind": "item", "method": "PUT", "operation_id": "status_update", @@ -310,7 +310,7 @@ { "collection_key": "status", "introduced_in": "yoga", - "item_key": "statu", + "item_key": "status", "kind": "item", "method": "PATCH", "operation_id": "status_patch", diff --git a/contracts/openstack/request_bodies/adjutant.json b/contracts/openstack/request_bodies/adjutant.json new file mode 100644 index 0000000..87e54d2 --- /dev/null +++ b/contracts/openstack/request_bodies/adjutant.json @@ -0,0 +1,2278 @@ +{ + "by_path": { + "PATCH /v1/notifications/{id}": { + "description": "", + "properties": { + "notification": { + "description": "", + "properties": { + "generated_time": { + "description": "", + "example": "2026-01-01T00:00:00Z", + "type": "string" + }, + "hostname": { + "description": "", + "example": "compute-1", + "type": "string" + }, + "payload": { + "description": "", + "properties": { + "event": { + "description": "", + "type": "string" + }, + "instance_uuid": { + "description": "", + "format": "uuid", + "type": "string" + }, + "vir_domain_event": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "source_host_uuid": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "enum": [ + "VM", + "PROCESS", + "COMPUTE_HOST" + ], + "example": "VM", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "notification" + ], + "type": "object" + }, + "PATCH /v1/status/{id}": { + "description": "", + "properties": { + "status": { + "description": "", + "properties": { + "description": { + "description": "", + "type": "string" + }, + "name": { + "description": "", + "example": "example", + "type": "string" + }, + "service": { + "description": "", + "example": "identity", + "type": "string" + }, + "state": { + "description": "", + "example": "up", + "type": "string" + }, + "status": { + "description": "", + "enum": [ + "UP", + "DOWN", + "UNKNOWN" + ], + "example": "UP", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "status" + ], + "type": "object" + }, + "PATCH /v1/tasks/{id}": { + "description": "", + "properties": { + "task": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "task", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "task" + ], + "type": "object" + }, + "PATCH /v1/tokens/{id}": { + "description": "", + "properties": { + "token": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "token", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "token" + ], + "type": "object" + }, + "POST /v1/notifications": { + "description": "", + "properties": { + "notification": { + "description": "", + "properties": { + "generated_time": { + "description": "", + "example": "2026-01-01T00:00:00Z", + "type": "string" + }, + "hostname": { + "description": "", + "example": "compute-1", + "type": "string" + }, + "payload": { + "description": "", + "properties": { + "event": { + "description": "", + "type": "string" + }, + "instance_uuid": { + "description": "", + "format": "uuid", + "type": "string" + }, + "vir_domain_event": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "source_host_uuid": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "enum": [ + "VM", + "PROCESS", + "COMPUTE_HOST" + ], + "example": "VM", + "type": "string" + } + }, + "required": [ + "type", + "hostname", + "generated_time", + "payload" + ], + "type": "object" + } + }, + "required": [ + "notification" + ], + "type": "object" + }, + "POST /v1/status": { + "description": "", + "properties": { + "status": { + "description": "", + "properties": { + "description": { + "description": "", + "type": "string" + }, + "name": { + "description": "", + "example": "example", + "type": "string" + }, + "service": { + "description": "", + "example": "identity", + "type": "string" + }, + "state": { + "description": "", + "example": "up", + "type": "string" + }, + "status": { + "description": "", + "enum": [ + "UP", + "DOWN", + "UNKNOWN" + ], + "example": "UP", + "type": "string" + } + }, + "required": [ + "service", + "status" + ], + "type": "object" + } + }, + "required": [ + "status" + ], + "type": "object" + }, + "POST /v1/tasks": { + "description": "", + "properties": { + "task": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "task", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "task" + ], + "type": "object" + }, + "POST /v1/tokens": { + "description": "", + "properties": { + "token": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "token", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "token" + ], + "type": "object" + }, + "PUT /v1/notifications/{id}": { + "description": "", + "properties": { + "notification": { + "description": "", + "properties": { + "generated_time": { + "description": "", + "example": "2026-01-01T00:00:00Z", + "type": "string" + }, + "hostname": { + "description": "", + "example": "compute-1", + "type": "string" + }, + "payload": { + "description": "", + "properties": { + "event": { + "description": "", + "type": "string" + }, + "instance_uuid": { + "description": "", + "format": "uuid", + "type": "string" + }, + "vir_domain_event": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "source_host_uuid": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "enum": [ + "VM", + "PROCESS", + "COMPUTE_HOST" + ], + "example": "VM", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "notification" + ], + "type": "object" + }, + "PUT /v1/status/{id}": { + "description": "", + "properties": { + "status": { + "description": "", + "properties": { + "description": { + "description": "", + "type": "string" + }, + "name": { + "description": "", + "example": "example", + "type": "string" + }, + "service": { + "description": "", + "example": "identity", + "type": "string" + }, + "state": { + "description": "", + "example": "up", + "type": "string" + }, + "status": { + "description": "", + "enum": [ + "UP", + "DOWN", + "UNKNOWN" + ], + "example": "UP", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "status" + ], + "type": "object" + }, + "PUT /v1/tasks/{id}": { + "description": "", + "properties": { + "task": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "task", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "task" + ], + "type": "object" + }, + "PUT /v1/tokens/{id}": { + "description": "", + "properties": { + "token": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "token", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "token" + ], + "type": "object" + } + }, + "operations": { + "notification_create": { + "description": "", + "properties": { + "notification": { + "description": "", + "properties": { + "generated_time": { + "description": "", + "example": "2026-01-01T00:00:00Z", + "type": "string" + }, + "hostname": { + "description": "", + "example": "compute-1", + "type": "string" + }, + "payload": { + "description": "", + "properties": { + "event": { + "description": "", + "type": "string" + }, + "instance_uuid": { + "description": "", + "format": "uuid", + "type": "string" + }, + "vir_domain_event": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "source_host_uuid": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "enum": [ + "VM", + "PROCESS", + "COMPUTE_HOST" + ], + "example": "VM", + "type": "string" + } + }, + "required": [ + "type", + "hostname", + "generated_time", + "payload" + ], + "type": "object" + } + }, + "required": [ + "notification" + ], + "type": "object" + }, + "notification_patch": { + "description": "", + "properties": { + "notification": { + "description": "", + "properties": { + "generated_time": { + "description": "", + "example": "2026-01-01T00:00:00Z", + "type": "string" + }, + "hostname": { + "description": "", + "example": "compute-1", + "type": "string" + }, + "payload": { + "description": "", + "properties": { + "event": { + "description": "", + "type": "string" + }, + "instance_uuid": { + "description": "", + "format": "uuid", + "type": "string" + }, + "vir_domain_event": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "source_host_uuid": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "enum": [ + "VM", + "PROCESS", + "COMPUTE_HOST" + ], + "example": "VM", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "notification" + ], + "type": "object" + }, + "notification_update": { + "description": "", + "properties": { + "notification": { + "description": "", + "properties": { + "generated_time": { + "description": "", + "example": "2026-01-01T00:00:00Z", + "type": "string" + }, + "hostname": { + "description": "", + "example": "compute-1", + "type": "string" + }, + "payload": { + "description": "", + "properties": { + "event": { + "description": "", + "type": "string" + }, + "instance_uuid": { + "description": "", + "format": "uuid", + "type": "string" + }, + "vir_domain_event": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "source_host_uuid": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "enum": [ + "VM", + "PROCESS", + "COMPUTE_HOST" + ], + "example": "VM", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "notification" + ], + "type": "object" + }, + "status_create": { + "description": "", + "properties": { + "status": { + "description": "", + "properties": { + "description": { + "description": "", + "type": "string" + }, + "name": { + "description": "", + "example": "example", + "type": "string" + }, + "service": { + "description": "", + "example": "identity", + "type": "string" + }, + "state": { + "description": "", + "example": "up", + "type": "string" + }, + "status": { + "description": "", + "enum": [ + "UP", + "DOWN", + "UNKNOWN" + ], + "example": "UP", + "type": "string" + } + }, + "required": [ + "service", + "status" + ], + "type": "object" + } + }, + "required": [ + "status" + ], + "type": "object" + }, + "status_patch": { + "description": "", + "properties": { + "status": { + "description": "", + "properties": { + "description": { + "description": "", + "type": "string" + }, + "name": { + "description": "", + "example": "example", + "type": "string" + }, + "service": { + "description": "", + "example": "identity", + "type": "string" + }, + "state": { + "description": "", + "example": "up", + "type": "string" + }, + "status": { + "description": "", + "enum": [ + "UP", + "DOWN", + "UNKNOWN" + ], + "example": "UP", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "status" + ], + "type": "object" + }, + "status_update": { + "description": "", + "properties": { + "status": { + "description": "", + "properties": { + "description": { + "description": "", + "type": "string" + }, + "name": { + "description": "", + "example": "example", + "type": "string" + }, + "service": { + "description": "", + "example": "identity", + "type": "string" + }, + "state": { + "description": "", + "example": "up", + "type": "string" + }, + "status": { + "description": "", + "enum": [ + "UP", + "DOWN", + "UNKNOWN" + ], + "example": "UP", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "status" + ], + "type": "object" + }, + "task_create": { + "description": "", + "properties": { + "task": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "task", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "task" + ], + "type": "object" + }, + "task_patch": { + "description": "", + "properties": { + "task": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "task", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "task" + ], + "type": "object" + }, + "task_update": { + "description": "", + "properties": { + "task": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "task", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "task" + ], + "type": "object" + }, + "token_create": { + "description": "", + "properties": { + "token": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "token", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "token" + ], + "type": "object" + }, + "token_patch": { + "description": "", + "properties": { + "token": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "token", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "token" + ], + "type": "object" + }, + "token_update": { + "description": "", + "properties": { + "token": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "token", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "token" + ], + "type": "object" + } + }, + "service": "adjutant", + "source": "generated-from-api-ref-catalog" +} diff --git a/contracts/openstack/request_bodies/aodh.json b/contracts/openstack/request_bodies/aodh.json new file mode 100644 index 0000000..ab6af3a --- /dev/null +++ b/contracts/openstack/request_bodies/aodh.json @@ -0,0 +1,2356 @@ +{ + "by_path": { + "PATCH /v2/alarms/{alarm_id}/history/{id}": { + "description": "", + "properties": { + "alarm_history": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "alarm_history", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "alarm_history" + ], + "type": "object" + }, + "PATCH /v2/alarms/{id}": { + "description": "", + "properties": { + "alarm": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "Enabled", + "type": "boolean" + }, + "insufficient_data_actions": { + "description": "", + "items": { + "description": "", + "format": "uri", + "type": "string" + }, + "type": "array" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "ok_actions": { + "description": "", + "items": { + "description": "", + "format": "uri", + "type": "string" + }, + "type": "array" + }, + "repeat_actions": { + "default": true, + "description": "Repeat actions", + "type": "boolean" + }, + "severity_actions": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "threshold_rule": { + "description": "", + "properties": { + "comparison_operator": { + "description": "", + "enum": [ + "gt", + "lt", + "ge", + "le", + "eq", + "ne" + ], + "example": "gt", + "type": "string" + }, + "evaluation_periods": { + "description": "", + "example": 1, + "type": "integer" + }, + "meter_name": { + "description": "", + "example": "cpu_util", + "type": "string" + }, + "period": { + "description": "", + "example": 60, + "type": "integer" + }, + "query": { + "description": "", + "items": { + "description": "", + "properties": { + "field": { + "description": "", + "type": "string" + }, + "op": { + "description": "", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "statistic": { + "description": "", + "enum": [ + "avg", + "max", + "min", + "sum", + "count" + ], + "example": "avg", + "type": "string" + }, + "threshold": { + "description": "", + "example": 80, + "type": "integer" + } + }, + "type": "object" + }, + "type": { + "description": "Alarm type", + "enum": [ + "threshold", + "event", + "gnocchi_resources_threshold" + ], + "example": "threshold", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "alarm" + ], + "type": "object" + }, + "PATCH /v2/quotas/{id}": { + "description": "", + "properties": { + "quota": { + "description": "", + "properties": { + "cores": { + "description": "", + "example": 20, + "type": "integer" + }, + "fixed_ips": { + "description": "", + "example": -1, + "type": "integer" + }, + "floating_ips": { + "description": "", + "example": 10, + "type": "integer" + }, + "force": { + "default": false, + "description": "", + "type": "boolean" + }, + "gigabytes": { + "description": "", + "example": 1000, + "type": "integer" + }, + "injected_file_content_bytes": { + "description": "", + "example": 10240, + "type": "integer" + }, + "injected_files": { + "description": "", + "example": 5, + "type": "integer" + }, + "instances": { + "description": "", + "example": 10, + "type": "integer" + }, + "key_pairs": { + "description": "", + "example": 100, + "type": "integer" + }, + "metadata_items": { + "description": "", + "example": 128, + "type": "integer" + }, + "networks": { + "description": "", + "example": 100, + "type": "integer" + }, + "ports": { + "description": "", + "example": 500, + "type": "integer" + }, + "ram": { + "description": "", + "example": 51200, + "type": "integer" + }, + "routers": { + "description": "", + "example": 10, + "type": "integer" + }, + "security_group_rules": { + "description": "", + "example": 20, + "type": "integer" + }, + "security_groups": { + "description": "", + "example": 10, + "type": "integer" + }, + "snapshots": { + "description": "", + "example": 10, + "type": "integer" + }, + "subnets": { + "description": "", + "example": 100, + "type": "integer" + }, + "volumes": { + "description": "", + "example": 10, + "type": "integer" + } + }, + "type": "object" + } + }, + "required": [ + "quota" + ], + "type": "object" + }, + "POST /v2/alarms": { + "description": "", + "properties": { + "alarm": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "Enabled", + "type": "boolean" + }, + "insufficient_data_actions": { + "description": "", + "items": { + "description": "", + "format": "uri", + "type": "string" + }, + "type": "array" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "ok_actions": { + "description": "", + "items": { + "description": "", + "format": "uri", + "type": "string" + }, + "type": "array" + }, + "repeat_actions": { + "default": true, + "description": "Repeat actions", + "type": "boolean" + }, + "severity_actions": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "threshold_rule": { + "description": "", + "properties": { + "comparison_operator": { + "description": "", + "enum": [ + "gt", + "lt", + "ge", + "le", + "eq", + "ne" + ], + "example": "gt", + "type": "string" + }, + "evaluation_periods": { + "description": "", + "example": 1, + "type": "integer" + }, + "meter_name": { + "description": "", + "example": "cpu_util", + "type": "string" + }, + "period": { + "description": "", + "example": 60, + "type": "integer" + }, + "query": { + "description": "", + "items": { + "description": "", + "properties": { + "field": { + "description": "", + "type": "string" + }, + "op": { + "description": "", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "statistic": { + "description": "", + "enum": [ + "avg", + "max", + "min", + "sum", + "count" + ], + "example": "avg", + "type": "string" + }, + "threshold": { + "description": "", + "example": 80, + "type": "integer" + } + }, + "type": "object" + }, + "type": { + "description": "Alarm type", + "enum": [ + "threshold", + "event", + "gnocchi_resources_threshold" + ], + "example": "threshold", + "type": "string" + } + }, + "required": [ + "name", + "type" + ], + "type": "object" + } + }, + "required": [ + "alarm" + ], + "type": "object" + }, + "POST /v2/alarms/{alarm_id}/history": { + "description": "", + "properties": { + "alarm_history": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "alarm_history", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "alarm_history" + ], + "type": "object" + }, + "POST /v2/quotas": { + "description": "", + "properties": { + "quota": { + "description": "", + "properties": { + "cores": { + "description": "", + "example": 20, + "type": "integer" + }, + "fixed_ips": { + "description": "", + "example": -1, + "type": "integer" + }, + "floating_ips": { + "description": "", + "example": 10, + "type": "integer" + }, + "force": { + "default": false, + "description": "", + "type": "boolean" + }, + "gigabytes": { + "description": "", + "example": 1000, + "type": "integer" + }, + "injected_file_content_bytes": { + "description": "", + "example": 10240, + "type": "integer" + }, + "injected_files": { + "description": "", + "example": 5, + "type": "integer" + }, + "instances": { + "description": "", + "example": 10, + "type": "integer" + }, + "key_pairs": { + "description": "", + "example": 100, + "type": "integer" + }, + "metadata_items": { + "description": "", + "example": 128, + "type": "integer" + }, + "networks": { + "description": "", + "example": 100, + "type": "integer" + }, + "ports": { + "description": "", + "example": 500, + "type": "integer" + }, + "ram": { + "description": "", + "example": 51200, + "type": "integer" + }, + "routers": { + "description": "", + "example": 10, + "type": "integer" + }, + "security_group_rules": { + "description": "", + "example": 20, + "type": "integer" + }, + "security_groups": { + "description": "", + "example": 10, + "type": "integer" + }, + "snapshots": { + "description": "", + "example": 10, + "type": "integer" + }, + "subnets": { + "description": "", + "example": 100, + "type": "integer" + }, + "volumes": { + "description": "", + "example": 10, + "type": "integer" + } + }, + "type": "object" + } + }, + "required": [ + "quota" + ], + "type": "object" + }, + "PUT /v2/alarms/{alarm_id}/history/{id}": { + "description": "", + "properties": { + "alarm_history": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "alarm_history", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "alarm_history" + ], + "type": "object" + }, + "PUT /v2/alarms/{id}": { + "description": "", + "properties": { + "alarm": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "Enabled", + "type": "boolean" + }, + "insufficient_data_actions": { + "description": "", + "items": { + "description": "", + "format": "uri", + "type": "string" + }, + "type": "array" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "ok_actions": { + "description": "", + "items": { + "description": "", + "format": "uri", + "type": "string" + }, + "type": "array" + }, + "repeat_actions": { + "default": true, + "description": "Repeat actions", + "type": "boolean" + }, + "severity_actions": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "threshold_rule": { + "description": "", + "properties": { + "comparison_operator": { + "description": "", + "enum": [ + "gt", + "lt", + "ge", + "le", + "eq", + "ne" + ], + "example": "gt", + "type": "string" + }, + "evaluation_periods": { + "description": "", + "example": 1, + "type": "integer" + }, + "meter_name": { + "description": "", + "example": "cpu_util", + "type": "string" + }, + "period": { + "description": "", + "example": 60, + "type": "integer" + }, + "query": { + "description": "", + "items": { + "description": "", + "properties": { + "field": { + "description": "", + "type": "string" + }, + "op": { + "description": "", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "statistic": { + "description": "", + "enum": [ + "avg", + "max", + "min", + "sum", + "count" + ], + "example": "avg", + "type": "string" + }, + "threshold": { + "description": "", + "example": 80, + "type": "integer" + } + }, + "type": "object" + }, + "type": { + "description": "Alarm type", + "enum": [ + "threshold", + "event", + "gnocchi_resources_threshold" + ], + "example": "threshold", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "alarm" + ], + "type": "object" + }, + "PUT /v2/quotas/{id}": { + "description": "", + "properties": { + "quota": { + "description": "", + "properties": { + "cores": { + "description": "", + "example": 20, + "type": "integer" + }, + "fixed_ips": { + "description": "", + "example": -1, + "type": "integer" + }, + "floating_ips": { + "description": "", + "example": 10, + "type": "integer" + }, + "force": { + "default": false, + "description": "", + "type": "boolean" + }, + "gigabytes": { + "description": "", + "example": 1000, + "type": "integer" + }, + "injected_file_content_bytes": { + "description": "", + "example": 10240, + "type": "integer" + }, + "injected_files": { + "description": "", + "example": 5, + "type": "integer" + }, + "instances": { + "description": "", + "example": 10, + "type": "integer" + }, + "key_pairs": { + "description": "", + "example": 100, + "type": "integer" + }, + "metadata_items": { + "description": "", + "example": 128, + "type": "integer" + }, + "networks": { + "description": "", + "example": 100, + "type": "integer" + }, + "ports": { + "description": "", + "example": 500, + "type": "integer" + }, + "ram": { + "description": "", + "example": 51200, + "type": "integer" + }, + "routers": { + "description": "", + "example": 10, + "type": "integer" + }, + "security_group_rules": { + "description": "", + "example": 20, + "type": "integer" + }, + "security_groups": { + "description": "", + "example": 10, + "type": "integer" + }, + "snapshots": { + "description": "", + "example": 10, + "type": "integer" + }, + "subnets": { + "description": "", + "example": 100, + "type": "integer" + }, + "volumes": { + "description": "", + "example": 10, + "type": "integer" + } + }, + "type": "object" + } + }, + "required": [ + "quota" + ], + "type": "object" + } + }, + "operations": { + "alarm_create": { + "description": "", + "properties": { + "alarm": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "Enabled", + "type": "boolean" + }, + "insufficient_data_actions": { + "description": "", + "items": { + "description": "", + "format": "uri", + "type": "string" + }, + "type": "array" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "ok_actions": { + "description": "", + "items": { + "description": "", + "format": "uri", + "type": "string" + }, + "type": "array" + }, + "repeat_actions": { + "default": true, + "description": "Repeat actions", + "type": "boolean" + }, + "severity_actions": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "threshold_rule": { + "description": "", + "properties": { + "comparison_operator": { + "description": "", + "enum": [ + "gt", + "lt", + "ge", + "le", + "eq", + "ne" + ], + "example": "gt", + "type": "string" + }, + "evaluation_periods": { + "description": "", + "example": 1, + "type": "integer" + }, + "meter_name": { + "description": "", + "example": "cpu_util", + "type": "string" + }, + "period": { + "description": "", + "example": 60, + "type": "integer" + }, + "query": { + "description": "", + "items": { + "description": "", + "properties": { + "field": { + "description": "", + "type": "string" + }, + "op": { + "description": "", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "statistic": { + "description": "", + "enum": [ + "avg", + "max", + "min", + "sum", + "count" + ], + "example": "avg", + "type": "string" + }, + "threshold": { + "description": "", + "example": 80, + "type": "integer" + } + }, + "type": "object" + }, + "type": { + "description": "Alarm type", + "enum": [ + "threshold", + "event", + "gnocchi_resources_threshold" + ], + "example": "threshold", + "type": "string" + } + }, + "required": [ + "name", + "type" + ], + "type": "object" + } + }, + "required": [ + "alarm" + ], + "type": "object" + }, + "alarm_history_create": { + "description": "", + "properties": { + "alarm_history": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "alarm_history", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "alarm_history" + ], + "type": "object" + }, + "alarm_history_patch": { + "description": "", + "properties": { + "alarm_history": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "alarm_history", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "alarm_history" + ], + "type": "object" + }, + "alarm_history_update": { + "description": "", + "properties": { + "alarm_history": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "alarm_history", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "alarm_history" + ], + "type": "object" + }, + "alarm_patch": { + "description": "", + "properties": { + "alarm": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "Enabled", + "type": "boolean" + }, + "insufficient_data_actions": { + "description": "", + "items": { + "description": "", + "format": "uri", + "type": "string" + }, + "type": "array" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "ok_actions": { + "description": "", + "items": { + "description": "", + "format": "uri", + "type": "string" + }, + "type": "array" + }, + "repeat_actions": { + "default": true, + "description": "Repeat actions", + "type": "boolean" + }, + "severity_actions": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "threshold_rule": { + "description": "", + "properties": { + "comparison_operator": { + "description": "", + "enum": [ + "gt", + "lt", + "ge", + "le", + "eq", + "ne" + ], + "example": "gt", + "type": "string" + }, + "evaluation_periods": { + "description": "", + "example": 1, + "type": "integer" + }, + "meter_name": { + "description": "", + "example": "cpu_util", + "type": "string" + }, + "period": { + "description": "", + "example": 60, + "type": "integer" + }, + "query": { + "description": "", + "items": { + "description": "", + "properties": { + "field": { + "description": "", + "type": "string" + }, + "op": { + "description": "", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "statistic": { + "description": "", + "enum": [ + "avg", + "max", + "min", + "sum", + "count" + ], + "example": "avg", + "type": "string" + }, + "threshold": { + "description": "", + "example": 80, + "type": "integer" + } + }, + "type": "object" + }, + "type": { + "description": "Alarm type", + "enum": [ + "threshold", + "event", + "gnocchi_resources_threshold" + ], + "example": "threshold", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "alarm" + ], + "type": "object" + }, + "alarm_update": { + "description": "", + "properties": { + "alarm": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "Enabled", + "type": "boolean" + }, + "insufficient_data_actions": { + "description": "", + "items": { + "description": "", + "format": "uri", + "type": "string" + }, + "type": "array" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "ok_actions": { + "description": "", + "items": { + "description": "", + "format": "uri", + "type": "string" + }, + "type": "array" + }, + "repeat_actions": { + "default": true, + "description": "Repeat actions", + "type": "boolean" + }, + "severity_actions": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "threshold_rule": { + "description": "", + "properties": { + "comparison_operator": { + "description": "", + "enum": [ + "gt", + "lt", + "ge", + "le", + "eq", + "ne" + ], + "example": "gt", + "type": "string" + }, + "evaluation_periods": { + "description": "", + "example": 1, + "type": "integer" + }, + "meter_name": { + "description": "", + "example": "cpu_util", + "type": "string" + }, + "period": { + "description": "", + "example": 60, + "type": "integer" + }, + "query": { + "description": "", + "items": { + "description": "", + "properties": { + "field": { + "description": "", + "type": "string" + }, + "op": { + "description": "", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "statistic": { + "description": "", + "enum": [ + "avg", + "max", + "min", + "sum", + "count" + ], + "example": "avg", + "type": "string" + }, + "threshold": { + "description": "", + "example": 80, + "type": "integer" + } + }, + "type": "object" + }, + "type": { + "description": "Alarm type", + "enum": [ + "threshold", + "event", + "gnocchi_resources_threshold" + ], + "example": "threshold", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "alarm" + ], + "type": "object" + }, + "quota_create": { + "description": "", + "properties": { + "quota": { + "description": "", + "properties": { + "cores": { + "description": "", + "example": 20, + "type": "integer" + }, + "fixed_ips": { + "description": "", + "example": -1, + "type": "integer" + }, + "floating_ips": { + "description": "", + "example": 10, + "type": "integer" + }, + "force": { + "default": false, + "description": "", + "type": "boolean" + }, + "gigabytes": { + "description": "", + "example": 1000, + "type": "integer" + }, + "injected_file_content_bytes": { + "description": "", + "example": 10240, + "type": "integer" + }, + "injected_files": { + "description": "", + "example": 5, + "type": "integer" + }, + "instances": { + "description": "", + "example": 10, + "type": "integer" + }, + "key_pairs": { + "description": "", + "example": 100, + "type": "integer" + }, + "metadata_items": { + "description": "", + "example": 128, + "type": "integer" + }, + "networks": { + "description": "", + "example": 100, + "type": "integer" + }, + "ports": { + "description": "", + "example": 500, + "type": "integer" + }, + "ram": { + "description": "", + "example": 51200, + "type": "integer" + }, + "routers": { + "description": "", + "example": 10, + "type": "integer" + }, + "security_group_rules": { + "description": "", + "example": 20, + "type": "integer" + }, + "security_groups": { + "description": "", + "example": 10, + "type": "integer" + }, + "snapshots": { + "description": "", + "example": 10, + "type": "integer" + }, + "subnets": { + "description": "", + "example": 100, + "type": "integer" + }, + "volumes": { + "description": "", + "example": 10, + "type": "integer" + } + }, + "type": "object" + } + }, + "required": [ + "quota" + ], + "type": "object" + }, + "quota_patch": { + "description": "", + "properties": { + "quota": { + "description": "", + "properties": { + "cores": { + "description": "", + "example": 20, + "type": "integer" + }, + "fixed_ips": { + "description": "", + "example": -1, + "type": "integer" + }, + "floating_ips": { + "description": "", + "example": 10, + "type": "integer" + }, + "force": { + "default": false, + "description": "", + "type": "boolean" + }, + "gigabytes": { + "description": "", + "example": 1000, + "type": "integer" + }, + "injected_file_content_bytes": { + "description": "", + "example": 10240, + "type": "integer" + }, + "injected_files": { + "description": "", + "example": 5, + "type": "integer" + }, + "instances": { + "description": "", + "example": 10, + "type": "integer" + }, + "key_pairs": { + "description": "", + "example": 100, + "type": "integer" + }, + "metadata_items": { + "description": "", + "example": 128, + "type": "integer" + }, + "networks": { + "description": "", + "example": 100, + "type": "integer" + }, + "ports": { + "description": "", + "example": 500, + "type": "integer" + }, + "ram": { + "description": "", + "example": 51200, + "type": "integer" + }, + "routers": { + "description": "", + "example": 10, + "type": "integer" + }, + "security_group_rules": { + "description": "", + "example": 20, + "type": "integer" + }, + "security_groups": { + "description": "", + "example": 10, + "type": "integer" + }, + "snapshots": { + "description": "", + "example": 10, + "type": "integer" + }, + "subnets": { + "description": "", + "example": 100, + "type": "integer" + }, + "volumes": { + "description": "", + "example": 10, + "type": "integer" + } + }, + "type": "object" + } + }, + "required": [ + "quota" + ], + "type": "object" + }, + "quota_update": { + "description": "", + "properties": { + "quota": { + "description": "", + "properties": { + "cores": { + "description": "", + "example": 20, + "type": "integer" + }, + "fixed_ips": { + "description": "", + "example": -1, + "type": "integer" + }, + "floating_ips": { + "description": "", + "example": 10, + "type": "integer" + }, + "force": { + "default": false, + "description": "", + "type": "boolean" + }, + "gigabytes": { + "description": "", + "example": 1000, + "type": "integer" + }, + "injected_file_content_bytes": { + "description": "", + "example": 10240, + "type": "integer" + }, + "injected_files": { + "description": "", + "example": 5, + "type": "integer" + }, + "instances": { + "description": "", + "example": 10, + "type": "integer" + }, + "key_pairs": { + "description": "", + "example": 100, + "type": "integer" + }, + "metadata_items": { + "description": "", + "example": 128, + "type": "integer" + }, + "networks": { + "description": "", + "example": 100, + "type": "integer" + }, + "ports": { + "description": "", + "example": 500, + "type": "integer" + }, + "ram": { + "description": "", + "example": 51200, + "type": "integer" + }, + "routers": { + "description": "", + "example": 10, + "type": "integer" + }, + "security_group_rules": { + "description": "", + "example": 20, + "type": "integer" + }, + "security_groups": { + "description": "", + "example": 10, + "type": "integer" + }, + "snapshots": { + "description": "", + "example": 10, + "type": "integer" + }, + "subnets": { + "description": "", + "example": 100, + "type": "integer" + }, + "volumes": { + "description": "", + "example": 10, + "type": "integer" + } + }, + "type": "object" + } + }, + "required": [ + "quota" + ], + "type": "object" + } + }, + "service": "aodh", + "source": "generated-from-api-ref-catalog" +} diff --git a/contracts/openstack/request_bodies/barbican.json b/contracts/openstack/request_bodies/barbican.json new file mode 100644 index 0000000..f123636 --- /dev/null +++ b/contracts/openstack/request_bodies/barbican.json @@ -0,0 +1,2618 @@ +{ + "by_path": { + "PATCH /v1/containers/{id}": { + "description": "", + "properties": { + "container": { + "description": "", + "properties": { + "command": { + "description": "Command", + "type": "string" + }, + "cpu": { + "description": "", + "example": 1, + "type": "integer" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "environment": { + "description": "", + "properties": {}, + "type": "object" + }, + "image": { + "description": "Container image", + "example": "cirros", + "type": "string" + }, + "interactive": { + "default": false, + "description": "", + "type": "boolean" + }, + "memory": { + "description": "Memory MiB", + "example": 512, + "type": "integer" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "nets": { + "description": "", + "items": { + "description": "", + "properties": { + "network": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "restart_policy": { + "description": "", + "properties": { + "MaximumRetryCount": { + "description": "", + "example": 0, + "type": "integer" + }, + "Name": { + "description": "", + "example": "no", + "type": "string" + } + }, + "type": "object" + }, + "tty": { + "default": false, + "description": "", + "type": "boolean" + }, + "workdir": { + "description": "", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "container" + ], + "type": "object" + }, + "PATCH /v1/orders/{id}": { + "description": "", + "properties": { + "order": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "order", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "order" + ], + "type": "object" + }, + "PATCH /v1/secret-stores/{id}": { + "description": "", + "properties": { + "secret_store": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "secret_store", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "secret_store" + ], + "type": "object" + }, + "PATCH /v1/secrets/{id}": { + "description": "", + "properties": { + "secret": { + "description": "", + "properties": { + "algorithm": { + "description": "Algorithm", + "type": "string" + }, + "bit_length": { + "description": "Bit length", + "type": "integer" + }, + "expiration": { + "description": "Expiration timestamp", + "type": "string" + }, + "mode": { + "description": "Mode", + "type": "string" + }, + "name": { + "description": "Secret name", + "example": "example", + "type": "string" + }, + "payload": { + "description": "Secret payload", + "example": "c2VjcmV0", + "type": "string" + }, + "payload_content_encoding": { + "description": "Encoding", + "enum": [ + "base64" + ], + "example": "base64", + "type": "string" + }, + "payload_content_type": { + "description": "Content type", + "example": "text/plain", + "type": "string" + }, + "secret_type": { + "description": "Secret type", + "enum": [ + "opaque", + "symmetric", + "public", + "private", + "certificate", + "passphrase" + ], + "example": "opaque", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "secret" + ], + "type": "object" + }, + "POST /v1/containers": { + "description": "", + "properties": { + "container": { + "description": "", + "properties": { + "command": { + "description": "Command", + "type": "string" + }, + "cpu": { + "description": "", + "example": 1, + "type": "integer" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "environment": { + "description": "", + "properties": {}, + "type": "object" + }, + "image": { + "description": "Container image", + "example": "cirros", + "type": "string" + }, + "interactive": { + "default": false, + "description": "", + "type": "boolean" + }, + "memory": { + "description": "Memory MiB", + "example": 512, + "type": "integer" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "nets": { + "description": "", + "items": { + "description": "", + "properties": { + "network": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "restart_policy": { + "description": "", + "properties": { + "MaximumRetryCount": { + "description": "", + "example": 0, + "type": "integer" + }, + "Name": { + "description": "", + "example": "no", + "type": "string" + } + }, + "type": "object" + }, + "tty": { + "default": false, + "description": "", + "type": "boolean" + }, + "workdir": { + "description": "", + "type": "string" + } + }, + "required": [ + "image" + ], + "type": "object" + } + }, + "required": [ + "container" + ], + "type": "object" + }, + "POST /v1/orders": { + "description": "", + "properties": { + "order": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "order", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "order" + ], + "type": "object" + }, + "POST /v1/secret-stores": { + "description": "", + "properties": { + "secret_store": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "secret_store", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "secret_store" + ], + "type": "object" + }, + "POST /v1/secrets": { + "description": "", + "properties": { + "secret": { + "description": "", + "properties": { + "algorithm": { + "description": "Algorithm", + "type": "string" + }, + "bit_length": { + "description": "Bit length", + "type": "integer" + }, + "expiration": { + "description": "Expiration timestamp", + "type": "string" + }, + "mode": { + "description": "Mode", + "type": "string" + }, + "name": { + "description": "Secret name", + "example": "example", + "type": "string" + }, + "payload": { + "description": "Secret payload", + "example": "c2VjcmV0", + "type": "string" + }, + "payload_content_encoding": { + "description": "Encoding", + "enum": [ + "base64" + ], + "example": "base64", + "type": "string" + }, + "payload_content_type": { + "description": "Content type", + "example": "text/plain", + "type": "string" + }, + "secret_type": { + "description": "Secret type", + "enum": [ + "opaque", + "symmetric", + "public", + "private", + "certificate", + "passphrase" + ], + "example": "opaque", + "type": "string" + } + }, + "required": [ + "payload" + ], + "type": "object" + } + }, + "required": [ + "secret" + ], + "type": "object" + }, + "PUT /v1/containers/{id}": { + "description": "", + "properties": { + "container": { + "description": "", + "properties": { + "command": { + "description": "Command", + "type": "string" + }, + "cpu": { + "description": "", + "example": 1, + "type": "integer" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "environment": { + "description": "", + "properties": {}, + "type": "object" + }, + "image": { + "description": "Container image", + "example": "cirros", + "type": "string" + }, + "interactive": { + "default": false, + "description": "", + "type": "boolean" + }, + "memory": { + "description": "Memory MiB", + "example": 512, + "type": "integer" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "nets": { + "description": "", + "items": { + "description": "", + "properties": { + "network": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "restart_policy": { + "description": "", + "properties": { + "MaximumRetryCount": { + "description": "", + "example": 0, + "type": "integer" + }, + "Name": { + "description": "", + "example": "no", + "type": "string" + } + }, + "type": "object" + }, + "tty": { + "default": false, + "description": "", + "type": "boolean" + }, + "workdir": { + "description": "", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "container" + ], + "type": "object" + }, + "PUT /v1/orders/{id}": { + "description": "", + "properties": { + "order": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "order", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "order" + ], + "type": "object" + }, + "PUT /v1/secret-stores/{id}": { + "description": "", + "properties": { + "secret_store": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "secret_store", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "secret_store" + ], + "type": "object" + }, + "PUT /v1/secrets/{id}": { + "description": "", + "properties": { + "secret": { + "description": "", + "properties": { + "algorithm": { + "description": "Algorithm", + "type": "string" + }, + "bit_length": { + "description": "Bit length", + "type": "integer" + }, + "expiration": { + "description": "Expiration timestamp", + "type": "string" + }, + "mode": { + "description": "Mode", + "type": "string" + }, + "name": { + "description": "Secret name", + "example": "example", + "type": "string" + }, + "payload": { + "description": "Secret payload", + "example": "c2VjcmV0", + "type": "string" + }, + "payload_content_encoding": { + "description": "Encoding", + "enum": [ + "base64" + ], + "example": "base64", + "type": "string" + }, + "payload_content_type": { + "description": "Content type", + "example": "text/plain", + "type": "string" + }, + "secret_type": { + "description": "Secret type", + "enum": [ + "opaque", + "symmetric", + "public", + "private", + "certificate", + "passphrase" + ], + "example": "opaque", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "secret" + ], + "type": "object" + } + }, + "operations": { + "container_create": { + "description": "", + "properties": { + "container": { + "description": "", + "properties": { + "command": { + "description": "Command", + "type": "string" + }, + "cpu": { + "description": "", + "example": 1, + "type": "integer" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "environment": { + "description": "", + "properties": {}, + "type": "object" + }, + "image": { + "description": "Container image", + "example": "cirros", + "type": "string" + }, + "interactive": { + "default": false, + "description": "", + "type": "boolean" + }, + "memory": { + "description": "Memory MiB", + "example": 512, + "type": "integer" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "nets": { + "description": "", + "items": { + "description": "", + "properties": { + "network": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "restart_policy": { + "description": "", + "properties": { + "MaximumRetryCount": { + "description": "", + "example": 0, + "type": "integer" + }, + "Name": { + "description": "", + "example": "no", + "type": "string" + } + }, + "type": "object" + }, + "tty": { + "default": false, + "description": "", + "type": "boolean" + }, + "workdir": { + "description": "", + "type": "string" + } + }, + "required": [ + "image" + ], + "type": "object" + } + }, + "required": [ + "container" + ], + "type": "object" + }, + "container_patch": { + "description": "", + "properties": { + "container": { + "description": "", + "properties": { + "command": { + "description": "Command", + "type": "string" + }, + "cpu": { + "description": "", + "example": 1, + "type": "integer" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "environment": { + "description": "", + "properties": {}, + "type": "object" + }, + "image": { + "description": "Container image", + "example": "cirros", + "type": "string" + }, + "interactive": { + "default": false, + "description": "", + "type": "boolean" + }, + "memory": { + "description": "Memory MiB", + "example": 512, + "type": "integer" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "nets": { + "description": "", + "items": { + "description": "", + "properties": { + "network": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "restart_policy": { + "description": "", + "properties": { + "MaximumRetryCount": { + "description": "", + "example": 0, + "type": "integer" + }, + "Name": { + "description": "", + "example": "no", + "type": "string" + } + }, + "type": "object" + }, + "tty": { + "default": false, + "description": "", + "type": "boolean" + }, + "workdir": { + "description": "", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "container" + ], + "type": "object" + }, + "container_update": { + "description": "", + "properties": { + "container": { + "description": "", + "properties": { + "command": { + "description": "Command", + "type": "string" + }, + "cpu": { + "description": "", + "example": 1, + "type": "integer" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "environment": { + "description": "", + "properties": {}, + "type": "object" + }, + "image": { + "description": "Container image", + "example": "cirros", + "type": "string" + }, + "interactive": { + "default": false, + "description": "", + "type": "boolean" + }, + "memory": { + "description": "Memory MiB", + "example": 512, + "type": "integer" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "nets": { + "description": "", + "items": { + "description": "", + "properties": { + "network": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "restart_policy": { + "description": "", + "properties": { + "MaximumRetryCount": { + "description": "", + "example": 0, + "type": "integer" + }, + "Name": { + "description": "", + "example": "no", + "type": "string" + } + }, + "type": "object" + }, + "tty": { + "default": false, + "description": "", + "type": "boolean" + }, + "workdir": { + "description": "", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "container" + ], + "type": "object" + }, + "order_create": { + "description": "", + "properties": { + "order": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "order", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "order" + ], + "type": "object" + }, + "order_patch": { + "description": "", + "properties": { + "order": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "order", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "order" + ], + "type": "object" + }, + "order_update": { + "description": "", + "properties": { + "order": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "order", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "order" + ], + "type": "object" + }, + "secret_create": { + "description": "", + "properties": { + "secret": { + "description": "", + "properties": { + "algorithm": { + "description": "Algorithm", + "type": "string" + }, + "bit_length": { + "description": "Bit length", + "type": "integer" + }, + "expiration": { + "description": "Expiration timestamp", + "type": "string" + }, + "mode": { + "description": "Mode", + "type": "string" + }, + "name": { + "description": "Secret name", + "example": "example", + "type": "string" + }, + "payload": { + "description": "Secret payload", + "example": "c2VjcmV0", + "type": "string" + }, + "payload_content_encoding": { + "description": "Encoding", + "enum": [ + "base64" + ], + "example": "base64", + "type": "string" + }, + "payload_content_type": { + "description": "Content type", + "example": "text/plain", + "type": "string" + }, + "secret_type": { + "description": "Secret type", + "enum": [ + "opaque", + "symmetric", + "public", + "private", + "certificate", + "passphrase" + ], + "example": "opaque", + "type": "string" + } + }, + "required": [ + "payload" + ], + "type": "object" + } + }, + "required": [ + "secret" + ], + "type": "object" + }, + "secret_patch": { + "description": "", + "properties": { + "secret": { + "description": "", + "properties": { + "algorithm": { + "description": "Algorithm", + "type": "string" + }, + "bit_length": { + "description": "Bit length", + "type": "integer" + }, + "expiration": { + "description": "Expiration timestamp", + "type": "string" + }, + "mode": { + "description": "Mode", + "type": "string" + }, + "name": { + "description": "Secret name", + "example": "example", + "type": "string" + }, + "payload": { + "description": "Secret payload", + "example": "c2VjcmV0", + "type": "string" + }, + "payload_content_encoding": { + "description": "Encoding", + "enum": [ + "base64" + ], + "example": "base64", + "type": "string" + }, + "payload_content_type": { + "description": "Content type", + "example": "text/plain", + "type": "string" + }, + "secret_type": { + "description": "Secret type", + "enum": [ + "opaque", + "symmetric", + "public", + "private", + "certificate", + "passphrase" + ], + "example": "opaque", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "secret" + ], + "type": "object" + }, + "secret_store_create": { + "description": "", + "properties": { + "secret_store": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "secret_store", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "secret_store" + ], + "type": "object" + }, + "secret_store_patch": { + "description": "", + "properties": { + "secret_store": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "secret_store", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "secret_store" + ], + "type": "object" + }, + "secret_store_update": { + "description": "", + "properties": { + "secret_store": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "secret_store", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "secret_store" + ], + "type": "object" + }, + "secret_update": { + "description": "", + "properties": { + "secret": { + "description": "", + "properties": { + "algorithm": { + "description": "Algorithm", + "type": "string" + }, + "bit_length": { + "description": "Bit length", + "type": "integer" + }, + "expiration": { + "description": "Expiration timestamp", + "type": "string" + }, + "mode": { + "description": "Mode", + "type": "string" + }, + "name": { + "description": "Secret name", + "example": "example", + "type": "string" + }, + "payload": { + "description": "Secret payload", + "example": "c2VjcmV0", + "type": "string" + }, + "payload_content_encoding": { + "description": "Encoding", + "enum": [ + "base64" + ], + "example": "base64", + "type": "string" + }, + "payload_content_type": { + "description": "Content type", + "example": "text/plain", + "type": "string" + }, + "secret_type": { + "description": "Secret type", + "enum": [ + "opaque", + "symmetric", + "public", + "private", + "certificate", + "passphrase" + ], + "example": "opaque", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "secret" + ], + "type": "object" + } + }, + "service": "barbican", + "source": "generated-from-api-ref-catalog" +} diff --git a/contracts/openstack/request_bodies/blazar.json b/contracts/openstack/request_bodies/blazar.json new file mode 100644 index 0000000..7f53b66 --- /dev/null +++ b/contracts/openstack/request_bodies/blazar.json @@ -0,0 +1,944 @@ +{ + "by_path": { + "PATCH /floatingips/{id}": { + "description": "", + "properties": { + "floatingip": { + "description": "", + "properties": { + "description": { + "description": "", + "type": "string" + }, + "dns_domain": { + "description": "", + "type": "string" + }, + "dns_name": { + "description": "", + "type": "string" + }, + "fixed_ip_address": { + "description": "Fixed IP", + "type": "string" + }, + "floating_ip_address": { + "description": "Floating IP", + "type": "string" + }, + "floating_network_id": { + "description": "External network UUID", + "format": "uuid", + "type": "string" + }, + "port_id": { + "description": "Port UUID", + "format": "uuid", + "type": "string" + }, + "subnet_id": { + "description": "Subnet UUID", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "floatingip" + ], + "type": "object" + }, + "PATCH /leases/{id}": { + "description": "", + "properties": { + "lease": { + "description": "", + "properties": { + "end_date": { + "description": "", + "example": "2026-01-02 00:00", + "type": "string" + }, + "events": { + "description": "", + "items": { + "description": "", + "properties": {}, + "type": "object" + }, + "type": "array" + }, + "name": { + "description": "", + "example": "example", + "type": "string" + }, + "reservations": { + "description": "", + "items": { + "description": "", + "properties": { + "hypervisor_properties": { + "description": "", + "type": "string" + }, + "max": { + "description": "", + "example": 1, + "type": "integer" + }, + "min": { + "description": "", + "example": 1, + "type": "integer" + }, + "resource_properties": { + "description": "", + "type": "string" + }, + "resource_type": { + "description": "", + "example": "physical:host", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "start_date": { + "description": "", + "example": "2026-01-01 00:00", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "lease" + ], + "type": "object" + }, + "PATCH /os-hosts/{id}": { + "description": "", + "properties": { + "host": { + "description": "", + "properties": { + "extra_capabilities": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "", + "example": "example", + "type": "string" + }, + "reservable": { + "default": true, + "description": "", + "type": "boolean" + } + }, + "type": "object" + } + }, + "required": [ + "host" + ], + "type": "object" + }, + "POST /floatingips": { + "description": "", + "properties": { + "floatingip": { + "description": "", + "properties": { + "description": { + "description": "", + "type": "string" + }, + "dns_domain": { + "description": "", + "type": "string" + }, + "dns_name": { + "description": "", + "type": "string" + }, + "fixed_ip_address": { + "description": "Fixed IP", + "type": "string" + }, + "floating_ip_address": { + "description": "Floating IP", + "type": "string" + }, + "floating_network_id": { + "description": "External network UUID", + "format": "uuid", + "type": "string" + }, + "port_id": { + "description": "Port UUID", + "format": "uuid", + "type": "string" + }, + "subnet_id": { + "description": "Subnet UUID", + "format": "uuid", + "type": "string" + } + }, + "required": [ + "floating_network_id" + ], + "type": "object" + } + }, + "required": [ + "floatingip" + ], + "type": "object" + }, + "POST /leases": { + "description": "", + "properties": { + "lease": { + "description": "", + "properties": { + "end_date": { + "description": "", + "example": "2026-01-02 00:00", + "type": "string" + }, + "events": { + "description": "", + "items": { + "description": "", + "properties": {}, + "type": "object" + }, + "type": "array" + }, + "name": { + "description": "", + "example": "example", + "type": "string" + }, + "reservations": { + "description": "", + "items": { + "description": "", + "properties": { + "hypervisor_properties": { + "description": "", + "type": "string" + }, + "max": { + "description": "", + "example": 1, + "type": "integer" + }, + "min": { + "description": "", + "example": 1, + "type": "integer" + }, + "resource_properties": { + "description": "", + "type": "string" + }, + "resource_type": { + "description": "", + "example": "physical:host", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "start_date": { + "description": "", + "example": "2026-01-01 00:00", + "type": "string" + } + }, + "required": [ + "name", + "start_date", + "end_date", + "reservations" + ], + "type": "object" + } + }, + "required": [ + "lease" + ], + "type": "object" + }, + "POST /os-hosts": { + "description": "", + "properties": { + "host": { + "description": "", + "properties": { + "extra_capabilities": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "", + "example": "example", + "type": "string" + }, + "reservable": { + "default": true, + "description": "", + "type": "boolean" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "host" + ], + "type": "object" + }, + "PUT /floatingips/{id}": { + "description": "", + "properties": { + "floatingip": { + "description": "", + "properties": { + "description": { + "description": "", + "type": "string" + }, + "dns_domain": { + "description": "", + "type": "string" + }, + "dns_name": { + "description": "", + "type": "string" + }, + "fixed_ip_address": { + "description": "Fixed IP", + "type": "string" + }, + "floating_ip_address": { + "description": "Floating IP", + "type": "string" + }, + "floating_network_id": { + "description": "External network UUID", + "format": "uuid", + "type": "string" + }, + "port_id": { + "description": "Port UUID", + "format": "uuid", + "type": "string" + }, + "subnet_id": { + "description": "Subnet UUID", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "floatingip" + ], + "type": "object" + }, + "PUT /leases/{id}": { + "description": "", + "properties": { + "lease": { + "description": "", + "properties": { + "end_date": { + "description": "", + "example": "2026-01-02 00:00", + "type": "string" + }, + "events": { + "description": "", + "items": { + "description": "", + "properties": {}, + "type": "object" + }, + "type": "array" + }, + "name": { + "description": "", + "example": "example", + "type": "string" + }, + "reservations": { + "description": "", + "items": { + "description": "", + "properties": { + "hypervisor_properties": { + "description": "", + "type": "string" + }, + "max": { + "description": "", + "example": 1, + "type": "integer" + }, + "min": { + "description": "", + "example": 1, + "type": "integer" + }, + "resource_properties": { + "description": "", + "type": "string" + }, + "resource_type": { + "description": "", + "example": "physical:host", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "start_date": { + "description": "", + "example": "2026-01-01 00:00", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "lease" + ], + "type": "object" + }, + "PUT /os-hosts/{id}": { + "description": "", + "properties": { + "host": { + "description": "", + "properties": { + "extra_capabilities": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "", + "example": "example", + "type": "string" + }, + "reservable": { + "default": true, + "description": "", + "type": "boolean" + } + }, + "type": "object" + } + }, + "required": [ + "host" + ], + "type": "object" + } + }, + "operations": { + "floatingip_create": { + "description": "", + "properties": { + "floatingip": { + "description": "", + "properties": { + "description": { + "description": "", + "type": "string" + }, + "dns_domain": { + "description": "", + "type": "string" + }, + "dns_name": { + "description": "", + "type": "string" + }, + "fixed_ip_address": { + "description": "Fixed IP", + "type": "string" + }, + "floating_ip_address": { + "description": "Floating IP", + "type": "string" + }, + "floating_network_id": { + "description": "External network UUID", + "format": "uuid", + "type": "string" + }, + "port_id": { + "description": "Port UUID", + "format": "uuid", + "type": "string" + }, + "subnet_id": { + "description": "Subnet UUID", + "format": "uuid", + "type": "string" + } + }, + "required": [ + "floating_network_id" + ], + "type": "object" + } + }, + "required": [ + "floatingip" + ], + "type": "object" + }, + "floatingip_patch": { + "description": "", + "properties": { + "floatingip": { + "description": "", + "properties": { + "description": { + "description": "", + "type": "string" + }, + "dns_domain": { + "description": "", + "type": "string" + }, + "dns_name": { + "description": "", + "type": "string" + }, + "fixed_ip_address": { + "description": "Fixed IP", + "type": "string" + }, + "floating_ip_address": { + "description": "Floating IP", + "type": "string" + }, + "floating_network_id": { + "description": "External network UUID", + "format": "uuid", + "type": "string" + }, + "port_id": { + "description": "Port UUID", + "format": "uuid", + "type": "string" + }, + "subnet_id": { + "description": "Subnet UUID", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "floatingip" + ], + "type": "object" + }, + "floatingip_update": { + "description": "", + "properties": { + "floatingip": { + "description": "", + "properties": { + "description": { + "description": "", + "type": "string" + }, + "dns_domain": { + "description": "", + "type": "string" + }, + "dns_name": { + "description": "", + "type": "string" + }, + "fixed_ip_address": { + "description": "Fixed IP", + "type": "string" + }, + "floating_ip_address": { + "description": "Floating IP", + "type": "string" + }, + "floating_network_id": { + "description": "External network UUID", + "format": "uuid", + "type": "string" + }, + "port_id": { + "description": "Port UUID", + "format": "uuid", + "type": "string" + }, + "subnet_id": { + "description": "Subnet UUID", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "floatingip" + ], + "type": "object" + }, + "host_create": { + "description": "", + "properties": { + "host": { + "description": "", + "properties": { + "extra_capabilities": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "", + "example": "example", + "type": "string" + }, + "reservable": { + "default": true, + "description": "", + "type": "boolean" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "host" + ], + "type": "object" + }, + "host_patch": { + "description": "", + "properties": { + "host": { + "description": "", + "properties": { + "extra_capabilities": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "", + "example": "example", + "type": "string" + }, + "reservable": { + "default": true, + "description": "", + "type": "boolean" + } + }, + "type": "object" + } + }, + "required": [ + "host" + ], + "type": "object" + }, + "host_update": { + "description": "", + "properties": { + "host": { + "description": "", + "properties": { + "extra_capabilities": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "", + "example": "example", + "type": "string" + }, + "reservable": { + "default": true, + "description": "", + "type": "boolean" + } + }, + "type": "object" + } + }, + "required": [ + "host" + ], + "type": "object" + }, + "lease_create": { + "description": "", + "properties": { + "lease": { + "description": "", + "properties": { + "end_date": { + "description": "", + "example": "2026-01-02 00:00", + "type": "string" + }, + "events": { + "description": "", + "items": { + "description": "", + "properties": {}, + "type": "object" + }, + "type": "array" + }, + "name": { + "description": "", + "example": "example", + "type": "string" + }, + "reservations": { + "description": "", + "items": { + "description": "", + "properties": { + "hypervisor_properties": { + "description": "", + "type": "string" + }, + "max": { + "description": "", + "example": 1, + "type": "integer" + }, + "min": { + "description": "", + "example": 1, + "type": "integer" + }, + "resource_properties": { + "description": "", + "type": "string" + }, + "resource_type": { + "description": "", + "example": "physical:host", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "start_date": { + "description": "", + "example": "2026-01-01 00:00", + "type": "string" + } + }, + "required": [ + "name", + "start_date", + "end_date", + "reservations" + ], + "type": "object" + } + }, + "required": [ + "lease" + ], + "type": "object" + }, + "lease_patch": { + "description": "", + "properties": { + "lease": { + "description": "", + "properties": { + "end_date": { + "description": "", + "example": "2026-01-02 00:00", + "type": "string" + }, + "events": { + "description": "", + "items": { + "description": "", + "properties": {}, + "type": "object" + }, + "type": "array" + }, + "name": { + "description": "", + "example": "example", + "type": "string" + }, + "reservations": { + "description": "", + "items": { + "description": "", + "properties": { + "hypervisor_properties": { + "description": "", + "type": "string" + }, + "max": { + "description": "", + "example": 1, + "type": "integer" + }, + "min": { + "description": "", + "example": 1, + "type": "integer" + }, + "resource_properties": { + "description": "", + "type": "string" + }, + "resource_type": { + "description": "", + "example": "physical:host", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "start_date": { + "description": "", + "example": "2026-01-01 00:00", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "lease" + ], + "type": "object" + }, + "lease_update": { + "description": "", + "properties": { + "lease": { + "description": "", + "properties": { + "end_date": { + "description": "", + "example": "2026-01-02 00:00", + "type": "string" + }, + "events": { + "description": "", + "items": { + "description": "", + "properties": {}, + "type": "object" + }, + "type": "array" + }, + "name": { + "description": "", + "example": "example", + "type": "string" + }, + "reservations": { + "description": "", + "items": { + "description": "", + "properties": { + "hypervisor_properties": { + "description": "", + "type": "string" + }, + "max": { + "description": "", + "example": 1, + "type": "integer" + }, + "min": { + "description": "", + "example": 1, + "type": "integer" + }, + "resource_properties": { + "description": "", + "type": "string" + }, + "resource_type": { + "description": "", + "example": "physical:host", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "start_date": { + "description": "", + "example": "2026-01-01 00:00", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "lease" + ], + "type": "object" + } + }, + "service": "blazar", + "source": "generated-from-api-ref-catalog" +} diff --git a/contracts/openstack/request_bodies/cinder.json b/contracts/openstack/request_bodies/cinder.json new file mode 100644 index 0000000..e3555de --- /dev/null +++ b/contracts/openstack/request_bodies/cinder.json @@ -0,0 +1,5734 @@ +{ + "by_path": { + "PATCH /v3/attachments/{id}": { + "description": "", + "properties": { + "attachment": { + "description": "", + "properties": { + "instance_uuid": { + "description": "", + "format": "uuid", + "type": "string" + }, + "mode": { + "description": "", + "example": "rw", + "type": "string" + }, + "volume_uuid": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "attachment" + ], + "type": "object" + }, + "PATCH /v3/backups/{id}": { + "description": "", + "properties": { + "backup": { + "description": "", + "properties": { + "container": { + "description": "", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "force": { + "default": false, + "description": "", + "type": "boolean" + }, + "incremental": { + "default": false, + "description": "", + "type": "boolean" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "snapshot_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "volume_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "backup" + ], + "type": "object" + }, + "PATCH /v3/clusters/{id}": { + "description": "", + "properties": { + "cluster": { + "description": "", + "properties": { + "cluster_template_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "docker_volume_size": { + "description": "", + "example": 5, + "type": "integer" + }, + "flavor_id": { + "description": "", + "type": "string" + }, + "keypair": { + "description": "Keypair name", + "type": "string" + }, + "labels": { + "description": "", + "properties": {}, + "type": "object" + }, + "master_count": { + "description": "", + "example": 1, + "type": "integer" + }, + "master_flavor_id": { + "description": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "node_count": { + "description": "", + "example": 1, + "type": "integer" + } + }, + "type": "object" + } + }, + "required": [ + "cluster" + ], + "type": "object" + }, + "PATCH /v3/consistencygroups/{id}": { + "description": "", + "properties": { + "consistencygroup": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "volume_types": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "required": [ + "consistencygroup" + ], + "type": "object" + }, + "PATCH /v3/group_snapshots/{id}": { + "description": "", + "properties": { + "group_snapshot": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "group_snapshot", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "group_snapshot" + ], + "type": "object" + }, + "PATCH /v3/groups/{id}": { + "description": "", + "properties": { + "group": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "domain_id": { + "description": "", + "example": "default", + "format": "uuid", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "group" + ], + "type": "object" + }, + "PATCH /v3/messages/{id}": { + "description": "", + "properties": { + "message": { + "description": "", + "properties": { + "messages": { + "description": "", + "items": { + "description": "", + "properties": { + "body": { + "description": "", + "properties": { + "event": { + "description": "", + "example": "example", + "type": "string" + } + }, + "type": "object" + }, + "ttl": { + "description": "", + "example": 3600, + "type": "integer" + } + }, + "required": [ + "body" + ], + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "required": [ + "message" + ], + "type": "object" + }, + "PATCH /v3/qos-specs/{id}": { + "description": "", + "properties": { + "qos_spec": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "qos_spec", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "qos_spec" + ], + "type": "object" + }, + "PATCH /v3/snapshots/{id}": { + "description": "", + "properties": { + "snapshot": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "force": { + "description": "Force snapshot", + "type": "boolean" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "volume_id": { + "description": "Volume UUID", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "snapshot" + ], + "type": "object" + }, + "PATCH /v3/types/{id}": { + "description": "", + "properties": { + "volume_type": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "extra_specs": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "os-volume-type-access:is_public": { + "default": true, + "description": "", + "type": "boolean" + } + }, + "type": "object" + } + }, + "required": [ + "volume_type" + ], + "type": "object" + }, + "PATCH /v3/volume-transfers/{id}": { + "description": "", + "properties": { + "transfer": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "transfer", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "transfer" + ], + "type": "object" + }, + "PATCH /v3/volumes/{id}": { + "description": "", + "properties": { + "volume": { + "description": "", + "properties": { + "availability_zone": { + "description": "AZ", + "type": "string" + }, + "consistencygroup_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "imageRef": { + "description": "Image UUID", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "multiattach": { + "description": "Multi-attach", + "type": "boolean" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "size": { + "description": "Size in GiB", + "example": 1, + "minimum": 1, + "type": "integer" + }, + "snapshot_id": { + "description": "Snapshot UUID", + "format": "uuid", + "type": "string" + }, + "source_volid": { + "description": "Source volume UUID", + "format": "uuid", + "type": "string" + }, + "volume_type": { + "description": "Volume type name", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "volume" + ], + "type": "object" + }, + "PATCH /v3/{project_id}/volumes/{id}": { + "description": "", + "properties": { + "volume": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "volume_tenant", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "volume" + ], + "type": "object" + }, + "POST /v3/attachments": { + "description": "", + "properties": { + "attachment": { + "description": "", + "properties": { + "instance_uuid": { + "description": "", + "format": "uuid", + "type": "string" + }, + "mode": { + "description": "", + "example": "rw", + "type": "string" + }, + "volume_uuid": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "required": [ + "instance_uuid", + "volume_uuid" + ], + "type": "object" + } + }, + "required": [ + "attachment" + ], + "type": "object" + }, + "POST /v3/backups": { + "description": "", + "properties": { + "backup": { + "description": "", + "properties": { + "container": { + "description": "", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "force": { + "default": false, + "description": "", + "type": "boolean" + }, + "incremental": { + "default": false, + "description": "", + "type": "boolean" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "snapshot_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "volume_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "required": [ + "volume_id" + ], + "type": "object" + } + }, + "required": [ + "backup" + ], + "type": "object" + }, + "POST /v3/clusters": { + "description": "", + "properties": { + "cluster": { + "description": "", + "properties": { + "cluster_template_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "docker_volume_size": { + "description": "", + "example": 5, + "type": "integer" + }, + "flavor_id": { + "description": "", + "type": "string" + }, + "keypair": { + "description": "Keypair name", + "type": "string" + }, + "labels": { + "description": "", + "properties": {}, + "type": "object" + }, + "master_count": { + "description": "", + "example": 1, + "type": "integer" + }, + "master_flavor_id": { + "description": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "node_count": { + "description": "", + "example": 1, + "type": "integer" + } + }, + "required": [ + "name", + "cluster_template_id" + ], + "type": "object" + } + }, + "required": [ + "cluster" + ], + "type": "object" + }, + "POST /v3/consistencygroups": { + "description": "", + "properties": { + "consistencygroup": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "volume_types": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "name", + "volume_types" + ], + "type": "object" + } + }, + "required": [ + "consistencygroup" + ], + "type": "object" + }, + "POST /v3/group_snapshots": { + "description": "", + "properties": { + "group_snapshot": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "group_snapshot", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "group_snapshot" + ], + "type": "object" + }, + "POST /v3/groups": { + "description": "", + "properties": { + "group": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "domain_id": { + "description": "", + "example": "default", + "format": "uuid", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "group" + ], + "type": "object" + }, + "POST /v3/messages": { + "description": "", + "properties": { + "message": { + "description": "", + "properties": { + "messages": { + "description": "", + "items": { + "description": "", + "properties": { + "body": { + "description": "", + "properties": { + "event": { + "description": "", + "example": "example", + "type": "string" + } + }, + "type": "object" + }, + "ttl": { + "description": "", + "example": 3600, + "type": "integer" + } + }, + "required": [ + "body" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "messages" + ], + "type": "object" + } + }, + "required": [ + "message" + ], + "type": "object" + }, + "POST /v3/qos-specs": { + "description": "", + "properties": { + "qos_spec": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "qos_spec", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "qos_spec" + ], + "type": "object" + }, + "POST /v3/snapshots": { + "description": "", + "properties": { + "snapshot": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "force": { + "description": "Force snapshot", + "type": "boolean" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "volume_id": { + "description": "Volume UUID", + "format": "uuid", + "type": "string" + } + }, + "required": [ + "volume_id" + ], + "type": "object" + } + }, + "required": [ + "snapshot" + ], + "type": "object" + }, + "POST /v3/types": { + "description": "", + "properties": { + "volume_type": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "extra_specs": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "os-volume-type-access:is_public": { + "default": true, + "description": "", + "type": "boolean" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "volume_type" + ], + "type": "object" + }, + "POST /v3/volume-transfers": { + "description": "", + "properties": { + "transfer": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "transfer", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "transfer" + ], + "type": "object" + }, + "POST /v3/volumes": { + "description": "", + "properties": { + "volume": { + "description": "", + "properties": { + "availability_zone": { + "description": "AZ", + "type": "string" + }, + "consistencygroup_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "imageRef": { + "description": "Image UUID", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "multiattach": { + "description": "Multi-attach", + "type": "boolean" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "size": { + "description": "Size in GiB", + "example": 1, + "minimum": 1, + "type": "integer" + }, + "snapshot_id": { + "description": "Snapshot UUID", + "format": "uuid", + "type": "string" + }, + "source_volid": { + "description": "Source volume UUID", + "format": "uuid", + "type": "string" + }, + "volume_type": { + "description": "Volume type name", + "type": "string" + } + }, + "required": [ + "size" + ], + "type": "object" + } + }, + "required": [ + "volume" + ], + "type": "object" + }, + "POST /v3/volumes/{id}/action": { + "description": "", + "properties": { + "os-start": { + "description": "Action os-start body (null object)", + "type": "null" + } + }, + "required": [ + "os-start" + ], + "type": "object" + }, + "POST /v3/{project_id}/volumes": { + "description": "", + "properties": { + "volume": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "volume_tenant", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "volume" + ], + "type": "object" + }, + "PUT /v3/attachments/{id}": { + "description": "", + "properties": { + "attachment": { + "description": "", + "properties": { + "instance_uuid": { + "description": "", + "format": "uuid", + "type": "string" + }, + "mode": { + "description": "", + "example": "rw", + "type": "string" + }, + "volume_uuid": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "attachment" + ], + "type": "object" + }, + "PUT /v3/backups/{id}": { + "description": "", + "properties": { + "backup": { + "description": "", + "properties": { + "container": { + "description": "", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "force": { + "default": false, + "description": "", + "type": "boolean" + }, + "incremental": { + "default": false, + "description": "", + "type": "boolean" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "snapshot_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "volume_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "backup" + ], + "type": "object" + }, + "PUT /v3/clusters/{id}": { + "description": "", + "properties": { + "cluster": { + "description": "", + "properties": { + "cluster_template_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "docker_volume_size": { + "description": "", + "example": 5, + "type": "integer" + }, + "flavor_id": { + "description": "", + "type": "string" + }, + "keypair": { + "description": "Keypair name", + "type": "string" + }, + "labels": { + "description": "", + "properties": {}, + "type": "object" + }, + "master_count": { + "description": "", + "example": 1, + "type": "integer" + }, + "master_flavor_id": { + "description": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "node_count": { + "description": "", + "example": 1, + "type": "integer" + } + }, + "type": "object" + } + }, + "required": [ + "cluster" + ], + "type": "object" + }, + "PUT /v3/consistencygroups/{id}": { + "description": "", + "properties": { + "consistencygroup": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "volume_types": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "required": [ + "consistencygroup" + ], + "type": "object" + }, + "PUT /v3/group_snapshots/{id}": { + "description": "", + "properties": { + "group_snapshot": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "group_snapshot", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "group_snapshot" + ], + "type": "object" + }, + "PUT /v3/groups/{id}": { + "description": "", + "properties": { + "group": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "domain_id": { + "description": "", + "example": "default", + "format": "uuid", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "group" + ], + "type": "object" + }, + "PUT /v3/messages/{id}": { + "description": "", + "properties": { + "message": { + "description": "", + "properties": { + "messages": { + "description": "", + "items": { + "description": "", + "properties": { + "body": { + "description": "", + "properties": { + "event": { + "description": "", + "example": "example", + "type": "string" + } + }, + "type": "object" + }, + "ttl": { + "description": "", + "example": 3600, + "type": "integer" + } + }, + "required": [ + "body" + ], + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "required": [ + "message" + ], + "type": "object" + }, + "PUT /v3/qos-specs/{id}": { + "description": "", + "properties": { + "qos_spec": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "qos_spec", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "qos_spec" + ], + "type": "object" + }, + "PUT /v3/snapshots/{id}": { + "description": "", + "properties": { + "snapshot": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "force": { + "description": "Force snapshot", + "type": "boolean" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "volume_id": { + "description": "Volume UUID", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "snapshot" + ], + "type": "object" + }, + "PUT /v3/types/{id}": { + "description": "", + "properties": { + "volume_type": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "extra_specs": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "os-volume-type-access:is_public": { + "default": true, + "description": "", + "type": "boolean" + } + }, + "type": "object" + } + }, + "required": [ + "volume_type" + ], + "type": "object" + }, + "PUT /v3/volume-transfers/{id}": { + "description": "", + "properties": { + "transfer": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "transfer", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "transfer" + ], + "type": "object" + }, + "PUT /v3/volumes/{id}": { + "description": "", + "properties": { + "volume": { + "description": "", + "properties": { + "availability_zone": { + "description": "AZ", + "type": "string" + }, + "consistencygroup_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "imageRef": { + "description": "Image UUID", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "multiattach": { + "description": "Multi-attach", + "type": "boolean" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "size": { + "description": "Size in GiB", + "example": 1, + "minimum": 1, + "type": "integer" + }, + "snapshot_id": { + "description": "Snapshot UUID", + "format": "uuid", + "type": "string" + }, + "source_volid": { + "description": "Source volume UUID", + "format": "uuid", + "type": "string" + }, + "volume_type": { + "description": "Volume type name", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "volume" + ], + "type": "object" + }, + "PUT /v3/{project_id}/volumes/{id}": { + "description": "", + "properties": { + "volume": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "volume_tenant", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "volume" + ], + "type": "object" + } + }, + "operations": { + "attachment_create": { + "description": "", + "properties": { + "attachment": { + "description": "", + "properties": { + "instance_uuid": { + "description": "", + "format": "uuid", + "type": "string" + }, + "mode": { + "description": "", + "example": "rw", + "type": "string" + }, + "volume_uuid": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "required": [ + "instance_uuid", + "volume_uuid" + ], + "type": "object" + } + }, + "required": [ + "attachment" + ], + "type": "object" + }, + "attachment_patch": { + "description": "", + "properties": { + "attachment": { + "description": "", + "properties": { + "instance_uuid": { + "description": "", + "format": "uuid", + "type": "string" + }, + "mode": { + "description": "", + "example": "rw", + "type": "string" + }, + "volume_uuid": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "attachment" + ], + "type": "object" + }, + "attachment_update": { + "description": "", + "properties": { + "attachment": { + "description": "", + "properties": { + "instance_uuid": { + "description": "", + "format": "uuid", + "type": "string" + }, + "mode": { + "description": "", + "example": "rw", + "type": "string" + }, + "volume_uuid": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "attachment" + ], + "type": "object" + }, + "backup_create": { + "description": "", + "properties": { + "backup": { + "description": "", + "properties": { + "container": { + "description": "", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "force": { + "default": false, + "description": "", + "type": "boolean" + }, + "incremental": { + "default": false, + "description": "", + "type": "boolean" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "snapshot_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "volume_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "required": [ + "volume_id" + ], + "type": "object" + } + }, + "required": [ + "backup" + ], + "type": "object" + }, + "backup_patch": { + "description": "", + "properties": { + "backup": { + "description": "", + "properties": { + "container": { + "description": "", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "force": { + "default": false, + "description": "", + "type": "boolean" + }, + "incremental": { + "default": false, + "description": "", + "type": "boolean" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "snapshot_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "volume_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "backup" + ], + "type": "object" + }, + "backup_update": { + "description": "", + "properties": { + "backup": { + "description": "", + "properties": { + "container": { + "description": "", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "force": { + "default": false, + "description": "", + "type": "boolean" + }, + "incremental": { + "default": false, + "description": "", + "type": "boolean" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "snapshot_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "volume_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "backup" + ], + "type": "object" + }, + "cluster_create": { + "description": "", + "properties": { + "cluster": { + "description": "", + "properties": { + "cluster_template_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "docker_volume_size": { + "description": "", + "example": 5, + "type": "integer" + }, + "flavor_id": { + "description": "", + "type": "string" + }, + "keypair": { + "description": "Keypair name", + "type": "string" + }, + "labels": { + "description": "", + "properties": {}, + "type": "object" + }, + "master_count": { + "description": "", + "example": 1, + "type": "integer" + }, + "master_flavor_id": { + "description": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "node_count": { + "description": "", + "example": 1, + "type": "integer" + } + }, + "required": [ + "name", + "cluster_template_id" + ], + "type": "object" + } + }, + "required": [ + "cluster" + ], + "type": "object" + }, + "cluster_patch": { + "description": "", + "properties": { + "cluster": { + "description": "", + "properties": { + "cluster_template_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "docker_volume_size": { + "description": "", + "example": 5, + "type": "integer" + }, + "flavor_id": { + "description": "", + "type": "string" + }, + "keypair": { + "description": "Keypair name", + "type": "string" + }, + "labels": { + "description": "", + "properties": {}, + "type": "object" + }, + "master_count": { + "description": "", + "example": 1, + "type": "integer" + }, + "master_flavor_id": { + "description": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "node_count": { + "description": "", + "example": 1, + "type": "integer" + } + }, + "type": "object" + } + }, + "required": [ + "cluster" + ], + "type": "object" + }, + "cluster_update": { + "description": "", + "properties": { + "cluster": { + "description": "", + "properties": { + "cluster_template_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "docker_volume_size": { + "description": "", + "example": 5, + "type": "integer" + }, + "flavor_id": { + "description": "", + "type": "string" + }, + "keypair": { + "description": "Keypair name", + "type": "string" + }, + "labels": { + "description": "", + "properties": {}, + "type": "object" + }, + "master_count": { + "description": "", + "example": 1, + "type": "integer" + }, + "master_flavor_id": { + "description": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "node_count": { + "description": "", + "example": 1, + "type": "integer" + } + }, + "type": "object" + } + }, + "required": [ + "cluster" + ], + "type": "object" + }, + "consistencygroup_create": { + "description": "", + "properties": { + "consistencygroup": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "volume_types": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "name", + "volume_types" + ], + "type": "object" + } + }, + "required": [ + "consistencygroup" + ], + "type": "object" + }, + "consistencygroup_patch": { + "description": "", + "properties": { + "consistencygroup": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "volume_types": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "required": [ + "consistencygroup" + ], + "type": "object" + }, + "consistencygroup_update": { + "description": "", + "properties": { + "consistencygroup": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "volume_types": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "required": [ + "consistencygroup" + ], + "type": "object" + }, + "group_create": { + "description": "", + "properties": { + "group": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "domain_id": { + "description": "", + "example": "default", + "format": "uuid", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "group" + ], + "type": "object" + }, + "group_patch": { + "description": "", + "properties": { + "group": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "domain_id": { + "description": "", + "example": "default", + "format": "uuid", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "group" + ], + "type": "object" + }, + "group_snapshot_create": { + "description": "", + "properties": { + "group_snapshot": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "group_snapshot", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "group_snapshot" + ], + "type": "object" + }, + "group_snapshot_patch": { + "description": "", + "properties": { + "group_snapshot": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "group_snapshot", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "group_snapshot" + ], + "type": "object" + }, + "group_snapshot_update": { + "description": "", + "properties": { + "group_snapshot": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "group_snapshot", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "group_snapshot" + ], + "type": "object" + }, + "group_update": { + "description": "", + "properties": { + "group": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "domain_id": { + "description": "", + "example": "default", + "format": "uuid", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "group" + ], + "type": "object" + }, + "message_create": { + "description": "", + "properties": { + "message": { + "description": "", + "properties": { + "messages": { + "description": "", + "items": { + "description": "", + "properties": { + "body": { + "description": "", + "properties": { + "event": { + "description": "", + "example": "example", + "type": "string" + } + }, + "type": "object" + }, + "ttl": { + "description": "", + "example": 3600, + "type": "integer" + } + }, + "required": [ + "body" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "messages" + ], + "type": "object" + } + }, + "required": [ + "message" + ], + "type": "object" + }, + "message_patch": { + "description": "", + "properties": { + "message": { + "description": "", + "properties": { + "messages": { + "description": "", + "items": { + "description": "", + "properties": { + "body": { + "description": "", + "properties": { + "event": { + "description": "", + "example": "example", + "type": "string" + } + }, + "type": "object" + }, + "ttl": { + "description": "", + "example": 3600, + "type": "integer" + } + }, + "required": [ + "body" + ], + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "required": [ + "message" + ], + "type": "object" + }, + "message_update": { + "description": "", + "properties": { + "message": { + "description": "", + "properties": { + "messages": { + "description": "", + "items": { + "description": "", + "properties": { + "body": { + "description": "", + "properties": { + "event": { + "description": "", + "example": "example", + "type": "string" + } + }, + "type": "object" + }, + "ttl": { + "description": "", + "example": 3600, + "type": "integer" + } + }, + "required": [ + "body" + ], + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "required": [ + "message" + ], + "type": "object" + }, + "qos_spec_create": { + "description": "", + "properties": { + "qos_spec": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "qos_spec", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "qos_spec" + ], + "type": "object" + }, + "qos_spec_patch": { + "description": "", + "properties": { + "qos_spec": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "qos_spec", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "qos_spec" + ], + "type": "object" + }, + "qos_spec_update": { + "description": "", + "properties": { + "qos_spec": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "qos_spec", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "qos_spec" + ], + "type": "object" + }, + "snapshot_create": { + "description": "", + "properties": { + "snapshot": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "force": { + "description": "Force snapshot", + "type": "boolean" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "volume_id": { + "description": "Volume UUID", + "format": "uuid", + "type": "string" + } + }, + "required": [ + "volume_id" + ], + "type": "object" + } + }, + "required": [ + "snapshot" + ], + "type": "object" + }, + "snapshot_patch": { + "description": "", + "properties": { + "snapshot": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "force": { + "description": "Force snapshot", + "type": "boolean" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "volume_id": { + "description": "Volume UUID", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "snapshot" + ], + "type": "object" + }, + "snapshot_update": { + "description": "", + "properties": { + "snapshot": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "force": { + "description": "Force snapshot", + "type": "boolean" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "volume_id": { + "description": "Volume UUID", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "snapshot" + ], + "type": "object" + }, + "transfer_create": { + "description": "", + "properties": { + "transfer": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "transfer", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "transfer" + ], + "type": "object" + }, + "transfer_patch": { + "description": "", + "properties": { + "transfer": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "transfer", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "transfer" + ], + "type": "object" + }, + "transfer_update": { + "description": "", + "properties": { + "transfer": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "transfer", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "transfer" + ], + "type": "object" + }, + "volume_action": { + "description": "", + "properties": { + "os-start": { + "description": "Action os-start body (null object)", + "type": "null" + } + }, + "required": [ + "os-start" + ], + "type": "object" + }, + "volume_create": { + "description": "", + "properties": { + "volume": { + "description": "", + "properties": { + "availability_zone": { + "description": "AZ", + "type": "string" + }, + "consistencygroup_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "imageRef": { + "description": "Image UUID", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "multiattach": { + "description": "Multi-attach", + "type": "boolean" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "size": { + "description": "Size in GiB", + "example": 1, + "minimum": 1, + "type": "integer" + }, + "snapshot_id": { + "description": "Snapshot UUID", + "format": "uuid", + "type": "string" + }, + "source_volid": { + "description": "Source volume UUID", + "format": "uuid", + "type": "string" + }, + "volume_type": { + "description": "Volume type name", + "type": "string" + } + }, + "required": [ + "size" + ], + "type": "object" + } + }, + "required": [ + "volume" + ], + "type": "object" + }, + "volume_patch": { + "description": "", + "properties": { + "volume": { + "description": "", + "properties": { + "availability_zone": { + "description": "AZ", + "type": "string" + }, + "consistencygroup_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "imageRef": { + "description": "Image UUID", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "multiattach": { + "description": "Multi-attach", + "type": "boolean" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "size": { + "description": "Size in GiB", + "example": 1, + "minimum": 1, + "type": "integer" + }, + "snapshot_id": { + "description": "Snapshot UUID", + "format": "uuid", + "type": "string" + }, + "source_volid": { + "description": "Source volume UUID", + "format": "uuid", + "type": "string" + }, + "volume_type": { + "description": "Volume type name", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "volume" + ], + "type": "object" + }, + "volume_tenant_create": { + "description": "", + "properties": { + "volume": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "volume_tenant", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "volume" + ], + "type": "object" + }, + "volume_tenant_patch": { + "description": "", + "properties": { + "volume": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "volume_tenant", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "volume" + ], + "type": "object" + }, + "volume_tenant_update": { + "description": "", + "properties": { + "volume": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "volume_tenant", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "volume" + ], + "type": "object" + }, + "volume_type_create": { + "description": "", + "properties": { + "volume_type": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "extra_specs": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "os-volume-type-access:is_public": { + "default": true, + "description": "", + "type": "boolean" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "volume_type" + ], + "type": "object" + }, + "volume_type_patch": { + "description": "", + "properties": { + "volume_type": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "extra_specs": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "os-volume-type-access:is_public": { + "default": true, + "description": "", + "type": "boolean" + } + }, + "type": "object" + } + }, + "required": [ + "volume_type" + ], + "type": "object" + }, + "volume_type_update": { + "description": "", + "properties": { + "volume_type": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "extra_specs": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "os-volume-type-access:is_public": { + "default": true, + "description": "", + "type": "boolean" + } + }, + "type": "object" + } + }, + "required": [ + "volume_type" + ], + "type": "object" + }, + "volume_update": { + "description": "", + "properties": { + "volume": { + "description": "", + "properties": { + "availability_zone": { + "description": "AZ", + "type": "string" + }, + "consistencygroup_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "imageRef": { + "description": "Image UUID", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "multiattach": { + "description": "Multi-attach", + "type": "boolean" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "size": { + "description": "Size in GiB", + "example": 1, + "minimum": 1, + "type": "integer" + }, + "snapshot_id": { + "description": "Snapshot UUID", + "format": "uuid", + "type": "string" + }, + "source_volid": { + "description": "Source volume UUID", + "format": "uuid", + "type": "string" + }, + "volume_type": { + "description": "Volume type name", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "volume" + ], + "type": "object" + } + }, + "service": "cinder", + "source": "generated-from-api-ref-catalog" +} diff --git a/contracts/openstack/request_bodies/cloudkitty.json b/contracts/openstack/request_bodies/cloudkitty.json new file mode 100644 index 0000000..04a0542 --- /dev/null +++ b/contracts/openstack/request_bodies/cloudkitty.json @@ -0,0 +1,2612 @@ +{ + "by_path": { + "PATCH /v1/rating/module_config/hashmap/fields/{id}": { + "description": "", + "properties": { + "field": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "hashmap_field", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "field" + ], + "type": "object" + }, + "PATCH /v1/rating/module_config/hashmap/services/{id}": { + "description": "", + "properties": { + "service": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "service" + ], + "type": "object" + }, + "PATCH /v1/report/summary/{id}": { + "description": "", + "properties": { + "summary": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "report_summary", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "summary" + ], + "type": "object" + }, + "PATCH /v1/storage/dataframes/{id}": { + "description": "", + "properties": { + "dataframe": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "dataframes", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "dataframe" + ], + "type": "object" + }, + "POST /v1/rating/module_config/hashmap/fields": { + "description": "", + "properties": { + "field": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "hashmap_field", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "field" + ], + "type": "object" + }, + "POST /v1/rating/module_config/hashmap/services": { + "description": "", + "properties": { + "service": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "service" + ], + "type": "object" + }, + "POST /v1/report/summary": { + "description": "", + "properties": { + "summary": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "report_summary", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "summary" + ], + "type": "object" + }, + "POST /v1/storage/dataframes": { + "description": "", + "properties": { + "dataframe": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "dataframes", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "dataframe" + ], + "type": "object" + }, + "PUT /v1/rating/module_config/hashmap/fields/{id}": { + "description": "", + "properties": { + "field": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "hashmap_field", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "field" + ], + "type": "object" + }, + "PUT /v1/rating/module_config/hashmap/services/{id}": { + "description": "", + "properties": { + "service": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "service" + ], + "type": "object" + }, + "PUT /v1/report/summary/{id}": { + "description": "", + "properties": { + "summary": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "report_summary", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "summary" + ], + "type": "object" + }, + "PUT /v1/storage/dataframes/{id}": { + "description": "", + "properties": { + "dataframe": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "dataframes", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "dataframe" + ], + "type": "object" + } + }, + "operations": { + "dataframes_create": { + "description": "", + "properties": { + "dataframe": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "dataframes", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "dataframe" + ], + "type": "object" + }, + "dataframes_patch": { + "description": "", + "properties": { + "dataframe": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "dataframes", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "dataframe" + ], + "type": "object" + }, + "dataframes_update": { + "description": "", + "properties": { + "dataframe": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "dataframes", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "dataframe" + ], + "type": "object" + }, + "hashmap_field_create": { + "description": "", + "properties": { + "field": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "hashmap_field", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "field" + ], + "type": "object" + }, + "hashmap_field_patch": { + "description": "", + "properties": { + "field": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "hashmap_field", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "field" + ], + "type": "object" + }, + "hashmap_field_update": { + "description": "", + "properties": { + "field": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "hashmap_field", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "field" + ], + "type": "object" + }, + "hashmap_service_create": { + "description": "", + "properties": { + "service": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "service" + ], + "type": "object" + }, + "hashmap_service_patch": { + "description": "", + "properties": { + "service": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "service" + ], + "type": "object" + }, + "hashmap_service_update": { + "description": "", + "properties": { + "service": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "service" + ], + "type": "object" + }, + "report_summary_create": { + "description": "", + "properties": { + "summary": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "report_summary", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "summary" + ], + "type": "object" + }, + "report_summary_patch": { + "description": "", + "properties": { + "summary": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "report_summary", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "summary" + ], + "type": "object" + }, + "report_summary_update": { + "description": "", + "properties": { + "summary": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "report_summary", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "summary" + ], + "type": "object" + } + }, + "service": "cloudkitty", + "source": "generated-from-api-ref-catalog" +} diff --git a/contracts/openstack/request_bodies/designate.json b/contracts/openstack/request_bodies/designate.json new file mode 100644 index 0000000..0be60b0 --- /dev/null +++ b/contracts/openstack/request_bodies/designate.json @@ -0,0 +1,3592 @@ +{ + "by_path": { + "PATCH /v2/blacklists/{id}": { + "description": "", + "properties": { + "blacklist": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "blacklist", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "blacklist" + ], + "type": "object" + }, + "PATCH /v2/pools/{id}": { + "description": "", + "properties": { + "pool": { + "description": "", + "properties": { + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "lb_algorithm": { + "description": "", + "enum": [ + "ROUND_ROBIN", + "LEAST_CONNECTIONS", + "SOURCE_IP" + ], + "example": "ROUND_ROBIN", + "type": "string" + }, + "listener_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "loadbalancer_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "protocol": { + "description": "", + "enum": [ + "HTTP", + "HTTPS", + "TCP", + "UDP", + "PROXY" + ], + "example": "HTTP", + "type": "string" + }, + "session_persistence": { + "description": "", + "properties": { + "cookie_name": { + "description": "", + "type": "string" + }, + "type": { + "description": "", + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "required": [ + "pool" + ], + "type": "object" + }, + "PATCH /v2/service_statuses/{id}": { + "description": "", + "properties": { + "service_statuse": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "service_status", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "service_statuse" + ], + "type": "object" + }, + "PATCH /v2/tlds/{id}": { + "description": "", + "properties": { + "tld": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "tld", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "tld" + ], + "type": "object" + }, + "PATCH /v2/zones/{id}": { + "description": "", + "properties": { + "zone": { + "description": "", + "properties": { + "attributes": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "", + "type": "string" + }, + "email": { + "description": "SOA email", + "example": "hostmaster@example.com", + "format": "email", + "type": "string" + }, + "masters": { + "description": "", + "items": { + "description": "Master server", + "type": "string" + }, + "type": "array" + }, + "name": { + "description": "Zone name FQDN", + "example": "example.com.", + "type": "string" + }, + "ttl": { + "description": "TTL seconds", + "example": 3600, + "type": "integer" + }, + "type": { + "description": "Zone type", + "enum": [ + "PRIMARY", + "SECONDARY" + ], + "example": "PRIMARY", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "zone" + ], + "type": "object" + }, + "PATCH /v2/zones/{zone_id}/recordsets/{id}": { + "description": "", + "properties": { + "recordset": { + "description": "", + "properties": { + "description": { + "description": "", + "type": "string" + }, + "name": { + "description": "Recordset name", + "example": "www.example.com.", + "type": "string" + }, + "records": { + "description": "Records", + "items": { + "description": "Record data", + "type": "string" + }, + "type": "array" + }, + "ttl": { + "description": "TTL", + "example": 3600, + "type": "integer" + }, + "type": { + "description": "RR type", + "enum": [ + "A", + "AAAA", + "CNAME", + "MX", + "TXT", + "SRV", + "NS", + "PTR" + ], + "example": "A", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "recordset" + ], + "type": "object" + }, + "POST /v2/blacklists": { + "description": "", + "properties": { + "blacklist": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "blacklist", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "blacklist" + ], + "type": "object" + }, + "POST /v2/pools": { + "description": "", + "properties": { + "pool": { + "description": "", + "properties": { + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "lb_algorithm": { + "description": "", + "enum": [ + "ROUND_ROBIN", + "LEAST_CONNECTIONS", + "SOURCE_IP" + ], + "example": "ROUND_ROBIN", + "type": "string" + }, + "listener_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "loadbalancer_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "protocol": { + "description": "", + "enum": [ + "HTTP", + "HTTPS", + "TCP", + "UDP", + "PROXY" + ], + "example": "HTTP", + "type": "string" + }, + "session_persistence": { + "description": "", + "properties": { + "cookie_name": { + "description": "", + "type": "string" + }, + "type": { + "description": "", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "lb_algorithm", + "protocol" + ], + "type": "object" + } + }, + "required": [ + "pool" + ], + "type": "object" + }, + "POST /v2/service_statuses": { + "description": "", + "properties": { + "service_statuse": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "service_status", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "service_statuse" + ], + "type": "object" + }, + "POST /v2/tlds": { + "description": "", + "properties": { + "tld": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "tld", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "tld" + ], + "type": "object" + }, + "POST /v2/zones": { + "description": "", + "properties": { + "zone": { + "description": "", + "properties": { + "attributes": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "", + "type": "string" + }, + "email": { + "description": "SOA email", + "example": "hostmaster@example.com", + "format": "email", + "type": "string" + }, + "masters": { + "description": "", + "items": { + "description": "Master server", + "type": "string" + }, + "type": "array" + }, + "name": { + "description": "Zone name FQDN", + "example": "example.com.", + "type": "string" + }, + "ttl": { + "description": "TTL seconds", + "example": 3600, + "type": "integer" + }, + "type": { + "description": "Zone type", + "enum": [ + "PRIMARY", + "SECONDARY" + ], + "example": "PRIMARY", + "type": "string" + } + }, + "required": [ + "name", + "email" + ], + "type": "object" + } + }, + "required": [ + "zone" + ], + "type": "object" + }, + "POST /v2/zones/{zone_id}/recordsets": { + "description": "", + "properties": { + "recordset": { + "description": "", + "properties": { + "description": { + "description": "", + "type": "string" + }, + "name": { + "description": "Recordset name", + "example": "www.example.com.", + "type": "string" + }, + "records": { + "description": "Records", + "items": { + "description": "Record data", + "type": "string" + }, + "type": "array" + }, + "ttl": { + "description": "TTL", + "example": 3600, + "type": "integer" + }, + "type": { + "description": "RR type", + "enum": [ + "A", + "AAAA", + "CNAME", + "MX", + "TXT", + "SRV", + "NS", + "PTR" + ], + "example": "A", + "type": "string" + } + }, + "required": [ + "name", + "type", + "records" + ], + "type": "object" + } + }, + "required": [ + "recordset" + ], + "type": "object" + }, + "PUT /v2/blacklists/{id}": { + "description": "", + "properties": { + "blacklist": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "blacklist", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "blacklist" + ], + "type": "object" + }, + "PUT /v2/pools/{id}": { + "description": "", + "properties": { + "pool": { + "description": "", + "properties": { + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "lb_algorithm": { + "description": "", + "enum": [ + "ROUND_ROBIN", + "LEAST_CONNECTIONS", + "SOURCE_IP" + ], + "example": "ROUND_ROBIN", + "type": "string" + }, + "listener_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "loadbalancer_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "protocol": { + "description": "", + "enum": [ + "HTTP", + "HTTPS", + "TCP", + "UDP", + "PROXY" + ], + "example": "HTTP", + "type": "string" + }, + "session_persistence": { + "description": "", + "properties": { + "cookie_name": { + "description": "", + "type": "string" + }, + "type": { + "description": "", + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "required": [ + "pool" + ], + "type": "object" + }, + "PUT /v2/service_statuses/{id}": { + "description": "", + "properties": { + "service_statuse": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "service_status", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "service_statuse" + ], + "type": "object" + }, + "PUT /v2/tlds/{id}": { + "description": "", + "properties": { + "tld": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "tld", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "tld" + ], + "type": "object" + }, + "PUT /v2/zones/{id}": { + "description": "", + "properties": { + "zone": { + "description": "", + "properties": { + "attributes": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "", + "type": "string" + }, + "email": { + "description": "SOA email", + "example": "hostmaster@example.com", + "format": "email", + "type": "string" + }, + "masters": { + "description": "", + "items": { + "description": "Master server", + "type": "string" + }, + "type": "array" + }, + "name": { + "description": "Zone name FQDN", + "example": "example.com.", + "type": "string" + }, + "ttl": { + "description": "TTL seconds", + "example": 3600, + "type": "integer" + }, + "type": { + "description": "Zone type", + "enum": [ + "PRIMARY", + "SECONDARY" + ], + "example": "PRIMARY", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "zone" + ], + "type": "object" + }, + "PUT /v2/zones/{zone_id}/recordsets/{id}": { + "description": "", + "properties": { + "recordset": { + "description": "", + "properties": { + "description": { + "description": "", + "type": "string" + }, + "name": { + "description": "Recordset name", + "example": "www.example.com.", + "type": "string" + }, + "records": { + "description": "Records", + "items": { + "description": "Record data", + "type": "string" + }, + "type": "array" + }, + "ttl": { + "description": "TTL", + "example": 3600, + "type": "integer" + }, + "type": { + "description": "RR type", + "enum": [ + "A", + "AAAA", + "CNAME", + "MX", + "TXT", + "SRV", + "NS", + "PTR" + ], + "example": "A", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "recordset" + ], + "type": "object" + } + }, + "operations": { + "blacklist_create": { + "description": "", + "properties": { + "blacklist": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "blacklist", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "blacklist" + ], + "type": "object" + }, + "blacklist_patch": { + "description": "", + "properties": { + "blacklist": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "blacklist", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "blacklist" + ], + "type": "object" + }, + "blacklist_update": { + "description": "", + "properties": { + "blacklist": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "blacklist", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "blacklist" + ], + "type": "object" + }, + "pool_create": { + "description": "", + "properties": { + "pool": { + "description": "", + "properties": { + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "lb_algorithm": { + "description": "", + "enum": [ + "ROUND_ROBIN", + "LEAST_CONNECTIONS", + "SOURCE_IP" + ], + "example": "ROUND_ROBIN", + "type": "string" + }, + "listener_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "loadbalancer_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "protocol": { + "description": "", + "enum": [ + "HTTP", + "HTTPS", + "TCP", + "UDP", + "PROXY" + ], + "example": "HTTP", + "type": "string" + }, + "session_persistence": { + "description": "", + "properties": { + "cookie_name": { + "description": "", + "type": "string" + }, + "type": { + "description": "", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "lb_algorithm", + "protocol" + ], + "type": "object" + } + }, + "required": [ + "pool" + ], + "type": "object" + }, + "pool_patch": { + "description": "", + "properties": { + "pool": { + "description": "", + "properties": { + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "lb_algorithm": { + "description": "", + "enum": [ + "ROUND_ROBIN", + "LEAST_CONNECTIONS", + "SOURCE_IP" + ], + "example": "ROUND_ROBIN", + "type": "string" + }, + "listener_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "loadbalancer_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "protocol": { + "description": "", + "enum": [ + "HTTP", + "HTTPS", + "TCP", + "UDP", + "PROXY" + ], + "example": "HTTP", + "type": "string" + }, + "session_persistence": { + "description": "", + "properties": { + "cookie_name": { + "description": "", + "type": "string" + }, + "type": { + "description": "", + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "required": [ + "pool" + ], + "type": "object" + }, + "pool_update": { + "description": "", + "properties": { + "pool": { + "description": "", + "properties": { + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "lb_algorithm": { + "description": "", + "enum": [ + "ROUND_ROBIN", + "LEAST_CONNECTIONS", + "SOURCE_IP" + ], + "example": "ROUND_ROBIN", + "type": "string" + }, + "listener_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "loadbalancer_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "protocol": { + "description": "", + "enum": [ + "HTTP", + "HTTPS", + "TCP", + "UDP", + "PROXY" + ], + "example": "HTTP", + "type": "string" + }, + "session_persistence": { + "description": "", + "properties": { + "cookie_name": { + "description": "", + "type": "string" + }, + "type": { + "description": "", + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "required": [ + "pool" + ], + "type": "object" + }, + "recordset_create": { + "description": "", + "properties": { + "recordset": { + "description": "", + "properties": { + "description": { + "description": "", + "type": "string" + }, + "name": { + "description": "Recordset name", + "example": "www.example.com.", + "type": "string" + }, + "records": { + "description": "Records", + "items": { + "description": "Record data", + "type": "string" + }, + "type": "array" + }, + "ttl": { + "description": "TTL", + "example": 3600, + "type": "integer" + }, + "type": { + "description": "RR type", + "enum": [ + "A", + "AAAA", + "CNAME", + "MX", + "TXT", + "SRV", + "NS", + "PTR" + ], + "example": "A", + "type": "string" + } + }, + "required": [ + "name", + "type", + "records" + ], + "type": "object" + } + }, + "required": [ + "recordset" + ], + "type": "object" + }, + "recordset_patch": { + "description": "", + "properties": { + "recordset": { + "description": "", + "properties": { + "description": { + "description": "", + "type": "string" + }, + "name": { + "description": "Recordset name", + "example": "www.example.com.", + "type": "string" + }, + "records": { + "description": "Records", + "items": { + "description": "Record data", + "type": "string" + }, + "type": "array" + }, + "ttl": { + "description": "TTL", + "example": 3600, + "type": "integer" + }, + "type": { + "description": "RR type", + "enum": [ + "A", + "AAAA", + "CNAME", + "MX", + "TXT", + "SRV", + "NS", + "PTR" + ], + "example": "A", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "recordset" + ], + "type": "object" + }, + "recordset_update": { + "description": "", + "properties": { + "recordset": { + "description": "", + "properties": { + "description": { + "description": "", + "type": "string" + }, + "name": { + "description": "Recordset name", + "example": "www.example.com.", + "type": "string" + }, + "records": { + "description": "Records", + "items": { + "description": "Record data", + "type": "string" + }, + "type": "array" + }, + "ttl": { + "description": "TTL", + "example": 3600, + "type": "integer" + }, + "type": { + "description": "RR type", + "enum": [ + "A", + "AAAA", + "CNAME", + "MX", + "TXT", + "SRV", + "NS", + "PTR" + ], + "example": "A", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "recordset" + ], + "type": "object" + }, + "service_status_create": { + "description": "", + "properties": { + "service_statuse": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "service_status", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "service_statuse" + ], + "type": "object" + }, + "service_status_patch": { + "description": "", + "properties": { + "service_statuse": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "service_status", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "service_statuse" + ], + "type": "object" + }, + "service_status_update": { + "description": "", + "properties": { + "service_statuse": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "service_status", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "service_statuse" + ], + "type": "object" + }, + "tld_create": { + "description": "", + "properties": { + "tld": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "tld", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "tld" + ], + "type": "object" + }, + "tld_patch": { + "description": "", + "properties": { + "tld": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "tld", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "tld" + ], + "type": "object" + }, + "tld_update": { + "description": "", + "properties": { + "tld": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "tld", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "tld" + ], + "type": "object" + }, + "zone_create": { + "description": "", + "properties": { + "zone": { + "description": "", + "properties": { + "attributes": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "", + "type": "string" + }, + "email": { + "description": "SOA email", + "example": "hostmaster@example.com", + "format": "email", + "type": "string" + }, + "masters": { + "description": "", + "items": { + "description": "Master server", + "type": "string" + }, + "type": "array" + }, + "name": { + "description": "Zone name FQDN", + "example": "example.com.", + "type": "string" + }, + "ttl": { + "description": "TTL seconds", + "example": 3600, + "type": "integer" + }, + "type": { + "description": "Zone type", + "enum": [ + "PRIMARY", + "SECONDARY" + ], + "example": "PRIMARY", + "type": "string" + } + }, + "required": [ + "name", + "email" + ], + "type": "object" + } + }, + "required": [ + "zone" + ], + "type": "object" + }, + "zone_patch": { + "description": "", + "properties": { + "zone": { + "description": "", + "properties": { + "attributes": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "", + "type": "string" + }, + "email": { + "description": "SOA email", + "example": "hostmaster@example.com", + "format": "email", + "type": "string" + }, + "masters": { + "description": "", + "items": { + "description": "Master server", + "type": "string" + }, + "type": "array" + }, + "name": { + "description": "Zone name FQDN", + "example": "example.com.", + "type": "string" + }, + "ttl": { + "description": "TTL seconds", + "example": 3600, + "type": "integer" + }, + "type": { + "description": "Zone type", + "enum": [ + "PRIMARY", + "SECONDARY" + ], + "example": "PRIMARY", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "zone" + ], + "type": "object" + }, + "zone_update": { + "description": "", + "properties": { + "zone": { + "description": "", + "properties": { + "attributes": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "", + "type": "string" + }, + "email": { + "description": "SOA email", + "example": "hostmaster@example.com", + "format": "email", + "type": "string" + }, + "masters": { + "description": "", + "items": { + "description": "Master server", + "type": "string" + }, + "type": "array" + }, + "name": { + "description": "Zone name FQDN", + "example": "example.com.", + "type": "string" + }, + "ttl": { + "description": "TTL seconds", + "example": 3600, + "type": "integer" + }, + "type": { + "description": "Zone type", + "enum": [ + "PRIMARY", + "SECONDARY" + ], + "example": "PRIMARY", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "zone" + ], + "type": "object" + } + }, + "service": "designate", + "source": "generated-from-api-ref-catalog" +} diff --git a/contracts/openstack/request_bodies/freezer.json b/contracts/openstack/request_bodies/freezer.json new file mode 100644 index 0000000..3a59fed --- /dev/null +++ b/contracts/openstack/request_bodies/freezer.json @@ -0,0 +1,2728 @@ +{ + "by_path": { + "PATCH /v2/actions/{id}": { + "description": "", + "properties": { + "action": { + "description": "", + "properties": { + "action": { + "description": "", + "example": "os-start", + "type": "string" + }, + "name": { + "description": "", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "action" + ], + "type": "object" + }, + "PATCH /v2/backups/{id}": { + "description": "", + "properties": { + "backup": { + "description": "", + "properties": { + "container": { + "description": "", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "force": { + "default": false, + "description": "", + "type": "boolean" + }, + "incremental": { + "default": false, + "description": "", + "type": "boolean" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "snapshot_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "volume_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "backup" + ], + "type": "object" + }, + "PATCH /v2/clients/{id}": { + "description": "", + "properties": { + "client": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "client", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "client" + ], + "type": "object" + }, + "PATCH /v2/jobs/{id}": { + "description": "", + "properties": { + "job": { + "description": "", + "properties": { + "client_id": { + "description": "", + "example": "example-client", + "type": "string" + }, + "description": { + "description": "", + "example": "example", + "type": "string" + }, + "job_actions": { + "description": "", + "items": { + "description": "", + "properties": { + "freezer_action": { + "description": "", + "properties": { + "action": { + "description": "", + "enum": [ + "backup", + "restore" + ], + "example": "backup", + "type": "string" + }, + "container": { + "description": "", + "example": "freezer_backup", + "type": "string" + }, + "mode": { + "description": "", + "example": "fs", + "type": "string" + }, + "path_to_backup": { + "description": "", + "example": "/home", + "type": "string" + }, + "storage": { + "description": "", + "example": "swift", + "type": "string" + } + }, + "type": "object" + }, + "max_retries": { + "description": "", + "example": 3, + "type": "integer" + }, + "max_retries_interval": { + "description": "", + "example": 60, + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "job_schedule": { + "description": "", + "properties": { + "schedule_interval": { + "description": "", + "example": "1 day", + "type": "string" + }, + "schedule_start_date": { + "description": "", + "type": "string" + }, + "status": { + "description": "", + "example": "scheduled", + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "required": [ + "job" + ], + "type": "object" + }, + "PATCH /v2/sessions/{id}": { + "description": "", + "properties": { + "session": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "session", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "session" + ], + "type": "object" + }, + "POST /v2/actions": { + "description": "", + "properties": { + "action": { + "description": "", + "properties": { + "action": { + "description": "", + "example": "os-start", + "type": "string" + }, + "name": { + "description": "", + "type": "string" + } + }, + "required": [ + "action" + ], + "type": "object" + } + }, + "required": [ + "action" + ], + "type": "object" + }, + "POST /v2/backups": { + "description": "", + "properties": { + "backup": { + "description": "", + "properties": { + "container": { + "description": "", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "force": { + "default": false, + "description": "", + "type": "boolean" + }, + "incremental": { + "default": false, + "description": "", + "type": "boolean" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "snapshot_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "volume_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "required": [ + "volume_id" + ], + "type": "object" + } + }, + "required": [ + "backup" + ], + "type": "object" + }, + "POST /v2/clients": { + "description": "", + "properties": { + "client": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "client", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "client" + ], + "type": "object" + }, + "POST /v2/jobs": { + "description": "", + "properties": { + "job": { + "description": "", + "properties": { + "client_id": { + "description": "", + "example": "example-client", + "type": "string" + }, + "description": { + "description": "", + "example": "example", + "type": "string" + }, + "job_actions": { + "description": "", + "items": { + "description": "", + "properties": { + "freezer_action": { + "description": "", + "properties": { + "action": { + "description": "", + "enum": [ + "backup", + "restore" + ], + "example": "backup", + "type": "string" + }, + "container": { + "description": "", + "example": "freezer_backup", + "type": "string" + }, + "mode": { + "description": "", + "example": "fs", + "type": "string" + }, + "path_to_backup": { + "description": "", + "example": "/home", + "type": "string" + }, + "storage": { + "description": "", + "example": "swift", + "type": "string" + } + }, + "type": "object" + }, + "max_retries": { + "description": "", + "example": 3, + "type": "integer" + }, + "max_retries_interval": { + "description": "", + "example": 60, + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "job_schedule": { + "description": "", + "properties": { + "schedule_interval": { + "description": "", + "example": "1 day", + "type": "string" + }, + "schedule_start_date": { + "description": "", + "type": "string" + }, + "status": { + "description": "", + "example": "scheduled", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "job_actions", + "client_id" + ], + "type": "object" + } + }, + "required": [ + "job" + ], + "type": "object" + }, + "POST /v2/sessions": { + "description": "", + "properties": { + "session": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "session", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "session" + ], + "type": "object" + }, + "PUT /v2/actions/{id}": { + "description": "", + "properties": { + "action": { + "description": "", + "properties": { + "action": { + "description": "", + "example": "os-start", + "type": "string" + }, + "name": { + "description": "", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "action" + ], + "type": "object" + }, + "PUT /v2/backups/{id}": { + "description": "", + "properties": { + "backup": { + "description": "", + "properties": { + "container": { + "description": "", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "force": { + "default": false, + "description": "", + "type": "boolean" + }, + "incremental": { + "default": false, + "description": "", + "type": "boolean" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "snapshot_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "volume_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "backup" + ], + "type": "object" + }, + "PUT /v2/clients/{id}": { + "description": "", + "properties": { + "client": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "client", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "client" + ], + "type": "object" + }, + "PUT /v2/jobs/{id}": { + "description": "", + "properties": { + "job": { + "description": "", + "properties": { + "client_id": { + "description": "", + "example": "example-client", + "type": "string" + }, + "description": { + "description": "", + "example": "example", + "type": "string" + }, + "job_actions": { + "description": "", + "items": { + "description": "", + "properties": { + "freezer_action": { + "description": "", + "properties": { + "action": { + "description": "", + "enum": [ + "backup", + "restore" + ], + "example": "backup", + "type": "string" + }, + "container": { + "description": "", + "example": "freezer_backup", + "type": "string" + }, + "mode": { + "description": "", + "example": "fs", + "type": "string" + }, + "path_to_backup": { + "description": "", + "example": "/home", + "type": "string" + }, + "storage": { + "description": "", + "example": "swift", + "type": "string" + } + }, + "type": "object" + }, + "max_retries": { + "description": "", + "example": 3, + "type": "integer" + }, + "max_retries_interval": { + "description": "", + "example": 60, + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "job_schedule": { + "description": "", + "properties": { + "schedule_interval": { + "description": "", + "example": "1 day", + "type": "string" + }, + "schedule_start_date": { + "description": "", + "type": "string" + }, + "status": { + "description": "", + "example": "scheduled", + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "required": [ + "job" + ], + "type": "object" + }, + "PUT /v2/sessions/{id}": { + "description": "", + "properties": { + "session": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "session", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "session" + ], + "type": "object" + } + }, + "operations": { + "action_create": { + "description": "", + "properties": { + "action": { + "description": "", + "properties": { + "action": { + "description": "", + "example": "os-start", + "type": "string" + }, + "name": { + "description": "", + "type": "string" + } + }, + "required": [ + "action" + ], + "type": "object" + } + }, + "required": [ + "action" + ], + "type": "object" + }, + "action_patch": { + "description": "", + "properties": { + "action": { + "description": "", + "properties": { + "action": { + "description": "", + "example": "os-start", + "type": "string" + }, + "name": { + "description": "", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "action" + ], + "type": "object" + }, + "action_update": { + "description": "", + "properties": { + "action": { + "description": "", + "properties": { + "action": { + "description": "", + "example": "os-start", + "type": "string" + }, + "name": { + "description": "", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "action" + ], + "type": "object" + }, + "backup_create": { + "description": "", + "properties": { + "backup": { + "description": "", + "properties": { + "container": { + "description": "", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "force": { + "default": false, + "description": "", + "type": "boolean" + }, + "incremental": { + "default": false, + "description": "", + "type": "boolean" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "snapshot_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "volume_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "required": [ + "volume_id" + ], + "type": "object" + } + }, + "required": [ + "backup" + ], + "type": "object" + }, + "backup_patch": { + "description": "", + "properties": { + "backup": { + "description": "", + "properties": { + "container": { + "description": "", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "force": { + "default": false, + "description": "", + "type": "boolean" + }, + "incremental": { + "default": false, + "description": "", + "type": "boolean" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "snapshot_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "volume_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "backup" + ], + "type": "object" + }, + "backup_update": { + "description": "", + "properties": { + "backup": { + "description": "", + "properties": { + "container": { + "description": "", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "force": { + "default": false, + "description": "", + "type": "boolean" + }, + "incremental": { + "default": false, + "description": "", + "type": "boolean" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "snapshot_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "volume_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "backup" + ], + "type": "object" + }, + "client_create": { + "description": "", + "properties": { + "client": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "client", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "client" + ], + "type": "object" + }, + "client_patch": { + "description": "", + "properties": { + "client": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "client", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "client" + ], + "type": "object" + }, + "client_update": { + "description": "", + "properties": { + "client": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "client", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "client" + ], + "type": "object" + }, + "job_create": { + "description": "", + "properties": { + "job": { + "description": "", + "properties": { + "client_id": { + "description": "", + "example": "example-client", + "type": "string" + }, + "description": { + "description": "", + "example": "example", + "type": "string" + }, + "job_actions": { + "description": "", + "items": { + "description": "", + "properties": { + "freezer_action": { + "description": "", + "properties": { + "action": { + "description": "", + "enum": [ + "backup", + "restore" + ], + "example": "backup", + "type": "string" + }, + "container": { + "description": "", + "example": "freezer_backup", + "type": "string" + }, + "mode": { + "description": "", + "example": "fs", + "type": "string" + }, + "path_to_backup": { + "description": "", + "example": "/home", + "type": "string" + }, + "storage": { + "description": "", + "example": "swift", + "type": "string" + } + }, + "type": "object" + }, + "max_retries": { + "description": "", + "example": 3, + "type": "integer" + }, + "max_retries_interval": { + "description": "", + "example": 60, + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "job_schedule": { + "description": "", + "properties": { + "schedule_interval": { + "description": "", + "example": "1 day", + "type": "string" + }, + "schedule_start_date": { + "description": "", + "type": "string" + }, + "status": { + "description": "", + "example": "scheduled", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "job_actions", + "client_id" + ], + "type": "object" + } + }, + "required": [ + "job" + ], + "type": "object" + }, + "job_patch": { + "description": "", + "properties": { + "job": { + "description": "", + "properties": { + "client_id": { + "description": "", + "example": "example-client", + "type": "string" + }, + "description": { + "description": "", + "example": "example", + "type": "string" + }, + "job_actions": { + "description": "", + "items": { + "description": "", + "properties": { + "freezer_action": { + "description": "", + "properties": { + "action": { + "description": "", + "enum": [ + "backup", + "restore" + ], + "example": "backup", + "type": "string" + }, + "container": { + "description": "", + "example": "freezer_backup", + "type": "string" + }, + "mode": { + "description": "", + "example": "fs", + "type": "string" + }, + "path_to_backup": { + "description": "", + "example": "/home", + "type": "string" + }, + "storage": { + "description": "", + "example": "swift", + "type": "string" + } + }, + "type": "object" + }, + "max_retries": { + "description": "", + "example": 3, + "type": "integer" + }, + "max_retries_interval": { + "description": "", + "example": 60, + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "job_schedule": { + "description": "", + "properties": { + "schedule_interval": { + "description": "", + "example": "1 day", + "type": "string" + }, + "schedule_start_date": { + "description": "", + "type": "string" + }, + "status": { + "description": "", + "example": "scheduled", + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "required": [ + "job" + ], + "type": "object" + }, + "job_update": { + "description": "", + "properties": { + "job": { + "description": "", + "properties": { + "client_id": { + "description": "", + "example": "example-client", + "type": "string" + }, + "description": { + "description": "", + "example": "example", + "type": "string" + }, + "job_actions": { + "description": "", + "items": { + "description": "", + "properties": { + "freezer_action": { + "description": "", + "properties": { + "action": { + "description": "", + "enum": [ + "backup", + "restore" + ], + "example": "backup", + "type": "string" + }, + "container": { + "description": "", + "example": "freezer_backup", + "type": "string" + }, + "mode": { + "description": "", + "example": "fs", + "type": "string" + }, + "path_to_backup": { + "description": "", + "example": "/home", + "type": "string" + }, + "storage": { + "description": "", + "example": "swift", + "type": "string" + } + }, + "type": "object" + }, + "max_retries": { + "description": "", + "example": 3, + "type": "integer" + }, + "max_retries_interval": { + "description": "", + "example": 60, + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "job_schedule": { + "description": "", + "properties": { + "schedule_interval": { + "description": "", + "example": "1 day", + "type": "string" + }, + "schedule_start_date": { + "description": "", + "type": "string" + }, + "status": { + "description": "", + "example": "scheduled", + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "required": [ + "job" + ], + "type": "object" + }, + "session_create": { + "description": "", + "properties": { + "session": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "session", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "session" + ], + "type": "object" + }, + "session_patch": { + "description": "", + "properties": { + "session": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "session", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "session" + ], + "type": "object" + }, + "session_update": { + "description": "", + "properties": { + "session": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "session", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "session" + ], + "type": "object" + } + }, + "service": "freezer", + "source": "generated-from-api-ref-catalog" +} diff --git a/contracts/openstack/request_bodies/glance.json b/contracts/openstack/request_bodies/glance.json new file mode 100644 index 0000000..cfd960a --- /dev/null +++ b/contracts/openstack/request_bodies/glance.json @@ -0,0 +1,4458 @@ +{ + "by_path": { + "PATCH /v2/images/{id}": { + "description": "", + "properties": { + "image": { + "description": "", + "properties": { + "architecture": { + "description": "CPU architecture", + "type": "string" + }, + "container_format": { + "description": "Container format", + "enum": [ + "bare", + "ovf", + "aki", + "ari", + "ami", + "ova", + "docker" + ], + "example": "bare", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "disk_format": { + "description": "Disk format", + "enum": [ + "raw", + "qcow2", + "vmdk", + "vdi", + "iso", + "aki", + "ari", + "ami" + ], + "example": "qcow2", + "type": "string" + }, + "min_disk": { + "description": "Min disk GiB", + "example": 0, + "minimum": 0, + "type": "integer" + }, + "min_ram": { + "description": "Min RAM MiB", + "example": 0, + "minimum": 0, + "type": "integer" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "os_type": { + "description": "OS type", + "type": "string" + }, + "protected": { + "description": "Protected", + "type": "boolean" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "visibility": { + "description": "Visibility", + "enum": [ + "public", + "private", + "shared", + "community" + ], + "example": "private", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "image" + ], + "type": "object" + }, + "PATCH /v2/images/{image_id}/members/{id}": { + "description": "", + "properties": { + "member": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "image_member", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "member" + ], + "type": "object" + }, + "PATCH /v2/images/{image_id}/tags/{id}": { + "description": "", + "properties": { + "tag": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "image_tag", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "tag" + ], + "type": "object" + }, + "PATCH /v2/metadefs/namespaces/{id}": { + "description": "", + "properties": { + "namespace": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "metadef_namespace", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "namespace" + ], + "type": "object" + }, + "PATCH /v2/tasks/{id}": { + "description": "", + "properties": { + "task": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "task", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "task" + ], + "type": "object" + }, + "POST /v2/images": { + "description": "", + "properties": { + "image": { + "description": "", + "properties": { + "architecture": { + "description": "CPU architecture", + "type": "string" + }, + "container_format": { + "description": "Container format", + "enum": [ + "bare", + "ovf", + "aki", + "ari", + "ami", + "ova", + "docker" + ], + "example": "bare", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "disk_format": { + "description": "Disk format", + "enum": [ + "raw", + "qcow2", + "vmdk", + "vdi", + "iso", + "aki", + "ari", + "ami" + ], + "example": "qcow2", + "type": "string" + }, + "min_disk": { + "description": "Min disk GiB", + "example": 0, + "minimum": 0, + "type": "integer" + }, + "min_ram": { + "description": "Min RAM MiB", + "example": 0, + "minimum": 0, + "type": "integer" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "os_type": { + "description": "OS type", + "type": "string" + }, + "protected": { + "description": "Protected", + "type": "boolean" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "visibility": { + "description": "Visibility", + "enum": [ + "public", + "private", + "shared", + "community" + ], + "example": "private", + "type": "string" + } + }, + "required": [ + "name", + "container_format", + "disk_format" + ], + "type": "object" + } + }, + "required": [ + "image" + ], + "type": "object" + }, + "POST /v2/images/{id}/actions/deactivate": { + "description": "", + "properties": { + "image": { + "description": "", + "properties": { + "architecture": { + "description": "CPU architecture", + "type": "string" + }, + "container_format": { + "description": "Container format", + "enum": [ + "bare", + "ovf", + "aki", + "ari", + "ami", + "ova", + "docker" + ], + "example": "bare", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "disk_format": { + "description": "Disk format", + "enum": [ + "raw", + "qcow2", + "vmdk", + "vdi", + "iso", + "aki", + "ari", + "ami" + ], + "example": "qcow2", + "type": "string" + }, + "min_disk": { + "description": "Min disk GiB", + "example": 0, + "minimum": 0, + "type": "integer" + }, + "min_ram": { + "description": "Min RAM MiB", + "example": 0, + "minimum": 0, + "type": "integer" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "os_type": { + "description": "OS type", + "type": "string" + }, + "protected": { + "description": "Protected", + "type": "boolean" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "visibility": { + "description": "Visibility", + "enum": [ + "public", + "private", + "shared", + "community" + ], + "example": "private", + "type": "string" + } + }, + "required": [ + "name", + "container_format", + "disk_format" + ], + "type": "object" + } + }, + "type": "object" + }, + "POST /v2/images/{id}/actions/reactivate": { + "description": "", + "properties": { + "image": { + "description": "", + "properties": { + "architecture": { + "description": "CPU architecture", + "type": "string" + }, + "container_format": { + "description": "Container format", + "enum": [ + "bare", + "ovf", + "aki", + "ari", + "ami", + "ova", + "docker" + ], + "example": "bare", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "disk_format": { + "description": "Disk format", + "enum": [ + "raw", + "qcow2", + "vmdk", + "vdi", + "iso", + "aki", + "ari", + "ami" + ], + "example": "qcow2", + "type": "string" + }, + "min_disk": { + "description": "Min disk GiB", + "example": 0, + "minimum": 0, + "type": "integer" + }, + "min_ram": { + "description": "Min RAM MiB", + "example": 0, + "minimum": 0, + "type": "integer" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "os_type": { + "description": "OS type", + "type": "string" + }, + "protected": { + "description": "Protected", + "type": "boolean" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "visibility": { + "description": "Visibility", + "enum": [ + "public", + "private", + "shared", + "community" + ], + "example": "private", + "type": "string" + } + }, + "required": [ + "name", + "container_format", + "disk_format" + ], + "type": "object" + } + }, + "type": "object" + }, + "POST /v2/images/{image_id}/members": { + "description": "", + "properties": { + "member": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "image_member", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "member" + ], + "type": "object" + }, + "POST /v2/images/{image_id}/tags": { + "description": "", + "properties": { + "tag": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "image_tag", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "tag" + ], + "type": "object" + }, + "POST /v2/metadefs/namespaces": { + "description": "", + "properties": { + "namespace": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "metadef_namespace", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "namespace" + ], + "type": "object" + }, + "POST /v2/tasks": { + "description": "", + "properties": { + "task": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "task", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "task" + ], + "type": "object" + }, + "PUT /v2/images/{id}": { + "description": "", + "properties": { + "image": { + "description": "", + "properties": { + "architecture": { + "description": "CPU architecture", + "type": "string" + }, + "container_format": { + "description": "Container format", + "enum": [ + "bare", + "ovf", + "aki", + "ari", + "ami", + "ova", + "docker" + ], + "example": "bare", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "disk_format": { + "description": "Disk format", + "enum": [ + "raw", + "qcow2", + "vmdk", + "vdi", + "iso", + "aki", + "ari", + "ami" + ], + "example": "qcow2", + "type": "string" + }, + "min_disk": { + "description": "Min disk GiB", + "example": 0, + "minimum": 0, + "type": "integer" + }, + "min_ram": { + "description": "Min RAM MiB", + "example": 0, + "minimum": 0, + "type": "integer" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "os_type": { + "description": "OS type", + "type": "string" + }, + "protected": { + "description": "Protected", + "type": "boolean" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "visibility": { + "description": "Visibility", + "enum": [ + "public", + "private", + "shared", + "community" + ], + "example": "private", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "image" + ], + "type": "object" + }, + "PUT /v2/images/{id}/file": { + "description": "", + "properties": { + "image": { + "description": "", + "properties": { + "architecture": { + "description": "CPU architecture", + "type": "string" + }, + "container_format": { + "description": "Container format", + "enum": [ + "bare", + "ovf", + "aki", + "ari", + "ami", + "ova", + "docker" + ], + "example": "bare", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "disk_format": { + "description": "Disk format", + "enum": [ + "raw", + "qcow2", + "vmdk", + "vdi", + "iso", + "aki", + "ari", + "ami" + ], + "example": "qcow2", + "type": "string" + }, + "min_disk": { + "description": "Min disk GiB", + "example": 0, + "minimum": 0, + "type": "integer" + }, + "min_ram": { + "description": "Min RAM MiB", + "example": 0, + "minimum": 0, + "type": "integer" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "os_type": { + "description": "OS type", + "type": "string" + }, + "protected": { + "description": "Protected", + "type": "boolean" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "visibility": { + "description": "Visibility", + "enum": [ + "public", + "private", + "shared", + "community" + ], + "example": "private", + "type": "string" + } + }, + "required": [ + "name", + "container_format", + "disk_format" + ], + "type": "object" + } + }, + "type": "object" + }, + "PUT /v2/images/{image_id}/members/{id}": { + "description": "", + "properties": { + "member": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "image_member", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "member" + ], + "type": "object" + }, + "PUT /v2/images/{image_id}/tags/{id}": { + "description": "", + "properties": { + "tag": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "image_tag", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "tag" + ], + "type": "object" + }, + "PUT /v2/metadefs/namespaces/{id}": { + "description": "", + "properties": { + "namespace": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "metadef_namespace", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "namespace" + ], + "type": "object" + }, + "PUT /v2/tasks/{id}": { + "description": "", + "properties": { + "task": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "task", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "task" + ], + "type": "object" + } + }, + "operations": { + "image_create": { + "description": "", + "properties": { + "image": { + "description": "", + "properties": { + "architecture": { + "description": "CPU architecture", + "type": "string" + }, + "container_format": { + "description": "Container format", + "enum": [ + "bare", + "ovf", + "aki", + "ari", + "ami", + "ova", + "docker" + ], + "example": "bare", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "disk_format": { + "description": "Disk format", + "enum": [ + "raw", + "qcow2", + "vmdk", + "vdi", + "iso", + "aki", + "ari", + "ami" + ], + "example": "qcow2", + "type": "string" + }, + "min_disk": { + "description": "Min disk GiB", + "example": 0, + "minimum": 0, + "type": "integer" + }, + "min_ram": { + "description": "Min RAM MiB", + "example": 0, + "minimum": 0, + "type": "integer" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "os_type": { + "description": "OS type", + "type": "string" + }, + "protected": { + "description": "Protected", + "type": "boolean" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "visibility": { + "description": "Visibility", + "enum": [ + "public", + "private", + "shared", + "community" + ], + "example": "private", + "type": "string" + } + }, + "required": [ + "name", + "container_format", + "disk_format" + ], + "type": "object" + } + }, + "required": [ + "image" + ], + "type": "object" + }, + "image_deactivate": { + "description": "", + "properties": { + "image": { + "description": "", + "properties": { + "architecture": { + "description": "CPU architecture", + "type": "string" + }, + "container_format": { + "description": "Container format", + "enum": [ + "bare", + "ovf", + "aki", + "ari", + "ami", + "ova", + "docker" + ], + "example": "bare", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "disk_format": { + "description": "Disk format", + "enum": [ + "raw", + "qcow2", + "vmdk", + "vdi", + "iso", + "aki", + "ari", + "ami" + ], + "example": "qcow2", + "type": "string" + }, + "min_disk": { + "description": "Min disk GiB", + "example": 0, + "minimum": 0, + "type": "integer" + }, + "min_ram": { + "description": "Min RAM MiB", + "example": 0, + "minimum": 0, + "type": "integer" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "os_type": { + "description": "OS type", + "type": "string" + }, + "protected": { + "description": "Protected", + "type": "boolean" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "visibility": { + "description": "Visibility", + "enum": [ + "public", + "private", + "shared", + "community" + ], + "example": "private", + "type": "string" + } + }, + "required": [ + "name", + "container_format", + "disk_format" + ], + "type": "object" + } + }, + "type": "object" + }, + "image_member_create": { + "description": "", + "properties": { + "member": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "image_member", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "member" + ], + "type": "object" + }, + "image_member_patch": { + "description": "", + "properties": { + "member": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "image_member", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "member" + ], + "type": "object" + }, + "image_member_update": { + "description": "", + "properties": { + "member": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "image_member", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "member" + ], + "type": "object" + }, + "image_patch": { + "description": "", + "properties": { + "image": { + "description": "", + "properties": { + "architecture": { + "description": "CPU architecture", + "type": "string" + }, + "container_format": { + "description": "Container format", + "enum": [ + "bare", + "ovf", + "aki", + "ari", + "ami", + "ova", + "docker" + ], + "example": "bare", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "disk_format": { + "description": "Disk format", + "enum": [ + "raw", + "qcow2", + "vmdk", + "vdi", + "iso", + "aki", + "ari", + "ami" + ], + "example": "qcow2", + "type": "string" + }, + "min_disk": { + "description": "Min disk GiB", + "example": 0, + "minimum": 0, + "type": "integer" + }, + "min_ram": { + "description": "Min RAM MiB", + "example": 0, + "minimum": 0, + "type": "integer" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "os_type": { + "description": "OS type", + "type": "string" + }, + "protected": { + "description": "Protected", + "type": "boolean" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "visibility": { + "description": "Visibility", + "enum": [ + "public", + "private", + "shared", + "community" + ], + "example": "private", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "image" + ], + "type": "object" + }, + "image_reactivate": { + "description": "", + "properties": { + "image": { + "description": "", + "properties": { + "architecture": { + "description": "CPU architecture", + "type": "string" + }, + "container_format": { + "description": "Container format", + "enum": [ + "bare", + "ovf", + "aki", + "ari", + "ami", + "ova", + "docker" + ], + "example": "bare", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "disk_format": { + "description": "Disk format", + "enum": [ + "raw", + "qcow2", + "vmdk", + "vdi", + "iso", + "aki", + "ari", + "ami" + ], + "example": "qcow2", + "type": "string" + }, + "min_disk": { + "description": "Min disk GiB", + "example": 0, + "minimum": 0, + "type": "integer" + }, + "min_ram": { + "description": "Min RAM MiB", + "example": 0, + "minimum": 0, + "type": "integer" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "os_type": { + "description": "OS type", + "type": "string" + }, + "protected": { + "description": "Protected", + "type": "boolean" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "visibility": { + "description": "Visibility", + "enum": [ + "public", + "private", + "shared", + "community" + ], + "example": "private", + "type": "string" + } + }, + "required": [ + "name", + "container_format", + "disk_format" + ], + "type": "object" + } + }, + "type": "object" + }, + "image_tag_create": { + "description": "", + "properties": { + "tag": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "image_tag", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "tag" + ], + "type": "object" + }, + "image_tag_patch": { + "description": "", + "properties": { + "tag": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "image_tag", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "tag" + ], + "type": "object" + }, + "image_tag_update": { + "description": "", + "properties": { + "tag": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "image_tag", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "tag" + ], + "type": "object" + }, + "image_update": { + "description": "", + "properties": { + "image": { + "description": "", + "properties": { + "architecture": { + "description": "CPU architecture", + "type": "string" + }, + "container_format": { + "description": "Container format", + "enum": [ + "bare", + "ovf", + "aki", + "ari", + "ami", + "ova", + "docker" + ], + "example": "bare", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "disk_format": { + "description": "Disk format", + "enum": [ + "raw", + "qcow2", + "vmdk", + "vdi", + "iso", + "aki", + "ari", + "ami" + ], + "example": "qcow2", + "type": "string" + }, + "min_disk": { + "description": "Min disk GiB", + "example": 0, + "minimum": 0, + "type": "integer" + }, + "min_ram": { + "description": "Min RAM MiB", + "example": 0, + "minimum": 0, + "type": "integer" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "os_type": { + "description": "OS type", + "type": "string" + }, + "protected": { + "description": "Protected", + "type": "boolean" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "visibility": { + "description": "Visibility", + "enum": [ + "public", + "private", + "shared", + "community" + ], + "example": "private", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "image" + ], + "type": "object" + }, + "image_upload": { + "description": "", + "properties": { + "image": { + "description": "", + "properties": { + "architecture": { + "description": "CPU architecture", + "type": "string" + }, + "container_format": { + "description": "Container format", + "enum": [ + "bare", + "ovf", + "aki", + "ari", + "ami", + "ova", + "docker" + ], + "example": "bare", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "disk_format": { + "description": "Disk format", + "enum": [ + "raw", + "qcow2", + "vmdk", + "vdi", + "iso", + "aki", + "ari", + "ami" + ], + "example": "qcow2", + "type": "string" + }, + "min_disk": { + "description": "Min disk GiB", + "example": 0, + "minimum": 0, + "type": "integer" + }, + "min_ram": { + "description": "Min RAM MiB", + "example": 0, + "minimum": 0, + "type": "integer" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "os_type": { + "description": "OS type", + "type": "string" + }, + "protected": { + "description": "Protected", + "type": "boolean" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "visibility": { + "description": "Visibility", + "enum": [ + "public", + "private", + "shared", + "community" + ], + "example": "private", + "type": "string" + } + }, + "required": [ + "name", + "container_format", + "disk_format" + ], + "type": "object" + } + }, + "type": "object" + }, + "metadef_namespace_create": { + "description": "", + "properties": { + "namespace": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "metadef_namespace", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "namespace" + ], + "type": "object" + }, + "metadef_namespace_patch": { + "description": "", + "properties": { + "namespace": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "metadef_namespace", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "namespace" + ], + "type": "object" + }, + "metadef_namespace_update": { + "description": "", + "properties": { + "namespace": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "metadef_namespace", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "namespace" + ], + "type": "object" + }, + "task_create": { + "description": "", + "properties": { + "task": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "task", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "task" + ], + "type": "object" + }, + "task_patch": { + "description": "", + "properties": { + "task": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "task", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "task" + ], + "type": "object" + }, + "task_update": { + "description": "", + "properties": { + "task": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "task", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "task" + ], + "type": "object" + } + }, + "service": "glance", + "source": "generated-from-api-ref-catalog" +} diff --git a/contracts/openstack/request_bodies/heat-cfn.json b/contracts/openstack/request_bodies/heat-cfn.json new file mode 100644 index 0000000..513e11d --- /dev/null +++ b/contracts/openstack/request_bodies/heat-cfn.json @@ -0,0 +1,356 @@ +{ + "by_path": { + "PATCH /stacks/{id}": { + "description": "", + "properties": { + "Parameters": { + "description": "", + "type": "string" + }, + "StackName": { + "description": "", + "example": "example", + "type": "string" + }, + "TemplateBody": { + "description": "", + "example": "{\"AWSTemplateFormatVersion\":\"2010-09-09\"}", + "type": "string" + }, + "TimeoutInMinutes": { + "description": "", + "example": 60, + "type": "integer" + } + }, + "required": [ + "StackName", + "TemplateBody" + ], + "type": "object" + }, + "POST /": { + "description": "", + "properties": { + "stack": { + "description": "", + "properties": { + "disable_rollback": { + "default": true, + "description": "Disable rollback", + "type": "boolean" + }, + "environment": { + "description": "", + "properties": {}, + "type": "object" + }, + "files": { + "description": "", + "properties": {}, + "type": "object" + }, + "parameters": { + "description": "Stack parameters", + "properties": {}, + "type": "object" + }, + "stack_name": { + "description": "Stack name", + "example": "example", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "template": { + "description": "", + "properties": { + "description": { + "description": "", + "type": "string" + }, + "heat_template_version": { + "description": "", + "example": "2015-04-30", + "type": "string" + }, + "parameters": { + "description": "", + "properties": {}, + "type": "object" + }, + "resources": { + "description": "", + "properties": {}, + "type": "object" + } + }, + "required": [ + "heat_template_version" + ], + "type": "object" + }, + "template_url": { + "description": "Template URL", + "format": "uri", + "type": "string" + }, + "timeout_mins": { + "description": "Timeout minutes", + "example": 60, + "type": "integer" + } + }, + "required": [ + "stack_name", + "template" + ], + "type": "object" + } + }, + "type": "object" + }, + "POST /stacks": { + "description": "", + "properties": { + "Parameters": { + "description": "", + "type": "string" + }, + "StackName": { + "description": "", + "example": "example", + "type": "string" + }, + "TemplateBody": { + "description": "", + "example": "{\"AWSTemplateFormatVersion\":\"2010-09-09\"}", + "type": "string" + }, + "TimeoutInMinutes": { + "description": "", + "example": 60, + "type": "integer" + } + }, + "required": [ + "StackName", + "TemplateBody" + ], + "type": "object" + }, + "PUT /stacks/{id}": { + "description": "", + "properties": { + "Parameters": { + "description": "", + "type": "string" + }, + "StackName": { + "description": "", + "example": "example", + "type": "string" + }, + "TemplateBody": { + "description": "", + "example": "{\"AWSTemplateFormatVersion\":\"2010-09-09\"}", + "type": "string" + }, + "TimeoutInMinutes": { + "description": "", + "example": 60, + "type": "integer" + } + }, + "required": [ + "StackName", + "TemplateBody" + ], + "type": "object" + } + }, + "operations": { + "heat_cfn_query": { + "description": "", + "properties": { + "stack": { + "description": "", + "properties": { + "disable_rollback": { + "default": true, + "description": "Disable rollback", + "type": "boolean" + }, + "environment": { + "description": "", + "properties": {}, + "type": "object" + }, + "files": { + "description": "", + "properties": {}, + "type": "object" + }, + "parameters": { + "description": "Stack parameters", + "properties": {}, + "type": "object" + }, + "stack_name": { + "description": "Stack name", + "example": "example", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "template": { + "description": "", + "properties": { + "description": { + "description": "", + "type": "string" + }, + "heat_template_version": { + "description": "", + "example": "2015-04-30", + "type": "string" + }, + "parameters": { + "description": "", + "properties": {}, + "type": "object" + }, + "resources": { + "description": "", + "properties": {}, + "type": "object" + } + }, + "required": [ + "heat_template_version" + ], + "type": "object" + }, + "template_url": { + "description": "Template URL", + "format": "uri", + "type": "string" + }, + "timeout_mins": { + "description": "Timeout minutes", + "example": 60, + "type": "integer" + } + }, + "required": [ + "stack_name", + "template" + ], + "type": "object" + } + }, + "type": "object" + }, + "stack_create": { + "description": "", + "properties": { + "Parameters": { + "description": "", + "type": "string" + }, + "StackName": { + "description": "", + "example": "example", + "type": "string" + }, + "TemplateBody": { + "description": "", + "example": "{\"AWSTemplateFormatVersion\":\"2010-09-09\"}", + "type": "string" + }, + "TimeoutInMinutes": { + "description": "", + "example": 60, + "type": "integer" + } + }, + "required": [ + "StackName", + "TemplateBody" + ], + "type": "object" + }, + "stack_patch": { + "description": "", + "properties": { + "Parameters": { + "description": "", + "type": "string" + }, + "StackName": { + "description": "", + "example": "example", + "type": "string" + }, + "TemplateBody": { + "description": "", + "example": "{\"AWSTemplateFormatVersion\":\"2010-09-09\"}", + "type": "string" + }, + "TimeoutInMinutes": { + "description": "", + "example": 60, + "type": "integer" + } + }, + "required": [ + "StackName", + "TemplateBody" + ], + "type": "object" + }, + "stack_update": { + "description": "", + "properties": { + "Parameters": { + "description": "", + "type": "string" + }, + "StackName": { + "description": "", + "example": "example", + "type": "string" + }, + "TemplateBody": { + "description": "", + "example": "{\"AWSTemplateFormatVersion\":\"2010-09-09\"}", + "type": "string" + }, + "TimeoutInMinutes": { + "description": "", + "example": 60, + "type": "integer" + } + }, + "required": [ + "StackName", + "TemplateBody" + ], + "type": "object" + } + }, + "service": "heat-cfn", + "source": "generated-from-api-ref-catalog" +} diff --git a/contracts/openstack/request_bodies/heat.json b/contracts/openstack/request_bodies/heat.json new file mode 100644 index 0000000..3aa7f43 --- /dev/null +++ b/contracts/openstack/request_bodies/heat.json @@ -0,0 +1,4150 @@ +{ + "by_path": { + "PATCH /v1/{tenant_id}/software_configs/{id}": { + "description": "", + "properties": { + "software_config": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "software_config", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "software_config" + ], + "type": "object" + }, + "PATCH /v1/{tenant_id}/software_deployments/{id}": { + "description": "", + "properties": { + "software_deployment": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "software_deployment", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "software_deployment" + ], + "type": "object" + }, + "PATCH /v1/{tenant_id}/stacks/{id}": { + "description": "", + "properties": { + "stack": { + "description": "", + "properties": { + "disable_rollback": { + "default": true, + "description": "Disable rollback", + "type": "boolean" + }, + "environment": { + "description": "", + "properties": {}, + "type": "object" + }, + "files": { + "description": "", + "properties": {}, + "type": "object" + }, + "parameters": { + "description": "Stack parameters", + "properties": {}, + "type": "object" + }, + "stack_name": { + "description": "Stack name", + "example": "example", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "template": { + "description": "", + "properties": { + "description": { + "description": "", + "type": "string" + }, + "heat_template_version": { + "description": "", + "example": "2015-04-30", + "type": "string" + }, + "parameters": { + "description": "", + "properties": {}, + "type": "object" + }, + "resources": { + "description": "", + "properties": {}, + "type": "object" + } + }, + "required": [ + "heat_template_version" + ], + "type": "object" + }, + "template_url": { + "description": "Template URL", + "format": "uri", + "type": "string" + }, + "timeout_mins": { + "description": "Timeout minutes", + "example": 60, + "type": "integer" + } + }, + "type": "object" + } + }, + "required": [ + "stack" + ], + "type": "object" + }, + "PATCH /v1/{tenant_id}/stacks/{stack_name}/{stack_id}/events/{id}": { + "description": "", + "properties": { + "event": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "stack_event", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "event" + ], + "type": "object" + }, + "PATCH /v1/{tenant_id}/stacks/{stack_name}/{stack_id}/resources/{id}": { + "description": "", + "properties": { + "resource": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "stack_resource", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "resource" + ], + "type": "object" + }, + "POST /v1/{tenant_id}/software_configs": { + "description": "", + "properties": { + "software_config": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "software_config", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "software_config" + ], + "type": "object" + }, + "POST /v1/{tenant_id}/software_deployments": { + "description": "", + "properties": { + "software_deployment": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "software_deployment", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "software_deployment" + ], + "type": "object" + }, + "POST /v1/{tenant_id}/stacks": { + "description": "", + "properties": { + "stack": { + "description": "", + "properties": { + "disable_rollback": { + "default": true, + "description": "Disable rollback", + "type": "boolean" + }, + "environment": { + "description": "", + "properties": {}, + "type": "object" + }, + "files": { + "description": "", + "properties": {}, + "type": "object" + }, + "parameters": { + "description": "Stack parameters", + "properties": {}, + "type": "object" + }, + "stack_name": { + "description": "Stack name", + "example": "example", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "template": { + "description": "", + "properties": { + "description": { + "description": "", + "type": "string" + }, + "heat_template_version": { + "description": "", + "example": "2015-04-30", + "type": "string" + }, + "parameters": { + "description": "", + "properties": {}, + "type": "object" + }, + "resources": { + "description": "", + "properties": {}, + "type": "object" + } + }, + "required": [ + "heat_template_version" + ], + "type": "object" + }, + "template_url": { + "description": "Template URL", + "format": "uri", + "type": "string" + }, + "timeout_mins": { + "description": "Timeout minutes", + "example": 60, + "type": "integer" + } + }, + "required": [ + "stack_name", + "template" + ], + "type": "object" + } + }, + "required": [ + "stack" + ], + "type": "object" + }, + "POST /v1/{tenant_id}/stacks/preview": { + "description": "", + "properties": { + "stack": { + "description": "", + "properties": { + "disable_rollback": { + "default": true, + "description": "Disable rollback", + "type": "boolean" + }, + "environment": { + "description": "", + "properties": {}, + "type": "object" + }, + "files": { + "description": "", + "properties": {}, + "type": "object" + }, + "parameters": { + "description": "Stack parameters", + "properties": {}, + "type": "object" + }, + "stack_name": { + "description": "Stack name", + "example": "example", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "template": { + "description": "", + "properties": { + "description": { + "description": "", + "type": "string" + }, + "heat_template_version": { + "description": "", + "example": "2015-04-30", + "type": "string" + }, + "parameters": { + "description": "", + "properties": {}, + "type": "object" + }, + "resources": { + "description": "", + "properties": {}, + "type": "object" + } + }, + "required": [ + "heat_template_version" + ], + "type": "object" + }, + "template_url": { + "description": "Template URL", + "format": "uri", + "type": "string" + }, + "timeout_mins": { + "description": "Timeout minutes", + "example": 60, + "type": "integer" + } + }, + "required": [ + "stack_name", + "template" + ], + "type": "object" + } + }, + "required": [ + "stack" + ], + "type": "object" + }, + "POST /v1/{tenant_id}/stacks/{stack_name}/{stack_id}/events": { + "description": "", + "properties": { + "event": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "stack_event", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "event" + ], + "type": "object" + }, + "POST /v1/{tenant_id}/stacks/{stack_name}/{stack_id}/resources": { + "description": "", + "properties": { + "resource": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "stack_resource", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "resource" + ], + "type": "object" + }, + "POST /v1/{tenant_id}/validate": { + "description": "", + "properties": { + "template": { + "description": "", + "properties": { + "disable_rollback": { + "default": true, + "description": "Disable rollback", + "type": "boolean" + }, + "environment": { + "description": "", + "properties": {}, + "type": "object" + }, + "files": { + "description": "", + "properties": {}, + "type": "object" + }, + "parameters": { + "description": "Stack parameters", + "properties": {}, + "type": "object" + }, + "stack_name": { + "description": "Stack name", + "example": "example", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "template": { + "description": "", + "properties": { + "description": { + "description": "", + "type": "string" + }, + "heat_template_version": { + "description": "", + "example": "2015-04-30", + "type": "string" + }, + "parameters": { + "description": "", + "properties": {}, + "type": "object" + }, + "resources": { + "description": "", + "properties": {}, + "type": "object" + } + }, + "required": [ + "heat_template_version" + ], + "type": "object" + }, + "template_url": { + "description": "Template URL", + "format": "uri", + "type": "string" + }, + "timeout_mins": { + "description": "Timeout minutes", + "example": 60, + "type": "integer" + } + }, + "required": [ + "stack_name", + "template" + ], + "type": "object" + } + }, + "type": "object" + }, + "PUT /v1/{tenant_id}/software_configs/{id}": { + "description": "", + "properties": { + "software_config": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "software_config", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "software_config" + ], + "type": "object" + }, + "PUT /v1/{tenant_id}/software_deployments/{id}": { + "description": "", + "properties": { + "software_deployment": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "software_deployment", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "software_deployment" + ], + "type": "object" + }, + "PUT /v1/{tenant_id}/stacks/{id}": { + "description": "", + "properties": { + "stack": { + "description": "", + "properties": { + "disable_rollback": { + "default": true, + "description": "Disable rollback", + "type": "boolean" + }, + "environment": { + "description": "", + "properties": {}, + "type": "object" + }, + "files": { + "description": "", + "properties": {}, + "type": "object" + }, + "parameters": { + "description": "Stack parameters", + "properties": {}, + "type": "object" + }, + "stack_name": { + "description": "Stack name", + "example": "example", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "template": { + "description": "", + "properties": { + "description": { + "description": "", + "type": "string" + }, + "heat_template_version": { + "description": "", + "example": "2015-04-30", + "type": "string" + }, + "parameters": { + "description": "", + "properties": {}, + "type": "object" + }, + "resources": { + "description": "", + "properties": {}, + "type": "object" + } + }, + "required": [ + "heat_template_version" + ], + "type": "object" + }, + "template_url": { + "description": "Template URL", + "format": "uri", + "type": "string" + }, + "timeout_mins": { + "description": "Timeout minutes", + "example": 60, + "type": "integer" + } + }, + "type": "object" + } + }, + "required": [ + "stack" + ], + "type": "object" + }, + "PUT /v1/{tenant_id}/stacks/{stack_name}/{stack_id}/events/{id}": { + "description": "", + "properties": { + "event": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "stack_event", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "event" + ], + "type": "object" + }, + "PUT /v1/{tenant_id}/stacks/{stack_name}/{stack_id}/resources/{id}": { + "description": "", + "properties": { + "resource": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "stack_resource", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "resource" + ], + "type": "object" + } + }, + "operations": { + "software_config_create": { + "description": "", + "properties": { + "software_config": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "software_config", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "software_config" + ], + "type": "object" + }, + "software_config_patch": { + "description": "", + "properties": { + "software_config": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "software_config", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "software_config" + ], + "type": "object" + }, + "software_config_update": { + "description": "", + "properties": { + "software_config": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "software_config", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "software_config" + ], + "type": "object" + }, + "software_deployment_create": { + "description": "", + "properties": { + "software_deployment": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "software_deployment", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "software_deployment" + ], + "type": "object" + }, + "software_deployment_patch": { + "description": "", + "properties": { + "software_deployment": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "software_deployment", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "software_deployment" + ], + "type": "object" + }, + "software_deployment_update": { + "description": "", + "properties": { + "software_deployment": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "software_deployment", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "software_deployment" + ], + "type": "object" + }, + "stack_create": { + "description": "", + "properties": { + "stack": { + "description": "", + "properties": { + "disable_rollback": { + "default": true, + "description": "Disable rollback", + "type": "boolean" + }, + "environment": { + "description": "", + "properties": {}, + "type": "object" + }, + "files": { + "description": "", + "properties": {}, + "type": "object" + }, + "parameters": { + "description": "Stack parameters", + "properties": {}, + "type": "object" + }, + "stack_name": { + "description": "Stack name", + "example": "example", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "template": { + "description": "", + "properties": { + "description": { + "description": "", + "type": "string" + }, + "heat_template_version": { + "description": "", + "example": "2015-04-30", + "type": "string" + }, + "parameters": { + "description": "", + "properties": {}, + "type": "object" + }, + "resources": { + "description": "", + "properties": {}, + "type": "object" + } + }, + "required": [ + "heat_template_version" + ], + "type": "object" + }, + "template_url": { + "description": "Template URL", + "format": "uri", + "type": "string" + }, + "timeout_mins": { + "description": "Timeout minutes", + "example": 60, + "type": "integer" + } + }, + "required": [ + "stack_name", + "template" + ], + "type": "object" + } + }, + "required": [ + "stack" + ], + "type": "object" + }, + "stack_event_create": { + "description": "", + "properties": { + "event": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "stack_event", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "event" + ], + "type": "object" + }, + "stack_event_patch": { + "description": "", + "properties": { + "event": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "stack_event", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "event" + ], + "type": "object" + }, + "stack_event_update": { + "description": "", + "properties": { + "event": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "stack_event", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "event" + ], + "type": "object" + }, + "stack_patch": { + "description": "", + "properties": { + "stack": { + "description": "", + "properties": { + "disable_rollback": { + "default": true, + "description": "Disable rollback", + "type": "boolean" + }, + "environment": { + "description": "", + "properties": {}, + "type": "object" + }, + "files": { + "description": "", + "properties": {}, + "type": "object" + }, + "parameters": { + "description": "Stack parameters", + "properties": {}, + "type": "object" + }, + "stack_name": { + "description": "Stack name", + "example": "example", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "template": { + "description": "", + "properties": { + "description": { + "description": "", + "type": "string" + }, + "heat_template_version": { + "description": "", + "example": "2015-04-30", + "type": "string" + }, + "parameters": { + "description": "", + "properties": {}, + "type": "object" + }, + "resources": { + "description": "", + "properties": {}, + "type": "object" + } + }, + "required": [ + "heat_template_version" + ], + "type": "object" + }, + "template_url": { + "description": "Template URL", + "format": "uri", + "type": "string" + }, + "timeout_mins": { + "description": "Timeout minutes", + "example": 60, + "type": "integer" + } + }, + "type": "object" + } + }, + "required": [ + "stack" + ], + "type": "object" + }, + "stack_preview": { + "description": "", + "properties": { + "stack": { + "description": "", + "properties": { + "disable_rollback": { + "default": true, + "description": "Disable rollback", + "type": "boolean" + }, + "environment": { + "description": "", + "properties": {}, + "type": "object" + }, + "files": { + "description": "", + "properties": {}, + "type": "object" + }, + "parameters": { + "description": "Stack parameters", + "properties": {}, + "type": "object" + }, + "stack_name": { + "description": "Stack name", + "example": "example", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "template": { + "description": "", + "properties": { + "description": { + "description": "", + "type": "string" + }, + "heat_template_version": { + "description": "", + "example": "2015-04-30", + "type": "string" + }, + "parameters": { + "description": "", + "properties": {}, + "type": "object" + }, + "resources": { + "description": "", + "properties": {}, + "type": "object" + } + }, + "required": [ + "heat_template_version" + ], + "type": "object" + }, + "template_url": { + "description": "Template URL", + "format": "uri", + "type": "string" + }, + "timeout_mins": { + "description": "Timeout minutes", + "example": 60, + "type": "integer" + } + }, + "required": [ + "stack_name", + "template" + ], + "type": "object" + } + }, + "required": [ + "stack" + ], + "type": "object" + }, + "stack_resource_create": { + "description": "", + "properties": { + "resource": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "stack_resource", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "resource" + ], + "type": "object" + }, + "stack_resource_patch": { + "description": "", + "properties": { + "resource": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "stack_resource", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "resource" + ], + "type": "object" + }, + "stack_resource_update": { + "description": "", + "properties": { + "resource": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "stack_resource", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "resource" + ], + "type": "object" + }, + "stack_update": { + "description": "", + "properties": { + "stack": { + "description": "", + "properties": { + "disable_rollback": { + "default": true, + "description": "Disable rollback", + "type": "boolean" + }, + "environment": { + "description": "", + "properties": {}, + "type": "object" + }, + "files": { + "description": "", + "properties": {}, + "type": "object" + }, + "parameters": { + "description": "Stack parameters", + "properties": {}, + "type": "object" + }, + "stack_name": { + "description": "Stack name", + "example": "example", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "template": { + "description": "", + "properties": { + "description": { + "description": "", + "type": "string" + }, + "heat_template_version": { + "description": "", + "example": "2015-04-30", + "type": "string" + }, + "parameters": { + "description": "", + "properties": {}, + "type": "object" + }, + "resources": { + "description": "", + "properties": {}, + "type": "object" + } + }, + "required": [ + "heat_template_version" + ], + "type": "object" + }, + "template_url": { + "description": "Template URL", + "format": "uri", + "type": "string" + }, + "timeout_mins": { + "description": "Timeout minutes", + "example": 60, + "type": "integer" + } + }, + "type": "object" + } + }, + "required": [ + "stack" + ], + "type": "object" + }, + "template_validate": { + "description": "", + "properties": { + "template": { + "description": "", + "properties": { + "disable_rollback": { + "default": true, + "description": "Disable rollback", + "type": "boolean" + }, + "environment": { + "description": "", + "properties": {}, + "type": "object" + }, + "files": { + "description": "", + "properties": {}, + "type": "object" + }, + "parameters": { + "description": "Stack parameters", + "properties": {}, + "type": "object" + }, + "stack_name": { + "description": "Stack name", + "example": "example", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "template": { + "description": "", + "properties": { + "description": { + "description": "", + "type": "string" + }, + "heat_template_version": { + "description": "", + "example": "2015-04-30", + "type": "string" + }, + "parameters": { + "description": "", + "properties": {}, + "type": "object" + }, + "resources": { + "description": "", + "properties": {}, + "type": "object" + } + }, + "required": [ + "heat_template_version" + ], + "type": "object" + }, + "template_url": { + "description": "Template URL", + "format": "uri", + "type": "string" + }, + "timeout_mins": { + "description": "Timeout minutes", + "example": 60, + "type": "integer" + } + }, + "required": [ + "stack_name", + "template" + ], + "type": "object" + } + }, + "type": "object" + } + }, + "service": "heat", + "source": "generated-from-api-ref-catalog" +} diff --git a/contracts/openstack/request_bodies/ironic.json b/contracts/openstack/request_bodies/ironic.json new file mode 100644 index 0000000..5ca966b --- /dev/null +++ b/contracts/openstack/request_bodies/ironic.json @@ -0,0 +1,6134 @@ +{ + "by_path": { + "PATCH /v1/allocations/{id}": { + "description": "", + "properties": { + "allocation": { + "description": "", + "properties": { + "allocations": { + "description": "Map of resource provider UUID to resources", + "properties": {}, + "type": "object" + }, + "consumer_generation": { + "description": "Consumer generation", + "example": 0, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "user_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "allocation" + ], + "type": "object" + }, + "PATCH /v1/chassis/{id}": { + "description": "", + "properties": { + "chassi": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "chassis", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "chassi" + ], + "type": "object" + }, + "PATCH /v1/deploy_templates/{id}": { + "description": "", + "properties": { + "deploy_template": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "deploy_template", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "deploy_template" + ], + "type": "object" + }, + "PATCH /v1/nodes/{id}": { + "description": "", + "properties": { + "node": { + "description": "", + "properties": { + "boot_interface": { + "description": "", + "type": "string" + }, + "conductor_group": { + "description": "", + "type": "string" + }, + "deploy_interface": { + "description": "", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "driver": { + "description": "", + "example": "ipmi", + "type": "string" + }, + "driver_info": { + "description": "", + "properties": { + "ipmi_address": { + "description": "", + "type": "string" + }, + "ipmi_password": { + "description": "", + "type": "string" + }, + "ipmi_username": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "network_interface": { + "description": "", + "example": "flat", + "type": "string" + }, + "properties": { + "description": "", + "properties": { + "cpus": { + "description": "", + "example": 4, + "type": "integer" + }, + "local_gb": { + "description": "", + "example": 100, + "type": "integer" + }, + "memory_mb": { + "description": "", + "example": 8192, + "type": "integer" + } + }, + "type": "object" + }, + "resource_class": { + "description": "", + "example": "baremetal", + "type": "string" + }, + "storage_interface": { + "description": "", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "node" + ], + "type": "object" + }, + "PATCH /v1/portgroups/{id}": { + "description": "", + "properties": { + "portgroup": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "portgroup", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "portgroup" + ], + "type": "object" + }, + "PATCH /v1/ports/{id}": { + "description": "", + "properties": { + "port": { + "description": "", + "properties": { + "admin_state_up": { + "default": true, + "description": "Administrative state", + "type": "boolean" + }, + "allowed_address_pairs": { + "description": "", + "items": { + "description": "", + "properties": { + "ip_address": { + "description": "", + "type": "string" + }, + "mac_address": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "binding:vnic_type": { + "description": "VNIC type", + "enum": [ + "normal", + "direct", + "macvtap", + "baremetal" + ], + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "device_id": { + "description": "Device UUID", + "format": "uuid", + "type": "string" + }, + "device_owner": { + "description": "Device owner", + "type": "string" + }, + "fixed_ips": { + "description": "Fixed IPs", + "items": { + "description": "", + "properties": { + "ip_address": { + "description": "", + "type": "string" + }, + "subnet_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "mac_address": { + "description": "MAC address", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "network_id": { + "description": "Network UUID", + "format": "uuid", + "type": "string" + }, + "port_security_enabled": { + "description": "Port security", + "type": "boolean" + }, + "security_groups": { + "description": "", + "items": { + "description": "Security group UUID", + "format": "uuid", + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "required": [ + "port" + ], + "type": "object" + }, + "PATCH /v1/volume/connectors/{id}": { + "description": "", + "properties": { + "connector": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "volume_connector", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "connector" + ], + "type": "object" + }, + "PATCH /v1/volume/targets/{id}": { + "description": "", + "properties": { + "target": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "volume_target", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "target" + ], + "type": "object" + }, + "POST /v1/allocations": { + "description": "", + "properties": { + "allocation": { + "description": "", + "properties": { + "allocations": { + "description": "Map of resource provider UUID to resources", + "properties": {}, + "type": "object" + }, + "consumer_generation": { + "description": "Consumer generation", + "example": 0, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "user_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "required": [ + "allocations", + "project_id", + "user_id" + ], + "type": "object" + } + }, + "required": [ + "allocation" + ], + "type": "object" + }, + "POST /v1/chassis": { + "description": "", + "properties": { + "chassi": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "chassis", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "chassi" + ], + "type": "object" + }, + "POST /v1/deploy_templates": { + "description": "", + "properties": { + "deploy_template": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "deploy_template", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "deploy_template" + ], + "type": "object" + }, + "POST /v1/nodes": { + "description": "", + "properties": { + "node": { + "description": "", + "properties": { + "boot_interface": { + "description": "", + "type": "string" + }, + "conductor_group": { + "description": "", + "type": "string" + }, + "deploy_interface": { + "description": "", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "driver": { + "description": "", + "example": "ipmi", + "type": "string" + }, + "driver_info": { + "description": "", + "properties": { + "ipmi_address": { + "description": "", + "type": "string" + }, + "ipmi_password": { + "description": "", + "type": "string" + }, + "ipmi_username": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "network_interface": { + "description": "", + "example": "flat", + "type": "string" + }, + "properties": { + "description": "", + "properties": { + "cpus": { + "description": "", + "example": 4, + "type": "integer" + }, + "local_gb": { + "description": "", + "example": 100, + "type": "integer" + }, + "memory_mb": { + "description": "", + "example": 8192, + "type": "integer" + } + }, + "type": "object" + }, + "resource_class": { + "description": "", + "example": "baremetal", + "type": "string" + }, + "storage_interface": { + "description": "", + "type": "string" + } + }, + "required": [ + "driver" + ], + "type": "object" + } + }, + "required": [ + "node" + ], + "type": "object" + }, + "POST /v1/nodes/{id}/vifs": { + "description": "", + "properties": { + "os-start": { + "description": "Action os-start body (null object)", + "type": "null" + } + }, + "required": [ + "os-start" + ], + "type": "object" + }, + "POST /v1/portgroups": { + "description": "", + "properties": { + "portgroup": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "portgroup", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "portgroup" + ], + "type": "object" + }, + "POST /v1/ports": { + "description": "", + "properties": { + "port": { + "description": "", + "properties": { + "admin_state_up": { + "default": true, + "description": "Administrative state", + "type": "boolean" + }, + "allowed_address_pairs": { + "description": "", + "items": { + "description": "", + "properties": { + "ip_address": { + "description": "", + "type": "string" + }, + "mac_address": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "binding:vnic_type": { + "description": "VNIC type", + "enum": [ + "normal", + "direct", + "macvtap", + "baremetal" + ], + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "device_id": { + "description": "Device UUID", + "format": "uuid", + "type": "string" + }, + "device_owner": { + "description": "Device owner", + "type": "string" + }, + "fixed_ips": { + "description": "Fixed IPs", + "items": { + "description": "", + "properties": { + "ip_address": { + "description": "", + "type": "string" + }, + "subnet_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "mac_address": { + "description": "MAC address", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "network_id": { + "description": "Network UUID", + "format": "uuid", + "type": "string" + }, + "port_security_enabled": { + "description": "Port security", + "type": "boolean" + }, + "security_groups": { + "description": "", + "items": { + "description": "Security group UUID", + "format": "uuid", + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "network_id" + ], + "type": "object" + } + }, + "required": [ + "port" + ], + "type": "object" + }, + "POST /v1/volume/connectors": { + "description": "", + "properties": { + "connector": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "volume_connector", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "connector" + ], + "type": "object" + }, + "POST /v1/volume/targets": { + "description": "", + "properties": { + "target": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "volume_target", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "target" + ], + "type": "object" + }, + "PUT /v1/allocations/{id}": { + "description": "", + "properties": { + "allocation": { + "description": "", + "properties": { + "allocations": { + "description": "Map of resource provider UUID to resources", + "properties": {}, + "type": "object" + }, + "consumer_generation": { + "description": "Consumer generation", + "example": 0, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "user_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "allocation" + ], + "type": "object" + }, + "PUT /v1/chassis/{id}": { + "description": "", + "properties": { + "chassi": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "chassis", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "chassi" + ], + "type": "object" + }, + "PUT /v1/deploy_templates/{id}": { + "description": "", + "properties": { + "deploy_template": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "deploy_template", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "deploy_template" + ], + "type": "object" + }, + "PUT /v1/nodes/{id}": { + "description": "", + "properties": { + "node": { + "description": "", + "properties": { + "boot_interface": { + "description": "", + "type": "string" + }, + "conductor_group": { + "description": "", + "type": "string" + }, + "deploy_interface": { + "description": "", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "driver": { + "description": "", + "example": "ipmi", + "type": "string" + }, + "driver_info": { + "description": "", + "properties": { + "ipmi_address": { + "description": "", + "type": "string" + }, + "ipmi_password": { + "description": "", + "type": "string" + }, + "ipmi_username": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "network_interface": { + "description": "", + "example": "flat", + "type": "string" + }, + "properties": { + "description": "", + "properties": { + "cpus": { + "description": "", + "example": 4, + "type": "integer" + }, + "local_gb": { + "description": "", + "example": 100, + "type": "integer" + }, + "memory_mb": { + "description": "", + "example": 8192, + "type": "integer" + } + }, + "type": "object" + }, + "resource_class": { + "description": "", + "example": "baremetal", + "type": "string" + }, + "storage_interface": { + "description": "", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "node" + ], + "type": "object" + }, + "PUT /v1/nodes/{id}/states/power": { + "description": "", + "properties": { + "node": { + "description": "", + "properties": { + "boot_interface": { + "description": "", + "type": "string" + }, + "conductor_group": { + "description": "", + "type": "string" + }, + "deploy_interface": { + "description": "", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "driver": { + "description": "", + "example": "ipmi", + "type": "string" + }, + "driver_info": { + "description": "", + "properties": { + "ipmi_address": { + "description": "", + "type": "string" + }, + "ipmi_password": { + "description": "", + "type": "string" + }, + "ipmi_username": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "network_interface": { + "description": "", + "example": "flat", + "type": "string" + }, + "properties": { + "description": "", + "properties": { + "cpus": { + "description": "", + "example": 4, + "type": "integer" + }, + "local_gb": { + "description": "", + "example": 100, + "type": "integer" + }, + "memory_mb": { + "description": "", + "example": 8192, + "type": "integer" + } + }, + "type": "object" + }, + "resource_class": { + "description": "", + "example": "baremetal", + "type": "string" + }, + "storage_interface": { + "description": "", + "type": "string" + } + }, + "required": [ + "driver" + ], + "type": "object" + } + }, + "type": "object" + }, + "PUT /v1/nodes/{id}/states/provision": { + "description": "", + "properties": { + "node": { + "description": "", + "properties": { + "boot_interface": { + "description": "", + "type": "string" + }, + "conductor_group": { + "description": "", + "type": "string" + }, + "deploy_interface": { + "description": "", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "driver": { + "description": "", + "example": "ipmi", + "type": "string" + }, + "driver_info": { + "description": "", + "properties": { + "ipmi_address": { + "description": "", + "type": "string" + }, + "ipmi_password": { + "description": "", + "type": "string" + }, + "ipmi_username": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "network_interface": { + "description": "", + "example": "flat", + "type": "string" + }, + "properties": { + "description": "", + "properties": { + "cpus": { + "description": "", + "example": 4, + "type": "integer" + }, + "local_gb": { + "description": "", + "example": 100, + "type": "integer" + }, + "memory_mb": { + "description": "", + "example": 8192, + "type": "integer" + } + }, + "type": "object" + }, + "resource_class": { + "description": "", + "example": "baremetal", + "type": "string" + }, + "storage_interface": { + "description": "", + "type": "string" + } + }, + "required": [ + "driver" + ], + "type": "object" + } + }, + "type": "object" + }, + "PUT /v1/nodes/{id}/states/raid": { + "description": "", + "properties": { + "node": { + "description": "", + "properties": { + "boot_interface": { + "description": "", + "type": "string" + }, + "conductor_group": { + "description": "", + "type": "string" + }, + "deploy_interface": { + "description": "", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "driver": { + "description": "", + "example": "ipmi", + "type": "string" + }, + "driver_info": { + "description": "", + "properties": { + "ipmi_address": { + "description": "", + "type": "string" + }, + "ipmi_password": { + "description": "", + "type": "string" + }, + "ipmi_username": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "network_interface": { + "description": "", + "example": "flat", + "type": "string" + }, + "properties": { + "description": "", + "properties": { + "cpus": { + "description": "", + "example": 4, + "type": "integer" + }, + "local_gb": { + "description": "", + "example": 100, + "type": "integer" + }, + "memory_mb": { + "description": "", + "example": 8192, + "type": "integer" + } + }, + "type": "object" + }, + "resource_class": { + "description": "", + "example": "baremetal", + "type": "string" + }, + "storage_interface": { + "description": "", + "type": "string" + } + }, + "required": [ + "driver" + ], + "type": "object" + } + }, + "type": "object" + }, + "PUT /v1/portgroups/{id}": { + "description": "", + "properties": { + "portgroup": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "portgroup", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "portgroup" + ], + "type": "object" + }, + "PUT /v1/ports/{id}": { + "description": "", + "properties": { + "port": { + "description": "", + "properties": { + "admin_state_up": { + "default": true, + "description": "Administrative state", + "type": "boolean" + }, + "allowed_address_pairs": { + "description": "", + "items": { + "description": "", + "properties": { + "ip_address": { + "description": "", + "type": "string" + }, + "mac_address": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "binding:vnic_type": { + "description": "VNIC type", + "enum": [ + "normal", + "direct", + "macvtap", + "baremetal" + ], + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "device_id": { + "description": "Device UUID", + "format": "uuid", + "type": "string" + }, + "device_owner": { + "description": "Device owner", + "type": "string" + }, + "fixed_ips": { + "description": "Fixed IPs", + "items": { + "description": "", + "properties": { + "ip_address": { + "description": "", + "type": "string" + }, + "subnet_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "mac_address": { + "description": "MAC address", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "network_id": { + "description": "Network UUID", + "format": "uuid", + "type": "string" + }, + "port_security_enabled": { + "description": "Port security", + "type": "boolean" + }, + "security_groups": { + "description": "", + "items": { + "description": "Security group UUID", + "format": "uuid", + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "required": [ + "port" + ], + "type": "object" + }, + "PUT /v1/volume/connectors/{id}": { + "description": "", + "properties": { + "connector": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "volume_connector", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "connector" + ], + "type": "object" + }, + "PUT /v1/volume/targets/{id}": { + "description": "", + "properties": { + "target": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "volume_target", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "target" + ], + "type": "object" + } + }, + "operations": { + "allocation_create": { + "description": "", + "properties": { + "allocation": { + "description": "", + "properties": { + "allocations": { + "description": "Map of resource provider UUID to resources", + "properties": {}, + "type": "object" + }, + "consumer_generation": { + "description": "Consumer generation", + "example": 0, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "user_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "required": [ + "allocations", + "project_id", + "user_id" + ], + "type": "object" + } + }, + "required": [ + "allocation" + ], + "type": "object" + }, + "allocation_patch": { + "description": "", + "properties": { + "allocation": { + "description": "", + "properties": { + "allocations": { + "description": "Map of resource provider UUID to resources", + "properties": {}, + "type": "object" + }, + "consumer_generation": { + "description": "Consumer generation", + "example": 0, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "user_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "allocation" + ], + "type": "object" + }, + "allocation_update": { + "description": "", + "properties": { + "allocation": { + "description": "", + "properties": { + "allocations": { + "description": "Map of resource provider UUID to resources", + "properties": {}, + "type": "object" + }, + "consumer_generation": { + "description": "Consumer generation", + "example": 0, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "user_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "allocation" + ], + "type": "object" + }, + "chassis_create": { + "description": "", + "properties": { + "chassi": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "chassis", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "chassi" + ], + "type": "object" + }, + "chassis_patch": { + "description": "", + "properties": { + "chassi": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "chassis", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "chassi" + ], + "type": "object" + }, + "chassis_update": { + "description": "", + "properties": { + "chassi": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "chassis", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "chassi" + ], + "type": "object" + }, + "deploy_template_create": { + "description": "", + "properties": { + "deploy_template": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "deploy_template", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "deploy_template" + ], + "type": "object" + }, + "deploy_template_patch": { + "description": "", + "properties": { + "deploy_template": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "deploy_template", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "deploy_template" + ], + "type": "object" + }, + "deploy_template_update": { + "description": "", + "properties": { + "deploy_template": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "deploy_template", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "deploy_template" + ], + "type": "object" + }, + "node_action": { + "description": "", + "properties": { + "os-start": { + "description": "Action os-start body (null object)", + "type": "null" + } + }, + "required": [ + "os-start" + ], + "type": "object" + }, + "node_create": { + "description": "", + "properties": { + "node": { + "description": "", + "properties": { + "boot_interface": { + "description": "", + "type": "string" + }, + "conductor_group": { + "description": "", + "type": "string" + }, + "deploy_interface": { + "description": "", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "driver": { + "description": "", + "example": "ipmi", + "type": "string" + }, + "driver_info": { + "description": "", + "properties": { + "ipmi_address": { + "description": "", + "type": "string" + }, + "ipmi_password": { + "description": "", + "type": "string" + }, + "ipmi_username": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "network_interface": { + "description": "", + "example": "flat", + "type": "string" + }, + "properties": { + "description": "", + "properties": { + "cpus": { + "description": "", + "example": 4, + "type": "integer" + }, + "local_gb": { + "description": "", + "example": 100, + "type": "integer" + }, + "memory_mb": { + "description": "", + "example": 8192, + "type": "integer" + } + }, + "type": "object" + }, + "resource_class": { + "description": "", + "example": "baremetal", + "type": "string" + }, + "storage_interface": { + "description": "", + "type": "string" + } + }, + "required": [ + "driver" + ], + "type": "object" + } + }, + "required": [ + "node" + ], + "type": "object" + }, + "node_patch": { + "description": "", + "properties": { + "node": { + "description": "", + "properties": { + "boot_interface": { + "description": "", + "type": "string" + }, + "conductor_group": { + "description": "", + "type": "string" + }, + "deploy_interface": { + "description": "", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "driver": { + "description": "", + "example": "ipmi", + "type": "string" + }, + "driver_info": { + "description": "", + "properties": { + "ipmi_address": { + "description": "", + "type": "string" + }, + "ipmi_password": { + "description": "", + "type": "string" + }, + "ipmi_username": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "network_interface": { + "description": "", + "example": "flat", + "type": "string" + }, + "properties": { + "description": "", + "properties": { + "cpus": { + "description": "", + "example": 4, + "type": "integer" + }, + "local_gb": { + "description": "", + "example": 100, + "type": "integer" + }, + "memory_mb": { + "description": "", + "example": 8192, + "type": "integer" + } + }, + "type": "object" + }, + "resource_class": { + "description": "", + "example": "baremetal", + "type": "string" + }, + "storage_interface": { + "description": "", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "node" + ], + "type": "object" + }, + "node_power_state": { + "description": "", + "properties": { + "node": { + "description": "", + "properties": { + "boot_interface": { + "description": "", + "type": "string" + }, + "conductor_group": { + "description": "", + "type": "string" + }, + "deploy_interface": { + "description": "", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "driver": { + "description": "", + "example": "ipmi", + "type": "string" + }, + "driver_info": { + "description": "", + "properties": { + "ipmi_address": { + "description": "", + "type": "string" + }, + "ipmi_password": { + "description": "", + "type": "string" + }, + "ipmi_username": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "network_interface": { + "description": "", + "example": "flat", + "type": "string" + }, + "properties": { + "description": "", + "properties": { + "cpus": { + "description": "", + "example": 4, + "type": "integer" + }, + "local_gb": { + "description": "", + "example": 100, + "type": "integer" + }, + "memory_mb": { + "description": "", + "example": 8192, + "type": "integer" + } + }, + "type": "object" + }, + "resource_class": { + "description": "", + "example": "baremetal", + "type": "string" + }, + "storage_interface": { + "description": "", + "type": "string" + } + }, + "required": [ + "driver" + ], + "type": "object" + } + }, + "type": "object" + }, + "node_provision_state": { + "description": "", + "properties": { + "node": { + "description": "", + "properties": { + "boot_interface": { + "description": "", + "type": "string" + }, + "conductor_group": { + "description": "", + "type": "string" + }, + "deploy_interface": { + "description": "", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "driver": { + "description": "", + "example": "ipmi", + "type": "string" + }, + "driver_info": { + "description": "", + "properties": { + "ipmi_address": { + "description": "", + "type": "string" + }, + "ipmi_password": { + "description": "", + "type": "string" + }, + "ipmi_username": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "network_interface": { + "description": "", + "example": "flat", + "type": "string" + }, + "properties": { + "description": "", + "properties": { + "cpus": { + "description": "", + "example": 4, + "type": "integer" + }, + "local_gb": { + "description": "", + "example": 100, + "type": "integer" + }, + "memory_mb": { + "description": "", + "example": 8192, + "type": "integer" + } + }, + "type": "object" + }, + "resource_class": { + "description": "", + "example": "baremetal", + "type": "string" + }, + "storage_interface": { + "description": "", + "type": "string" + } + }, + "required": [ + "driver" + ], + "type": "object" + } + }, + "type": "object" + }, + "node_raid_state": { + "description": "", + "properties": { + "node": { + "description": "", + "properties": { + "boot_interface": { + "description": "", + "type": "string" + }, + "conductor_group": { + "description": "", + "type": "string" + }, + "deploy_interface": { + "description": "", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "driver": { + "description": "", + "example": "ipmi", + "type": "string" + }, + "driver_info": { + "description": "", + "properties": { + "ipmi_address": { + "description": "", + "type": "string" + }, + "ipmi_password": { + "description": "", + "type": "string" + }, + "ipmi_username": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "network_interface": { + "description": "", + "example": "flat", + "type": "string" + }, + "properties": { + "description": "", + "properties": { + "cpus": { + "description": "", + "example": 4, + "type": "integer" + }, + "local_gb": { + "description": "", + "example": 100, + "type": "integer" + }, + "memory_mb": { + "description": "", + "example": 8192, + "type": "integer" + } + }, + "type": "object" + }, + "resource_class": { + "description": "", + "example": "baremetal", + "type": "string" + }, + "storage_interface": { + "description": "", + "type": "string" + } + }, + "required": [ + "driver" + ], + "type": "object" + } + }, + "type": "object" + }, + "node_update": { + "description": "", + "properties": { + "node": { + "description": "", + "properties": { + "boot_interface": { + "description": "", + "type": "string" + }, + "conductor_group": { + "description": "", + "type": "string" + }, + "deploy_interface": { + "description": "", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "driver": { + "description": "", + "example": "ipmi", + "type": "string" + }, + "driver_info": { + "description": "", + "properties": { + "ipmi_address": { + "description": "", + "type": "string" + }, + "ipmi_password": { + "description": "", + "type": "string" + }, + "ipmi_username": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "network_interface": { + "description": "", + "example": "flat", + "type": "string" + }, + "properties": { + "description": "", + "properties": { + "cpus": { + "description": "", + "example": 4, + "type": "integer" + }, + "local_gb": { + "description": "", + "example": 100, + "type": "integer" + }, + "memory_mb": { + "description": "", + "example": 8192, + "type": "integer" + } + }, + "type": "object" + }, + "resource_class": { + "description": "", + "example": "baremetal", + "type": "string" + }, + "storage_interface": { + "description": "", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "node" + ], + "type": "object" + }, + "port_create": { + "description": "", + "properties": { + "port": { + "description": "", + "properties": { + "admin_state_up": { + "default": true, + "description": "Administrative state", + "type": "boolean" + }, + "allowed_address_pairs": { + "description": "", + "items": { + "description": "", + "properties": { + "ip_address": { + "description": "", + "type": "string" + }, + "mac_address": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "binding:vnic_type": { + "description": "VNIC type", + "enum": [ + "normal", + "direct", + "macvtap", + "baremetal" + ], + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "device_id": { + "description": "Device UUID", + "format": "uuid", + "type": "string" + }, + "device_owner": { + "description": "Device owner", + "type": "string" + }, + "fixed_ips": { + "description": "Fixed IPs", + "items": { + "description": "", + "properties": { + "ip_address": { + "description": "", + "type": "string" + }, + "subnet_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "mac_address": { + "description": "MAC address", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "network_id": { + "description": "Network UUID", + "format": "uuid", + "type": "string" + }, + "port_security_enabled": { + "description": "Port security", + "type": "boolean" + }, + "security_groups": { + "description": "", + "items": { + "description": "Security group UUID", + "format": "uuid", + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "network_id" + ], + "type": "object" + } + }, + "required": [ + "port" + ], + "type": "object" + }, + "port_patch": { + "description": "", + "properties": { + "port": { + "description": "", + "properties": { + "admin_state_up": { + "default": true, + "description": "Administrative state", + "type": "boolean" + }, + "allowed_address_pairs": { + "description": "", + "items": { + "description": "", + "properties": { + "ip_address": { + "description": "", + "type": "string" + }, + "mac_address": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "binding:vnic_type": { + "description": "VNIC type", + "enum": [ + "normal", + "direct", + "macvtap", + "baremetal" + ], + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "device_id": { + "description": "Device UUID", + "format": "uuid", + "type": "string" + }, + "device_owner": { + "description": "Device owner", + "type": "string" + }, + "fixed_ips": { + "description": "Fixed IPs", + "items": { + "description": "", + "properties": { + "ip_address": { + "description": "", + "type": "string" + }, + "subnet_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "mac_address": { + "description": "MAC address", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "network_id": { + "description": "Network UUID", + "format": "uuid", + "type": "string" + }, + "port_security_enabled": { + "description": "Port security", + "type": "boolean" + }, + "security_groups": { + "description": "", + "items": { + "description": "Security group UUID", + "format": "uuid", + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "required": [ + "port" + ], + "type": "object" + }, + "port_update": { + "description": "", + "properties": { + "port": { + "description": "", + "properties": { + "admin_state_up": { + "default": true, + "description": "Administrative state", + "type": "boolean" + }, + "allowed_address_pairs": { + "description": "", + "items": { + "description": "", + "properties": { + "ip_address": { + "description": "", + "type": "string" + }, + "mac_address": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "binding:vnic_type": { + "description": "VNIC type", + "enum": [ + "normal", + "direct", + "macvtap", + "baremetal" + ], + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "device_id": { + "description": "Device UUID", + "format": "uuid", + "type": "string" + }, + "device_owner": { + "description": "Device owner", + "type": "string" + }, + "fixed_ips": { + "description": "Fixed IPs", + "items": { + "description": "", + "properties": { + "ip_address": { + "description": "", + "type": "string" + }, + "subnet_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "mac_address": { + "description": "MAC address", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "network_id": { + "description": "Network UUID", + "format": "uuid", + "type": "string" + }, + "port_security_enabled": { + "description": "Port security", + "type": "boolean" + }, + "security_groups": { + "description": "", + "items": { + "description": "Security group UUID", + "format": "uuid", + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "required": [ + "port" + ], + "type": "object" + }, + "portgroup_create": { + "description": "", + "properties": { + "portgroup": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "portgroup", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "portgroup" + ], + "type": "object" + }, + "portgroup_patch": { + "description": "", + "properties": { + "portgroup": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "portgroup", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "portgroup" + ], + "type": "object" + }, + "portgroup_update": { + "description": "", + "properties": { + "portgroup": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "portgroup", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "portgroup" + ], + "type": "object" + }, + "volume_connector_create": { + "description": "", + "properties": { + "connector": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "volume_connector", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "connector" + ], + "type": "object" + }, + "volume_connector_patch": { + "description": "", + "properties": { + "connector": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "volume_connector", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "connector" + ], + "type": "object" + }, + "volume_connector_update": { + "description": "", + "properties": { + "connector": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "volume_connector", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "connector" + ], + "type": "object" + }, + "volume_target_create": { + "description": "", + "properties": { + "target": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "volume_target", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "target" + ], + "type": "object" + }, + "volume_target_patch": { + "description": "", + "properties": { + "target": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "volume_target", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "target" + ], + "type": "object" + }, + "volume_target_update": { + "description": "", + "properties": { + "target": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "volume_target", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "target" + ], + "type": "object" + } + }, + "service": "ironic", + "source": "generated-from-api-ref-catalog" +} diff --git a/contracts/openstack/request_bodies/keystone.json b/contracts/openstack/request_bodies/keystone.json new file mode 100644 index 0000000..895d5f6 --- /dev/null +++ b/contracts/openstack/request_bodies/keystone.json @@ -0,0 +1,5630 @@ +{ + "by_path": { + "PATCH /v3/credentials/{id}": { + "description": "", + "properties": { + "credential": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "credential", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "credential" + ], + "type": "object" + }, + "PATCH /v3/domains/{id}": { + "description": "", + "properties": { + "domain": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "domain", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "domain" + ], + "type": "object" + }, + "PATCH /v3/endpoints/{id}": { + "description": "", + "properties": { + "endpoint": { + "description": "", + "properties": { + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "interface": { + "description": "", + "enum": [ + "public", + "internal", + "admin" + ], + "example": "public", + "type": "string" + }, + "region_id": { + "description": "", + "example": "RegionOne", + "type": "string" + }, + "service_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "url": { + "description": "", + "example": "http://127.0.0.1:8774/v2.1", + "format": "uri", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "endpoint" + ], + "type": "object" + }, + "PATCH /v3/groups/{id}": { + "description": "", + "properties": { + "group": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "domain_id": { + "description": "", + "example": "default", + "format": "uuid", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "group" + ], + "type": "object" + }, + "PATCH /v3/policies/{id}": { + "description": "", + "properties": { + "policy": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "policy", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "policy" + ], + "type": "object" + }, + "PATCH /v3/projects/{id}": { + "description": "", + "properties": { + "project": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "domain_id": { + "description": "", + "example": "default", + "format": "uuid", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "is_domain": { + "default": false, + "description": "", + "type": "boolean" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "options": { + "description": "", + "properties": {}, + "type": "object" + }, + "parent_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "required": [ + "project" + ], + "type": "object" + }, + "PATCH /v3/regions/{id}": { + "description": "", + "properties": { + "region": { + "description": "", + "properties": { + "description": { + "description": "", + "type": "string" + }, + "id": { + "description": "", + "example": "RegionOne", + "type": "string" + }, + "parent_region_id": { + "description": "", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "region" + ], + "type": "object" + }, + "PATCH /v3/roles/{id}": { + "description": "", + "properties": { + "role": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "domain_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "options": { + "description": "", + "properties": {}, + "type": "object" + } + }, + "type": "object" + } + }, + "required": [ + "role" + ], + "type": "object" + }, + "PATCH /v3/services/{id}": { + "description": "", + "properties": { + "service": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "type": { + "description": "", + "example": "compute", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "service" + ], + "type": "object" + }, + "PATCH /v3/users/{id}": { + "description": "", + "properties": { + "user": { + "description": "", + "properties": { + "default_project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "domain_id": { + "description": "", + "example": "default", + "format": "uuid", + "type": "string" + }, + "email": { + "description": "", + "format": "email", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "options": { + "description": "", + "properties": {}, + "type": "object" + }, + "password": { + "description": "", + "example": "secret", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "user" + ], + "type": "object" + }, + "PATCH /v3/users/{user_id}/application_credentials/{id}": { + "description": "", + "properties": { + "application_credential": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "application_credential", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "application_credential" + ], + "type": "object" + }, + "POST /v3/auth/tokens": { + "description": "", + "properties": { + "auth": { + "description": "", + "properties": { + "identity": { + "description": "", + "properties": { + "methods": { + "description": "", + "items": { + "description": "", + "example": "password", + "type": "string" + }, + "type": "array" + }, + "password": { + "description": "", + "properties": { + "user": { + "description": "", + "properties": { + "domain": { + "description": "", + "properties": { + "name": { + "description": "", + "example": "Default", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "name": { + "description": "", + "example": "admin", + "type": "string" + }, + "password": { + "description": "", + "example": "secret", + "type": "string" + } + }, + "required": [ + "password" + ], + "type": "object" + } + }, + "type": "object" + }, + "token": { + "description": "", + "properties": { + "id": { + "description": "", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "methods" + ], + "type": "object" + }, + "scope": { + "description": "", + "properties": { + "domain": { + "description": "", + "properties": { + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "name": { + "description": "", + "example": "Default", + "type": "string" + } + }, + "type": "object" + }, + "project": { + "description": "", + "properties": { + "domain": { + "description": "", + "properties": { + "name": { + "description": "", + "example": "Default", + "type": "string" + } + }, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "name": { + "description": "", + "example": "admin", + "type": "string" + } + }, + "type": "object" + }, + "system": { + "description": "", + "properties": { + "all": { + "default": true, + "description": "", + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "required": [ + "identity" + ], + "type": "object" + } + }, + "required": [ + "auth" + ], + "type": "object" + }, + "POST /v3/credentials": { + "description": "", + "properties": { + "credential": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "credential", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "credential" + ], + "type": "object" + }, + "POST /v3/domains": { + "description": "", + "properties": { + "domain": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "domain", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "domain" + ], + "type": "object" + }, + "POST /v3/endpoints": { + "description": "", + "properties": { + "endpoint": { + "description": "", + "properties": { + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "interface": { + "description": "", + "enum": [ + "public", + "internal", + "admin" + ], + "example": "public", + "type": "string" + }, + "region_id": { + "description": "", + "example": "RegionOne", + "type": "string" + }, + "service_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "url": { + "description": "", + "example": "http://127.0.0.1:8774/v2.1", + "format": "uri", + "type": "string" + } + }, + "required": [ + "interface", + "url", + "service_id" + ], + "type": "object" + } + }, + "required": [ + "endpoint" + ], + "type": "object" + }, + "POST /v3/groups": { + "description": "", + "properties": { + "group": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "domain_id": { + "description": "", + "example": "default", + "format": "uuid", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "group" + ], + "type": "object" + }, + "POST /v3/policies": { + "description": "", + "properties": { + "policy": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "policy", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "policy" + ], + "type": "object" + }, + "POST /v3/projects": { + "description": "", + "properties": { + "project": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "domain_id": { + "description": "", + "example": "default", + "format": "uuid", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "is_domain": { + "default": false, + "description": "", + "type": "boolean" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "options": { + "description": "", + "properties": {}, + "type": "object" + }, + "parent_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "project" + ], + "type": "object" + }, + "POST /v3/regions": { + "description": "", + "properties": { + "region": { + "description": "", + "properties": { + "description": { + "description": "", + "type": "string" + }, + "id": { + "description": "", + "example": "RegionOne", + "type": "string" + }, + "parent_region_id": { + "description": "", + "type": "string" + } + }, + "required": [ + "id" + ], + "type": "object" + } + }, + "required": [ + "region" + ], + "type": "object" + }, + "POST /v3/roles": { + "description": "", + "properties": { + "role": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "domain_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "options": { + "description": "", + "properties": {}, + "type": "object" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "role" + ], + "type": "object" + }, + "POST /v3/services": { + "description": "", + "properties": { + "service": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "type": { + "description": "", + "example": "compute", + "type": "string" + } + }, + "required": [ + "name", + "type" + ], + "type": "object" + } + }, + "required": [ + "service" + ], + "type": "object" + }, + "POST /v3/users": { + "description": "", + "properties": { + "user": { + "description": "", + "properties": { + "default_project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "domain_id": { + "description": "", + "example": "default", + "format": "uuid", + "type": "string" + }, + "email": { + "description": "", + "format": "email", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "options": { + "description": "", + "properties": {}, + "type": "object" + }, + "password": { + "description": "", + "example": "secret", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "user" + ], + "type": "object" + }, + "POST /v3/users/{user_id}/application_credentials": { + "description": "", + "properties": { + "application_credential": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "application_credential", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "application_credential" + ], + "type": "object" + }, + "PUT /v3/credentials/{id}": { + "description": "", + "properties": { + "credential": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "credential", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "credential" + ], + "type": "object" + }, + "PUT /v3/domains/{id}": { + "description": "", + "properties": { + "domain": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "domain", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "domain" + ], + "type": "object" + }, + "PUT /v3/endpoints/{id}": { + "description": "", + "properties": { + "endpoint": { + "description": "", + "properties": { + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "interface": { + "description": "", + "enum": [ + "public", + "internal", + "admin" + ], + "example": "public", + "type": "string" + }, + "region_id": { + "description": "", + "example": "RegionOne", + "type": "string" + }, + "service_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "url": { + "description": "", + "example": "http://127.0.0.1:8774/v2.1", + "format": "uri", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "endpoint" + ], + "type": "object" + }, + "PUT /v3/groups/{id}": { + "description": "", + "properties": { + "group": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "domain_id": { + "description": "", + "example": "default", + "format": "uuid", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "group" + ], + "type": "object" + }, + "PUT /v3/policies/{id}": { + "description": "", + "properties": { + "policy": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "policy", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "policy" + ], + "type": "object" + }, + "PUT /v3/projects/{id}": { + "description": "", + "properties": { + "project": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "domain_id": { + "description": "", + "example": "default", + "format": "uuid", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "is_domain": { + "default": false, + "description": "", + "type": "boolean" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "options": { + "description": "", + "properties": {}, + "type": "object" + }, + "parent_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "required": [ + "project" + ], + "type": "object" + }, + "PUT /v3/projects/{project_id}/users/{user_id}/roles/{role_id}": { + "description": "", + "properties": { + "role_assignment": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "role_assignment", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "type": "object" + }, + "PUT /v3/regions/{id}": { + "description": "", + "properties": { + "region": { + "description": "", + "properties": { + "description": { + "description": "", + "type": "string" + }, + "id": { + "description": "", + "example": "RegionOne", + "type": "string" + }, + "parent_region_id": { + "description": "", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "region" + ], + "type": "object" + }, + "PUT /v3/roles/{id}": { + "description": "", + "properties": { + "role": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "domain_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "options": { + "description": "", + "properties": {}, + "type": "object" + } + }, + "type": "object" + } + }, + "required": [ + "role" + ], + "type": "object" + }, + "PUT /v3/services/{id}": { + "description": "", + "properties": { + "service": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "type": { + "description": "", + "example": "compute", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "service" + ], + "type": "object" + }, + "PUT /v3/users/{id}": { + "description": "", + "properties": { + "user": { + "description": "", + "properties": { + "default_project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "domain_id": { + "description": "", + "example": "default", + "format": "uuid", + "type": "string" + }, + "email": { + "description": "", + "format": "email", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "options": { + "description": "", + "properties": {}, + "type": "object" + }, + "password": { + "description": "", + "example": "secret", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "user" + ], + "type": "object" + }, + "PUT /v3/users/{user_id}/application_credentials/{id}": { + "description": "", + "properties": { + "application_credential": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "application_credential", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "application_credential" + ], + "type": "object" + } + }, + "operations": { + "application_credential_create": { + "description": "", + "properties": { + "application_credential": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "application_credential", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "application_credential" + ], + "type": "object" + }, + "application_credential_patch": { + "description": "", + "properties": { + "application_credential": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "application_credential", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "application_credential" + ], + "type": "object" + }, + "application_credential_update": { + "description": "", + "properties": { + "application_credential": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "application_credential", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "application_credential" + ], + "type": "object" + }, + "credential_create": { + "description": "", + "properties": { + "credential": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "credential", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "credential" + ], + "type": "object" + }, + "credential_patch": { + "description": "", + "properties": { + "credential": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "credential", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "credential" + ], + "type": "object" + }, + "credential_update": { + "description": "", + "properties": { + "credential": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "credential", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "credential" + ], + "type": "object" + }, + "domain_create": { + "description": "", + "properties": { + "domain": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "domain", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "domain" + ], + "type": "object" + }, + "domain_patch": { + "description": "", + "properties": { + "domain": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "domain", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "domain" + ], + "type": "object" + }, + "domain_update": { + "description": "", + "properties": { + "domain": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "domain", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "domain" + ], + "type": "object" + }, + "endpoint_create": { + "description": "", + "properties": { + "endpoint": { + "description": "", + "properties": { + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "interface": { + "description": "", + "enum": [ + "public", + "internal", + "admin" + ], + "example": "public", + "type": "string" + }, + "region_id": { + "description": "", + "example": "RegionOne", + "type": "string" + }, + "service_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "url": { + "description": "", + "example": "http://127.0.0.1:8774/v2.1", + "format": "uri", + "type": "string" + } + }, + "required": [ + "interface", + "url", + "service_id" + ], + "type": "object" + } + }, + "required": [ + "endpoint" + ], + "type": "object" + }, + "endpoint_patch": { + "description": "", + "properties": { + "endpoint": { + "description": "", + "properties": { + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "interface": { + "description": "", + "enum": [ + "public", + "internal", + "admin" + ], + "example": "public", + "type": "string" + }, + "region_id": { + "description": "", + "example": "RegionOne", + "type": "string" + }, + "service_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "url": { + "description": "", + "example": "http://127.0.0.1:8774/v2.1", + "format": "uri", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "endpoint" + ], + "type": "object" + }, + "endpoint_update": { + "description": "", + "properties": { + "endpoint": { + "description": "", + "properties": { + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "interface": { + "description": "", + "enum": [ + "public", + "internal", + "admin" + ], + "example": "public", + "type": "string" + }, + "region_id": { + "description": "", + "example": "RegionOne", + "type": "string" + }, + "service_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "url": { + "description": "", + "example": "http://127.0.0.1:8774/v2.1", + "format": "uri", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "endpoint" + ], + "type": "object" + }, + "group_create": { + "description": "", + "properties": { + "group": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "domain_id": { + "description": "", + "example": "default", + "format": "uuid", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "group" + ], + "type": "object" + }, + "group_patch": { + "description": "", + "properties": { + "group": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "domain_id": { + "description": "", + "example": "default", + "format": "uuid", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "group" + ], + "type": "object" + }, + "group_update": { + "description": "", + "properties": { + "group": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "domain_id": { + "description": "", + "example": "default", + "format": "uuid", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "group" + ], + "type": "object" + }, + "keystone_auth_tokens": { + "description": "", + "properties": { + "auth": { + "description": "", + "properties": { + "identity": { + "description": "", + "properties": { + "methods": { + "description": "", + "items": { + "description": "", + "example": "password", + "type": "string" + }, + "type": "array" + }, + "password": { + "description": "", + "properties": { + "user": { + "description": "", + "properties": { + "domain": { + "description": "", + "properties": { + "name": { + "description": "", + "example": "Default", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "name": { + "description": "", + "example": "admin", + "type": "string" + }, + "password": { + "description": "", + "example": "secret", + "type": "string" + } + }, + "required": [ + "password" + ], + "type": "object" + } + }, + "type": "object" + }, + "token": { + "description": "", + "properties": { + "id": { + "description": "", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "methods" + ], + "type": "object" + }, + "scope": { + "description": "", + "properties": { + "domain": { + "description": "", + "properties": { + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "name": { + "description": "", + "example": "Default", + "type": "string" + } + }, + "type": "object" + }, + "project": { + "description": "", + "properties": { + "domain": { + "description": "", + "properties": { + "name": { + "description": "", + "example": "Default", + "type": "string" + } + }, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "name": { + "description": "", + "example": "admin", + "type": "string" + } + }, + "type": "object" + }, + "system": { + "description": "", + "properties": { + "all": { + "default": true, + "description": "", + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "required": [ + "identity" + ], + "type": "object" + } + }, + "required": [ + "auth" + ], + "type": "object" + }, + "keystone_grant_project_role": { + "description": "", + "properties": { + "role_assignment": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "role_assignment", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "type": "object" + }, + "policy_create": { + "description": "", + "properties": { + "policy": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "policy", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "policy" + ], + "type": "object" + }, + "policy_patch": { + "description": "", + "properties": { + "policy": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "policy", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "policy" + ], + "type": "object" + }, + "policy_update": { + "description": "", + "properties": { + "policy": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "policy", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "policy" + ], + "type": "object" + }, + "project_create": { + "description": "", + "properties": { + "project": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "domain_id": { + "description": "", + "example": "default", + "format": "uuid", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "is_domain": { + "default": false, + "description": "", + "type": "boolean" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "options": { + "description": "", + "properties": {}, + "type": "object" + }, + "parent_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "project" + ], + "type": "object" + }, + "project_patch": { + "description": "", + "properties": { + "project": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "domain_id": { + "description": "", + "example": "default", + "format": "uuid", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "is_domain": { + "default": false, + "description": "", + "type": "boolean" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "options": { + "description": "", + "properties": {}, + "type": "object" + }, + "parent_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "required": [ + "project" + ], + "type": "object" + }, + "project_update": { + "description": "", + "properties": { + "project": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "domain_id": { + "description": "", + "example": "default", + "format": "uuid", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "is_domain": { + "default": false, + "description": "", + "type": "boolean" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "options": { + "description": "", + "properties": {}, + "type": "object" + }, + "parent_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "required": [ + "project" + ], + "type": "object" + }, + "region_create": { + "description": "", + "properties": { + "region": { + "description": "", + "properties": { + "description": { + "description": "", + "type": "string" + }, + "id": { + "description": "", + "example": "RegionOne", + "type": "string" + }, + "parent_region_id": { + "description": "", + "type": "string" + } + }, + "required": [ + "id" + ], + "type": "object" + } + }, + "required": [ + "region" + ], + "type": "object" + }, + "region_patch": { + "description": "", + "properties": { + "region": { + "description": "", + "properties": { + "description": { + "description": "", + "type": "string" + }, + "id": { + "description": "", + "example": "RegionOne", + "type": "string" + }, + "parent_region_id": { + "description": "", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "region" + ], + "type": "object" + }, + "region_update": { + "description": "", + "properties": { + "region": { + "description": "", + "properties": { + "description": { + "description": "", + "type": "string" + }, + "id": { + "description": "", + "example": "RegionOne", + "type": "string" + }, + "parent_region_id": { + "description": "", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "region" + ], + "type": "object" + }, + "role_create": { + "description": "", + "properties": { + "role": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "domain_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "options": { + "description": "", + "properties": {}, + "type": "object" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "role" + ], + "type": "object" + }, + "role_patch": { + "description": "", + "properties": { + "role": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "domain_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "options": { + "description": "", + "properties": {}, + "type": "object" + } + }, + "type": "object" + } + }, + "required": [ + "role" + ], + "type": "object" + }, + "role_update": { + "description": "", + "properties": { + "role": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "domain_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "options": { + "description": "", + "properties": {}, + "type": "object" + } + }, + "type": "object" + } + }, + "required": [ + "role" + ], + "type": "object" + }, + "service_create": { + "description": "", + "properties": { + "service": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "type": { + "description": "", + "example": "compute", + "type": "string" + } + }, + "required": [ + "name", + "type" + ], + "type": "object" + } + }, + "required": [ + "service" + ], + "type": "object" + }, + "service_patch": { + "description": "", + "properties": { + "service": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "type": { + "description": "", + "example": "compute", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "service" + ], + "type": "object" + }, + "service_update": { + "description": "", + "properties": { + "service": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "type": { + "description": "", + "example": "compute", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "service" + ], + "type": "object" + }, + "user_create": { + "description": "", + "properties": { + "user": { + "description": "", + "properties": { + "default_project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "domain_id": { + "description": "", + "example": "default", + "format": "uuid", + "type": "string" + }, + "email": { + "description": "", + "format": "email", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "options": { + "description": "", + "properties": {}, + "type": "object" + }, + "password": { + "description": "", + "example": "secret", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "user" + ], + "type": "object" + }, + "user_patch": { + "description": "", + "properties": { + "user": { + "description": "", + "properties": { + "default_project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "domain_id": { + "description": "", + "example": "default", + "format": "uuid", + "type": "string" + }, + "email": { + "description": "", + "format": "email", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "options": { + "description": "", + "properties": {}, + "type": "object" + }, + "password": { + "description": "", + "example": "secret", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "user" + ], + "type": "object" + }, + "user_update": { + "description": "", + "properties": { + "user": { + "description": "", + "properties": { + "default_project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "domain_id": { + "description": "", + "example": "default", + "format": "uuid", + "type": "string" + }, + "email": { + "description": "", + "format": "email", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "options": { + "description": "", + "properties": {}, + "type": "object" + }, + "password": { + "description": "", + "example": "secret", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "user" + ], + "type": "object" + } + }, + "service": "keystone", + "source": "generated-from-api-ref-catalog" +} diff --git a/contracts/openstack/request_bodies/magnum.json b/contracts/openstack/request_bodies/magnum.json new file mode 100644 index 0000000..836697e --- /dev/null +++ b/contracts/openstack/request_bodies/magnum.json @@ -0,0 +1,2836 @@ +{ + "by_path": { + "PATCH /v1/certificates/{id}": { + "description": "", + "properties": { + "certificate": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "certificate", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "certificate" + ], + "type": "object" + }, + "PATCH /v1/clusters/{cluster_id}/nodegroups/{id}": { + "description": "", + "properties": { + "nodegroup": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "nodegroup", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "nodegroup" + ], + "type": "object" + }, + "PATCH /v1/clusters/{id}": { + "description": "", + "properties": { + "cluster": { + "description": "", + "properties": { + "cluster_template_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "docker_volume_size": { + "description": "", + "example": 5, + "type": "integer" + }, + "flavor_id": { + "description": "", + "type": "string" + }, + "keypair": { + "description": "Keypair name", + "type": "string" + }, + "labels": { + "description": "", + "properties": {}, + "type": "object" + }, + "master_count": { + "description": "", + "example": 1, + "type": "integer" + }, + "master_flavor_id": { + "description": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "node_count": { + "description": "", + "example": 1, + "type": "integer" + } + }, + "type": "object" + } + }, + "required": [ + "cluster" + ], + "type": "object" + }, + "PATCH /v1/clustertemplates/{id}": { + "description": "", + "properties": { + "clustertemplate": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "clustertemplate", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "clustertemplate" + ], + "type": "object" + }, + "POST /v1/certificates": { + "description": "", + "properties": { + "certificate": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "certificate", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "certificate" + ], + "type": "object" + }, + "POST /v1/clusters": { + "description": "", + "properties": { + "cluster": { + "description": "", + "properties": { + "cluster_template_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "docker_volume_size": { + "description": "", + "example": 5, + "type": "integer" + }, + "flavor_id": { + "description": "", + "type": "string" + }, + "keypair": { + "description": "Keypair name", + "type": "string" + }, + "labels": { + "description": "", + "properties": {}, + "type": "object" + }, + "master_count": { + "description": "", + "example": 1, + "type": "integer" + }, + "master_flavor_id": { + "description": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "node_count": { + "description": "", + "example": 1, + "type": "integer" + } + }, + "required": [ + "name", + "cluster_template_id" + ], + "type": "object" + } + }, + "required": [ + "cluster" + ], + "type": "object" + }, + "POST /v1/clusters/{cluster_id}/nodegroups": { + "description": "", + "properties": { + "nodegroup": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "nodegroup", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "nodegroup" + ], + "type": "object" + }, + "POST /v1/clustertemplates": { + "description": "", + "properties": { + "clustertemplate": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "clustertemplate", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "clustertemplate" + ], + "type": "object" + }, + "PUT /v1/certificates/{id}": { + "description": "", + "properties": { + "certificate": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "certificate", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "certificate" + ], + "type": "object" + }, + "PUT /v1/clusters/{cluster_id}/nodegroups/{id}": { + "description": "", + "properties": { + "nodegroup": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "nodegroup", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "nodegroup" + ], + "type": "object" + }, + "PUT /v1/clusters/{id}": { + "description": "", + "properties": { + "cluster": { + "description": "", + "properties": { + "cluster_template_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "docker_volume_size": { + "description": "", + "example": 5, + "type": "integer" + }, + "flavor_id": { + "description": "", + "type": "string" + }, + "keypair": { + "description": "Keypair name", + "type": "string" + }, + "labels": { + "description": "", + "properties": {}, + "type": "object" + }, + "master_count": { + "description": "", + "example": 1, + "type": "integer" + }, + "master_flavor_id": { + "description": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "node_count": { + "description": "", + "example": 1, + "type": "integer" + } + }, + "type": "object" + } + }, + "required": [ + "cluster" + ], + "type": "object" + }, + "PUT /v1/clustertemplates/{id}": { + "description": "", + "properties": { + "clustertemplate": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "clustertemplate", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "clustertemplate" + ], + "type": "object" + } + }, + "operations": { + "certificate_create": { + "description": "", + "properties": { + "certificate": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "certificate", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "certificate" + ], + "type": "object" + }, + "certificate_patch": { + "description": "", + "properties": { + "certificate": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "certificate", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "certificate" + ], + "type": "object" + }, + "certificate_update": { + "description": "", + "properties": { + "certificate": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "certificate", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "certificate" + ], + "type": "object" + }, + "cluster_create": { + "description": "", + "properties": { + "cluster": { + "description": "", + "properties": { + "cluster_template_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "docker_volume_size": { + "description": "", + "example": 5, + "type": "integer" + }, + "flavor_id": { + "description": "", + "type": "string" + }, + "keypair": { + "description": "Keypair name", + "type": "string" + }, + "labels": { + "description": "", + "properties": {}, + "type": "object" + }, + "master_count": { + "description": "", + "example": 1, + "type": "integer" + }, + "master_flavor_id": { + "description": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "node_count": { + "description": "", + "example": 1, + "type": "integer" + } + }, + "required": [ + "name", + "cluster_template_id" + ], + "type": "object" + } + }, + "required": [ + "cluster" + ], + "type": "object" + }, + "cluster_patch": { + "description": "", + "properties": { + "cluster": { + "description": "", + "properties": { + "cluster_template_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "docker_volume_size": { + "description": "", + "example": 5, + "type": "integer" + }, + "flavor_id": { + "description": "", + "type": "string" + }, + "keypair": { + "description": "Keypair name", + "type": "string" + }, + "labels": { + "description": "", + "properties": {}, + "type": "object" + }, + "master_count": { + "description": "", + "example": 1, + "type": "integer" + }, + "master_flavor_id": { + "description": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "node_count": { + "description": "", + "example": 1, + "type": "integer" + } + }, + "type": "object" + } + }, + "required": [ + "cluster" + ], + "type": "object" + }, + "cluster_update": { + "description": "", + "properties": { + "cluster": { + "description": "", + "properties": { + "cluster_template_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "docker_volume_size": { + "description": "", + "example": 5, + "type": "integer" + }, + "flavor_id": { + "description": "", + "type": "string" + }, + "keypair": { + "description": "Keypair name", + "type": "string" + }, + "labels": { + "description": "", + "properties": {}, + "type": "object" + }, + "master_count": { + "description": "", + "example": 1, + "type": "integer" + }, + "master_flavor_id": { + "description": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "node_count": { + "description": "", + "example": 1, + "type": "integer" + } + }, + "type": "object" + } + }, + "required": [ + "cluster" + ], + "type": "object" + }, + "clustertemplate_create": { + "description": "", + "properties": { + "clustertemplate": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "clustertemplate", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "clustertemplate" + ], + "type": "object" + }, + "clustertemplate_patch": { + "description": "", + "properties": { + "clustertemplate": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "clustertemplate", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "clustertemplate" + ], + "type": "object" + }, + "clustertemplate_update": { + "description": "", + "properties": { + "clustertemplate": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "clustertemplate", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "clustertemplate" + ], + "type": "object" + }, + "nodegroup_create": { + "description": "", + "properties": { + "nodegroup": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "nodegroup", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "nodegroup" + ], + "type": "object" + }, + "nodegroup_patch": { + "description": "", + "properties": { + "nodegroup": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "nodegroup", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "nodegroup" + ], + "type": "object" + }, + "nodegroup_update": { + "description": "", + "properties": { + "nodegroup": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "nodegroup", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "nodegroup" + ], + "type": "object" + } + }, + "service": "magnum", + "source": "generated-from-api-ref-catalog" +} diff --git a/contracts/openstack/request_bodies/manila.json b/contracts/openstack/request_bodies/manila.json new file mode 100644 index 0000000..71e7e12 --- /dev/null +++ b/contracts/openstack/request_bodies/manila.json @@ -0,0 +1,5018 @@ +{ + "by_path": { + "PATCH /v2/security-services/{id}": { + "description": "", + "properties": { + "security_service": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "security_service", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "security_service" + ], + "type": "object" + }, + "PATCH /v2/share-groups/{id}": { + "description": "", + "properties": { + "share_group": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "share_group", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "share_group" + ], + "type": "object" + }, + "PATCH /v2/share-networks/{id}": { + "description": "", + "properties": { + "share_network": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "neutron_net_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "neutron_subnet_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "share_network" + ], + "type": "object" + }, + "PATCH /v2/share-replicas/{id}": { + "description": "", + "properties": { + "share_replica": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "share_replica", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "share_replica" + ], + "type": "object" + }, + "PATCH /v2/share-servers/{id}": { + "description": "", + "properties": { + "share_server": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "share_server", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "share_server" + ], + "type": "object" + }, + "PATCH /v2/shares/{id}": { + "description": "", + "properties": { + "share": { + "description": "", + "properties": { + "availability_zone": { + "description": "", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "is_public": { + "default": false, + "description": "", + "type": "boolean" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "share_network_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "share_proto": { + "description": "", + "enum": [ + "NFS", + "CIFS", + "GlusterFS", + "HDFS", + "CephFS" + ], + "example": "NFS", + "type": "string" + }, + "share_type": { + "description": "", + "type": "string" + }, + "size": { + "description": "Size GiB", + "example": 1, + "minimum": 1, + "type": "integer" + }, + "snapshot_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "share" + ], + "type": "object" + }, + "PATCH /v2/snapshots/{id}": { + "description": "", + "properties": { + "snapshot": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "share_snapshot", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "snapshot" + ], + "type": "object" + }, + "PATCH /v2/types/{id}": { + "description": "", + "properties": { + "share_type": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "extra_specs": { + "description": "", + "properties": { + "driver_handles_share_servers": { + "default": false, + "description": "", + "type": "boolean" + } + }, + "type": "object" + }, + "is_public": { + "default": true, + "description": "", + "type": "boolean" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "share_type" + ], + "type": "object" + }, + "POST /v2/security-services": { + "description": "", + "properties": { + "security_service": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "security_service", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "security_service" + ], + "type": "object" + }, + "POST /v2/share-groups": { + "description": "", + "properties": { + "share_group": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "share_group", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "share_group" + ], + "type": "object" + }, + "POST /v2/share-networks": { + "description": "", + "properties": { + "share_network": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "neutron_net_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "neutron_subnet_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "share_network" + ], + "type": "object" + }, + "POST /v2/share-replicas": { + "description": "", + "properties": { + "share_replica": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "share_replica", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "share_replica" + ], + "type": "object" + }, + "POST /v2/share-servers": { + "description": "", + "properties": { + "share_server": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "share_server", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "share_server" + ], + "type": "object" + }, + "POST /v2/shares": { + "description": "", + "properties": { + "share": { + "description": "", + "properties": { + "availability_zone": { + "description": "", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "is_public": { + "default": false, + "description": "", + "type": "boolean" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "share_network_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "share_proto": { + "description": "", + "enum": [ + "NFS", + "CIFS", + "GlusterFS", + "HDFS", + "CephFS" + ], + "example": "NFS", + "type": "string" + }, + "share_type": { + "description": "", + "type": "string" + }, + "size": { + "description": "Size GiB", + "example": 1, + "minimum": 1, + "type": "integer" + }, + "snapshot_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "required": [ + "size", + "share_proto" + ], + "type": "object" + } + }, + "required": [ + "share" + ], + "type": "object" + }, + "POST /v2/shares/{id}/action": { + "description": "", + "properties": { + "os-start": { + "description": "Action os-start body (null object)", + "type": "null" + } + }, + "required": [ + "os-start" + ], + "type": "object" + }, + "POST /v2/snapshots": { + "description": "", + "properties": { + "snapshot": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "share_snapshot", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "snapshot" + ], + "type": "object" + }, + "POST /v2/types": { + "description": "", + "properties": { + "share_type": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "extra_specs": { + "description": "", + "properties": { + "driver_handles_share_servers": { + "default": false, + "description": "", + "type": "boolean" + } + }, + "type": "object" + }, + "is_public": { + "default": true, + "description": "", + "type": "boolean" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + } + }, + "required": [ + "name", + "extra_specs" + ], + "type": "object" + } + }, + "required": [ + "share_type" + ], + "type": "object" + }, + "PUT /v2/security-services/{id}": { + "description": "", + "properties": { + "security_service": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "security_service", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "security_service" + ], + "type": "object" + }, + "PUT /v2/share-groups/{id}": { + "description": "", + "properties": { + "share_group": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "share_group", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "share_group" + ], + "type": "object" + }, + "PUT /v2/share-networks/{id}": { + "description": "", + "properties": { + "share_network": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "neutron_net_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "neutron_subnet_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "share_network" + ], + "type": "object" + }, + "PUT /v2/share-replicas/{id}": { + "description": "", + "properties": { + "share_replica": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "share_replica", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "share_replica" + ], + "type": "object" + }, + "PUT /v2/share-servers/{id}": { + "description": "", + "properties": { + "share_server": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "share_server", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "share_server" + ], + "type": "object" + }, + "PUT /v2/shares/{id}": { + "description": "", + "properties": { + "share": { + "description": "", + "properties": { + "availability_zone": { + "description": "", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "is_public": { + "default": false, + "description": "", + "type": "boolean" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "share_network_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "share_proto": { + "description": "", + "enum": [ + "NFS", + "CIFS", + "GlusterFS", + "HDFS", + "CephFS" + ], + "example": "NFS", + "type": "string" + }, + "share_type": { + "description": "", + "type": "string" + }, + "size": { + "description": "Size GiB", + "example": 1, + "minimum": 1, + "type": "integer" + }, + "snapshot_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "share" + ], + "type": "object" + }, + "PUT /v2/snapshots/{id}": { + "description": "", + "properties": { + "snapshot": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "share_snapshot", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "snapshot" + ], + "type": "object" + }, + "PUT /v2/types/{id}": { + "description": "", + "properties": { + "share_type": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "extra_specs": { + "description": "", + "properties": { + "driver_handles_share_servers": { + "default": false, + "description": "", + "type": "boolean" + } + }, + "type": "object" + }, + "is_public": { + "default": true, + "description": "", + "type": "boolean" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "share_type" + ], + "type": "object" + } + }, + "operations": { + "security_service_create": { + "description": "", + "properties": { + "security_service": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "security_service", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "security_service" + ], + "type": "object" + }, + "security_service_patch": { + "description": "", + "properties": { + "security_service": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "security_service", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "security_service" + ], + "type": "object" + }, + "security_service_update": { + "description": "", + "properties": { + "security_service": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "security_service", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "security_service" + ], + "type": "object" + }, + "share_action": { + "description": "", + "properties": { + "os-start": { + "description": "Action os-start body (null object)", + "type": "null" + } + }, + "required": [ + "os-start" + ], + "type": "object" + }, + "share_create": { + "description": "", + "properties": { + "share": { + "description": "", + "properties": { + "availability_zone": { + "description": "", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "is_public": { + "default": false, + "description": "", + "type": "boolean" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "share_network_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "share_proto": { + "description": "", + "enum": [ + "NFS", + "CIFS", + "GlusterFS", + "HDFS", + "CephFS" + ], + "example": "NFS", + "type": "string" + }, + "share_type": { + "description": "", + "type": "string" + }, + "size": { + "description": "Size GiB", + "example": 1, + "minimum": 1, + "type": "integer" + }, + "snapshot_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "required": [ + "size", + "share_proto" + ], + "type": "object" + } + }, + "required": [ + "share" + ], + "type": "object" + }, + "share_group_create": { + "description": "", + "properties": { + "share_group": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "share_group", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "share_group" + ], + "type": "object" + }, + "share_group_patch": { + "description": "", + "properties": { + "share_group": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "share_group", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "share_group" + ], + "type": "object" + }, + "share_group_update": { + "description": "", + "properties": { + "share_group": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "share_group", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "share_group" + ], + "type": "object" + }, + "share_network_create": { + "description": "", + "properties": { + "share_network": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "neutron_net_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "neutron_subnet_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "share_network" + ], + "type": "object" + }, + "share_network_patch": { + "description": "", + "properties": { + "share_network": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "neutron_net_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "neutron_subnet_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "share_network" + ], + "type": "object" + }, + "share_network_update": { + "description": "", + "properties": { + "share_network": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "neutron_net_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "neutron_subnet_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "share_network" + ], + "type": "object" + }, + "share_patch": { + "description": "", + "properties": { + "share": { + "description": "", + "properties": { + "availability_zone": { + "description": "", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "is_public": { + "default": false, + "description": "", + "type": "boolean" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "share_network_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "share_proto": { + "description": "", + "enum": [ + "NFS", + "CIFS", + "GlusterFS", + "HDFS", + "CephFS" + ], + "example": "NFS", + "type": "string" + }, + "share_type": { + "description": "", + "type": "string" + }, + "size": { + "description": "Size GiB", + "example": 1, + "minimum": 1, + "type": "integer" + }, + "snapshot_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "share" + ], + "type": "object" + }, + "share_replica_create": { + "description": "", + "properties": { + "share_replica": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "share_replica", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "share_replica" + ], + "type": "object" + }, + "share_replica_patch": { + "description": "", + "properties": { + "share_replica": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "share_replica", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "share_replica" + ], + "type": "object" + }, + "share_replica_update": { + "description": "", + "properties": { + "share_replica": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "share_replica", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "share_replica" + ], + "type": "object" + }, + "share_server_create": { + "description": "", + "properties": { + "share_server": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "share_server", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "share_server" + ], + "type": "object" + }, + "share_server_patch": { + "description": "", + "properties": { + "share_server": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "share_server", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "share_server" + ], + "type": "object" + }, + "share_server_update": { + "description": "", + "properties": { + "share_server": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "share_server", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "share_server" + ], + "type": "object" + }, + "share_snapshot_create": { + "description": "", + "properties": { + "snapshot": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "share_snapshot", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "snapshot" + ], + "type": "object" + }, + "share_snapshot_patch": { + "description": "", + "properties": { + "snapshot": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "share_snapshot", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "snapshot" + ], + "type": "object" + }, + "share_snapshot_update": { + "description": "", + "properties": { + "snapshot": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "share_snapshot", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "snapshot" + ], + "type": "object" + }, + "share_type_create": { + "description": "", + "properties": { + "share_type": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "extra_specs": { + "description": "", + "properties": { + "driver_handles_share_servers": { + "default": false, + "description": "", + "type": "boolean" + } + }, + "type": "object" + }, + "is_public": { + "default": true, + "description": "", + "type": "boolean" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + } + }, + "required": [ + "name", + "extra_specs" + ], + "type": "object" + } + }, + "required": [ + "share_type" + ], + "type": "object" + }, + "share_type_patch": { + "description": "", + "properties": { + "share_type": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "extra_specs": { + "description": "", + "properties": { + "driver_handles_share_servers": { + "default": false, + "description": "", + "type": "boolean" + } + }, + "type": "object" + }, + "is_public": { + "default": true, + "description": "", + "type": "boolean" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "share_type" + ], + "type": "object" + }, + "share_type_update": { + "description": "", + "properties": { + "share_type": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "extra_specs": { + "description": "", + "properties": { + "driver_handles_share_servers": { + "default": false, + "description": "", + "type": "boolean" + } + }, + "type": "object" + }, + "is_public": { + "default": true, + "description": "", + "type": "boolean" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "share_type" + ], + "type": "object" + }, + "share_update": { + "description": "", + "properties": { + "share": { + "description": "", + "properties": { + "availability_zone": { + "description": "", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "is_public": { + "default": false, + "description": "", + "type": "boolean" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "share_network_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "share_proto": { + "description": "", + "enum": [ + "NFS", + "CIFS", + "GlusterFS", + "HDFS", + "CephFS" + ], + "example": "NFS", + "type": "string" + }, + "share_type": { + "description": "", + "type": "string" + }, + "size": { + "description": "Size GiB", + "example": 1, + "minimum": 1, + "type": "integer" + }, + "snapshot_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "share" + ], + "type": "object" + } + }, + "service": "manila", + "source": "generated-from-api-ref-catalog" +} diff --git a/contracts/openstack/request_bodies/masakari.json b/contracts/openstack/request_bodies/masakari.json new file mode 100644 index 0000000..6b76be0 --- /dev/null +++ b/contracts/openstack/request_bodies/masakari.json @@ -0,0 +1,834 @@ +{ + "by_path": { + "PATCH /v1/notifications/{id}": { + "description": "", + "properties": { + "notification": { + "description": "", + "properties": { + "generated_time": { + "description": "", + "example": "2026-01-01T00:00:00Z", + "type": "string" + }, + "hostname": { + "description": "", + "example": "compute-1", + "type": "string" + }, + "payload": { + "description": "", + "properties": { + "event": { + "description": "", + "type": "string" + }, + "instance_uuid": { + "description": "", + "format": "uuid", + "type": "string" + }, + "vir_domain_event": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "source_host_uuid": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "enum": [ + "VM", + "PROCESS", + "COMPUTE_HOST" + ], + "example": "VM", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "notification" + ], + "type": "object" + }, + "PATCH /v1/segments/{id}": { + "description": "", + "properties": { + "segment": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "recovery_method": { + "description": "", + "enum": [ + "auto", + "reserved_host", + "auto_priority", + "rh_priority" + ], + "example": "auto", + "type": "string" + }, + "service_type": { + "description": "", + "enum": [ + "compute" + ], + "example": "compute", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "segment" + ], + "type": "object" + }, + "PATCH /v1/segments/{segment_id}/hosts/{id}": { + "description": "", + "properties": { + "host": { + "description": "", + "properties": { + "extra_capabilities": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "", + "example": "example", + "type": "string" + }, + "reservable": { + "default": true, + "description": "", + "type": "boolean" + } + }, + "type": "object" + } + }, + "required": [ + "host" + ], + "type": "object" + }, + "POST /v1/notifications": { + "description": "", + "properties": { + "notification": { + "description": "", + "properties": { + "generated_time": { + "description": "", + "example": "2026-01-01T00:00:00Z", + "type": "string" + }, + "hostname": { + "description": "", + "example": "compute-1", + "type": "string" + }, + "payload": { + "description": "", + "properties": { + "event": { + "description": "", + "type": "string" + }, + "instance_uuid": { + "description": "", + "format": "uuid", + "type": "string" + }, + "vir_domain_event": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "source_host_uuid": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "enum": [ + "VM", + "PROCESS", + "COMPUTE_HOST" + ], + "example": "VM", + "type": "string" + } + }, + "required": [ + "type", + "hostname", + "generated_time", + "payload" + ], + "type": "object" + } + }, + "required": [ + "notification" + ], + "type": "object" + }, + "POST /v1/segments": { + "description": "", + "properties": { + "segment": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "recovery_method": { + "description": "", + "enum": [ + "auto", + "reserved_host", + "auto_priority", + "rh_priority" + ], + "example": "auto", + "type": "string" + }, + "service_type": { + "description": "", + "enum": [ + "compute" + ], + "example": "compute", + "type": "string" + } + }, + "required": [ + "name", + "recovery_method", + "service_type" + ], + "type": "object" + } + }, + "required": [ + "segment" + ], + "type": "object" + }, + "POST /v1/segments/{segment_id}/hosts": { + "description": "", + "properties": { + "host": { + "description": "", + "properties": { + "extra_capabilities": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "", + "example": "example", + "type": "string" + }, + "reservable": { + "default": true, + "description": "", + "type": "boolean" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "host" + ], + "type": "object" + }, + "PUT /v1/notifications/{id}": { + "description": "", + "properties": { + "notification": { + "description": "", + "properties": { + "generated_time": { + "description": "", + "example": "2026-01-01T00:00:00Z", + "type": "string" + }, + "hostname": { + "description": "", + "example": "compute-1", + "type": "string" + }, + "payload": { + "description": "", + "properties": { + "event": { + "description": "", + "type": "string" + }, + "instance_uuid": { + "description": "", + "format": "uuid", + "type": "string" + }, + "vir_domain_event": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "source_host_uuid": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "enum": [ + "VM", + "PROCESS", + "COMPUTE_HOST" + ], + "example": "VM", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "notification" + ], + "type": "object" + }, + "PUT /v1/segments/{id}": { + "description": "", + "properties": { + "segment": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "recovery_method": { + "description": "", + "enum": [ + "auto", + "reserved_host", + "auto_priority", + "rh_priority" + ], + "example": "auto", + "type": "string" + }, + "service_type": { + "description": "", + "enum": [ + "compute" + ], + "example": "compute", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "segment" + ], + "type": "object" + }, + "PUT /v1/segments/{segment_id}/hosts/{id}": { + "description": "", + "properties": { + "host": { + "description": "", + "properties": { + "extra_capabilities": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "", + "example": "example", + "type": "string" + }, + "reservable": { + "default": true, + "description": "", + "type": "boolean" + } + }, + "type": "object" + } + }, + "required": [ + "host" + ], + "type": "object" + } + }, + "operations": { + "host_create": { + "description": "", + "properties": { + "host": { + "description": "", + "properties": { + "extra_capabilities": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "", + "example": "example", + "type": "string" + }, + "reservable": { + "default": true, + "description": "", + "type": "boolean" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "host" + ], + "type": "object" + }, + "host_patch": { + "description": "", + "properties": { + "host": { + "description": "", + "properties": { + "extra_capabilities": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "", + "example": "example", + "type": "string" + }, + "reservable": { + "default": true, + "description": "", + "type": "boolean" + } + }, + "type": "object" + } + }, + "required": [ + "host" + ], + "type": "object" + }, + "host_update": { + "description": "", + "properties": { + "host": { + "description": "", + "properties": { + "extra_capabilities": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "", + "example": "example", + "type": "string" + }, + "reservable": { + "default": true, + "description": "", + "type": "boolean" + } + }, + "type": "object" + } + }, + "required": [ + "host" + ], + "type": "object" + }, + "notification_create": { + "description": "", + "properties": { + "notification": { + "description": "", + "properties": { + "generated_time": { + "description": "", + "example": "2026-01-01T00:00:00Z", + "type": "string" + }, + "hostname": { + "description": "", + "example": "compute-1", + "type": "string" + }, + "payload": { + "description": "", + "properties": { + "event": { + "description": "", + "type": "string" + }, + "instance_uuid": { + "description": "", + "format": "uuid", + "type": "string" + }, + "vir_domain_event": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "source_host_uuid": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "enum": [ + "VM", + "PROCESS", + "COMPUTE_HOST" + ], + "example": "VM", + "type": "string" + } + }, + "required": [ + "type", + "hostname", + "generated_time", + "payload" + ], + "type": "object" + } + }, + "required": [ + "notification" + ], + "type": "object" + }, + "notification_patch": { + "description": "", + "properties": { + "notification": { + "description": "", + "properties": { + "generated_time": { + "description": "", + "example": "2026-01-01T00:00:00Z", + "type": "string" + }, + "hostname": { + "description": "", + "example": "compute-1", + "type": "string" + }, + "payload": { + "description": "", + "properties": { + "event": { + "description": "", + "type": "string" + }, + "instance_uuid": { + "description": "", + "format": "uuid", + "type": "string" + }, + "vir_domain_event": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "source_host_uuid": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "enum": [ + "VM", + "PROCESS", + "COMPUTE_HOST" + ], + "example": "VM", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "notification" + ], + "type": "object" + }, + "notification_update": { + "description": "", + "properties": { + "notification": { + "description": "", + "properties": { + "generated_time": { + "description": "", + "example": "2026-01-01T00:00:00Z", + "type": "string" + }, + "hostname": { + "description": "", + "example": "compute-1", + "type": "string" + }, + "payload": { + "description": "", + "properties": { + "event": { + "description": "", + "type": "string" + }, + "instance_uuid": { + "description": "", + "format": "uuid", + "type": "string" + }, + "vir_domain_event": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "source_host_uuid": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "enum": [ + "VM", + "PROCESS", + "COMPUTE_HOST" + ], + "example": "VM", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "notification" + ], + "type": "object" + }, + "segment_create": { + "description": "", + "properties": { + "segment": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "recovery_method": { + "description": "", + "enum": [ + "auto", + "reserved_host", + "auto_priority", + "rh_priority" + ], + "example": "auto", + "type": "string" + }, + "service_type": { + "description": "", + "enum": [ + "compute" + ], + "example": "compute", + "type": "string" + } + }, + "required": [ + "name", + "recovery_method", + "service_type" + ], + "type": "object" + } + }, + "required": [ + "segment" + ], + "type": "object" + }, + "segment_patch": { + "description": "", + "properties": { + "segment": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "recovery_method": { + "description": "", + "enum": [ + "auto", + "reserved_host", + "auto_priority", + "rh_priority" + ], + "example": "auto", + "type": "string" + }, + "service_type": { + "description": "", + "enum": [ + "compute" + ], + "example": "compute", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "segment" + ], + "type": "object" + }, + "segment_update": { + "description": "", + "properties": { + "segment": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "recovery_method": { + "description": "", + "enum": [ + "auto", + "reserved_host", + "auto_priority", + "rh_priority" + ], + "example": "auto", + "type": "string" + }, + "service_type": { + "description": "", + "enum": [ + "compute" + ], + "example": "compute", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "segment" + ], + "type": "object" + } + }, + "service": "masakari", + "source": "generated-from-api-ref-catalog" +} diff --git a/contracts/openstack/request_bodies/mistral.json b/contracts/openstack/request_bodies/mistral.json new file mode 100644 index 0000000..aac652c --- /dev/null +++ b/contracts/openstack/request_bodies/mistral.json @@ -0,0 +1,3182 @@ +{ + "by_path": { + "PATCH /v2/actions/{id}": { + "description": "", + "properties": { + "action": { + "description": "", + "properties": { + "action": { + "description": "", + "example": "os-start", + "type": "string" + }, + "name": { + "description": "", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "action" + ], + "type": "object" + }, + "PATCH /v2/cron_triggers/{id}": { + "description": "", + "properties": { + "cron_trigger": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "cron_trigger", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "cron_trigger" + ], + "type": "object" + }, + "PATCH /v2/executions/{id}": { + "description": "", + "properties": { + "execution": { + "description": "", + "properties": { + "description": { + "description": "", + "type": "string" + }, + "input": { + "description": "", + "properties": {}, + "type": "object" + }, + "params": { + "description": "", + "properties": {}, + "type": "object" + }, + "workflow_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "workflow_name": { + "description": "", + "example": "example", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "execution" + ], + "type": "object" + }, + "PATCH /v2/tasks/{id}": { + "description": "", + "properties": { + "task": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "task", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "task" + ], + "type": "object" + }, + "PATCH /v2/workbooks/{id}": { + "description": "", + "properties": { + "workbook": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "workbook", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "workbook" + ], + "type": "object" + }, + "PATCH /v2/workflows/{id}": { + "description": "", + "properties": { + "workflow": { + "description": "", + "properties": { + "definition": { + "description": "Workflow DSL", + "example": "version: '2.0'\nexample:\n tasks: {}", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "input": { + "description": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "namespace": { + "description": "", + "type": "string" + }, + "scope": { + "description": "", + "enum": [ + "private", + "public" + ], + "example": "private", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "required": [ + "workflow" + ], + "type": "object" + }, + "POST /v2/actions": { + "description": "", + "properties": { + "action": { + "description": "", + "properties": { + "action": { + "description": "", + "example": "os-start", + "type": "string" + }, + "name": { + "description": "", + "type": "string" + } + }, + "required": [ + "action" + ], + "type": "object" + } + }, + "required": [ + "action" + ], + "type": "object" + }, + "POST /v2/cron_triggers": { + "description": "", + "properties": { + "cron_trigger": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "cron_trigger", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "cron_trigger" + ], + "type": "object" + }, + "POST /v2/executions": { + "description": "", + "properties": { + "execution": { + "description": "", + "properties": { + "description": { + "description": "", + "type": "string" + }, + "input": { + "description": "", + "properties": {}, + "type": "object" + }, + "params": { + "description": "", + "properties": {}, + "type": "object" + }, + "workflow_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "workflow_name": { + "description": "", + "example": "example", + "type": "string" + } + }, + "required": [ + "workflow_name" + ], + "type": "object" + } + }, + "required": [ + "execution" + ], + "type": "object" + }, + "POST /v2/tasks": { + "description": "", + "properties": { + "task": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "task", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "task" + ], + "type": "object" + }, + "POST /v2/workbooks": { + "description": "", + "properties": { + "workbook": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "workbook", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "workbook" + ], + "type": "object" + }, + "POST /v2/workflows": { + "description": "", + "properties": { + "workflow": { + "description": "", + "properties": { + "definition": { + "description": "Workflow DSL", + "example": "version: '2.0'\nexample:\n tasks: {}", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "input": { + "description": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "namespace": { + "description": "", + "type": "string" + }, + "scope": { + "description": "", + "enum": [ + "private", + "public" + ], + "example": "private", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "definition" + ], + "type": "object" + } + }, + "required": [ + "workflow" + ], + "type": "object" + }, + "PUT /v2/actions/{id}": { + "description": "", + "properties": { + "action": { + "description": "", + "properties": { + "action": { + "description": "", + "example": "os-start", + "type": "string" + }, + "name": { + "description": "", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "action" + ], + "type": "object" + }, + "PUT /v2/cron_triggers/{id}": { + "description": "", + "properties": { + "cron_trigger": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "cron_trigger", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "cron_trigger" + ], + "type": "object" + }, + "PUT /v2/executions/{id}": { + "description": "", + "properties": { + "execution": { + "description": "", + "properties": { + "description": { + "description": "", + "type": "string" + }, + "input": { + "description": "", + "properties": {}, + "type": "object" + }, + "params": { + "description": "", + "properties": {}, + "type": "object" + }, + "workflow_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "workflow_name": { + "description": "", + "example": "example", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "execution" + ], + "type": "object" + }, + "PUT /v2/tasks/{id}": { + "description": "", + "properties": { + "task": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "task", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "task" + ], + "type": "object" + }, + "PUT /v2/workbooks/{id}": { + "description": "", + "properties": { + "workbook": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "workbook", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "workbook" + ], + "type": "object" + }, + "PUT /v2/workflows/{id}": { + "description": "", + "properties": { + "workflow": { + "description": "", + "properties": { + "definition": { + "description": "Workflow DSL", + "example": "version: '2.0'\nexample:\n tasks: {}", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "input": { + "description": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "namespace": { + "description": "", + "type": "string" + }, + "scope": { + "description": "", + "enum": [ + "private", + "public" + ], + "example": "private", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "required": [ + "workflow" + ], + "type": "object" + } + }, + "operations": { + "action_create": { + "description": "", + "properties": { + "action": { + "description": "", + "properties": { + "action": { + "description": "", + "example": "os-start", + "type": "string" + }, + "name": { + "description": "", + "type": "string" + } + }, + "required": [ + "action" + ], + "type": "object" + } + }, + "required": [ + "action" + ], + "type": "object" + }, + "action_patch": { + "description": "", + "properties": { + "action": { + "description": "", + "properties": { + "action": { + "description": "", + "example": "os-start", + "type": "string" + }, + "name": { + "description": "", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "action" + ], + "type": "object" + }, + "action_update": { + "description": "", + "properties": { + "action": { + "description": "", + "properties": { + "action": { + "description": "", + "example": "os-start", + "type": "string" + }, + "name": { + "description": "", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "action" + ], + "type": "object" + }, + "cron_trigger_create": { + "description": "", + "properties": { + "cron_trigger": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "cron_trigger", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "cron_trigger" + ], + "type": "object" + }, + "cron_trigger_patch": { + "description": "", + "properties": { + "cron_trigger": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "cron_trigger", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "cron_trigger" + ], + "type": "object" + }, + "cron_trigger_update": { + "description": "", + "properties": { + "cron_trigger": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "cron_trigger", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "cron_trigger" + ], + "type": "object" + }, + "execution_create": { + "description": "", + "properties": { + "execution": { + "description": "", + "properties": { + "description": { + "description": "", + "type": "string" + }, + "input": { + "description": "", + "properties": {}, + "type": "object" + }, + "params": { + "description": "", + "properties": {}, + "type": "object" + }, + "workflow_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "workflow_name": { + "description": "", + "example": "example", + "type": "string" + } + }, + "required": [ + "workflow_name" + ], + "type": "object" + } + }, + "required": [ + "execution" + ], + "type": "object" + }, + "execution_patch": { + "description": "", + "properties": { + "execution": { + "description": "", + "properties": { + "description": { + "description": "", + "type": "string" + }, + "input": { + "description": "", + "properties": {}, + "type": "object" + }, + "params": { + "description": "", + "properties": {}, + "type": "object" + }, + "workflow_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "workflow_name": { + "description": "", + "example": "example", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "execution" + ], + "type": "object" + }, + "execution_update": { + "description": "", + "properties": { + "execution": { + "description": "", + "properties": { + "description": { + "description": "", + "type": "string" + }, + "input": { + "description": "", + "properties": {}, + "type": "object" + }, + "params": { + "description": "", + "properties": {}, + "type": "object" + }, + "workflow_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "workflow_name": { + "description": "", + "example": "example", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "execution" + ], + "type": "object" + }, + "task_create": { + "description": "", + "properties": { + "task": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "task", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "task" + ], + "type": "object" + }, + "task_patch": { + "description": "", + "properties": { + "task": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "task", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "task" + ], + "type": "object" + }, + "task_update": { + "description": "", + "properties": { + "task": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "task", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "task" + ], + "type": "object" + }, + "workbook_create": { + "description": "", + "properties": { + "workbook": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "workbook", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "workbook" + ], + "type": "object" + }, + "workbook_patch": { + "description": "", + "properties": { + "workbook": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "workbook", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "workbook" + ], + "type": "object" + }, + "workbook_update": { + "description": "", + "properties": { + "workbook": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "workbook", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "workbook" + ], + "type": "object" + }, + "workflow_create": { + "description": "", + "properties": { + "workflow": { + "description": "", + "properties": { + "definition": { + "description": "Workflow DSL", + "example": "version: '2.0'\nexample:\n tasks: {}", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "input": { + "description": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "namespace": { + "description": "", + "type": "string" + }, + "scope": { + "description": "", + "enum": [ + "private", + "public" + ], + "example": "private", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "definition" + ], + "type": "object" + } + }, + "required": [ + "workflow" + ], + "type": "object" + }, + "workflow_patch": { + "description": "", + "properties": { + "workflow": { + "description": "", + "properties": { + "definition": { + "description": "Workflow DSL", + "example": "version: '2.0'\nexample:\n tasks: {}", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "input": { + "description": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "namespace": { + "description": "", + "type": "string" + }, + "scope": { + "description": "", + "enum": [ + "private", + "public" + ], + "example": "private", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "required": [ + "workflow" + ], + "type": "object" + }, + "workflow_update": { + "description": "", + "properties": { + "workflow": { + "description": "", + "properties": { + "definition": { + "description": "Workflow DSL", + "example": "version: '2.0'\nexample:\n tasks: {}", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "input": { + "description": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "namespace": { + "description": "", + "type": "string" + }, + "scope": { + "description": "", + "enum": [ + "private", + "public" + ], + "example": "private", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "required": [ + "workflow" + ], + "type": "object" + } + }, + "service": "mistral", + "source": "generated-from-api-ref-catalog" +} diff --git a/contracts/openstack/request_bodies/neutron.json b/contracts/openstack/request_bodies/neutron.json new file mode 100644 index 0000000..a838fe7 --- /dev/null +++ b/contracts/openstack/request_bodies/neutron.json @@ -0,0 +1,32376 @@ +{ + "by_path": { + "PATCH /v2.0/address-groups/{id}": { + "description": "", + "properties": { + "address_group": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "address_group", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "address_group" + ], + "type": "object" + }, + "PATCH /v2.0/address-scopes/{id}": { + "description": "", + "properties": { + "address_scope": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "address_scope", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "address_scope" + ], + "type": "object" + }, + "PATCH /v2.0/bgp-peers/{id}": { + "description": "", + "properties": { + "bgp_peer": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "bgp_peer", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "bgp_peer" + ], + "type": "object" + }, + "PATCH /v2.0/bgp-speakers/{id}": { + "description": "", + "properties": { + "bgp_speaker": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "bgp_speaker", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "bgp_speaker" + ], + "type": "object" + }, + "PATCH /v2.0/bgpvpn/bgpvpns/{bgpvpn_id}/network_associations/{id}": { + "description": "", + "properties": { + "network_association": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "bgpvpn_network_association", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "network_association" + ], + "type": "object" + }, + "PATCH /v2.0/bgpvpn/bgpvpns/{bgpvpn_id}/router_associations/{id}": { + "description": "", + "properties": { + "router_association": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "bgpvpn_router_association", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "router_association" + ], + "type": "object" + }, + "PATCH /v2.0/bgpvpn/bgpvpns/{id}": { + "description": "", + "properties": { + "bgpvpn": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "bgpvpn", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "bgpvpn" + ], + "type": "object" + }, + "PATCH /v2.0/default-security-group-rules/{id}": { + "description": "", + "properties": { + "default_security_group_rule": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "default_security_group_rule", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "default_security_group_rule" + ], + "type": "object" + }, + "PATCH /v2.0/flavors/{id}": { + "description": "", + "properties": { + "flavor": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "neutron_flavor", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "flavor" + ], + "type": "object" + }, + "PATCH /v2.0/floatingips/{floatingip_id}/port_forwardings/{id}": { + "description": "", + "properties": { + "port_forwarding": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "floatingip_port_forwarding", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "port_forwarding" + ], + "type": "object" + }, + "PATCH /v2.0/floatingips/{id}": { + "description": "", + "properties": { + "floatingip": { + "description": "", + "properties": { + "description": { + "description": "", + "type": "string" + }, + "dns_domain": { + "description": "", + "type": "string" + }, + "dns_name": { + "description": "", + "type": "string" + }, + "fixed_ip_address": { + "description": "Fixed IP", + "type": "string" + }, + "floating_ip_address": { + "description": "Floating IP", + "type": "string" + }, + "floating_network_id": { + "description": "External network UUID", + "format": "uuid", + "type": "string" + }, + "port_id": { + "description": "Port UUID", + "format": "uuid", + "type": "string" + }, + "subnet_id": { + "description": "Subnet UUID", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "floatingip" + ], + "type": "object" + }, + "PATCH /v2.0/fwaas/firewall_groups/{id}": { + "description": "", + "properties": { + "firewall_group": { + "description": "", + "properties": { + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "egress_firewall_policy_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "ingress_firewall_policy_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "ports": { + "description": "", + "items": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": "array" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + } + }, + "type": "object" + } + }, + "required": [ + "firewall_group" + ], + "type": "object" + }, + "PATCH /v2.0/fwaas/firewall_policies/{id}": { + "description": "", + "properties": { + "firewall_policy": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "firewall_policy", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "firewall_policy" + ], + "type": "object" + }, + "PATCH /v2.0/fwaas/firewall_rules/{id}": { + "description": "", + "properties": { + "firewall_rule": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "firewall_rule", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "firewall_rule" + ], + "type": "object" + }, + "PATCH /v2.0/lbaas/listeners/{id}": { + "description": "", + "properties": { + "listener": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "lbaas_listener", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "listener" + ], + "type": "object" + }, + "PATCH /v2.0/lbaas/loadbalancers/{id}": { + "description": "", + "properties": { + "loadbalancer": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "lbaas_loadbalancer", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "loadbalancer" + ], + "type": "object" + }, + "PATCH /v2.0/lbaas/pools/{id}": { + "description": "", + "properties": { + "pool": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "lbaas_pool", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "pool" + ], + "type": "object" + }, + "PATCH /v2.0/local_ips/{id}": { + "description": "", + "properties": { + "local_ip": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "local_ip", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "local_ip" + ], + "type": "object" + }, + "PATCH /v2.0/local_ips/{local_ip_id}/port_associations/{id}": { + "description": "", + "properties": { + "port_association": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "local_ip_association", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "port_association" + ], + "type": "object" + }, + "PATCH /v2.0/log/logs/{id}": { + "description": "", + "properties": { + "log": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "log", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "log" + ], + "type": "object" + }, + "PATCH /v2.0/metering/metering-label-rules/{id}": { + "description": "", + "properties": { + "metering_label_rule": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "metering_label_rule", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "metering_label_rule" + ], + "type": "object" + }, + "PATCH /v2.0/metering/metering-labels/{id}": { + "description": "", + "properties": { + "metering_label": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + } + }, + "type": "object" + } + }, + "required": [ + "metering_label" + ], + "type": "object" + }, + "PATCH /v2.0/ndp_proxies/{id}": { + "description": "", + "properties": { + "ndp_proxy": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "ndp_proxy", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "ndp_proxy" + ], + "type": "object" + }, + "PATCH /v2.0/network_segment_ranges/{id}": { + "description": "", + "properties": { + "network_segment_range": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "network_segment_range", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "network_segment_range" + ], + "type": "object" + }, + "PATCH /v2.0/networks/{id}": { + "description": "", + "properties": { + "network": { + "description": "", + "properties": { + "admin_state_up": { + "default": true, + "description": "Administrative state", + "type": "boolean" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "external": { + "default": false, + "description": "External network", + "type": "boolean" + }, + "mtu": { + "description": "MTU", + "example": 1500, + "minimum": 68, + "type": "integer" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port_security_enabled": { + "default": true, + "description": "Port security", + "type": "boolean" + }, + "provider:network_type": { + "description": "Provider network type", + "enum": [ + "local", + "flat", + "vlan", + "vxlan", + "gre" + ], + "type": "string" + }, + "provider:physical_network": { + "description": "Physical network label", + "type": "string" + }, + "provider:segmentation_id": { + "description": "Segmentation id", + "type": "integer" + }, + "router:external": { + "default": false, + "description": "Router external alias", + "type": "boolean" + }, + "shared": { + "default": false, + "description": "Shared across projects", + "type": "boolean" + } + }, + "type": "object" + } + }, + "required": [ + "network" + ], + "type": "object" + }, + "PATCH /v2.0/ports/{id}": { + "description": "", + "properties": { + "port": { + "description": "", + "properties": { + "admin_state_up": { + "default": true, + "description": "Administrative state", + "type": "boolean" + }, + "allowed_address_pairs": { + "description": "", + "items": { + "description": "", + "properties": { + "ip_address": { + "description": "", + "type": "string" + }, + "mac_address": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "binding:vnic_type": { + "description": "VNIC type", + "enum": [ + "normal", + "direct", + "macvtap", + "baremetal" + ], + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "device_id": { + "description": "Device UUID", + "format": "uuid", + "type": "string" + }, + "device_owner": { + "description": "Device owner", + "type": "string" + }, + "fixed_ips": { + "description": "Fixed IPs", + "items": { + "description": "", + "properties": { + "ip_address": { + "description": "", + "type": "string" + }, + "subnet_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "mac_address": { + "description": "MAC address", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "network_id": { + "description": "Network UUID", + "format": "uuid", + "type": "string" + }, + "port_security_enabled": { + "description": "Port security", + "type": "boolean" + }, + "security_groups": { + "description": "", + "items": { + "description": "Security group UUID", + "format": "uuid", + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "required": [ + "port" + ], + "type": "object" + }, + "PATCH /v2.0/qos/policies/{id}": { + "description": "", + "properties": { + "policy": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "is_default": { + "default": false, + "description": "", + "type": "boolean" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + } + }, + "type": "object" + } + }, + "required": [ + "policy" + ], + "type": "object" + }, + "PATCH /v2.0/qos/policies/{policy_id}/bandwidth_limit_rules/{id}": { + "description": "", + "properties": { + "bandwidth_limit_rule": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "qos_bandwidth_limit_rule", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "bandwidth_limit_rule" + ], + "type": "object" + }, + "PATCH /v2.0/qos/policies/{policy_id}/dscp_marking_rules/{id}": { + "description": "", + "properties": { + "dscp_marking_rule": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "qos_dscp_marking_rule", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "dscp_marking_rule" + ], + "type": "object" + }, + "PATCH /v2.0/qos/policies/{policy_id}/minimum_bandwidth_rules/{id}": { + "description": "", + "properties": { + "minimum_bandwidth_rule": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "qos_minimum_bandwidth_rule", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "minimum_bandwidth_rule" + ], + "type": "object" + }, + "PATCH /v2.0/rbac-policies/{id}": { + "description": "", + "properties": { + "rbac_policy": { + "description": "", + "properties": { + "action": { + "description": "", + "enum": [ + "access_as_shared", + "access_as_external" + ], + "example": "access_as_shared", + "type": "string" + }, + "object_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "object_type": { + "description": "", + "example": "network", + "type": "string" + }, + "target_tenant": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "rbac_policy" + ], + "type": "object" + }, + "PATCH /v2.0/routers/{id}": { + "description": "", + "properties": { + "router": { + "description": "", + "properties": { + "admin_state_up": { + "default": true, + "description": "Administrative state", + "type": "boolean" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "distributed": { + "description": "DVR router", + "type": "boolean" + }, + "external_gateway_info": { + "description": "", + "properties": { + "enable_snat": { + "default": true, + "description": "SNAT", + "type": "boolean" + }, + "external_fixed_ips": { + "description": "", + "items": { + "description": "", + "properties": { + "ip_address": { + "description": "", + "type": "string" + }, + "subnet_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "network_id": { + "description": "External network UUID", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + }, + "ha": { + "description": "Highly available", + "type": "boolean" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "routes": { + "description": "", + "items": { + "description": "", + "properties": { + "destination": { + "description": "", + "type": "string" + }, + "nexthop": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "required": [ + "router" + ], + "type": "object" + }, + "PATCH /v2.0/routers/{router_id}/conntrack_helpers/{id}": { + "description": "", + "properties": { + "conntrack_helper": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "conntrack_helper", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "conntrack_helper" + ], + "type": "object" + }, + "PATCH /v2.0/security-group-rules/{id}": { + "description": "", + "properties": { + "security_group_rule": { + "description": "", + "properties": { + "description": { + "description": "", + "type": "string" + }, + "direction": { + "description": "Direction", + "enum": [ + "ingress", + "egress" + ], + "example": "ingress", + "type": "string" + }, + "ethertype": { + "description": "Ethertype", + "enum": [ + "IPv4", + "IPv6" + ], + "example": "IPv4", + "type": "string" + }, + "port_range_max": { + "description": "Max port", + "example": 22, + "type": "integer" + }, + "port_range_min": { + "description": "Min port", + "example": 22, + "type": "integer" + }, + "protocol": { + "description": "Protocol", + "example": "tcp", + "type": "string" + }, + "remote_group_id": { + "description": "Remote SG UUID", + "format": "uuid", + "type": "string" + }, + "remote_ip_prefix": { + "description": "CIDR", + "example": "0.0.0.0/0", + "type": "string" + }, + "security_group_id": { + "description": "Security group UUID", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "security_group_rule" + ], + "type": "object" + }, + "PATCH /v2.0/security-groups/{id}": { + "description": "", + "properties": { + "security_group": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "security_group" + ], + "type": "object" + }, + "PATCH /v2.0/segments/{id}": { + "description": "", + "properties": { + "segment": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "recovery_method": { + "description": "", + "enum": [ + "auto", + "reserved_host", + "auto_priority", + "rh_priority" + ], + "example": "auto", + "type": "string" + }, + "service_type": { + "description": "", + "enum": [ + "compute" + ], + "example": "compute", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "segment" + ], + "type": "object" + }, + "PATCH /v2.0/service_profiles/{id}": { + "description": "", + "properties": { + "service_profile": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "service_profile", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "service_profile" + ], + "type": "object" + }, + "PATCH /v2.0/subnetpools/{id}": { + "description": "", + "properties": { + "subnetpool": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "subnetpool", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "subnetpool" + ], + "type": "object" + }, + "PATCH /v2.0/subnets/{id}": { + "description": "", + "properties": { + "subnet": { + "description": "", + "properties": { + "allocation_pools": { + "description": "Allocation pools", + "items": { + "description": "", + "properties": { + "end": { + "description": "End IP", + "type": "string" + }, + "start": { + "description": "Start IP", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "cidr": { + "description": "CIDR", + "example": "10.0.0.0/24", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "dns_nameservers": { + "description": "DNS nameservers", + "items": { + "description": "DNS server", + "type": "string" + }, + "type": "array" + }, + "enable_dhcp": { + "default": true, + "description": "DHCP enabled", + "type": "boolean" + }, + "gateway_ip": { + "description": "Gateway IP", + "type": "string" + }, + "host_routes": { + "description": "Host routes", + "items": { + "description": "", + "properties": { + "destination": { + "description": "", + "type": "string" + }, + "nexthop": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "ip_version": { + "description": "IP version", + "example": 4, + "type": "integer" + }, + "ipv6_address_mode": { + "description": "IPv6 address mode", + "type": "string" + }, + "ipv6_ra_mode": { + "description": "IPv6 RA mode", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "network_id": { + "description": "Parent network UUID", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "subnet" + ], + "type": "object" + }, + "PATCH /v2.0/trunks/{id}": { + "description": "", + "properties": { + "trunk": { + "description": "", + "properties": { + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "sub_ports": { + "description": "", + "items": { + "description": "", + "properties": { + "port_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "segmentation_id": { + "description": "", + "example": 100, + "type": "integer" + }, + "segmentation_type": { + "description": "", + "example": "vlan", + "type": "string" + } + }, + "required": [ + "port_id", + "segmentation_type", + "segmentation_id" + ], + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "required": [ + "trunk" + ], + "type": "object" + }, + "PATCH /v2.0/trunks/{trunk_id}/add_subports/{id}": { + "description": "", + "properties": { + "sub_port": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "trunk_subport", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "sub_port" + ], + "type": "object" + }, + "PATCH /v2.0/vpn/endpoint-groups/{id}": { + "description": "", + "properties": { + "endpoint_group": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "vpn_endpoint_group", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "endpoint_group" + ], + "type": "object" + }, + "PATCH /v2.0/vpn/ikepolicies/{id}": { + "description": "", + "properties": { + "ikepolicy": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "ike_policy", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "ikepolicy" + ], + "type": "object" + }, + "PATCH /v2.0/vpn/ipsec-site-connections/{id}": { + "description": "", + "properties": { + "ipsec_site_connection": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "ipsec_site_connection", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "ipsec_site_connection" + ], + "type": "object" + }, + "PATCH /v2.0/vpn/ipsecpolicies/{id}": { + "description": "", + "properties": { + "ipsecpolicy": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "ipsec_policy", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "ipsecpolicy" + ], + "type": "object" + }, + "PATCH /v2.0/vpn/vpnservices/{id}": { + "description": "", + "properties": { + "vpnservice": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "vpn_service", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "vpnservice" + ], + "type": "object" + }, + "POST /v2.0/address-groups": { + "description": "", + "properties": { + "address_group": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "address_group", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "address_group" + ], + "type": "object" + }, + "POST /v2.0/address-scopes": { + "description": "", + "properties": { + "address_scope": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "address_scope", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "address_scope" + ], + "type": "object" + }, + "POST /v2.0/bgp-peers": { + "description": "", + "properties": { + "bgp_peer": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "bgp_peer", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "bgp_peer" + ], + "type": "object" + }, + "POST /v2.0/bgp-speakers": { + "description": "", + "properties": { + "bgp_speaker": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "bgp_speaker", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "bgp_speaker" + ], + "type": "object" + }, + "POST /v2.0/bgpvpn/bgpvpns": { + "description": "", + "properties": { + "bgpvpn": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "bgpvpn", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "bgpvpn" + ], + "type": "object" + }, + "POST /v2.0/bgpvpn/bgpvpns/{bgpvpn_id}/network_associations": { + "description": "", + "properties": { + "network_association": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "bgpvpn_network_association", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "network_association" + ], + "type": "object" + }, + "POST /v2.0/bgpvpn/bgpvpns/{bgpvpn_id}/router_associations": { + "description": "", + "properties": { + "router_association": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "bgpvpn_router_association", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "router_association" + ], + "type": "object" + }, + "POST /v2.0/default-security-group-rules": { + "description": "", + "properties": { + "default_security_group_rule": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "default_security_group_rule", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "default_security_group_rule" + ], + "type": "object" + }, + "POST /v2.0/flavors": { + "description": "", + "properties": { + "flavor": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "neutron_flavor", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "flavor" + ], + "type": "object" + }, + "POST /v2.0/floatingips": { + "description": "", + "properties": { + "floatingip": { + "description": "", + "properties": { + "description": { + "description": "", + "type": "string" + }, + "dns_domain": { + "description": "", + "type": "string" + }, + "dns_name": { + "description": "", + "type": "string" + }, + "fixed_ip_address": { + "description": "Fixed IP", + "type": "string" + }, + "floating_ip_address": { + "description": "Floating IP", + "type": "string" + }, + "floating_network_id": { + "description": "External network UUID", + "format": "uuid", + "type": "string" + }, + "port_id": { + "description": "Port UUID", + "format": "uuid", + "type": "string" + }, + "subnet_id": { + "description": "Subnet UUID", + "format": "uuid", + "type": "string" + } + }, + "required": [ + "floating_network_id" + ], + "type": "object" + } + }, + "required": [ + "floatingip" + ], + "type": "object" + }, + "POST /v2.0/floatingips/{floatingip_id}/port_forwardings": { + "description": "", + "properties": { + "port_forwarding": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "floatingip_port_forwarding", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "port_forwarding" + ], + "type": "object" + }, + "POST /v2.0/fwaas/firewall_groups": { + "description": "", + "properties": { + "firewall_group": { + "description": "", + "properties": { + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "egress_firewall_policy_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "ingress_firewall_policy_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "ports": { + "description": "", + "items": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": "array" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "firewall_group" + ], + "type": "object" + }, + "POST /v2.0/fwaas/firewall_policies": { + "description": "", + "properties": { + "firewall_policy": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "firewall_policy", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "firewall_policy" + ], + "type": "object" + }, + "POST /v2.0/fwaas/firewall_rules": { + "description": "", + "properties": { + "firewall_rule": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "firewall_rule", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "firewall_rule" + ], + "type": "object" + }, + "POST /v2.0/lbaas/listeners": { + "description": "", + "properties": { + "listener": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "lbaas_listener", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "listener" + ], + "type": "object" + }, + "POST /v2.0/lbaas/loadbalancers": { + "description": "", + "properties": { + "loadbalancer": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "lbaas_loadbalancer", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "loadbalancer" + ], + "type": "object" + }, + "POST /v2.0/lbaas/pools": { + "description": "", + "properties": { + "pool": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "lbaas_pool", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "pool" + ], + "type": "object" + }, + "POST /v2.0/local_ips": { + "description": "", + "properties": { + "local_ip": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "local_ip", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "local_ip" + ], + "type": "object" + }, + "POST /v2.0/local_ips/{local_ip_id}/port_associations": { + "description": "", + "properties": { + "port_association": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "local_ip_association", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "port_association" + ], + "type": "object" + }, + "POST /v2.0/log/logs": { + "description": "", + "properties": { + "log": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "log", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "log" + ], + "type": "object" + }, + "POST /v2.0/metering/metering-label-rules": { + "description": "", + "properties": { + "metering_label_rule": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "metering_label_rule", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "metering_label_rule" + ], + "type": "object" + }, + "POST /v2.0/metering/metering-labels": { + "description": "", + "properties": { + "metering_label": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "metering_label" + ], + "type": "object" + }, + "POST /v2.0/ndp_proxies": { + "description": "", + "properties": { + "ndp_proxy": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "ndp_proxy", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "ndp_proxy" + ], + "type": "object" + }, + "POST /v2.0/network_segment_ranges": { + "description": "", + "properties": { + "network_segment_range": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "network_segment_range", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "network_segment_range" + ], + "type": "object" + }, + "POST /v2.0/networks": { + "description": "", + "properties": { + "network": { + "description": "", + "properties": { + "admin_state_up": { + "default": true, + "description": "Administrative state", + "type": "boolean" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "external": { + "default": false, + "description": "External network", + "type": "boolean" + }, + "mtu": { + "description": "MTU", + "example": 1500, + "minimum": 68, + "type": "integer" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port_security_enabled": { + "default": true, + "description": "Port security", + "type": "boolean" + }, + "provider:network_type": { + "description": "Provider network type", + "enum": [ + "local", + "flat", + "vlan", + "vxlan", + "gre" + ], + "type": "string" + }, + "provider:physical_network": { + "description": "Physical network label", + "type": "string" + }, + "provider:segmentation_id": { + "description": "Segmentation id", + "type": "integer" + }, + "router:external": { + "default": false, + "description": "Router external alias", + "type": "boolean" + }, + "shared": { + "default": false, + "description": "Shared across projects", + "type": "boolean" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "network" + ], + "type": "object" + }, + "POST /v2.0/ports": { + "description": "", + "properties": { + "port": { + "description": "", + "properties": { + "admin_state_up": { + "default": true, + "description": "Administrative state", + "type": "boolean" + }, + "allowed_address_pairs": { + "description": "", + "items": { + "description": "", + "properties": { + "ip_address": { + "description": "", + "type": "string" + }, + "mac_address": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "binding:vnic_type": { + "description": "VNIC type", + "enum": [ + "normal", + "direct", + "macvtap", + "baremetal" + ], + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "device_id": { + "description": "Device UUID", + "format": "uuid", + "type": "string" + }, + "device_owner": { + "description": "Device owner", + "type": "string" + }, + "fixed_ips": { + "description": "Fixed IPs", + "items": { + "description": "", + "properties": { + "ip_address": { + "description": "", + "type": "string" + }, + "subnet_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "mac_address": { + "description": "MAC address", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "network_id": { + "description": "Network UUID", + "format": "uuid", + "type": "string" + }, + "port_security_enabled": { + "description": "Port security", + "type": "boolean" + }, + "security_groups": { + "description": "", + "items": { + "description": "Security group UUID", + "format": "uuid", + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "network_id" + ], + "type": "object" + } + }, + "required": [ + "port" + ], + "type": "object" + }, + "POST /v2.0/qos/policies": { + "description": "", + "properties": { + "policy": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "is_default": { + "default": false, + "description": "", + "type": "boolean" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "policy" + ], + "type": "object" + }, + "POST /v2.0/qos/policies/{policy_id}/bandwidth_limit_rules": { + "description": "", + "properties": { + "bandwidth_limit_rule": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "qos_bandwidth_limit_rule", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "bandwidth_limit_rule" + ], + "type": "object" + }, + "POST /v2.0/qos/policies/{policy_id}/dscp_marking_rules": { + "description": "", + "properties": { + "dscp_marking_rule": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "qos_dscp_marking_rule", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "dscp_marking_rule" + ], + "type": "object" + }, + "POST /v2.0/qos/policies/{policy_id}/minimum_bandwidth_rules": { + "description": "", + "properties": { + "minimum_bandwidth_rule": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "qos_minimum_bandwidth_rule", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "minimum_bandwidth_rule" + ], + "type": "object" + }, + "POST /v2.0/rbac-policies": { + "description": "", + "properties": { + "rbac_policy": { + "description": "", + "properties": { + "action": { + "description": "", + "enum": [ + "access_as_shared", + "access_as_external" + ], + "example": "access_as_shared", + "type": "string" + }, + "object_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "object_type": { + "description": "", + "example": "network", + "type": "string" + }, + "target_tenant": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "required": [ + "object_type", + "object_id", + "target_tenant", + "action" + ], + "type": "object" + } + }, + "required": [ + "rbac_policy" + ], + "type": "object" + }, + "POST /v2.0/routers": { + "description": "", + "properties": { + "router": { + "description": "", + "properties": { + "admin_state_up": { + "default": true, + "description": "Administrative state", + "type": "boolean" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "distributed": { + "description": "DVR router", + "type": "boolean" + }, + "external_gateway_info": { + "description": "", + "properties": { + "enable_snat": { + "default": true, + "description": "SNAT", + "type": "boolean" + }, + "external_fixed_ips": { + "description": "", + "items": { + "description": "", + "properties": { + "ip_address": { + "description": "", + "type": "string" + }, + "subnet_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "network_id": { + "description": "External network UUID", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + }, + "ha": { + "description": "Highly available", + "type": "boolean" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "routes": { + "description": "", + "items": { + "description": "", + "properties": { + "destination": { + "description": "", + "type": "string" + }, + "nexthop": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "router" + ], + "type": "object" + }, + "POST /v2.0/routers/{router_id}/conntrack_helpers": { + "description": "", + "properties": { + "conntrack_helper": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "conntrack_helper", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "conntrack_helper" + ], + "type": "object" + }, + "POST /v2.0/security-group-rules": { + "description": "", + "properties": { + "security_group_rule": { + "description": "", + "properties": { + "description": { + "description": "", + "type": "string" + }, + "direction": { + "description": "Direction", + "enum": [ + "ingress", + "egress" + ], + "example": "ingress", + "type": "string" + }, + "ethertype": { + "description": "Ethertype", + "enum": [ + "IPv4", + "IPv6" + ], + "example": "IPv4", + "type": "string" + }, + "port_range_max": { + "description": "Max port", + "example": 22, + "type": "integer" + }, + "port_range_min": { + "description": "Min port", + "example": 22, + "type": "integer" + }, + "protocol": { + "description": "Protocol", + "example": "tcp", + "type": "string" + }, + "remote_group_id": { + "description": "Remote SG UUID", + "format": "uuid", + "type": "string" + }, + "remote_ip_prefix": { + "description": "CIDR", + "example": "0.0.0.0/0", + "type": "string" + }, + "security_group_id": { + "description": "Security group UUID", + "format": "uuid", + "type": "string" + } + }, + "required": [ + "security_group_id", + "direction" + ], + "type": "object" + } + }, + "required": [ + "security_group_rule" + ], + "type": "object" + }, + "POST /v2.0/security-groups": { + "description": "", + "properties": { + "security_group": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "security_group" + ], + "type": "object" + }, + "POST /v2.0/segments": { + "description": "", + "properties": { + "segment": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "recovery_method": { + "description": "", + "enum": [ + "auto", + "reserved_host", + "auto_priority", + "rh_priority" + ], + "example": "auto", + "type": "string" + }, + "service_type": { + "description": "", + "enum": [ + "compute" + ], + "example": "compute", + "type": "string" + } + }, + "required": [ + "name", + "recovery_method", + "service_type" + ], + "type": "object" + } + }, + "required": [ + "segment" + ], + "type": "object" + }, + "POST /v2.0/service_profiles": { + "description": "", + "properties": { + "service_profile": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "service_profile", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "service_profile" + ], + "type": "object" + }, + "POST /v2.0/subnetpools": { + "description": "", + "properties": { + "subnetpool": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "subnetpool", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "subnetpool" + ], + "type": "object" + }, + "POST /v2.0/subnets": { + "description": "", + "properties": { + "subnet": { + "description": "", + "properties": { + "allocation_pools": { + "description": "Allocation pools", + "items": { + "description": "", + "properties": { + "end": { + "description": "End IP", + "type": "string" + }, + "start": { + "description": "Start IP", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "cidr": { + "description": "CIDR", + "example": "10.0.0.0/24", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "dns_nameservers": { + "description": "DNS nameservers", + "items": { + "description": "DNS server", + "type": "string" + }, + "type": "array" + }, + "enable_dhcp": { + "default": true, + "description": "DHCP enabled", + "type": "boolean" + }, + "gateway_ip": { + "description": "Gateway IP", + "type": "string" + }, + "host_routes": { + "description": "Host routes", + "items": { + "description": "", + "properties": { + "destination": { + "description": "", + "type": "string" + }, + "nexthop": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "ip_version": { + "description": "IP version", + "example": 4, + "type": "integer" + }, + "ipv6_address_mode": { + "description": "IPv6 address mode", + "type": "string" + }, + "ipv6_ra_mode": { + "description": "IPv6 RA mode", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "network_id": { + "description": "Parent network UUID", + "format": "uuid", + "type": "string" + } + }, + "required": [ + "network_id", + "cidr", + "ip_version" + ], + "type": "object" + } + }, + "required": [ + "subnet" + ], + "type": "object" + }, + "POST /v2.0/trunks": { + "description": "", + "properties": { + "trunk": { + "description": "", + "properties": { + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "sub_ports": { + "description": "", + "items": { + "description": "", + "properties": { + "port_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "segmentation_id": { + "description": "", + "example": 100, + "type": "integer" + }, + "segmentation_type": { + "description": "", + "example": "vlan", + "type": "string" + } + }, + "required": [ + "port_id", + "segmentation_type", + "segmentation_id" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "port_id" + ], + "type": "object" + } + }, + "required": [ + "trunk" + ], + "type": "object" + }, + "POST /v2.0/trunks/{trunk_id}/add_subports": { + "description": "", + "properties": { + "sub_port": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "trunk_subport", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "sub_port" + ], + "type": "object" + }, + "POST /v2.0/vpn/endpoint-groups": { + "description": "", + "properties": { + "endpoint_group": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "vpn_endpoint_group", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "endpoint_group" + ], + "type": "object" + }, + "POST /v2.0/vpn/ikepolicies": { + "description": "", + "properties": { + "ikepolicy": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "ike_policy", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "ikepolicy" + ], + "type": "object" + }, + "POST /v2.0/vpn/ipsec-site-connections": { + "description": "", + "properties": { + "ipsec_site_connection": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "ipsec_site_connection", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "ipsec_site_connection" + ], + "type": "object" + }, + "POST /v2.0/vpn/ipsecpolicies": { + "description": "", + "properties": { + "ipsecpolicy": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "ipsec_policy", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "ipsecpolicy" + ], + "type": "object" + }, + "POST /v2.0/vpn/vpnservices": { + "description": "", + "properties": { + "vpnservice": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "vpn_service", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "vpnservice" + ], + "type": "object" + }, + "PUT /v2.0/address-groups/{id}": { + "description": "", + "properties": { + "address_group": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "address_group", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "address_group" + ], + "type": "object" + }, + "PUT /v2.0/address-scopes/{id}": { + "description": "", + "properties": { + "address_scope": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "address_scope", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "address_scope" + ], + "type": "object" + }, + "PUT /v2.0/bgp-peers/{id}": { + "description": "", + "properties": { + "bgp_peer": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "bgp_peer", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "bgp_peer" + ], + "type": "object" + }, + "PUT /v2.0/bgp-speakers/{id}": { + "description": "", + "properties": { + "bgp_speaker": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "bgp_speaker", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "bgp_speaker" + ], + "type": "object" + }, + "PUT /v2.0/bgpvpn/bgpvpns/{bgpvpn_id}/network_associations/{id}": { + "description": "", + "properties": { + "network_association": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "bgpvpn_network_association", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "network_association" + ], + "type": "object" + }, + "PUT /v2.0/bgpvpn/bgpvpns/{bgpvpn_id}/router_associations/{id}": { + "description": "", + "properties": { + "router_association": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "bgpvpn_router_association", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "router_association" + ], + "type": "object" + }, + "PUT /v2.0/bgpvpn/bgpvpns/{id}": { + "description": "", + "properties": { + "bgpvpn": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "bgpvpn", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "bgpvpn" + ], + "type": "object" + }, + "PUT /v2.0/default-security-group-rules/{id}": { + "description": "", + "properties": { + "default_security_group_rule": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "default_security_group_rule", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "default_security_group_rule" + ], + "type": "object" + }, + "PUT /v2.0/flavors/{id}": { + "description": "", + "properties": { + "flavor": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "neutron_flavor", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "flavor" + ], + "type": "object" + }, + "PUT /v2.0/floatingips/{floatingip_id}/port_forwardings/{id}": { + "description": "", + "properties": { + "port_forwarding": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "floatingip_port_forwarding", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "port_forwarding" + ], + "type": "object" + }, + "PUT /v2.0/floatingips/{id}": { + "description": "", + "properties": { + "floatingip": { + "description": "", + "properties": { + "description": { + "description": "", + "type": "string" + }, + "dns_domain": { + "description": "", + "type": "string" + }, + "dns_name": { + "description": "", + "type": "string" + }, + "fixed_ip_address": { + "description": "Fixed IP", + "type": "string" + }, + "floating_ip_address": { + "description": "Floating IP", + "type": "string" + }, + "floating_network_id": { + "description": "External network UUID", + "format": "uuid", + "type": "string" + }, + "port_id": { + "description": "Port UUID", + "format": "uuid", + "type": "string" + }, + "subnet_id": { + "description": "Subnet UUID", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "floatingip" + ], + "type": "object" + }, + "PUT /v2.0/fwaas/firewall_groups/{id}": { + "description": "", + "properties": { + "firewall_group": { + "description": "", + "properties": { + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "egress_firewall_policy_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "ingress_firewall_policy_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "ports": { + "description": "", + "items": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": "array" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + } + }, + "type": "object" + } + }, + "required": [ + "firewall_group" + ], + "type": "object" + }, + "PUT /v2.0/fwaas/firewall_policies/{id}": { + "description": "", + "properties": { + "firewall_policy": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "firewall_policy", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "firewall_policy" + ], + "type": "object" + }, + "PUT /v2.0/fwaas/firewall_rules/{id}": { + "description": "", + "properties": { + "firewall_rule": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "firewall_rule", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "firewall_rule" + ], + "type": "object" + }, + "PUT /v2.0/lbaas/listeners/{id}": { + "description": "", + "properties": { + "listener": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "lbaas_listener", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "listener" + ], + "type": "object" + }, + "PUT /v2.0/lbaas/loadbalancers/{id}": { + "description": "", + "properties": { + "loadbalancer": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "lbaas_loadbalancer", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "loadbalancer" + ], + "type": "object" + }, + "PUT /v2.0/lbaas/pools/{id}": { + "description": "", + "properties": { + "pool": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "lbaas_pool", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "pool" + ], + "type": "object" + }, + "PUT /v2.0/local_ips/{id}": { + "description": "", + "properties": { + "local_ip": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "local_ip", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "local_ip" + ], + "type": "object" + }, + "PUT /v2.0/local_ips/{local_ip_id}/port_associations/{id}": { + "description": "", + "properties": { + "port_association": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "local_ip_association", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "port_association" + ], + "type": "object" + }, + "PUT /v2.0/log/logs/{id}": { + "description": "", + "properties": { + "log": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "log", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "log" + ], + "type": "object" + }, + "PUT /v2.0/metering/metering-label-rules/{id}": { + "description": "", + "properties": { + "metering_label_rule": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "metering_label_rule", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "metering_label_rule" + ], + "type": "object" + }, + "PUT /v2.0/metering/metering-labels/{id}": { + "description": "", + "properties": { + "metering_label": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + } + }, + "type": "object" + } + }, + "required": [ + "metering_label" + ], + "type": "object" + }, + "PUT /v2.0/ndp_proxies/{id}": { + "description": "", + "properties": { + "ndp_proxy": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "ndp_proxy", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "ndp_proxy" + ], + "type": "object" + }, + "PUT /v2.0/network_segment_ranges/{id}": { + "description": "", + "properties": { + "network_segment_range": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "network_segment_range", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "network_segment_range" + ], + "type": "object" + }, + "PUT /v2.0/networks/{id}": { + "description": "", + "properties": { + "network": { + "description": "", + "properties": { + "admin_state_up": { + "default": true, + "description": "Administrative state", + "type": "boolean" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "external": { + "default": false, + "description": "External network", + "type": "boolean" + }, + "mtu": { + "description": "MTU", + "example": 1500, + "minimum": 68, + "type": "integer" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port_security_enabled": { + "default": true, + "description": "Port security", + "type": "boolean" + }, + "provider:network_type": { + "description": "Provider network type", + "enum": [ + "local", + "flat", + "vlan", + "vxlan", + "gre" + ], + "type": "string" + }, + "provider:physical_network": { + "description": "Physical network label", + "type": "string" + }, + "provider:segmentation_id": { + "description": "Segmentation id", + "type": "integer" + }, + "router:external": { + "default": false, + "description": "Router external alias", + "type": "boolean" + }, + "shared": { + "default": false, + "description": "Shared across projects", + "type": "boolean" + } + }, + "type": "object" + } + }, + "required": [ + "network" + ], + "type": "object" + }, + "PUT /v2.0/ports/{id}": { + "description": "", + "properties": { + "port": { + "description": "", + "properties": { + "admin_state_up": { + "default": true, + "description": "Administrative state", + "type": "boolean" + }, + "allowed_address_pairs": { + "description": "", + "items": { + "description": "", + "properties": { + "ip_address": { + "description": "", + "type": "string" + }, + "mac_address": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "binding:vnic_type": { + "description": "VNIC type", + "enum": [ + "normal", + "direct", + "macvtap", + "baremetal" + ], + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "device_id": { + "description": "Device UUID", + "format": "uuid", + "type": "string" + }, + "device_owner": { + "description": "Device owner", + "type": "string" + }, + "fixed_ips": { + "description": "Fixed IPs", + "items": { + "description": "", + "properties": { + "ip_address": { + "description": "", + "type": "string" + }, + "subnet_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "mac_address": { + "description": "MAC address", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "network_id": { + "description": "Network UUID", + "format": "uuid", + "type": "string" + }, + "port_security_enabled": { + "description": "Port security", + "type": "boolean" + }, + "security_groups": { + "description": "", + "items": { + "description": "Security group UUID", + "format": "uuid", + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "required": [ + "port" + ], + "type": "object" + }, + "PUT /v2.0/qos/policies/{id}": { + "description": "", + "properties": { + "policy": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "is_default": { + "default": false, + "description": "", + "type": "boolean" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + } + }, + "type": "object" + } + }, + "required": [ + "policy" + ], + "type": "object" + }, + "PUT /v2.0/qos/policies/{policy_id}/bandwidth_limit_rules/{id}": { + "description": "", + "properties": { + "bandwidth_limit_rule": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "qos_bandwidth_limit_rule", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "bandwidth_limit_rule" + ], + "type": "object" + }, + "PUT /v2.0/qos/policies/{policy_id}/dscp_marking_rules/{id}": { + "description": "", + "properties": { + "dscp_marking_rule": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "qos_dscp_marking_rule", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "dscp_marking_rule" + ], + "type": "object" + }, + "PUT /v2.0/qos/policies/{policy_id}/minimum_bandwidth_rules/{id}": { + "description": "", + "properties": { + "minimum_bandwidth_rule": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "qos_minimum_bandwidth_rule", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "minimum_bandwidth_rule" + ], + "type": "object" + }, + "PUT /v2.0/quotas/{id}": { + "description": "", + "properties": { + "quota": { + "description": "", + "properties": { + "cores": { + "description": "", + "example": 20, + "type": "integer" + }, + "fixed_ips": { + "description": "", + "example": -1, + "type": "integer" + }, + "floating_ips": { + "description": "", + "example": 10, + "type": "integer" + }, + "force": { + "default": false, + "description": "", + "type": "boolean" + }, + "gigabytes": { + "description": "", + "example": 1000, + "type": "integer" + }, + "injected_file_content_bytes": { + "description": "", + "example": 10240, + "type": "integer" + }, + "injected_files": { + "description": "", + "example": 5, + "type": "integer" + }, + "instances": { + "description": "", + "example": 10, + "type": "integer" + }, + "key_pairs": { + "description": "", + "example": 100, + "type": "integer" + }, + "metadata_items": { + "description": "", + "example": 128, + "type": "integer" + }, + "networks": { + "description": "", + "example": 100, + "type": "integer" + }, + "ports": { + "description": "", + "example": 500, + "type": "integer" + }, + "ram": { + "description": "", + "example": 51200, + "type": "integer" + }, + "routers": { + "description": "", + "example": 10, + "type": "integer" + }, + "security_group_rules": { + "description": "", + "example": 20, + "type": "integer" + }, + "security_groups": { + "description": "", + "example": 10, + "type": "integer" + }, + "snapshots": { + "description": "", + "example": 10, + "type": "integer" + }, + "subnets": { + "description": "", + "example": 100, + "type": "integer" + }, + "volumes": { + "description": "", + "example": 10, + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "PUT /v2.0/rbac-policies/{id}": { + "description": "", + "properties": { + "rbac_policy": { + "description": "", + "properties": { + "action": { + "description": "", + "enum": [ + "access_as_shared", + "access_as_external" + ], + "example": "access_as_shared", + "type": "string" + }, + "object_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "object_type": { + "description": "", + "example": "network", + "type": "string" + }, + "target_tenant": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "rbac_policy" + ], + "type": "object" + }, + "PUT /v2.0/routers/{id}": { + "description": "", + "properties": { + "router": { + "description": "", + "properties": { + "admin_state_up": { + "default": true, + "description": "Administrative state", + "type": "boolean" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "distributed": { + "description": "DVR router", + "type": "boolean" + }, + "external_gateway_info": { + "description": "", + "properties": { + "enable_snat": { + "default": true, + "description": "SNAT", + "type": "boolean" + }, + "external_fixed_ips": { + "description": "", + "items": { + "description": "", + "properties": { + "ip_address": { + "description": "", + "type": "string" + }, + "subnet_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "network_id": { + "description": "External network UUID", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + }, + "ha": { + "description": "Highly available", + "type": "boolean" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "routes": { + "description": "", + "items": { + "description": "", + "properties": { + "destination": { + "description": "", + "type": "string" + }, + "nexthop": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "required": [ + "router" + ], + "type": "object" + }, + "PUT /v2.0/routers/{id}/add_extraroutes": { + "description": "", + "properties": { + "router": { + "description": "", + "properties": { + "admin_state_up": { + "default": true, + "description": "Administrative state", + "type": "boolean" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "distributed": { + "description": "DVR router", + "type": "boolean" + }, + "external_gateway_info": { + "description": "", + "properties": { + "enable_snat": { + "default": true, + "description": "SNAT", + "type": "boolean" + }, + "external_fixed_ips": { + "description": "", + "items": { + "description": "", + "properties": { + "ip_address": { + "description": "", + "type": "string" + }, + "subnet_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "network_id": { + "description": "External network UUID", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + }, + "ha": { + "description": "Highly available", + "type": "boolean" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "routes": { + "description": "", + "items": { + "description": "", + "properties": { + "destination": { + "description": "", + "type": "string" + }, + "nexthop": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "type": "object" + }, + "PUT /v2.0/routers/{id}/add_router_interface": { + "description": "", + "properties": { + "port_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "subnet_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + }, + "PUT /v2.0/routers/{id}/remove_extraroutes": { + "description": "", + "properties": { + "router": { + "description": "", + "properties": { + "admin_state_up": { + "default": true, + "description": "Administrative state", + "type": "boolean" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "distributed": { + "description": "DVR router", + "type": "boolean" + }, + "external_gateway_info": { + "description": "", + "properties": { + "enable_snat": { + "default": true, + "description": "SNAT", + "type": "boolean" + }, + "external_fixed_ips": { + "description": "", + "items": { + "description": "", + "properties": { + "ip_address": { + "description": "", + "type": "string" + }, + "subnet_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "network_id": { + "description": "External network UUID", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + }, + "ha": { + "description": "Highly available", + "type": "boolean" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "routes": { + "description": "", + "items": { + "description": "", + "properties": { + "destination": { + "description": "", + "type": "string" + }, + "nexthop": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "type": "object" + }, + "PUT /v2.0/routers/{id}/remove_router_interface": { + "description": "", + "properties": { + "port_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "subnet_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + }, + "PUT /v2.0/routers/{router_id}/conntrack_helpers/{id}": { + "description": "", + "properties": { + "conntrack_helper": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "conntrack_helper", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "conntrack_helper" + ], + "type": "object" + }, + "PUT /v2.0/security-group-rules/{id}": { + "description": "", + "properties": { + "security_group_rule": { + "description": "", + "properties": { + "description": { + "description": "", + "type": "string" + }, + "direction": { + "description": "Direction", + "enum": [ + "ingress", + "egress" + ], + "example": "ingress", + "type": "string" + }, + "ethertype": { + "description": "Ethertype", + "enum": [ + "IPv4", + "IPv6" + ], + "example": "IPv4", + "type": "string" + }, + "port_range_max": { + "description": "Max port", + "example": 22, + "type": "integer" + }, + "port_range_min": { + "description": "Min port", + "example": 22, + "type": "integer" + }, + "protocol": { + "description": "Protocol", + "example": "tcp", + "type": "string" + }, + "remote_group_id": { + "description": "Remote SG UUID", + "format": "uuid", + "type": "string" + }, + "remote_ip_prefix": { + "description": "CIDR", + "example": "0.0.0.0/0", + "type": "string" + }, + "security_group_id": { + "description": "Security group UUID", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "security_group_rule" + ], + "type": "object" + }, + "PUT /v2.0/security-groups/{id}": { + "description": "", + "properties": { + "security_group": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "security_group" + ], + "type": "object" + }, + "PUT /v2.0/segments/{id}": { + "description": "", + "properties": { + "segment": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "recovery_method": { + "description": "", + "enum": [ + "auto", + "reserved_host", + "auto_priority", + "rh_priority" + ], + "example": "auto", + "type": "string" + }, + "service_type": { + "description": "", + "enum": [ + "compute" + ], + "example": "compute", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "segment" + ], + "type": "object" + }, + "PUT /v2.0/service_profiles/{id}": { + "description": "", + "properties": { + "service_profile": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "service_profile", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "service_profile" + ], + "type": "object" + }, + "PUT /v2.0/subnetpools/{id}": { + "description": "", + "properties": { + "subnetpool": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "subnetpool", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "subnetpool" + ], + "type": "object" + }, + "PUT /v2.0/subnets/{id}": { + "description": "", + "properties": { + "subnet": { + "description": "", + "properties": { + "allocation_pools": { + "description": "Allocation pools", + "items": { + "description": "", + "properties": { + "end": { + "description": "End IP", + "type": "string" + }, + "start": { + "description": "Start IP", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "cidr": { + "description": "CIDR", + "example": "10.0.0.0/24", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "dns_nameservers": { + "description": "DNS nameservers", + "items": { + "description": "DNS server", + "type": "string" + }, + "type": "array" + }, + "enable_dhcp": { + "default": true, + "description": "DHCP enabled", + "type": "boolean" + }, + "gateway_ip": { + "description": "Gateway IP", + "type": "string" + }, + "host_routes": { + "description": "Host routes", + "items": { + "description": "", + "properties": { + "destination": { + "description": "", + "type": "string" + }, + "nexthop": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "ip_version": { + "description": "IP version", + "example": 4, + "type": "integer" + }, + "ipv6_address_mode": { + "description": "IPv6 address mode", + "type": "string" + }, + "ipv6_ra_mode": { + "description": "IPv6 RA mode", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "network_id": { + "description": "Parent network UUID", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "subnet" + ], + "type": "object" + }, + "PUT /v2.0/trunks/{id}": { + "description": "", + "properties": { + "trunk": { + "description": "", + "properties": { + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "sub_ports": { + "description": "", + "items": { + "description": "", + "properties": { + "port_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "segmentation_id": { + "description": "", + "example": 100, + "type": "integer" + }, + "segmentation_type": { + "description": "", + "example": "vlan", + "type": "string" + } + }, + "required": [ + "port_id", + "segmentation_type", + "segmentation_id" + ], + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "required": [ + "trunk" + ], + "type": "object" + }, + "PUT /v2.0/trunks/{trunk_id}/add_subports/{id}": { + "description": "", + "properties": { + "sub_port": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "trunk_subport", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "sub_port" + ], + "type": "object" + }, + "PUT /v2.0/vpn/endpoint-groups/{id}": { + "description": "", + "properties": { + "endpoint_group": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "vpn_endpoint_group", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "endpoint_group" + ], + "type": "object" + }, + "PUT /v2.0/vpn/ikepolicies/{id}": { + "description": "", + "properties": { + "ikepolicy": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "ike_policy", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "ikepolicy" + ], + "type": "object" + }, + "PUT /v2.0/vpn/ipsec-site-connections/{id}": { + "description": "", + "properties": { + "ipsec_site_connection": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "ipsec_site_connection", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "ipsec_site_connection" + ], + "type": "object" + }, + "PUT /v2.0/vpn/ipsecpolicies/{id}": { + "description": "", + "properties": { + "ipsecpolicy": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "ipsec_policy", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "ipsecpolicy" + ], + "type": "object" + }, + "PUT /v2.0/vpn/vpnservices/{id}": { + "description": "", + "properties": { + "vpnservice": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "vpn_service", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "vpnservice" + ], + "type": "object" + } + }, + "operations": { + "address_group_create": { + "description": "", + "properties": { + "address_group": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "address_group", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "address_group" + ], + "type": "object" + }, + "address_group_patch": { + "description": "", + "properties": { + "address_group": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "address_group", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "address_group" + ], + "type": "object" + }, + "address_group_update": { + "description": "", + "properties": { + "address_group": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "address_group", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "address_group" + ], + "type": "object" + }, + "address_scope_create": { + "description": "", + "properties": { + "address_scope": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "address_scope", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "address_scope" + ], + "type": "object" + }, + "address_scope_patch": { + "description": "", + "properties": { + "address_scope": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "address_scope", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "address_scope" + ], + "type": "object" + }, + "address_scope_update": { + "description": "", + "properties": { + "address_scope": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "address_scope", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "address_scope" + ], + "type": "object" + }, + "bgp_peer_create": { + "description": "", + "properties": { + "bgp_peer": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "bgp_peer", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "bgp_peer" + ], + "type": "object" + }, + "bgp_peer_patch": { + "description": "", + "properties": { + "bgp_peer": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "bgp_peer", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "bgp_peer" + ], + "type": "object" + }, + "bgp_peer_update": { + "description": "", + "properties": { + "bgp_peer": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "bgp_peer", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "bgp_peer" + ], + "type": "object" + }, + "bgp_speaker_create": { + "description": "", + "properties": { + "bgp_speaker": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "bgp_speaker", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "bgp_speaker" + ], + "type": "object" + }, + "bgp_speaker_patch": { + "description": "", + "properties": { + "bgp_speaker": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "bgp_speaker", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "bgp_speaker" + ], + "type": "object" + }, + "bgp_speaker_update": { + "description": "", + "properties": { + "bgp_speaker": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "bgp_speaker", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "bgp_speaker" + ], + "type": "object" + }, + "bgpvpn_create": { + "description": "", + "properties": { + "bgpvpn": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "bgpvpn", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "bgpvpn" + ], + "type": "object" + }, + "bgpvpn_network_association_create": { + "description": "", + "properties": { + "network_association": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "bgpvpn_network_association", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "network_association" + ], + "type": "object" + }, + "bgpvpn_network_association_patch": { + "description": "", + "properties": { + "network_association": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "bgpvpn_network_association", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "network_association" + ], + "type": "object" + }, + "bgpvpn_network_association_update": { + "description": "", + "properties": { + "network_association": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "bgpvpn_network_association", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "network_association" + ], + "type": "object" + }, + "bgpvpn_patch": { + "description": "", + "properties": { + "bgpvpn": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "bgpvpn", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "bgpvpn" + ], + "type": "object" + }, + "bgpvpn_router_association_create": { + "description": "", + "properties": { + "router_association": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "bgpvpn_router_association", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "router_association" + ], + "type": "object" + }, + "bgpvpn_router_association_patch": { + "description": "", + "properties": { + "router_association": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "bgpvpn_router_association", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "router_association" + ], + "type": "object" + }, + "bgpvpn_router_association_update": { + "description": "", + "properties": { + "router_association": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "bgpvpn_router_association", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "router_association" + ], + "type": "object" + }, + "bgpvpn_update": { + "description": "", + "properties": { + "bgpvpn": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "bgpvpn", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "bgpvpn" + ], + "type": "object" + }, + "conntrack_helper_create": { + "description": "", + "properties": { + "conntrack_helper": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "conntrack_helper", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "conntrack_helper" + ], + "type": "object" + }, + "conntrack_helper_patch": { + "description": "", + "properties": { + "conntrack_helper": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "conntrack_helper", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "conntrack_helper" + ], + "type": "object" + }, + "conntrack_helper_update": { + "description": "", + "properties": { + "conntrack_helper": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "conntrack_helper", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "conntrack_helper" + ], + "type": "object" + }, + "default_security_group_rule_create": { + "description": "", + "properties": { + "default_security_group_rule": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "default_security_group_rule", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "default_security_group_rule" + ], + "type": "object" + }, + "default_security_group_rule_patch": { + "description": "", + "properties": { + "default_security_group_rule": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "default_security_group_rule", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "default_security_group_rule" + ], + "type": "object" + }, + "default_security_group_rule_update": { + "description": "", + "properties": { + "default_security_group_rule": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "default_security_group_rule", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "default_security_group_rule" + ], + "type": "object" + }, + "firewall_group_create": { + "description": "", + "properties": { + "firewall_group": { + "description": "", + "properties": { + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "egress_firewall_policy_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "ingress_firewall_policy_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "ports": { + "description": "", + "items": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": "array" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "firewall_group" + ], + "type": "object" + }, + "firewall_group_patch": { + "description": "", + "properties": { + "firewall_group": { + "description": "", + "properties": { + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "egress_firewall_policy_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "ingress_firewall_policy_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "ports": { + "description": "", + "items": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": "array" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + } + }, + "type": "object" + } + }, + "required": [ + "firewall_group" + ], + "type": "object" + }, + "firewall_group_update": { + "description": "", + "properties": { + "firewall_group": { + "description": "", + "properties": { + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "egress_firewall_policy_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "ingress_firewall_policy_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "ports": { + "description": "", + "items": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": "array" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + } + }, + "type": "object" + } + }, + "required": [ + "firewall_group" + ], + "type": "object" + }, + "firewall_policy_create": { + "description": "", + "properties": { + "firewall_policy": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "firewall_policy", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "firewall_policy" + ], + "type": "object" + }, + "firewall_policy_patch": { + "description": "", + "properties": { + "firewall_policy": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "firewall_policy", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "firewall_policy" + ], + "type": "object" + }, + "firewall_policy_update": { + "description": "", + "properties": { + "firewall_policy": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "firewall_policy", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "firewall_policy" + ], + "type": "object" + }, + "firewall_rule_create": { + "description": "", + "properties": { + "firewall_rule": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "firewall_rule", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "firewall_rule" + ], + "type": "object" + }, + "firewall_rule_patch": { + "description": "", + "properties": { + "firewall_rule": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "firewall_rule", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "firewall_rule" + ], + "type": "object" + }, + "firewall_rule_update": { + "description": "", + "properties": { + "firewall_rule": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "firewall_rule", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "firewall_rule" + ], + "type": "object" + }, + "floatingip_create": { + "description": "", + "properties": { + "floatingip": { + "description": "", + "properties": { + "description": { + "description": "", + "type": "string" + }, + "dns_domain": { + "description": "", + "type": "string" + }, + "dns_name": { + "description": "", + "type": "string" + }, + "fixed_ip_address": { + "description": "Fixed IP", + "type": "string" + }, + "floating_ip_address": { + "description": "Floating IP", + "type": "string" + }, + "floating_network_id": { + "description": "External network UUID", + "format": "uuid", + "type": "string" + }, + "port_id": { + "description": "Port UUID", + "format": "uuid", + "type": "string" + }, + "subnet_id": { + "description": "Subnet UUID", + "format": "uuid", + "type": "string" + } + }, + "required": [ + "floating_network_id" + ], + "type": "object" + } + }, + "required": [ + "floatingip" + ], + "type": "object" + }, + "floatingip_patch": { + "description": "", + "properties": { + "floatingip": { + "description": "", + "properties": { + "description": { + "description": "", + "type": "string" + }, + "dns_domain": { + "description": "", + "type": "string" + }, + "dns_name": { + "description": "", + "type": "string" + }, + "fixed_ip_address": { + "description": "Fixed IP", + "type": "string" + }, + "floating_ip_address": { + "description": "Floating IP", + "type": "string" + }, + "floating_network_id": { + "description": "External network UUID", + "format": "uuid", + "type": "string" + }, + "port_id": { + "description": "Port UUID", + "format": "uuid", + "type": "string" + }, + "subnet_id": { + "description": "Subnet UUID", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "floatingip" + ], + "type": "object" + }, + "floatingip_port_forwarding_create": { + "description": "", + "properties": { + "port_forwarding": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "floatingip_port_forwarding", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "port_forwarding" + ], + "type": "object" + }, + "floatingip_port_forwarding_patch": { + "description": "", + "properties": { + "port_forwarding": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "floatingip_port_forwarding", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "port_forwarding" + ], + "type": "object" + }, + "floatingip_port_forwarding_update": { + "description": "", + "properties": { + "port_forwarding": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "floatingip_port_forwarding", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "port_forwarding" + ], + "type": "object" + }, + "floatingip_update": { + "description": "", + "properties": { + "floatingip": { + "description": "", + "properties": { + "description": { + "description": "", + "type": "string" + }, + "dns_domain": { + "description": "", + "type": "string" + }, + "dns_name": { + "description": "", + "type": "string" + }, + "fixed_ip_address": { + "description": "Fixed IP", + "type": "string" + }, + "floating_ip_address": { + "description": "Floating IP", + "type": "string" + }, + "floating_network_id": { + "description": "External network UUID", + "format": "uuid", + "type": "string" + }, + "port_id": { + "description": "Port UUID", + "format": "uuid", + "type": "string" + }, + "subnet_id": { + "description": "Subnet UUID", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "floatingip" + ], + "type": "object" + }, + "ike_policy_create": { + "description": "", + "properties": { + "ikepolicy": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "ike_policy", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "ikepolicy" + ], + "type": "object" + }, + "ike_policy_patch": { + "description": "", + "properties": { + "ikepolicy": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "ike_policy", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "ikepolicy" + ], + "type": "object" + }, + "ike_policy_update": { + "description": "", + "properties": { + "ikepolicy": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "ike_policy", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "ikepolicy" + ], + "type": "object" + }, + "ipsec_policy_create": { + "description": "", + "properties": { + "ipsecpolicy": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "ipsec_policy", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "ipsecpolicy" + ], + "type": "object" + }, + "ipsec_policy_patch": { + "description": "", + "properties": { + "ipsecpolicy": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "ipsec_policy", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "ipsecpolicy" + ], + "type": "object" + }, + "ipsec_policy_update": { + "description": "", + "properties": { + "ipsecpolicy": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "ipsec_policy", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "ipsecpolicy" + ], + "type": "object" + }, + "ipsec_site_connection_create": { + "description": "", + "properties": { + "ipsec_site_connection": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "ipsec_site_connection", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "ipsec_site_connection" + ], + "type": "object" + }, + "ipsec_site_connection_patch": { + "description": "", + "properties": { + "ipsec_site_connection": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "ipsec_site_connection", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "ipsec_site_connection" + ], + "type": "object" + }, + "ipsec_site_connection_update": { + "description": "", + "properties": { + "ipsec_site_connection": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "ipsec_site_connection", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "ipsec_site_connection" + ], + "type": "object" + }, + "lbaas_listener_create": { + "description": "", + "properties": { + "listener": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "lbaas_listener", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "listener" + ], + "type": "object" + }, + "lbaas_listener_patch": { + "description": "", + "properties": { + "listener": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "lbaas_listener", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "listener" + ], + "type": "object" + }, + "lbaas_listener_update": { + "description": "", + "properties": { + "listener": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "lbaas_listener", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "listener" + ], + "type": "object" + }, + "lbaas_loadbalancer_create": { + "description": "", + "properties": { + "loadbalancer": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "lbaas_loadbalancer", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "loadbalancer" + ], + "type": "object" + }, + "lbaas_loadbalancer_patch": { + "description": "", + "properties": { + "loadbalancer": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "lbaas_loadbalancer", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "loadbalancer" + ], + "type": "object" + }, + "lbaas_loadbalancer_update": { + "description": "", + "properties": { + "loadbalancer": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "lbaas_loadbalancer", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "loadbalancer" + ], + "type": "object" + }, + "lbaas_pool_create": { + "description": "", + "properties": { + "pool": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "lbaas_pool", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "pool" + ], + "type": "object" + }, + "lbaas_pool_patch": { + "description": "", + "properties": { + "pool": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "lbaas_pool", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "pool" + ], + "type": "object" + }, + "lbaas_pool_update": { + "description": "", + "properties": { + "pool": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "lbaas_pool", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "pool" + ], + "type": "object" + }, + "local_ip_association_create": { + "description": "", + "properties": { + "port_association": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "local_ip_association", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "port_association" + ], + "type": "object" + }, + "local_ip_association_patch": { + "description": "", + "properties": { + "port_association": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "local_ip_association", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "port_association" + ], + "type": "object" + }, + "local_ip_association_update": { + "description": "", + "properties": { + "port_association": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "local_ip_association", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "port_association" + ], + "type": "object" + }, + "local_ip_create": { + "description": "", + "properties": { + "local_ip": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "local_ip", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "local_ip" + ], + "type": "object" + }, + "local_ip_patch": { + "description": "", + "properties": { + "local_ip": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "local_ip", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "local_ip" + ], + "type": "object" + }, + "local_ip_update": { + "description": "", + "properties": { + "local_ip": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "local_ip", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "local_ip" + ], + "type": "object" + }, + "log_create": { + "description": "", + "properties": { + "log": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "log", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "log" + ], + "type": "object" + }, + "log_patch": { + "description": "", + "properties": { + "log": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "log", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "log" + ], + "type": "object" + }, + "log_update": { + "description": "", + "properties": { + "log": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "log", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "log" + ], + "type": "object" + }, + "metering_label_create": { + "description": "", + "properties": { + "metering_label": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "metering_label" + ], + "type": "object" + }, + "metering_label_patch": { + "description": "", + "properties": { + "metering_label": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + } + }, + "type": "object" + } + }, + "required": [ + "metering_label" + ], + "type": "object" + }, + "metering_label_rule_create": { + "description": "", + "properties": { + "metering_label_rule": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "metering_label_rule", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "metering_label_rule" + ], + "type": "object" + }, + "metering_label_rule_patch": { + "description": "", + "properties": { + "metering_label_rule": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "metering_label_rule", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "metering_label_rule" + ], + "type": "object" + }, + "metering_label_rule_update": { + "description": "", + "properties": { + "metering_label_rule": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "metering_label_rule", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "metering_label_rule" + ], + "type": "object" + }, + "metering_label_update": { + "description": "", + "properties": { + "metering_label": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + } + }, + "type": "object" + } + }, + "required": [ + "metering_label" + ], + "type": "object" + }, + "ndp_proxy_create": { + "description": "", + "properties": { + "ndp_proxy": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "ndp_proxy", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "ndp_proxy" + ], + "type": "object" + }, + "ndp_proxy_patch": { + "description": "", + "properties": { + "ndp_proxy": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "ndp_proxy", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "ndp_proxy" + ], + "type": "object" + }, + "ndp_proxy_update": { + "description": "", + "properties": { + "ndp_proxy": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "ndp_proxy", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "ndp_proxy" + ], + "type": "object" + }, + "network_create": { + "description": "", + "properties": { + "network": { + "description": "", + "properties": { + "admin_state_up": { + "default": true, + "description": "Administrative state", + "type": "boolean" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "external": { + "default": false, + "description": "External network", + "type": "boolean" + }, + "mtu": { + "description": "MTU", + "example": 1500, + "minimum": 68, + "type": "integer" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port_security_enabled": { + "default": true, + "description": "Port security", + "type": "boolean" + }, + "provider:network_type": { + "description": "Provider network type", + "enum": [ + "local", + "flat", + "vlan", + "vxlan", + "gre" + ], + "type": "string" + }, + "provider:physical_network": { + "description": "Physical network label", + "type": "string" + }, + "provider:segmentation_id": { + "description": "Segmentation id", + "type": "integer" + }, + "router:external": { + "default": false, + "description": "Router external alias", + "type": "boolean" + }, + "shared": { + "default": false, + "description": "Shared across projects", + "type": "boolean" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "network" + ], + "type": "object" + }, + "network_patch": { + "description": "", + "properties": { + "network": { + "description": "", + "properties": { + "admin_state_up": { + "default": true, + "description": "Administrative state", + "type": "boolean" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "external": { + "default": false, + "description": "External network", + "type": "boolean" + }, + "mtu": { + "description": "MTU", + "example": 1500, + "minimum": 68, + "type": "integer" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port_security_enabled": { + "default": true, + "description": "Port security", + "type": "boolean" + }, + "provider:network_type": { + "description": "Provider network type", + "enum": [ + "local", + "flat", + "vlan", + "vxlan", + "gre" + ], + "type": "string" + }, + "provider:physical_network": { + "description": "Physical network label", + "type": "string" + }, + "provider:segmentation_id": { + "description": "Segmentation id", + "type": "integer" + }, + "router:external": { + "default": false, + "description": "Router external alias", + "type": "boolean" + }, + "shared": { + "default": false, + "description": "Shared across projects", + "type": "boolean" + } + }, + "type": "object" + } + }, + "required": [ + "network" + ], + "type": "object" + }, + "network_segment_range_create": { + "description": "", + "properties": { + "network_segment_range": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "network_segment_range", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "network_segment_range" + ], + "type": "object" + }, + "network_segment_range_patch": { + "description": "", + "properties": { + "network_segment_range": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "network_segment_range", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "network_segment_range" + ], + "type": "object" + }, + "network_segment_range_update": { + "description": "", + "properties": { + "network_segment_range": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "network_segment_range", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "network_segment_range" + ], + "type": "object" + }, + "network_update": { + "description": "", + "properties": { + "network": { + "description": "", + "properties": { + "admin_state_up": { + "default": true, + "description": "Administrative state", + "type": "boolean" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "external": { + "default": false, + "description": "External network", + "type": "boolean" + }, + "mtu": { + "description": "MTU", + "example": 1500, + "minimum": 68, + "type": "integer" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port_security_enabled": { + "default": true, + "description": "Port security", + "type": "boolean" + }, + "provider:network_type": { + "description": "Provider network type", + "enum": [ + "local", + "flat", + "vlan", + "vxlan", + "gre" + ], + "type": "string" + }, + "provider:physical_network": { + "description": "Physical network label", + "type": "string" + }, + "provider:segmentation_id": { + "description": "Segmentation id", + "type": "integer" + }, + "router:external": { + "default": false, + "description": "Router external alias", + "type": "boolean" + }, + "shared": { + "default": false, + "description": "Shared across projects", + "type": "boolean" + } + }, + "type": "object" + } + }, + "required": [ + "network" + ], + "type": "object" + }, + "neutron_flavor_create": { + "description": "", + "properties": { + "flavor": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "neutron_flavor", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "flavor" + ], + "type": "object" + }, + "neutron_flavor_patch": { + "description": "", + "properties": { + "flavor": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "neutron_flavor", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "flavor" + ], + "type": "object" + }, + "neutron_flavor_update": { + "description": "", + "properties": { + "flavor": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "neutron_flavor", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "flavor" + ], + "type": "object" + }, + "neutron_quota_update": { + "description": "", + "properties": { + "quota": { + "description": "", + "properties": { + "cores": { + "description": "", + "example": 20, + "type": "integer" + }, + "fixed_ips": { + "description": "", + "example": -1, + "type": "integer" + }, + "floating_ips": { + "description": "", + "example": 10, + "type": "integer" + }, + "force": { + "default": false, + "description": "", + "type": "boolean" + }, + "gigabytes": { + "description": "", + "example": 1000, + "type": "integer" + }, + "injected_file_content_bytes": { + "description": "", + "example": 10240, + "type": "integer" + }, + "injected_files": { + "description": "", + "example": 5, + "type": "integer" + }, + "instances": { + "description": "", + "example": 10, + "type": "integer" + }, + "key_pairs": { + "description": "", + "example": 100, + "type": "integer" + }, + "metadata_items": { + "description": "", + "example": 128, + "type": "integer" + }, + "networks": { + "description": "", + "example": 100, + "type": "integer" + }, + "ports": { + "description": "", + "example": 500, + "type": "integer" + }, + "ram": { + "description": "", + "example": 51200, + "type": "integer" + }, + "routers": { + "description": "", + "example": 10, + "type": "integer" + }, + "security_group_rules": { + "description": "", + "example": 20, + "type": "integer" + }, + "security_groups": { + "description": "", + "example": 10, + "type": "integer" + }, + "snapshots": { + "description": "", + "example": 10, + "type": "integer" + }, + "subnets": { + "description": "", + "example": 100, + "type": "integer" + }, + "volumes": { + "description": "", + "example": 10, + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "port_create": { + "description": "", + "properties": { + "port": { + "description": "", + "properties": { + "admin_state_up": { + "default": true, + "description": "Administrative state", + "type": "boolean" + }, + "allowed_address_pairs": { + "description": "", + "items": { + "description": "", + "properties": { + "ip_address": { + "description": "", + "type": "string" + }, + "mac_address": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "binding:vnic_type": { + "description": "VNIC type", + "enum": [ + "normal", + "direct", + "macvtap", + "baremetal" + ], + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "device_id": { + "description": "Device UUID", + "format": "uuid", + "type": "string" + }, + "device_owner": { + "description": "Device owner", + "type": "string" + }, + "fixed_ips": { + "description": "Fixed IPs", + "items": { + "description": "", + "properties": { + "ip_address": { + "description": "", + "type": "string" + }, + "subnet_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "mac_address": { + "description": "MAC address", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "network_id": { + "description": "Network UUID", + "format": "uuid", + "type": "string" + }, + "port_security_enabled": { + "description": "Port security", + "type": "boolean" + }, + "security_groups": { + "description": "", + "items": { + "description": "Security group UUID", + "format": "uuid", + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "network_id" + ], + "type": "object" + } + }, + "required": [ + "port" + ], + "type": "object" + }, + "port_patch": { + "description": "", + "properties": { + "port": { + "description": "", + "properties": { + "admin_state_up": { + "default": true, + "description": "Administrative state", + "type": "boolean" + }, + "allowed_address_pairs": { + "description": "", + "items": { + "description": "", + "properties": { + "ip_address": { + "description": "", + "type": "string" + }, + "mac_address": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "binding:vnic_type": { + "description": "VNIC type", + "enum": [ + "normal", + "direct", + "macvtap", + "baremetal" + ], + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "device_id": { + "description": "Device UUID", + "format": "uuid", + "type": "string" + }, + "device_owner": { + "description": "Device owner", + "type": "string" + }, + "fixed_ips": { + "description": "Fixed IPs", + "items": { + "description": "", + "properties": { + "ip_address": { + "description": "", + "type": "string" + }, + "subnet_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "mac_address": { + "description": "MAC address", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "network_id": { + "description": "Network UUID", + "format": "uuid", + "type": "string" + }, + "port_security_enabled": { + "description": "Port security", + "type": "boolean" + }, + "security_groups": { + "description": "", + "items": { + "description": "Security group UUID", + "format": "uuid", + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "required": [ + "port" + ], + "type": "object" + }, + "port_update": { + "description": "", + "properties": { + "port": { + "description": "", + "properties": { + "admin_state_up": { + "default": true, + "description": "Administrative state", + "type": "boolean" + }, + "allowed_address_pairs": { + "description": "", + "items": { + "description": "", + "properties": { + "ip_address": { + "description": "", + "type": "string" + }, + "mac_address": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "binding:vnic_type": { + "description": "VNIC type", + "enum": [ + "normal", + "direct", + "macvtap", + "baremetal" + ], + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "device_id": { + "description": "Device UUID", + "format": "uuid", + "type": "string" + }, + "device_owner": { + "description": "Device owner", + "type": "string" + }, + "fixed_ips": { + "description": "Fixed IPs", + "items": { + "description": "", + "properties": { + "ip_address": { + "description": "", + "type": "string" + }, + "subnet_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "mac_address": { + "description": "MAC address", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "network_id": { + "description": "Network UUID", + "format": "uuid", + "type": "string" + }, + "port_security_enabled": { + "description": "Port security", + "type": "boolean" + }, + "security_groups": { + "description": "", + "items": { + "description": "Security group UUID", + "format": "uuid", + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "required": [ + "port" + ], + "type": "object" + }, + "qos_bandwidth_limit_rule_create": { + "description": "", + "properties": { + "bandwidth_limit_rule": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "qos_bandwidth_limit_rule", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "bandwidth_limit_rule" + ], + "type": "object" + }, + "qos_bandwidth_limit_rule_patch": { + "description": "", + "properties": { + "bandwidth_limit_rule": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "qos_bandwidth_limit_rule", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "bandwidth_limit_rule" + ], + "type": "object" + }, + "qos_bandwidth_limit_rule_update": { + "description": "", + "properties": { + "bandwidth_limit_rule": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "qos_bandwidth_limit_rule", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "bandwidth_limit_rule" + ], + "type": "object" + }, + "qos_dscp_marking_rule_create": { + "description": "", + "properties": { + "dscp_marking_rule": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "qos_dscp_marking_rule", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "dscp_marking_rule" + ], + "type": "object" + }, + "qos_dscp_marking_rule_patch": { + "description": "", + "properties": { + "dscp_marking_rule": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "qos_dscp_marking_rule", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "dscp_marking_rule" + ], + "type": "object" + }, + "qos_dscp_marking_rule_update": { + "description": "", + "properties": { + "dscp_marking_rule": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "qos_dscp_marking_rule", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "dscp_marking_rule" + ], + "type": "object" + }, + "qos_minimum_bandwidth_rule_create": { + "description": "", + "properties": { + "minimum_bandwidth_rule": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "qos_minimum_bandwidth_rule", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "minimum_bandwidth_rule" + ], + "type": "object" + }, + "qos_minimum_bandwidth_rule_patch": { + "description": "", + "properties": { + "minimum_bandwidth_rule": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "qos_minimum_bandwidth_rule", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "minimum_bandwidth_rule" + ], + "type": "object" + }, + "qos_minimum_bandwidth_rule_update": { + "description": "", + "properties": { + "minimum_bandwidth_rule": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "qos_minimum_bandwidth_rule", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "minimum_bandwidth_rule" + ], + "type": "object" + }, + "qos_policy_create": { + "description": "", + "properties": { + "policy": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "is_default": { + "default": false, + "description": "", + "type": "boolean" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "policy" + ], + "type": "object" + }, + "qos_policy_patch": { + "description": "", + "properties": { + "policy": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "is_default": { + "default": false, + "description": "", + "type": "boolean" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + } + }, + "type": "object" + } + }, + "required": [ + "policy" + ], + "type": "object" + }, + "qos_policy_update": { + "description": "", + "properties": { + "policy": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "is_default": { + "default": false, + "description": "", + "type": "boolean" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + } + }, + "type": "object" + } + }, + "required": [ + "policy" + ], + "type": "object" + }, + "rbac_policy_create": { + "description": "", + "properties": { + "rbac_policy": { + "description": "", + "properties": { + "action": { + "description": "", + "enum": [ + "access_as_shared", + "access_as_external" + ], + "example": "access_as_shared", + "type": "string" + }, + "object_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "object_type": { + "description": "", + "example": "network", + "type": "string" + }, + "target_tenant": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "required": [ + "object_type", + "object_id", + "target_tenant", + "action" + ], + "type": "object" + } + }, + "required": [ + "rbac_policy" + ], + "type": "object" + }, + "rbac_policy_patch": { + "description": "", + "properties": { + "rbac_policy": { + "description": "", + "properties": { + "action": { + "description": "", + "enum": [ + "access_as_shared", + "access_as_external" + ], + "example": "access_as_shared", + "type": "string" + }, + "object_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "object_type": { + "description": "", + "example": "network", + "type": "string" + }, + "target_tenant": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "rbac_policy" + ], + "type": "object" + }, + "rbac_policy_update": { + "description": "", + "properties": { + "rbac_policy": { + "description": "", + "properties": { + "action": { + "description": "", + "enum": [ + "access_as_shared", + "access_as_external" + ], + "example": "access_as_shared", + "type": "string" + }, + "object_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "object_type": { + "description": "", + "example": "network", + "type": "string" + }, + "target_tenant": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "rbac_policy" + ], + "type": "object" + }, + "router_add_extraroutes": { + "description": "", + "properties": { + "router": { + "description": "", + "properties": { + "admin_state_up": { + "default": true, + "description": "Administrative state", + "type": "boolean" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "distributed": { + "description": "DVR router", + "type": "boolean" + }, + "external_gateway_info": { + "description": "", + "properties": { + "enable_snat": { + "default": true, + "description": "SNAT", + "type": "boolean" + }, + "external_fixed_ips": { + "description": "", + "items": { + "description": "", + "properties": { + "ip_address": { + "description": "", + "type": "string" + }, + "subnet_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "network_id": { + "description": "External network UUID", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + }, + "ha": { + "description": "Highly available", + "type": "boolean" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "routes": { + "description": "", + "items": { + "description": "", + "properties": { + "destination": { + "description": "", + "type": "string" + }, + "nexthop": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "type": "object" + }, + "router_add_interface": { + "description": "", + "properties": { + "port_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "subnet_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + }, + "router_create": { + "description": "", + "properties": { + "router": { + "description": "", + "properties": { + "admin_state_up": { + "default": true, + "description": "Administrative state", + "type": "boolean" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "distributed": { + "description": "DVR router", + "type": "boolean" + }, + "external_gateway_info": { + "description": "", + "properties": { + "enable_snat": { + "default": true, + "description": "SNAT", + "type": "boolean" + }, + "external_fixed_ips": { + "description": "", + "items": { + "description": "", + "properties": { + "ip_address": { + "description": "", + "type": "string" + }, + "subnet_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "network_id": { + "description": "External network UUID", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + }, + "ha": { + "description": "Highly available", + "type": "boolean" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "routes": { + "description": "", + "items": { + "description": "", + "properties": { + "destination": { + "description": "", + "type": "string" + }, + "nexthop": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "router" + ], + "type": "object" + }, + "router_patch": { + "description": "", + "properties": { + "router": { + "description": "", + "properties": { + "admin_state_up": { + "default": true, + "description": "Administrative state", + "type": "boolean" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "distributed": { + "description": "DVR router", + "type": "boolean" + }, + "external_gateway_info": { + "description": "", + "properties": { + "enable_snat": { + "default": true, + "description": "SNAT", + "type": "boolean" + }, + "external_fixed_ips": { + "description": "", + "items": { + "description": "", + "properties": { + "ip_address": { + "description": "", + "type": "string" + }, + "subnet_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "network_id": { + "description": "External network UUID", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + }, + "ha": { + "description": "Highly available", + "type": "boolean" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "routes": { + "description": "", + "items": { + "description": "", + "properties": { + "destination": { + "description": "", + "type": "string" + }, + "nexthop": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "required": [ + "router" + ], + "type": "object" + }, + "router_remove_extraroutes": { + "description": "", + "properties": { + "router": { + "description": "", + "properties": { + "admin_state_up": { + "default": true, + "description": "Administrative state", + "type": "boolean" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "distributed": { + "description": "DVR router", + "type": "boolean" + }, + "external_gateway_info": { + "description": "", + "properties": { + "enable_snat": { + "default": true, + "description": "SNAT", + "type": "boolean" + }, + "external_fixed_ips": { + "description": "", + "items": { + "description": "", + "properties": { + "ip_address": { + "description": "", + "type": "string" + }, + "subnet_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "network_id": { + "description": "External network UUID", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + }, + "ha": { + "description": "Highly available", + "type": "boolean" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "routes": { + "description": "", + "items": { + "description": "", + "properties": { + "destination": { + "description": "", + "type": "string" + }, + "nexthop": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "type": "object" + }, + "router_remove_interface": { + "description": "", + "properties": { + "port_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "subnet_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + }, + "router_update": { + "description": "", + "properties": { + "router": { + "description": "", + "properties": { + "admin_state_up": { + "default": true, + "description": "Administrative state", + "type": "boolean" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "distributed": { + "description": "DVR router", + "type": "boolean" + }, + "external_gateway_info": { + "description": "", + "properties": { + "enable_snat": { + "default": true, + "description": "SNAT", + "type": "boolean" + }, + "external_fixed_ips": { + "description": "", + "items": { + "description": "", + "properties": { + "ip_address": { + "description": "", + "type": "string" + }, + "subnet_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "network_id": { + "description": "External network UUID", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + }, + "ha": { + "description": "Highly available", + "type": "boolean" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "routes": { + "description": "", + "items": { + "description": "", + "properties": { + "destination": { + "description": "", + "type": "string" + }, + "nexthop": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "required": [ + "router" + ], + "type": "object" + }, + "security_group_create": { + "description": "", + "properties": { + "security_group": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "security_group" + ], + "type": "object" + }, + "security_group_patch": { + "description": "", + "properties": { + "security_group": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "security_group" + ], + "type": "object" + }, + "security_group_rule_create": { + "description": "", + "properties": { + "security_group_rule": { + "description": "", + "properties": { + "description": { + "description": "", + "type": "string" + }, + "direction": { + "description": "Direction", + "enum": [ + "ingress", + "egress" + ], + "example": "ingress", + "type": "string" + }, + "ethertype": { + "description": "Ethertype", + "enum": [ + "IPv4", + "IPv6" + ], + "example": "IPv4", + "type": "string" + }, + "port_range_max": { + "description": "Max port", + "example": 22, + "type": "integer" + }, + "port_range_min": { + "description": "Min port", + "example": 22, + "type": "integer" + }, + "protocol": { + "description": "Protocol", + "example": "tcp", + "type": "string" + }, + "remote_group_id": { + "description": "Remote SG UUID", + "format": "uuid", + "type": "string" + }, + "remote_ip_prefix": { + "description": "CIDR", + "example": "0.0.0.0/0", + "type": "string" + }, + "security_group_id": { + "description": "Security group UUID", + "format": "uuid", + "type": "string" + } + }, + "required": [ + "security_group_id", + "direction" + ], + "type": "object" + } + }, + "required": [ + "security_group_rule" + ], + "type": "object" + }, + "security_group_rule_patch": { + "description": "", + "properties": { + "security_group_rule": { + "description": "", + "properties": { + "description": { + "description": "", + "type": "string" + }, + "direction": { + "description": "Direction", + "enum": [ + "ingress", + "egress" + ], + "example": "ingress", + "type": "string" + }, + "ethertype": { + "description": "Ethertype", + "enum": [ + "IPv4", + "IPv6" + ], + "example": "IPv4", + "type": "string" + }, + "port_range_max": { + "description": "Max port", + "example": 22, + "type": "integer" + }, + "port_range_min": { + "description": "Min port", + "example": 22, + "type": "integer" + }, + "protocol": { + "description": "Protocol", + "example": "tcp", + "type": "string" + }, + "remote_group_id": { + "description": "Remote SG UUID", + "format": "uuid", + "type": "string" + }, + "remote_ip_prefix": { + "description": "CIDR", + "example": "0.0.0.0/0", + "type": "string" + }, + "security_group_id": { + "description": "Security group UUID", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "security_group_rule" + ], + "type": "object" + }, + "security_group_rule_update": { + "description": "", + "properties": { + "security_group_rule": { + "description": "", + "properties": { + "description": { + "description": "", + "type": "string" + }, + "direction": { + "description": "Direction", + "enum": [ + "ingress", + "egress" + ], + "example": "ingress", + "type": "string" + }, + "ethertype": { + "description": "Ethertype", + "enum": [ + "IPv4", + "IPv6" + ], + "example": "IPv4", + "type": "string" + }, + "port_range_max": { + "description": "Max port", + "example": 22, + "type": "integer" + }, + "port_range_min": { + "description": "Min port", + "example": 22, + "type": "integer" + }, + "protocol": { + "description": "Protocol", + "example": "tcp", + "type": "string" + }, + "remote_group_id": { + "description": "Remote SG UUID", + "format": "uuid", + "type": "string" + }, + "remote_ip_prefix": { + "description": "CIDR", + "example": "0.0.0.0/0", + "type": "string" + }, + "security_group_id": { + "description": "Security group UUID", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "security_group_rule" + ], + "type": "object" + }, + "security_group_update": { + "description": "", + "properties": { + "security_group": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "security_group" + ], + "type": "object" + }, + "segment_create": { + "description": "", + "properties": { + "segment": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "recovery_method": { + "description": "", + "enum": [ + "auto", + "reserved_host", + "auto_priority", + "rh_priority" + ], + "example": "auto", + "type": "string" + }, + "service_type": { + "description": "", + "enum": [ + "compute" + ], + "example": "compute", + "type": "string" + } + }, + "required": [ + "name", + "recovery_method", + "service_type" + ], + "type": "object" + } + }, + "required": [ + "segment" + ], + "type": "object" + }, + "segment_patch": { + "description": "", + "properties": { + "segment": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "recovery_method": { + "description": "", + "enum": [ + "auto", + "reserved_host", + "auto_priority", + "rh_priority" + ], + "example": "auto", + "type": "string" + }, + "service_type": { + "description": "", + "enum": [ + "compute" + ], + "example": "compute", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "segment" + ], + "type": "object" + }, + "segment_update": { + "description": "", + "properties": { + "segment": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "recovery_method": { + "description": "", + "enum": [ + "auto", + "reserved_host", + "auto_priority", + "rh_priority" + ], + "example": "auto", + "type": "string" + }, + "service_type": { + "description": "", + "enum": [ + "compute" + ], + "example": "compute", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "segment" + ], + "type": "object" + }, + "service_profile_create": { + "description": "", + "properties": { + "service_profile": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "service_profile", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "service_profile" + ], + "type": "object" + }, + "service_profile_patch": { + "description": "", + "properties": { + "service_profile": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "service_profile", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "service_profile" + ], + "type": "object" + }, + "service_profile_update": { + "description": "", + "properties": { + "service_profile": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "service_profile", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "service_profile" + ], + "type": "object" + }, + "subnet_create": { + "description": "", + "properties": { + "subnet": { + "description": "", + "properties": { + "allocation_pools": { + "description": "Allocation pools", + "items": { + "description": "", + "properties": { + "end": { + "description": "End IP", + "type": "string" + }, + "start": { + "description": "Start IP", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "cidr": { + "description": "CIDR", + "example": "10.0.0.0/24", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "dns_nameservers": { + "description": "DNS nameservers", + "items": { + "description": "DNS server", + "type": "string" + }, + "type": "array" + }, + "enable_dhcp": { + "default": true, + "description": "DHCP enabled", + "type": "boolean" + }, + "gateway_ip": { + "description": "Gateway IP", + "type": "string" + }, + "host_routes": { + "description": "Host routes", + "items": { + "description": "", + "properties": { + "destination": { + "description": "", + "type": "string" + }, + "nexthop": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "ip_version": { + "description": "IP version", + "example": 4, + "type": "integer" + }, + "ipv6_address_mode": { + "description": "IPv6 address mode", + "type": "string" + }, + "ipv6_ra_mode": { + "description": "IPv6 RA mode", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "network_id": { + "description": "Parent network UUID", + "format": "uuid", + "type": "string" + } + }, + "required": [ + "network_id", + "cidr", + "ip_version" + ], + "type": "object" + } + }, + "required": [ + "subnet" + ], + "type": "object" + }, + "subnet_patch": { + "description": "", + "properties": { + "subnet": { + "description": "", + "properties": { + "allocation_pools": { + "description": "Allocation pools", + "items": { + "description": "", + "properties": { + "end": { + "description": "End IP", + "type": "string" + }, + "start": { + "description": "Start IP", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "cidr": { + "description": "CIDR", + "example": "10.0.0.0/24", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "dns_nameservers": { + "description": "DNS nameservers", + "items": { + "description": "DNS server", + "type": "string" + }, + "type": "array" + }, + "enable_dhcp": { + "default": true, + "description": "DHCP enabled", + "type": "boolean" + }, + "gateway_ip": { + "description": "Gateway IP", + "type": "string" + }, + "host_routes": { + "description": "Host routes", + "items": { + "description": "", + "properties": { + "destination": { + "description": "", + "type": "string" + }, + "nexthop": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "ip_version": { + "description": "IP version", + "example": 4, + "type": "integer" + }, + "ipv6_address_mode": { + "description": "IPv6 address mode", + "type": "string" + }, + "ipv6_ra_mode": { + "description": "IPv6 RA mode", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "network_id": { + "description": "Parent network UUID", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "subnet" + ], + "type": "object" + }, + "subnet_update": { + "description": "", + "properties": { + "subnet": { + "description": "", + "properties": { + "allocation_pools": { + "description": "Allocation pools", + "items": { + "description": "", + "properties": { + "end": { + "description": "End IP", + "type": "string" + }, + "start": { + "description": "Start IP", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "cidr": { + "description": "CIDR", + "example": "10.0.0.0/24", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "dns_nameservers": { + "description": "DNS nameservers", + "items": { + "description": "DNS server", + "type": "string" + }, + "type": "array" + }, + "enable_dhcp": { + "default": true, + "description": "DHCP enabled", + "type": "boolean" + }, + "gateway_ip": { + "description": "Gateway IP", + "type": "string" + }, + "host_routes": { + "description": "Host routes", + "items": { + "description": "", + "properties": { + "destination": { + "description": "", + "type": "string" + }, + "nexthop": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "ip_version": { + "description": "IP version", + "example": 4, + "type": "integer" + }, + "ipv6_address_mode": { + "description": "IPv6 address mode", + "type": "string" + }, + "ipv6_ra_mode": { + "description": "IPv6 RA mode", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "network_id": { + "description": "Parent network UUID", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "subnet" + ], + "type": "object" + }, + "subnetpool_create": { + "description": "", + "properties": { + "subnetpool": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "subnetpool", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "subnetpool" + ], + "type": "object" + }, + "subnetpool_patch": { + "description": "", + "properties": { + "subnetpool": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "subnetpool", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "subnetpool" + ], + "type": "object" + }, + "subnetpool_update": { + "description": "", + "properties": { + "subnetpool": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "subnetpool", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "subnetpool" + ], + "type": "object" + }, + "trunk_create": { + "description": "", + "properties": { + "trunk": { + "description": "", + "properties": { + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "sub_ports": { + "description": "", + "items": { + "description": "", + "properties": { + "port_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "segmentation_id": { + "description": "", + "example": 100, + "type": "integer" + }, + "segmentation_type": { + "description": "", + "example": "vlan", + "type": "string" + } + }, + "required": [ + "port_id", + "segmentation_type", + "segmentation_id" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "port_id" + ], + "type": "object" + } + }, + "required": [ + "trunk" + ], + "type": "object" + }, + "trunk_patch": { + "description": "", + "properties": { + "trunk": { + "description": "", + "properties": { + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "sub_ports": { + "description": "", + "items": { + "description": "", + "properties": { + "port_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "segmentation_id": { + "description": "", + "example": 100, + "type": "integer" + }, + "segmentation_type": { + "description": "", + "example": "vlan", + "type": "string" + } + }, + "required": [ + "port_id", + "segmentation_type", + "segmentation_id" + ], + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "required": [ + "trunk" + ], + "type": "object" + }, + "trunk_subport_create": { + "description": "", + "properties": { + "sub_port": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "trunk_subport", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "sub_port" + ], + "type": "object" + }, + "trunk_subport_patch": { + "description": "", + "properties": { + "sub_port": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "trunk_subport", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "sub_port" + ], + "type": "object" + }, + "trunk_subport_update": { + "description": "", + "properties": { + "sub_port": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "trunk_subport", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "sub_port" + ], + "type": "object" + }, + "trunk_update": { + "description": "", + "properties": { + "trunk": { + "description": "", + "properties": { + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "sub_ports": { + "description": "", + "items": { + "description": "", + "properties": { + "port_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "segmentation_id": { + "description": "", + "example": 100, + "type": "integer" + }, + "segmentation_type": { + "description": "", + "example": "vlan", + "type": "string" + } + }, + "required": [ + "port_id", + "segmentation_type", + "segmentation_id" + ], + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "required": [ + "trunk" + ], + "type": "object" + }, + "vpn_endpoint_group_create": { + "description": "", + "properties": { + "endpoint_group": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "vpn_endpoint_group", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "endpoint_group" + ], + "type": "object" + }, + "vpn_endpoint_group_patch": { + "description": "", + "properties": { + "endpoint_group": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "vpn_endpoint_group", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "endpoint_group" + ], + "type": "object" + }, + "vpn_endpoint_group_update": { + "description": "", + "properties": { + "endpoint_group": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "vpn_endpoint_group", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "endpoint_group" + ], + "type": "object" + }, + "vpn_service_create": { + "description": "", + "properties": { + "vpnservice": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "vpn_service", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "vpnservice" + ], + "type": "object" + }, + "vpn_service_patch": { + "description": "", + "properties": { + "vpnservice": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "vpn_service", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "vpnservice" + ], + "type": "object" + }, + "vpn_service_update": { + "description": "", + "properties": { + "vpnservice": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "vpn_service", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "vpnservice" + ], + "type": "object" + } + }, + "service": "neutron", + "source": "generated-from-api-ref-catalog" +} diff --git a/contracts/openstack/request_bodies/nova.json b/contracts/openstack/request_bodies/nova.json new file mode 100644 index 0000000..8078cf8 --- /dev/null +++ b/contracts/openstack/request_bodies/nova.json @@ -0,0 +1,10356 @@ +{ + "by_path": { + "PATCH /v2.1/flavors/{flavor_id}/os-extra_specs/{id}": { + "description": "", + "properties": { + "extra_spec": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "flavor_extra_spec", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "extra_spec" + ], + "type": "object" + }, + "PATCH /v2.1/flavors/{id}": { + "description": "", + "properties": { + "flavor": { + "description": "", + "properties": { + "OS-FLV-EXT-DATA:ephemeral": { + "description": "", + "example": 0, + "type": "integer" + }, + "disk": { + "description": "Root disk GiB", + "example": 1, + "type": "integer" + }, + "id": { + "description": "", + "example": "auto", + "type": "string" + }, + "name": { + "description": "", + "example": "example", + "type": "string" + }, + "os-flavor-access:is_public": { + "default": true, + "description": "", + "type": "boolean" + }, + "ram": { + "description": "RAM MiB", + "example": 512, + "type": "integer" + }, + "rxtx_factor": { + "example": 1.0, + "type": "number" + }, + "swap": { + "description": "", + "example": 0, + "type": "integer" + }, + "vcpus": { + "description": "", + "example": 1, + "type": "integer" + } + }, + "type": "object" + } + }, + "required": [ + "flavor" + ], + "type": "object" + }, + "PATCH /v2.1/os-agents/{id}": { + "description": "", + "properties": { + "agent": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "agent", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "agent" + ], + "type": "object" + }, + "PATCH /v2.1/os-aggregates/{id}": { + "description": "", + "properties": { + "aggregate": { + "description": "", + "properties": { + "availability_zone": { + "description": "", + "example": "nova", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "", + "example": "example", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "aggregate" + ], + "type": "object" + }, + "PATCH /v2.1/os-keypairs/{id}": { + "description": "", + "properties": { + "keypair": { + "description": "", + "properties": { + "name": { + "description": "", + "example": "example", + "type": "string" + }, + "public_key": { + "description": "SSH public key", + "type": "string" + }, + "type": { + "description": "", + "enum": [ + "ssh", + "x509" + ], + "example": "ssh", + "type": "string" + }, + "user_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "keypair" + ], + "type": "object" + }, + "PATCH /v2.1/os-server-groups/{id}": { + "description": "", + "properties": { + "server_group": { + "description": "", + "properties": { + "name": { + "description": "", + "example": "example", + "type": "string" + }, + "policies": { + "description": "", + "items": { + "description": "", + "enum": [ + "affinity", + "anti-affinity", + "soft-affinity", + "soft-anti-affinity" + ], + "type": "string" + }, + "type": "array" + }, + "policy": { + "description": "", + "enum": [ + "affinity", + "anti-affinity", + "soft-affinity", + "soft-anti-affinity" + ], + "type": "string" + }, + "rules": { + "description": "", + "properties": { + "max_server_per_host": { + "description": "", + "example": 1, + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "required": [ + "server_group" + ], + "type": "object" + }, + "PATCH /v2.1/servers/{id}": { + "description": "", + "properties": { + "server": { + "description": "", + "properties": { + "adminPass": { + "description": "Admin password", + "type": "string" + }, + "availability_zone": { + "description": "AZ name", + "type": "string" + }, + "block_device_mapping_v2": { + "description": "", + "items": { + "description": "BDM v2 entry", + "properties": {}, + "type": "object" + }, + "type": "array" + }, + "config_drive": { + "description": "Attach config drive", + "type": "boolean" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "flavorRef": { + "description": "Flavor UUID or id", + "example": "1", + "type": "string" + }, + "imageRef": { + "description": "Image UUID", + "format": "uuid", + "type": "string" + }, + "key_name": { + "description": "Keypair name", + "type": "string" + }, + "max_count": { + "description": "Maximum instances", + "example": 1, + "minimum": 1, + "type": "integer" + }, + "metadata": { + "description": "Arbitrary key/value metadata", + "properties": {}, + "type": "object" + }, + "min_count": { + "description": "Minimum instances", + "example": 1, + "minimum": 1, + "type": "integer" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "networks": { + "description": "NICs", + "items": { + "description": "", + "properties": { + "fixed_ip": { + "description": "Fixed IP address", + "type": "string" + }, + "port": { + "description": "Port UUID", + "format": "uuid", + "type": "string" + }, + "uuid": { + "description": "Network UUID", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "security_groups": { + "description": "", + "items": { + "description": "", + "properties": { + "name": { + "description": "Security group name", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "user_data": { + "description": "Base64 user data", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "server" + ], + "type": "object" + }, + "PATCH /v2.1/servers/{server_id}/consoles/{id}": { + "description": "", + "properties": { + "console": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "console", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "console" + ], + "type": "object" + }, + "PATCH /v2.1/servers/{server_id}/metadata/{id}": { + "description": "", + "properties": { + "metadata": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "server_metadata", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "metadata" + ], + "type": "object" + }, + "PATCH /v2.1/servers/{server_id}/migrations/{id}": { + "description": "", + "properties": { + "migration": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "server_migration", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "migration" + ], + "type": "object" + }, + "PATCH /v2.1/servers/{server_id}/os-instance-actions/{id}": { + "description": "", + "properties": { + "instanceAction": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "instance_action", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "instanceAction" + ], + "type": "object" + }, + "PATCH /v2.1/servers/{server_id}/os-interface/{id}": { + "description": "", + "properties": { + "interfaceAttachment": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "interface_attachment", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "interfaceAttachment" + ], + "type": "object" + }, + "PATCH /v2.1/servers/{server_id}/os-security-groups/{id}": { + "description": "", + "properties": { + "security_group": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "server_security_group", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "security_group" + ], + "type": "object" + }, + "PATCH /v2.1/servers/{server_id}/os-volume_attachments/{id}": { + "description": "", + "properties": { + "volumeAttachment": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "volume_attachment", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "volumeAttachment" + ], + "type": "object" + }, + "PATCH /v2.1/servers/{server_id}/tags/{id}": { + "description": "", + "properties": { + "tag": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "server_tag", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "tag" + ], + "type": "object" + }, + "POST /v2.1/flavors": { + "description": "", + "properties": { + "flavor": { + "description": "", + "properties": { + "OS-FLV-EXT-DATA:ephemeral": { + "description": "", + "example": 0, + "type": "integer" + }, + "disk": { + "description": "Root disk GiB", + "example": 1, + "type": "integer" + }, + "id": { + "description": "", + "example": "auto", + "type": "string" + }, + "name": { + "description": "", + "example": "example", + "type": "string" + }, + "os-flavor-access:is_public": { + "default": true, + "description": "", + "type": "boolean" + }, + "ram": { + "description": "RAM MiB", + "example": 512, + "type": "integer" + }, + "rxtx_factor": { + "example": 1.0, + "type": "number" + }, + "swap": { + "description": "", + "example": 0, + "type": "integer" + }, + "vcpus": { + "description": "", + "example": 1, + "type": "integer" + } + }, + "required": [ + "name", + "ram", + "vcpus", + "disk" + ], + "type": "object" + } + }, + "required": [ + "flavor" + ], + "type": "object" + }, + "POST /v2.1/flavors/{flavor_id}/os-extra_specs": { + "description": "", + "properties": { + "extra_spec": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "flavor_extra_spec", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "extra_spec" + ], + "type": "object" + }, + "POST /v2.1/os-agents": { + "description": "", + "properties": { + "agent": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "agent", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "agent" + ], + "type": "object" + }, + "POST /v2.1/os-aggregates": { + "description": "", + "properties": { + "aggregate": { + "description": "", + "properties": { + "availability_zone": { + "description": "", + "example": "nova", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "", + "example": "example", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "aggregate" + ], + "type": "object" + }, + "POST /v2.1/os-keypairs": { + "description": "", + "properties": { + "keypair": { + "description": "", + "properties": { + "name": { + "description": "", + "example": "example", + "type": "string" + }, + "public_key": { + "description": "SSH public key", + "type": "string" + }, + "type": { + "description": "", + "enum": [ + "ssh", + "x509" + ], + "example": "ssh", + "type": "string" + }, + "user_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "keypair" + ], + "type": "object" + }, + "POST /v2.1/os-server-external-events": { + "description": "", + "properties": { + "event": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "server_external_event", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "type": "object" + }, + "POST /v2.1/os-server-groups": { + "description": "", + "properties": { + "server_group": { + "description": "", + "properties": { + "name": { + "description": "", + "example": "example", + "type": "string" + }, + "policies": { + "description": "", + "items": { + "description": "", + "enum": [ + "affinity", + "anti-affinity", + "soft-affinity", + "soft-anti-affinity" + ], + "type": "string" + }, + "type": "array" + }, + "policy": { + "description": "", + "enum": [ + "affinity", + "anti-affinity", + "soft-affinity", + "soft-anti-affinity" + ], + "type": "string" + }, + "rules": { + "description": "", + "properties": { + "max_server_per_host": { + "description": "", + "example": 1, + "type": "integer" + } + }, + "type": "object" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "server_group" + ], + "type": "object" + }, + "POST /v2.1/servers": { + "description": "", + "properties": { + "server": { + "description": "", + "properties": { + "adminPass": { + "description": "Admin password", + "type": "string" + }, + "availability_zone": { + "description": "AZ name", + "type": "string" + }, + "block_device_mapping_v2": { + "description": "", + "items": { + "description": "BDM v2 entry", + "properties": {}, + "type": "object" + }, + "type": "array" + }, + "config_drive": { + "description": "Attach config drive", + "type": "boolean" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "flavorRef": { + "description": "Flavor UUID or id", + "example": "1", + "type": "string" + }, + "imageRef": { + "description": "Image UUID", + "format": "uuid", + "type": "string" + }, + "key_name": { + "description": "Keypair name", + "type": "string" + }, + "max_count": { + "description": "Maximum instances", + "example": 1, + "minimum": 1, + "type": "integer" + }, + "metadata": { + "description": "Arbitrary key/value metadata", + "properties": {}, + "type": "object" + }, + "min_count": { + "description": "Minimum instances", + "example": 1, + "minimum": 1, + "type": "integer" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "networks": { + "description": "NICs", + "items": { + "description": "", + "properties": { + "fixed_ip": { + "description": "Fixed IP address", + "type": "string" + }, + "port": { + "description": "Port UUID", + "format": "uuid", + "type": "string" + }, + "uuid": { + "description": "Network UUID", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "security_groups": { + "description": "", + "items": { + "description": "", + "properties": { + "name": { + "description": "Security group name", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "user_data": { + "description": "Base64 user data", + "type": "string" + } + }, + "required": [ + "name", + "flavorRef", + "networks" + ], + "type": "object" + } + }, + "required": [ + "server" + ], + "type": "object" + }, + "POST /v2.1/servers/{id}/action": { + "description": "", + "properties": { + "os-start": { + "description": "Action os-start body (null object)", + "type": "null" + } + }, + "required": [ + "os-start" + ], + "type": "object" + }, + "POST /v2.1/servers/{server_id}/consoles": { + "description": "", + "properties": { + "console": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "console", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "console" + ], + "type": "object" + }, + "POST /v2.1/servers/{server_id}/metadata": { + "description": "", + "properties": { + "metadata": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "server_metadata", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "metadata" + ], + "type": "object" + }, + "POST /v2.1/servers/{server_id}/migrations": { + "description": "", + "properties": { + "migration": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "server_migration", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "migration" + ], + "type": "object" + }, + "POST /v2.1/servers/{server_id}/os-instance-actions": { + "description": "", + "properties": { + "instanceAction": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "instance_action", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "instanceAction" + ], + "type": "object" + }, + "POST /v2.1/servers/{server_id}/os-interface": { + "description": "", + "properties": { + "interfaceAttachment": { + "description": "", + "properties": { + "fixed_ips": { + "description": "", + "items": { + "description": "", + "properties": { + "ip_address": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "net_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "port_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "interfaceAttachment" + ], + "type": "object" + }, + "POST /v2.1/servers/{server_id}/os-security-groups": { + "description": "", + "properties": { + "security_group": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "server_security_group", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "security_group" + ], + "type": "object" + }, + "POST /v2.1/servers/{server_id}/os-volume_attachments": { + "description": "", + "properties": { + "volumeAttachment": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "volume_attachment", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "volumeAttachment" + ], + "type": "object" + }, + "POST /v2.1/servers/{server_id}/remote-consoles": { + "description": "", + "properties": { + "remote_console": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "remote_console", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "type": "object" + }, + "POST /v2.1/servers/{server_id}/tags": { + "description": "", + "properties": { + "tags": { + "description": "", + "items": { + "description": "", + "example": "demo", + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "tags" + ], + "type": "object" + }, + "PUT /v2.1/flavors/{flavor_id}/os-extra_specs/{id}": { + "description": "", + "properties": { + "extra_spec": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "flavor_extra_spec", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "extra_spec" + ], + "type": "object" + }, + "PUT /v2.1/flavors/{id}": { + "description": "", + "properties": { + "flavor": { + "description": "", + "properties": { + "OS-FLV-EXT-DATA:ephemeral": { + "description": "", + "example": 0, + "type": "integer" + }, + "disk": { + "description": "Root disk GiB", + "example": 1, + "type": "integer" + }, + "id": { + "description": "", + "example": "auto", + "type": "string" + }, + "name": { + "description": "", + "example": "example", + "type": "string" + }, + "os-flavor-access:is_public": { + "default": true, + "description": "", + "type": "boolean" + }, + "ram": { + "description": "RAM MiB", + "example": 512, + "type": "integer" + }, + "rxtx_factor": { + "example": 1.0, + "type": "number" + }, + "swap": { + "description": "", + "example": 0, + "type": "integer" + }, + "vcpus": { + "description": "", + "example": 1, + "type": "integer" + } + }, + "type": "object" + } + }, + "required": [ + "flavor" + ], + "type": "object" + }, + "PUT /v2.1/os-agents/{id}": { + "description": "", + "properties": { + "agent": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "agent", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "agent" + ], + "type": "object" + }, + "PUT /v2.1/os-aggregates/{id}": { + "description": "", + "properties": { + "aggregate": { + "description": "", + "properties": { + "availability_zone": { + "description": "", + "example": "nova", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "", + "example": "example", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "aggregate" + ], + "type": "object" + }, + "PUT /v2.1/os-keypairs/{id}": { + "description": "", + "properties": { + "keypair": { + "description": "", + "properties": { + "name": { + "description": "", + "example": "example", + "type": "string" + }, + "public_key": { + "description": "SSH public key", + "type": "string" + }, + "type": { + "description": "", + "enum": [ + "ssh", + "x509" + ], + "example": "ssh", + "type": "string" + }, + "user_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "keypair" + ], + "type": "object" + }, + "PUT /v2.1/os-quota-sets/{id}": { + "description": "", + "properties": { + "quota_set": { + "description": "", + "properties": { + "cores": { + "description": "", + "example": 20, + "type": "integer" + }, + "fixed_ips": { + "description": "", + "example": -1, + "type": "integer" + }, + "floating_ips": { + "description": "", + "example": 10, + "type": "integer" + }, + "force": { + "default": false, + "description": "", + "type": "boolean" + }, + "gigabytes": { + "description": "", + "example": 1000, + "type": "integer" + }, + "injected_file_content_bytes": { + "description": "", + "example": 10240, + "type": "integer" + }, + "injected_files": { + "description": "", + "example": 5, + "type": "integer" + }, + "instances": { + "description": "", + "example": 10, + "type": "integer" + }, + "key_pairs": { + "description": "", + "example": 100, + "type": "integer" + }, + "metadata_items": { + "description": "", + "example": 128, + "type": "integer" + }, + "networks": { + "description": "", + "example": 100, + "type": "integer" + }, + "ports": { + "description": "", + "example": 500, + "type": "integer" + }, + "ram": { + "description": "", + "example": 51200, + "type": "integer" + }, + "routers": { + "description": "", + "example": 10, + "type": "integer" + }, + "security_group_rules": { + "description": "", + "example": 20, + "type": "integer" + }, + "security_groups": { + "description": "", + "example": 10, + "type": "integer" + }, + "snapshots": { + "description": "", + "example": 10, + "type": "integer" + }, + "subnets": { + "description": "", + "example": 100, + "type": "integer" + }, + "volumes": { + "description": "", + "example": 10, + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "PUT /v2.1/os-server-groups/{id}": { + "description": "", + "properties": { + "server_group": { + "description": "", + "properties": { + "name": { + "description": "", + "example": "example", + "type": "string" + }, + "policies": { + "description": "", + "items": { + "description": "", + "enum": [ + "affinity", + "anti-affinity", + "soft-affinity", + "soft-anti-affinity" + ], + "type": "string" + }, + "type": "array" + }, + "policy": { + "description": "", + "enum": [ + "affinity", + "anti-affinity", + "soft-affinity", + "soft-anti-affinity" + ], + "type": "string" + }, + "rules": { + "description": "", + "properties": { + "max_server_per_host": { + "description": "", + "example": 1, + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "required": [ + "server_group" + ], + "type": "object" + }, + "PUT /v2.1/servers/{id}": { + "description": "", + "properties": { + "server": { + "description": "", + "properties": { + "adminPass": { + "description": "Admin password", + "type": "string" + }, + "availability_zone": { + "description": "AZ name", + "type": "string" + }, + "block_device_mapping_v2": { + "description": "", + "items": { + "description": "BDM v2 entry", + "properties": {}, + "type": "object" + }, + "type": "array" + }, + "config_drive": { + "description": "Attach config drive", + "type": "boolean" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "flavorRef": { + "description": "Flavor UUID or id", + "example": "1", + "type": "string" + }, + "imageRef": { + "description": "Image UUID", + "format": "uuid", + "type": "string" + }, + "key_name": { + "description": "Keypair name", + "type": "string" + }, + "max_count": { + "description": "Maximum instances", + "example": 1, + "minimum": 1, + "type": "integer" + }, + "metadata": { + "description": "Arbitrary key/value metadata", + "properties": {}, + "type": "object" + }, + "min_count": { + "description": "Minimum instances", + "example": 1, + "minimum": 1, + "type": "integer" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "networks": { + "description": "NICs", + "items": { + "description": "", + "properties": { + "fixed_ip": { + "description": "Fixed IP address", + "type": "string" + }, + "port": { + "description": "Port UUID", + "format": "uuid", + "type": "string" + }, + "uuid": { + "description": "Network UUID", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "security_groups": { + "description": "", + "items": { + "description": "", + "properties": { + "name": { + "description": "Security group name", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "user_data": { + "description": "Base64 user data", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "server" + ], + "type": "object" + }, + "PUT /v2.1/servers/{server_id}/consoles/{id}": { + "description": "", + "properties": { + "console": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "console", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "console" + ], + "type": "object" + }, + "PUT /v2.1/servers/{server_id}/metadata/{id}": { + "description": "", + "properties": { + "metadata": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "server_metadata", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "metadata" + ], + "type": "object" + }, + "PUT /v2.1/servers/{server_id}/migrations/{id}": { + "description": "", + "properties": { + "migration": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "server_migration", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "migration" + ], + "type": "object" + }, + "PUT /v2.1/servers/{server_id}/os-instance-actions/{id}": { + "description": "", + "properties": { + "instanceAction": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "instance_action", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "instanceAction" + ], + "type": "object" + }, + "PUT /v2.1/servers/{server_id}/os-interface/{id}": { + "description": "", + "properties": { + "interfaceAttachment": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "interface_attachment", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "interfaceAttachment" + ], + "type": "object" + }, + "PUT /v2.1/servers/{server_id}/os-security-groups/{id}": { + "description": "", + "properties": { + "security_group": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "server_security_group", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "security_group" + ], + "type": "object" + }, + "PUT /v2.1/servers/{server_id}/os-volume_attachments/{id}": { + "description": "", + "properties": { + "volumeAttachment": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "volume_attachment", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "volumeAttachment" + ], + "type": "object" + }, + "PUT /v2.1/servers/{server_id}/tags/{id}": { + "description": "", + "properties": { + "tag": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "server_tag", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "tag" + ], + "type": "object" + } + }, + "operations": { + "agent_create": { + "description": "", + "properties": { + "agent": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "agent", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "agent" + ], + "type": "object" + }, + "agent_patch": { + "description": "", + "properties": { + "agent": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "agent", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "agent" + ], + "type": "object" + }, + "agent_update": { + "description": "", + "properties": { + "agent": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "agent", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "agent" + ], + "type": "object" + }, + "aggregate_create": { + "description": "", + "properties": { + "aggregate": { + "description": "", + "properties": { + "availability_zone": { + "description": "", + "example": "nova", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "", + "example": "example", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "aggregate" + ], + "type": "object" + }, + "aggregate_patch": { + "description": "", + "properties": { + "aggregate": { + "description": "", + "properties": { + "availability_zone": { + "description": "", + "example": "nova", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "", + "example": "example", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "aggregate" + ], + "type": "object" + }, + "aggregate_update": { + "description": "", + "properties": { + "aggregate": { + "description": "", + "properties": { + "availability_zone": { + "description": "", + "example": "nova", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "", + "example": "example", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "aggregate" + ], + "type": "object" + }, + "console_create": { + "description": "", + "properties": { + "console": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "console", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "console" + ], + "type": "object" + }, + "console_patch": { + "description": "", + "properties": { + "console": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "console", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "console" + ], + "type": "object" + }, + "console_update": { + "description": "", + "properties": { + "console": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "console", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "console" + ], + "type": "object" + }, + "flavor_create": { + "description": "", + "properties": { + "flavor": { + "description": "", + "properties": { + "OS-FLV-EXT-DATA:ephemeral": { + "description": "", + "example": 0, + "type": "integer" + }, + "disk": { + "description": "Root disk GiB", + "example": 1, + "type": "integer" + }, + "id": { + "description": "", + "example": "auto", + "type": "string" + }, + "name": { + "description": "", + "example": "example", + "type": "string" + }, + "os-flavor-access:is_public": { + "default": true, + "description": "", + "type": "boolean" + }, + "ram": { + "description": "RAM MiB", + "example": 512, + "type": "integer" + }, + "rxtx_factor": { + "example": 1.0, + "type": "number" + }, + "swap": { + "description": "", + "example": 0, + "type": "integer" + }, + "vcpus": { + "description": "", + "example": 1, + "type": "integer" + } + }, + "required": [ + "name", + "ram", + "vcpus", + "disk" + ], + "type": "object" + } + }, + "required": [ + "flavor" + ], + "type": "object" + }, + "flavor_extra_spec_create": { + "description": "", + "properties": { + "extra_spec": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "flavor_extra_spec", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "extra_spec" + ], + "type": "object" + }, + "flavor_extra_spec_patch": { + "description": "", + "properties": { + "extra_spec": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "flavor_extra_spec", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "extra_spec" + ], + "type": "object" + }, + "flavor_extra_spec_update": { + "description": "", + "properties": { + "extra_spec": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "flavor_extra_spec", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "extra_spec" + ], + "type": "object" + }, + "flavor_patch": { + "description": "", + "properties": { + "flavor": { + "description": "", + "properties": { + "OS-FLV-EXT-DATA:ephemeral": { + "description": "", + "example": 0, + "type": "integer" + }, + "disk": { + "description": "Root disk GiB", + "example": 1, + "type": "integer" + }, + "id": { + "description": "", + "example": "auto", + "type": "string" + }, + "name": { + "description": "", + "example": "example", + "type": "string" + }, + "os-flavor-access:is_public": { + "default": true, + "description": "", + "type": "boolean" + }, + "ram": { + "description": "RAM MiB", + "example": 512, + "type": "integer" + }, + "rxtx_factor": { + "example": 1.0, + "type": "number" + }, + "swap": { + "description": "", + "example": 0, + "type": "integer" + }, + "vcpus": { + "description": "", + "example": 1, + "type": "integer" + } + }, + "type": "object" + } + }, + "required": [ + "flavor" + ], + "type": "object" + }, + "flavor_update": { + "description": "", + "properties": { + "flavor": { + "description": "", + "properties": { + "OS-FLV-EXT-DATA:ephemeral": { + "description": "", + "example": 0, + "type": "integer" + }, + "disk": { + "description": "Root disk GiB", + "example": 1, + "type": "integer" + }, + "id": { + "description": "", + "example": "auto", + "type": "string" + }, + "name": { + "description": "", + "example": "example", + "type": "string" + }, + "os-flavor-access:is_public": { + "default": true, + "description": "", + "type": "boolean" + }, + "ram": { + "description": "RAM MiB", + "example": 512, + "type": "integer" + }, + "rxtx_factor": { + "example": 1.0, + "type": "number" + }, + "swap": { + "description": "", + "example": 0, + "type": "integer" + }, + "vcpus": { + "description": "", + "example": 1, + "type": "integer" + } + }, + "type": "object" + } + }, + "required": [ + "flavor" + ], + "type": "object" + }, + "instance_action_create": { + "description": "", + "properties": { + "instanceAction": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "instance_action", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "instanceAction" + ], + "type": "object" + }, + "instance_action_patch": { + "description": "", + "properties": { + "instanceAction": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "instance_action", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "instanceAction" + ], + "type": "object" + }, + "instance_action_update": { + "description": "", + "properties": { + "instanceAction": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "instance_action", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "instanceAction" + ], + "type": "object" + }, + "interface_attachment_create": { + "description": "", + "properties": { + "interfaceAttachment": { + "description": "", + "properties": { + "fixed_ips": { + "description": "", + "items": { + "description": "", + "properties": { + "ip_address": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "net_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "port_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "interfaceAttachment" + ], + "type": "object" + }, + "interface_attachment_patch": { + "description": "", + "properties": { + "interfaceAttachment": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "interface_attachment", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "interfaceAttachment" + ], + "type": "object" + }, + "interface_attachment_update": { + "description": "", + "properties": { + "interfaceAttachment": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "interface_attachment", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "interfaceAttachment" + ], + "type": "object" + }, + "keypair_create": { + "description": "", + "properties": { + "keypair": { + "description": "", + "properties": { + "name": { + "description": "", + "example": "example", + "type": "string" + }, + "public_key": { + "description": "SSH public key", + "type": "string" + }, + "type": { + "description": "", + "enum": [ + "ssh", + "x509" + ], + "example": "ssh", + "type": "string" + }, + "user_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "keypair" + ], + "type": "object" + }, + "keypair_patch": { + "description": "", + "properties": { + "keypair": { + "description": "", + "properties": { + "name": { + "description": "", + "example": "example", + "type": "string" + }, + "public_key": { + "description": "SSH public key", + "type": "string" + }, + "type": { + "description": "", + "enum": [ + "ssh", + "x509" + ], + "example": "ssh", + "type": "string" + }, + "user_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "keypair" + ], + "type": "object" + }, + "keypair_update": { + "description": "", + "properties": { + "keypair": { + "description": "", + "properties": { + "name": { + "description": "", + "example": "example", + "type": "string" + }, + "public_key": { + "description": "SSH public key", + "type": "string" + }, + "type": { + "description": "", + "enum": [ + "ssh", + "x509" + ], + "example": "ssh", + "type": "string" + }, + "user_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "keypair" + ], + "type": "object" + }, + "quota_set_update": { + "description": "", + "properties": { + "quota_set": { + "description": "", + "properties": { + "cores": { + "description": "", + "example": 20, + "type": "integer" + }, + "fixed_ips": { + "description": "", + "example": -1, + "type": "integer" + }, + "floating_ips": { + "description": "", + "example": 10, + "type": "integer" + }, + "force": { + "default": false, + "description": "", + "type": "boolean" + }, + "gigabytes": { + "description": "", + "example": 1000, + "type": "integer" + }, + "injected_file_content_bytes": { + "description": "", + "example": 10240, + "type": "integer" + }, + "injected_files": { + "description": "", + "example": 5, + "type": "integer" + }, + "instances": { + "description": "", + "example": 10, + "type": "integer" + }, + "key_pairs": { + "description": "", + "example": 100, + "type": "integer" + }, + "metadata_items": { + "description": "", + "example": 128, + "type": "integer" + }, + "networks": { + "description": "", + "example": 100, + "type": "integer" + }, + "ports": { + "description": "", + "example": 500, + "type": "integer" + }, + "ram": { + "description": "", + "example": 51200, + "type": "integer" + }, + "routers": { + "description": "", + "example": 10, + "type": "integer" + }, + "security_group_rules": { + "description": "", + "example": 20, + "type": "integer" + }, + "security_groups": { + "description": "", + "example": 10, + "type": "integer" + }, + "snapshots": { + "description": "", + "example": 10, + "type": "integer" + }, + "subnets": { + "description": "", + "example": 100, + "type": "integer" + }, + "volumes": { + "description": "", + "example": 10, + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "remote_console_create": { + "description": "", + "properties": { + "remote_console": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "remote_console", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "type": "object" + }, + "server_action": { + "description": "", + "properties": { + "os-start": { + "description": "Action os-start body (null object)", + "type": "null" + } + }, + "required": [ + "os-start" + ], + "type": "object" + }, + "server_create": { + "description": "", + "properties": { + "server": { + "description": "", + "properties": { + "adminPass": { + "description": "Admin password", + "type": "string" + }, + "availability_zone": { + "description": "AZ name", + "type": "string" + }, + "block_device_mapping_v2": { + "description": "", + "items": { + "description": "BDM v2 entry", + "properties": {}, + "type": "object" + }, + "type": "array" + }, + "config_drive": { + "description": "Attach config drive", + "type": "boolean" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "flavorRef": { + "description": "Flavor UUID or id", + "example": "1", + "type": "string" + }, + "imageRef": { + "description": "Image UUID", + "format": "uuid", + "type": "string" + }, + "key_name": { + "description": "Keypair name", + "type": "string" + }, + "max_count": { + "description": "Maximum instances", + "example": 1, + "minimum": 1, + "type": "integer" + }, + "metadata": { + "description": "Arbitrary key/value metadata", + "properties": {}, + "type": "object" + }, + "min_count": { + "description": "Minimum instances", + "example": 1, + "minimum": 1, + "type": "integer" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "networks": { + "description": "NICs", + "items": { + "description": "", + "properties": { + "fixed_ip": { + "description": "Fixed IP address", + "type": "string" + }, + "port": { + "description": "Port UUID", + "format": "uuid", + "type": "string" + }, + "uuid": { + "description": "Network UUID", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "security_groups": { + "description": "", + "items": { + "description": "", + "properties": { + "name": { + "description": "Security group name", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "user_data": { + "description": "Base64 user data", + "type": "string" + } + }, + "required": [ + "name", + "flavorRef", + "networks" + ], + "type": "object" + } + }, + "required": [ + "server" + ], + "type": "object" + }, + "server_external_events": { + "description": "", + "properties": { + "event": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "server_external_event", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "type": "object" + }, + "server_group_create": { + "description": "", + "properties": { + "server_group": { + "description": "", + "properties": { + "name": { + "description": "", + "example": "example", + "type": "string" + }, + "policies": { + "description": "", + "items": { + "description": "", + "enum": [ + "affinity", + "anti-affinity", + "soft-affinity", + "soft-anti-affinity" + ], + "type": "string" + }, + "type": "array" + }, + "policy": { + "description": "", + "enum": [ + "affinity", + "anti-affinity", + "soft-affinity", + "soft-anti-affinity" + ], + "type": "string" + }, + "rules": { + "description": "", + "properties": { + "max_server_per_host": { + "description": "", + "example": 1, + "type": "integer" + } + }, + "type": "object" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "server_group" + ], + "type": "object" + }, + "server_group_patch": { + "description": "", + "properties": { + "server_group": { + "description": "", + "properties": { + "name": { + "description": "", + "example": "example", + "type": "string" + }, + "policies": { + "description": "", + "items": { + "description": "", + "enum": [ + "affinity", + "anti-affinity", + "soft-affinity", + "soft-anti-affinity" + ], + "type": "string" + }, + "type": "array" + }, + "policy": { + "description": "", + "enum": [ + "affinity", + "anti-affinity", + "soft-affinity", + "soft-anti-affinity" + ], + "type": "string" + }, + "rules": { + "description": "", + "properties": { + "max_server_per_host": { + "description": "", + "example": 1, + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "required": [ + "server_group" + ], + "type": "object" + }, + "server_group_update": { + "description": "", + "properties": { + "server_group": { + "description": "", + "properties": { + "name": { + "description": "", + "example": "example", + "type": "string" + }, + "policies": { + "description": "", + "items": { + "description": "", + "enum": [ + "affinity", + "anti-affinity", + "soft-affinity", + "soft-anti-affinity" + ], + "type": "string" + }, + "type": "array" + }, + "policy": { + "description": "", + "enum": [ + "affinity", + "anti-affinity", + "soft-affinity", + "soft-anti-affinity" + ], + "type": "string" + }, + "rules": { + "description": "", + "properties": { + "max_server_per_host": { + "description": "", + "example": 1, + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "required": [ + "server_group" + ], + "type": "object" + }, + "server_metadata_create": { + "description": "", + "properties": { + "metadata": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "server_metadata", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "metadata" + ], + "type": "object" + }, + "server_metadata_patch": { + "description": "", + "properties": { + "metadata": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "server_metadata", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "metadata" + ], + "type": "object" + }, + "server_metadata_update": { + "description": "", + "properties": { + "metadata": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "server_metadata", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "metadata" + ], + "type": "object" + }, + "server_migration_create": { + "description": "", + "properties": { + "migration": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "server_migration", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "migration" + ], + "type": "object" + }, + "server_migration_patch": { + "description": "", + "properties": { + "migration": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "server_migration", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "migration" + ], + "type": "object" + }, + "server_migration_update": { + "description": "", + "properties": { + "migration": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "server_migration", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "migration" + ], + "type": "object" + }, + "server_patch": { + "description": "", + "properties": { + "server": { + "description": "", + "properties": { + "adminPass": { + "description": "Admin password", + "type": "string" + }, + "availability_zone": { + "description": "AZ name", + "type": "string" + }, + "block_device_mapping_v2": { + "description": "", + "items": { + "description": "BDM v2 entry", + "properties": {}, + "type": "object" + }, + "type": "array" + }, + "config_drive": { + "description": "Attach config drive", + "type": "boolean" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "flavorRef": { + "description": "Flavor UUID or id", + "example": "1", + "type": "string" + }, + "imageRef": { + "description": "Image UUID", + "format": "uuid", + "type": "string" + }, + "key_name": { + "description": "Keypair name", + "type": "string" + }, + "max_count": { + "description": "Maximum instances", + "example": 1, + "minimum": 1, + "type": "integer" + }, + "metadata": { + "description": "Arbitrary key/value metadata", + "properties": {}, + "type": "object" + }, + "min_count": { + "description": "Minimum instances", + "example": 1, + "minimum": 1, + "type": "integer" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "networks": { + "description": "NICs", + "items": { + "description": "", + "properties": { + "fixed_ip": { + "description": "Fixed IP address", + "type": "string" + }, + "port": { + "description": "Port UUID", + "format": "uuid", + "type": "string" + }, + "uuid": { + "description": "Network UUID", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "security_groups": { + "description": "", + "items": { + "description": "", + "properties": { + "name": { + "description": "Security group name", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "user_data": { + "description": "Base64 user data", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "server" + ], + "type": "object" + }, + "server_security_group_create": { + "description": "", + "properties": { + "security_group": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "server_security_group", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "security_group" + ], + "type": "object" + }, + "server_security_group_patch": { + "description": "", + "properties": { + "security_group": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "server_security_group", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "security_group" + ], + "type": "object" + }, + "server_security_group_update": { + "description": "", + "properties": { + "security_group": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "server_security_group", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "security_group" + ], + "type": "object" + }, + "server_tag_create": { + "description": "", + "properties": { + "tags": { + "description": "", + "items": { + "description": "", + "example": "demo", + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "tags" + ], + "type": "object" + }, + "server_tag_patch": { + "description": "", + "properties": { + "tag": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "server_tag", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "tag" + ], + "type": "object" + }, + "server_tag_update": { + "description": "", + "properties": { + "tag": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "server_tag", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "tag" + ], + "type": "object" + }, + "server_update": { + "description": "", + "properties": { + "server": { + "description": "", + "properties": { + "adminPass": { + "description": "Admin password", + "type": "string" + }, + "availability_zone": { + "description": "AZ name", + "type": "string" + }, + "block_device_mapping_v2": { + "description": "", + "items": { + "description": "BDM v2 entry", + "properties": {}, + "type": "object" + }, + "type": "array" + }, + "config_drive": { + "description": "Attach config drive", + "type": "boolean" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "flavorRef": { + "description": "Flavor UUID or id", + "example": "1", + "type": "string" + }, + "imageRef": { + "description": "Image UUID", + "format": "uuid", + "type": "string" + }, + "key_name": { + "description": "Keypair name", + "type": "string" + }, + "max_count": { + "description": "Maximum instances", + "example": 1, + "minimum": 1, + "type": "integer" + }, + "metadata": { + "description": "Arbitrary key/value metadata", + "properties": {}, + "type": "object" + }, + "min_count": { + "description": "Minimum instances", + "example": 1, + "minimum": 1, + "type": "integer" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "networks": { + "description": "NICs", + "items": { + "description": "", + "properties": { + "fixed_ip": { + "description": "Fixed IP address", + "type": "string" + }, + "port": { + "description": "Port UUID", + "format": "uuid", + "type": "string" + }, + "uuid": { + "description": "Network UUID", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "security_groups": { + "description": "", + "items": { + "description": "", + "properties": { + "name": { + "description": "Security group name", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "user_data": { + "description": "Base64 user data", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "server" + ], + "type": "object" + }, + "volume_attachment_create": { + "description": "", + "properties": { + "volumeAttachment": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "volume_attachment", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "volumeAttachment" + ], + "type": "object" + }, + "volume_attachment_patch": { + "description": "", + "properties": { + "volumeAttachment": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "volume_attachment", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "volumeAttachment" + ], + "type": "object" + }, + "volume_attachment_update": { + "description": "", + "properties": { + "volumeAttachment": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "volume_attachment", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "volumeAttachment" + ], + "type": "object" + } + }, + "service": "nova", + "source": "generated-from-api-ref-catalog" +} diff --git a/contracts/openstack/request_bodies/octavia.json b/contracts/openstack/request_bodies/octavia.json new file mode 100644 index 0000000..7e22749 --- /dev/null +++ b/contracts/openstack/request_bodies/octavia.json @@ -0,0 +1,6910 @@ +{ + "by_path": { + "PATCH /v2/lbaas/flavorprofiles/{id}": { + "description": "", + "properties": { + "flavorprofile": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "flavorprofile", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "flavorprofile" + ], + "type": "object" + }, + "PATCH /v2/lbaas/flavors/{id}": { + "description": "", + "properties": { + "flavor": { + "description": "", + "properties": { + "OS-FLV-EXT-DATA:ephemeral": { + "description": "", + "example": 0, + "type": "integer" + }, + "disk": { + "description": "Root disk GiB", + "example": 1, + "type": "integer" + }, + "id": { + "description": "", + "example": "auto", + "type": "string" + }, + "name": { + "description": "", + "example": "example", + "type": "string" + }, + "os-flavor-access:is_public": { + "default": true, + "description": "", + "type": "boolean" + }, + "ram": { + "description": "RAM MiB", + "example": 512, + "type": "integer" + }, + "rxtx_factor": { + "example": 1.0, + "type": "number" + }, + "swap": { + "description": "", + "example": 0, + "type": "integer" + }, + "vcpus": { + "description": "", + "example": 1, + "type": "integer" + } + }, + "type": "object" + } + }, + "required": [ + "flavor" + ], + "type": "object" + }, + "PATCH /v2/lbaas/healthmonitors/{id}": { + "description": "", + "properties": { + "healthmonitor": { + "description": "", + "properties": { + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "delay": { + "description": "", + "example": 5, + "type": "integer" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "expected_codes": { + "description": "", + "example": "200", + "type": "string" + }, + "http_method": { + "description": "", + "example": "GET", + "type": "string" + }, + "max_retries": { + "description": "", + "example": 3, + "type": "integer" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "pool_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "timeout": { + "description": "", + "example": 3, + "type": "integer" + }, + "type": { + "description": "", + "enum": [ + "HTTP", + "HTTPS", + "PING", + "TCP", + "TLS-HELLO", + "UDP-CONNECT" + ], + "example": "HTTP", + "type": "string" + }, + "url_path": { + "description": "", + "example": "/", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "healthmonitor" + ], + "type": "object" + }, + "PATCH /v2/lbaas/l7policies/{id}": { + "description": "", + "properties": { + "l7policy": { + "description": "", + "properties": { + "action": { + "description": "", + "enum": [ + "REJECT", + "REDIRECT_TO_URL", + "REDIRECT_TO_POOL", + "REDIRECT_PREFIX" + ], + "example": "REJECT", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "listener_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "position": { + "description": "", + "example": 1, + "type": "integer" + }, + "redirect_pool_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "redirect_url": { + "description": "", + "format": "uri", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "l7policy" + ], + "type": "object" + }, + "PATCH /v2/lbaas/l7policies/{l7policy_id}/rules/{id}": { + "description": "", + "properties": { + "rule": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "l7rule", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "rule" + ], + "type": "object" + }, + "PATCH /v2/lbaas/listeners/{id}": { + "description": "", + "properties": { + "listener": { + "description": "", + "properties": { + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "connection_limit": { + "description": "", + "example": -1, + "type": "integer" + }, + "default_pool_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "insert_headers": { + "description": "", + "properties": {}, + "type": "object" + }, + "loadbalancer_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "protocol": { + "description": "", + "enum": [ + "HTTP", + "HTTPS", + "TCP", + "UDP", + "TERMINATED_HTTPS" + ], + "example": "HTTP", + "type": "string" + }, + "protocol_port": { + "description": "", + "example": 80, + "type": "integer" + } + }, + "type": "object" + } + }, + "required": [ + "listener" + ], + "type": "object" + }, + "PATCH /v2/lbaas/loadbalancers/{id}": { + "description": "", + "properties": { + "loadbalancer": { + "description": "", + "properties": { + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "flavor_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "listeners": { + "description": "", + "items": { + "description": "", + "properties": {}, + "type": "object" + }, + "type": "array" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "pools": { + "description": "", + "items": { + "description": "", + "properties": {}, + "type": "object" + }, + "type": "array" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "provider": { + "description": "Provider", + "example": "amphora", + "type": "string" + }, + "vip_address": { + "description": "VIP address", + "type": "string" + }, + "vip_network_id": { + "description": "VIP network UUID", + "format": "uuid", + "type": "string" + }, + "vip_subnet_id": { + "description": "VIP subnet UUID", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "loadbalancer" + ], + "type": "object" + }, + "PATCH /v2/lbaas/pools/{id}": { + "description": "", + "properties": { + "pool": { + "description": "", + "properties": { + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "lb_algorithm": { + "description": "", + "enum": [ + "ROUND_ROBIN", + "LEAST_CONNECTIONS", + "SOURCE_IP" + ], + "example": "ROUND_ROBIN", + "type": "string" + }, + "listener_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "loadbalancer_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "protocol": { + "description": "", + "enum": [ + "HTTP", + "HTTPS", + "TCP", + "UDP", + "PROXY" + ], + "example": "HTTP", + "type": "string" + }, + "session_persistence": { + "description": "", + "properties": { + "cookie_name": { + "description": "", + "type": "string" + }, + "type": { + "description": "", + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "required": [ + "pool" + ], + "type": "object" + }, + "PATCH /v2/lbaas/pools/{pool_id}/members/{id}": { + "description": "", + "properties": { + "member": { + "description": "", + "properties": { + "address": { + "description": "Member IP", + "example": "10.0.0.10", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "backup": { + "default": false, + "description": "", + "type": "boolean" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "monitor_address": { + "description": "", + "type": "string" + }, + "monitor_port": { + "description": "", + "type": "integer" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "protocol_port": { + "description": "", + "example": 80, + "type": "integer" + }, + "subnet_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "weight": { + "description": "", + "example": 1, + "type": "integer" + } + }, + "type": "object" + } + }, + "required": [ + "member" + ], + "type": "object" + }, + "PATCH /v2/lbaas/providers/{id}": { + "description": "", + "properties": { + "provider": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "provider", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "provider" + ], + "type": "object" + }, + "PATCH /v2/lbaas/quotas/{id}": { + "description": "", + "properties": { + "quota": { + "description": "", + "properties": { + "cores": { + "description": "", + "example": 20, + "type": "integer" + }, + "fixed_ips": { + "description": "", + "example": -1, + "type": "integer" + }, + "floating_ips": { + "description": "", + "example": 10, + "type": "integer" + }, + "force": { + "default": false, + "description": "", + "type": "boolean" + }, + "gigabytes": { + "description": "", + "example": 1000, + "type": "integer" + }, + "injected_file_content_bytes": { + "description": "", + "example": 10240, + "type": "integer" + }, + "injected_files": { + "description": "", + "example": 5, + "type": "integer" + }, + "instances": { + "description": "", + "example": 10, + "type": "integer" + }, + "key_pairs": { + "description": "", + "example": 100, + "type": "integer" + }, + "metadata_items": { + "description": "", + "example": 128, + "type": "integer" + }, + "networks": { + "description": "", + "example": 100, + "type": "integer" + }, + "ports": { + "description": "", + "example": 500, + "type": "integer" + }, + "ram": { + "description": "", + "example": 51200, + "type": "integer" + }, + "routers": { + "description": "", + "example": 10, + "type": "integer" + }, + "security_group_rules": { + "description": "", + "example": 20, + "type": "integer" + }, + "security_groups": { + "description": "", + "example": 10, + "type": "integer" + }, + "snapshots": { + "description": "", + "example": 10, + "type": "integer" + }, + "subnets": { + "description": "", + "example": 100, + "type": "integer" + }, + "volumes": { + "description": "", + "example": 10, + "type": "integer" + } + }, + "type": "object" + } + }, + "required": [ + "quota" + ], + "type": "object" + }, + "PATCH /v2/octavia/amphorae/{id}": { + "description": "", + "properties": { + "amphorae": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "amphora", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "amphorae" + ], + "type": "object" + }, + "POST /v2/lbaas/flavorprofiles": { + "description": "", + "properties": { + "flavorprofile": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "flavorprofile", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "flavorprofile" + ], + "type": "object" + }, + "POST /v2/lbaas/flavors": { + "description": "", + "properties": { + "flavor": { + "description": "", + "properties": { + "OS-FLV-EXT-DATA:ephemeral": { + "description": "", + "example": 0, + "type": "integer" + }, + "disk": { + "description": "Root disk GiB", + "example": 1, + "type": "integer" + }, + "id": { + "description": "", + "example": "auto", + "type": "string" + }, + "name": { + "description": "", + "example": "example", + "type": "string" + }, + "os-flavor-access:is_public": { + "default": true, + "description": "", + "type": "boolean" + }, + "ram": { + "description": "RAM MiB", + "example": 512, + "type": "integer" + }, + "rxtx_factor": { + "example": 1.0, + "type": "number" + }, + "swap": { + "description": "", + "example": 0, + "type": "integer" + }, + "vcpus": { + "description": "", + "example": 1, + "type": "integer" + } + }, + "required": [ + "name", + "ram", + "vcpus", + "disk" + ], + "type": "object" + } + }, + "required": [ + "flavor" + ], + "type": "object" + }, + "POST /v2/lbaas/healthmonitors": { + "description": "", + "properties": { + "healthmonitor": { + "description": "", + "properties": { + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "delay": { + "description": "", + "example": 5, + "type": "integer" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "expected_codes": { + "description": "", + "example": "200", + "type": "string" + }, + "http_method": { + "description": "", + "example": "GET", + "type": "string" + }, + "max_retries": { + "description": "", + "example": 3, + "type": "integer" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "pool_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "timeout": { + "description": "", + "example": 3, + "type": "integer" + }, + "type": { + "description": "", + "enum": [ + "HTTP", + "HTTPS", + "PING", + "TCP", + "TLS-HELLO", + "UDP-CONNECT" + ], + "example": "HTTP", + "type": "string" + }, + "url_path": { + "description": "", + "example": "/", + "type": "string" + } + }, + "required": [ + "type", + "delay", + "timeout", + "max_retries", + "pool_id" + ], + "type": "object" + } + }, + "required": [ + "healthmonitor" + ], + "type": "object" + }, + "POST /v2/lbaas/l7policies": { + "description": "", + "properties": { + "l7policy": { + "description": "", + "properties": { + "action": { + "description": "", + "enum": [ + "REJECT", + "REDIRECT_TO_URL", + "REDIRECT_TO_POOL", + "REDIRECT_PREFIX" + ], + "example": "REJECT", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "listener_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "position": { + "description": "", + "example": 1, + "type": "integer" + }, + "redirect_pool_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "redirect_url": { + "description": "", + "format": "uri", + "type": "string" + } + }, + "required": [ + "listener_id", + "action" + ], + "type": "object" + } + }, + "required": [ + "l7policy" + ], + "type": "object" + }, + "POST /v2/lbaas/l7policies/{l7policy_id}/rules": { + "description": "", + "properties": { + "rule": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "l7rule", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "rule" + ], + "type": "object" + }, + "POST /v2/lbaas/listeners": { + "description": "", + "properties": { + "listener": { + "description": "", + "properties": { + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "connection_limit": { + "description": "", + "example": -1, + "type": "integer" + }, + "default_pool_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "insert_headers": { + "description": "", + "properties": {}, + "type": "object" + }, + "loadbalancer_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "protocol": { + "description": "", + "enum": [ + "HTTP", + "HTTPS", + "TCP", + "UDP", + "TERMINATED_HTTPS" + ], + "example": "HTTP", + "type": "string" + }, + "protocol_port": { + "description": "", + "example": 80, + "type": "integer" + } + }, + "required": [ + "loadbalancer_id", + "protocol", + "protocol_port" + ], + "type": "object" + } + }, + "required": [ + "listener" + ], + "type": "object" + }, + "POST /v2/lbaas/loadbalancers": { + "description": "", + "properties": { + "loadbalancer": { + "description": "", + "properties": { + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "flavor_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "listeners": { + "description": "", + "items": { + "description": "", + "properties": {}, + "type": "object" + }, + "type": "array" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "pools": { + "description": "", + "items": { + "description": "", + "properties": {}, + "type": "object" + }, + "type": "array" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "provider": { + "description": "Provider", + "example": "amphora", + "type": "string" + }, + "vip_address": { + "description": "VIP address", + "type": "string" + }, + "vip_network_id": { + "description": "VIP network UUID", + "format": "uuid", + "type": "string" + }, + "vip_subnet_id": { + "description": "VIP subnet UUID", + "format": "uuid", + "type": "string" + } + }, + "required": [ + "vip_subnet_id" + ], + "type": "object" + } + }, + "required": [ + "loadbalancer" + ], + "type": "object" + }, + "POST /v2/lbaas/pools": { + "description": "", + "properties": { + "pool": { + "description": "", + "properties": { + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "lb_algorithm": { + "description": "", + "enum": [ + "ROUND_ROBIN", + "LEAST_CONNECTIONS", + "SOURCE_IP" + ], + "example": "ROUND_ROBIN", + "type": "string" + }, + "listener_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "loadbalancer_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "protocol": { + "description": "", + "enum": [ + "HTTP", + "HTTPS", + "TCP", + "UDP", + "PROXY" + ], + "example": "HTTP", + "type": "string" + }, + "session_persistence": { + "description": "", + "properties": { + "cookie_name": { + "description": "", + "type": "string" + }, + "type": { + "description": "", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "lb_algorithm", + "protocol" + ], + "type": "object" + } + }, + "required": [ + "pool" + ], + "type": "object" + }, + "POST /v2/lbaas/pools/{pool_id}/members": { + "description": "", + "properties": { + "member": { + "description": "", + "properties": { + "address": { + "description": "Member IP", + "example": "10.0.0.10", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "backup": { + "default": false, + "description": "", + "type": "boolean" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "monitor_address": { + "description": "", + "type": "string" + }, + "monitor_port": { + "description": "", + "type": "integer" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "protocol_port": { + "description": "", + "example": 80, + "type": "integer" + }, + "subnet_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "weight": { + "description": "", + "example": 1, + "type": "integer" + } + }, + "required": [ + "address", + "protocol_port" + ], + "type": "object" + } + }, + "required": [ + "member" + ], + "type": "object" + }, + "POST /v2/lbaas/providers": { + "description": "", + "properties": { + "provider": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "provider", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "provider" + ], + "type": "object" + }, + "POST /v2/lbaas/quotas": { + "description": "", + "properties": { + "quota": { + "description": "", + "properties": { + "cores": { + "description": "", + "example": 20, + "type": "integer" + }, + "fixed_ips": { + "description": "", + "example": -1, + "type": "integer" + }, + "floating_ips": { + "description": "", + "example": 10, + "type": "integer" + }, + "force": { + "default": false, + "description": "", + "type": "boolean" + }, + "gigabytes": { + "description": "", + "example": 1000, + "type": "integer" + }, + "injected_file_content_bytes": { + "description": "", + "example": 10240, + "type": "integer" + }, + "injected_files": { + "description": "", + "example": 5, + "type": "integer" + }, + "instances": { + "description": "", + "example": 10, + "type": "integer" + }, + "key_pairs": { + "description": "", + "example": 100, + "type": "integer" + }, + "metadata_items": { + "description": "", + "example": 128, + "type": "integer" + }, + "networks": { + "description": "", + "example": 100, + "type": "integer" + }, + "ports": { + "description": "", + "example": 500, + "type": "integer" + }, + "ram": { + "description": "", + "example": 51200, + "type": "integer" + }, + "routers": { + "description": "", + "example": 10, + "type": "integer" + }, + "security_group_rules": { + "description": "", + "example": 20, + "type": "integer" + }, + "security_groups": { + "description": "", + "example": 10, + "type": "integer" + }, + "snapshots": { + "description": "", + "example": 10, + "type": "integer" + }, + "subnets": { + "description": "", + "example": 100, + "type": "integer" + }, + "volumes": { + "description": "", + "example": 10, + "type": "integer" + } + }, + "type": "object" + } + }, + "required": [ + "quota" + ], + "type": "object" + }, + "POST /v2/octavia/amphorae": { + "description": "", + "properties": { + "amphorae": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "amphora", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "amphorae" + ], + "type": "object" + }, + "PUT /v2/lbaas/flavorprofiles/{id}": { + "description": "", + "properties": { + "flavorprofile": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "flavorprofile", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "flavorprofile" + ], + "type": "object" + }, + "PUT /v2/lbaas/flavors/{id}": { + "description": "", + "properties": { + "flavor": { + "description": "", + "properties": { + "OS-FLV-EXT-DATA:ephemeral": { + "description": "", + "example": 0, + "type": "integer" + }, + "disk": { + "description": "Root disk GiB", + "example": 1, + "type": "integer" + }, + "id": { + "description": "", + "example": "auto", + "type": "string" + }, + "name": { + "description": "", + "example": "example", + "type": "string" + }, + "os-flavor-access:is_public": { + "default": true, + "description": "", + "type": "boolean" + }, + "ram": { + "description": "RAM MiB", + "example": 512, + "type": "integer" + }, + "rxtx_factor": { + "example": 1.0, + "type": "number" + }, + "swap": { + "description": "", + "example": 0, + "type": "integer" + }, + "vcpus": { + "description": "", + "example": 1, + "type": "integer" + } + }, + "type": "object" + } + }, + "required": [ + "flavor" + ], + "type": "object" + }, + "PUT /v2/lbaas/healthmonitors/{id}": { + "description": "", + "properties": { + "healthmonitor": { + "description": "", + "properties": { + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "delay": { + "description": "", + "example": 5, + "type": "integer" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "expected_codes": { + "description": "", + "example": "200", + "type": "string" + }, + "http_method": { + "description": "", + "example": "GET", + "type": "string" + }, + "max_retries": { + "description": "", + "example": 3, + "type": "integer" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "pool_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "timeout": { + "description": "", + "example": 3, + "type": "integer" + }, + "type": { + "description": "", + "enum": [ + "HTTP", + "HTTPS", + "PING", + "TCP", + "TLS-HELLO", + "UDP-CONNECT" + ], + "example": "HTTP", + "type": "string" + }, + "url_path": { + "description": "", + "example": "/", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "healthmonitor" + ], + "type": "object" + }, + "PUT /v2/lbaas/l7policies/{id}": { + "description": "", + "properties": { + "l7policy": { + "description": "", + "properties": { + "action": { + "description": "", + "enum": [ + "REJECT", + "REDIRECT_TO_URL", + "REDIRECT_TO_POOL", + "REDIRECT_PREFIX" + ], + "example": "REJECT", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "listener_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "position": { + "description": "", + "example": 1, + "type": "integer" + }, + "redirect_pool_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "redirect_url": { + "description": "", + "format": "uri", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "l7policy" + ], + "type": "object" + }, + "PUT /v2/lbaas/l7policies/{l7policy_id}/rules/{id}": { + "description": "", + "properties": { + "rule": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "l7rule", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "rule" + ], + "type": "object" + }, + "PUT /v2/lbaas/listeners/{id}": { + "description": "", + "properties": { + "listener": { + "description": "", + "properties": { + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "connection_limit": { + "description": "", + "example": -1, + "type": "integer" + }, + "default_pool_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "insert_headers": { + "description": "", + "properties": {}, + "type": "object" + }, + "loadbalancer_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "protocol": { + "description": "", + "enum": [ + "HTTP", + "HTTPS", + "TCP", + "UDP", + "TERMINATED_HTTPS" + ], + "example": "HTTP", + "type": "string" + }, + "protocol_port": { + "description": "", + "example": 80, + "type": "integer" + } + }, + "type": "object" + } + }, + "required": [ + "listener" + ], + "type": "object" + }, + "PUT /v2/lbaas/loadbalancers/{id}": { + "description": "", + "properties": { + "loadbalancer": { + "description": "", + "properties": { + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "flavor_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "listeners": { + "description": "", + "items": { + "description": "", + "properties": {}, + "type": "object" + }, + "type": "array" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "pools": { + "description": "", + "items": { + "description": "", + "properties": {}, + "type": "object" + }, + "type": "array" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "provider": { + "description": "Provider", + "example": "amphora", + "type": "string" + }, + "vip_address": { + "description": "VIP address", + "type": "string" + }, + "vip_network_id": { + "description": "VIP network UUID", + "format": "uuid", + "type": "string" + }, + "vip_subnet_id": { + "description": "VIP subnet UUID", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "loadbalancer" + ], + "type": "object" + }, + "PUT /v2/lbaas/loadbalancers/{id}/failover": { + "description": "", + "properties": { + "os-start": { + "description": "Action os-start body (null object)", + "type": "null" + } + }, + "required": [ + "os-start" + ], + "type": "object" + }, + "PUT /v2/lbaas/pools/{id}": { + "description": "", + "properties": { + "pool": { + "description": "", + "properties": { + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "lb_algorithm": { + "description": "", + "enum": [ + "ROUND_ROBIN", + "LEAST_CONNECTIONS", + "SOURCE_IP" + ], + "example": "ROUND_ROBIN", + "type": "string" + }, + "listener_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "loadbalancer_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "protocol": { + "description": "", + "enum": [ + "HTTP", + "HTTPS", + "TCP", + "UDP", + "PROXY" + ], + "example": "HTTP", + "type": "string" + }, + "session_persistence": { + "description": "", + "properties": { + "cookie_name": { + "description": "", + "type": "string" + }, + "type": { + "description": "", + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "required": [ + "pool" + ], + "type": "object" + }, + "PUT /v2/lbaas/pools/{pool_id}/members/{id}": { + "description": "", + "properties": { + "member": { + "description": "", + "properties": { + "address": { + "description": "Member IP", + "example": "10.0.0.10", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "backup": { + "default": false, + "description": "", + "type": "boolean" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "monitor_address": { + "description": "", + "type": "string" + }, + "monitor_port": { + "description": "", + "type": "integer" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "protocol_port": { + "description": "", + "example": 80, + "type": "integer" + }, + "subnet_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "weight": { + "description": "", + "example": 1, + "type": "integer" + } + }, + "type": "object" + } + }, + "required": [ + "member" + ], + "type": "object" + }, + "PUT /v2/lbaas/providers/{id}": { + "description": "", + "properties": { + "provider": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "provider", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "provider" + ], + "type": "object" + }, + "PUT /v2/lbaas/quotas/{id}": { + "description": "", + "properties": { + "quota": { + "description": "", + "properties": { + "cores": { + "description": "", + "example": 20, + "type": "integer" + }, + "fixed_ips": { + "description": "", + "example": -1, + "type": "integer" + }, + "floating_ips": { + "description": "", + "example": 10, + "type": "integer" + }, + "force": { + "default": false, + "description": "", + "type": "boolean" + }, + "gigabytes": { + "description": "", + "example": 1000, + "type": "integer" + }, + "injected_file_content_bytes": { + "description": "", + "example": 10240, + "type": "integer" + }, + "injected_files": { + "description": "", + "example": 5, + "type": "integer" + }, + "instances": { + "description": "", + "example": 10, + "type": "integer" + }, + "key_pairs": { + "description": "", + "example": 100, + "type": "integer" + }, + "metadata_items": { + "description": "", + "example": 128, + "type": "integer" + }, + "networks": { + "description": "", + "example": 100, + "type": "integer" + }, + "ports": { + "description": "", + "example": 500, + "type": "integer" + }, + "ram": { + "description": "", + "example": 51200, + "type": "integer" + }, + "routers": { + "description": "", + "example": 10, + "type": "integer" + }, + "security_group_rules": { + "description": "", + "example": 20, + "type": "integer" + }, + "security_groups": { + "description": "", + "example": 10, + "type": "integer" + }, + "snapshots": { + "description": "", + "example": 10, + "type": "integer" + }, + "subnets": { + "description": "", + "example": 100, + "type": "integer" + }, + "volumes": { + "description": "", + "example": 10, + "type": "integer" + } + }, + "type": "object" + } + }, + "required": [ + "quota" + ], + "type": "object" + }, + "PUT /v2/octavia/amphorae/{id}": { + "description": "", + "properties": { + "amphorae": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "amphora", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "amphorae" + ], + "type": "object" + } + }, + "operations": { + "amphora_create": { + "description": "", + "properties": { + "amphorae": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "amphora", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "amphorae" + ], + "type": "object" + }, + "amphora_patch": { + "description": "", + "properties": { + "amphorae": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "amphora", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "amphorae" + ], + "type": "object" + }, + "amphora_update": { + "description": "", + "properties": { + "amphorae": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "amphora", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "amphorae" + ], + "type": "object" + }, + "flavor_create": { + "description": "", + "properties": { + "flavor": { + "description": "", + "properties": { + "OS-FLV-EXT-DATA:ephemeral": { + "description": "", + "example": 0, + "type": "integer" + }, + "disk": { + "description": "Root disk GiB", + "example": 1, + "type": "integer" + }, + "id": { + "description": "", + "example": "auto", + "type": "string" + }, + "name": { + "description": "", + "example": "example", + "type": "string" + }, + "os-flavor-access:is_public": { + "default": true, + "description": "", + "type": "boolean" + }, + "ram": { + "description": "RAM MiB", + "example": 512, + "type": "integer" + }, + "rxtx_factor": { + "example": 1.0, + "type": "number" + }, + "swap": { + "description": "", + "example": 0, + "type": "integer" + }, + "vcpus": { + "description": "", + "example": 1, + "type": "integer" + } + }, + "required": [ + "name", + "ram", + "vcpus", + "disk" + ], + "type": "object" + } + }, + "required": [ + "flavor" + ], + "type": "object" + }, + "flavor_patch": { + "description": "", + "properties": { + "flavor": { + "description": "", + "properties": { + "OS-FLV-EXT-DATA:ephemeral": { + "description": "", + "example": 0, + "type": "integer" + }, + "disk": { + "description": "Root disk GiB", + "example": 1, + "type": "integer" + }, + "id": { + "description": "", + "example": "auto", + "type": "string" + }, + "name": { + "description": "", + "example": "example", + "type": "string" + }, + "os-flavor-access:is_public": { + "default": true, + "description": "", + "type": "boolean" + }, + "ram": { + "description": "RAM MiB", + "example": 512, + "type": "integer" + }, + "rxtx_factor": { + "example": 1.0, + "type": "number" + }, + "swap": { + "description": "", + "example": 0, + "type": "integer" + }, + "vcpus": { + "description": "", + "example": 1, + "type": "integer" + } + }, + "type": "object" + } + }, + "required": [ + "flavor" + ], + "type": "object" + }, + "flavor_update": { + "description": "", + "properties": { + "flavor": { + "description": "", + "properties": { + "OS-FLV-EXT-DATA:ephemeral": { + "description": "", + "example": 0, + "type": "integer" + }, + "disk": { + "description": "Root disk GiB", + "example": 1, + "type": "integer" + }, + "id": { + "description": "", + "example": "auto", + "type": "string" + }, + "name": { + "description": "", + "example": "example", + "type": "string" + }, + "os-flavor-access:is_public": { + "default": true, + "description": "", + "type": "boolean" + }, + "ram": { + "description": "RAM MiB", + "example": 512, + "type": "integer" + }, + "rxtx_factor": { + "example": 1.0, + "type": "number" + }, + "swap": { + "description": "", + "example": 0, + "type": "integer" + }, + "vcpus": { + "description": "", + "example": 1, + "type": "integer" + } + }, + "type": "object" + } + }, + "required": [ + "flavor" + ], + "type": "object" + }, + "flavorprofile_create": { + "description": "", + "properties": { + "flavorprofile": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "flavorprofile", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "flavorprofile" + ], + "type": "object" + }, + "flavorprofile_patch": { + "description": "", + "properties": { + "flavorprofile": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "flavorprofile", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "flavorprofile" + ], + "type": "object" + }, + "flavorprofile_update": { + "description": "", + "properties": { + "flavorprofile": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "flavorprofile", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "flavorprofile" + ], + "type": "object" + }, + "healthmonitor_create": { + "description": "", + "properties": { + "healthmonitor": { + "description": "", + "properties": { + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "delay": { + "description": "", + "example": 5, + "type": "integer" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "expected_codes": { + "description": "", + "example": "200", + "type": "string" + }, + "http_method": { + "description": "", + "example": "GET", + "type": "string" + }, + "max_retries": { + "description": "", + "example": 3, + "type": "integer" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "pool_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "timeout": { + "description": "", + "example": 3, + "type": "integer" + }, + "type": { + "description": "", + "enum": [ + "HTTP", + "HTTPS", + "PING", + "TCP", + "TLS-HELLO", + "UDP-CONNECT" + ], + "example": "HTTP", + "type": "string" + }, + "url_path": { + "description": "", + "example": "/", + "type": "string" + } + }, + "required": [ + "type", + "delay", + "timeout", + "max_retries", + "pool_id" + ], + "type": "object" + } + }, + "required": [ + "healthmonitor" + ], + "type": "object" + }, + "healthmonitor_patch": { + "description": "", + "properties": { + "healthmonitor": { + "description": "", + "properties": { + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "delay": { + "description": "", + "example": 5, + "type": "integer" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "expected_codes": { + "description": "", + "example": "200", + "type": "string" + }, + "http_method": { + "description": "", + "example": "GET", + "type": "string" + }, + "max_retries": { + "description": "", + "example": 3, + "type": "integer" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "pool_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "timeout": { + "description": "", + "example": 3, + "type": "integer" + }, + "type": { + "description": "", + "enum": [ + "HTTP", + "HTTPS", + "PING", + "TCP", + "TLS-HELLO", + "UDP-CONNECT" + ], + "example": "HTTP", + "type": "string" + }, + "url_path": { + "description": "", + "example": "/", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "healthmonitor" + ], + "type": "object" + }, + "healthmonitor_update": { + "description": "", + "properties": { + "healthmonitor": { + "description": "", + "properties": { + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "delay": { + "description": "", + "example": 5, + "type": "integer" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "expected_codes": { + "description": "", + "example": "200", + "type": "string" + }, + "http_method": { + "description": "", + "example": "GET", + "type": "string" + }, + "max_retries": { + "description": "", + "example": 3, + "type": "integer" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "pool_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "timeout": { + "description": "", + "example": 3, + "type": "integer" + }, + "type": { + "description": "", + "enum": [ + "HTTP", + "HTTPS", + "PING", + "TCP", + "TLS-HELLO", + "UDP-CONNECT" + ], + "example": "HTTP", + "type": "string" + }, + "url_path": { + "description": "", + "example": "/", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "healthmonitor" + ], + "type": "object" + }, + "l7policy_create": { + "description": "", + "properties": { + "l7policy": { + "description": "", + "properties": { + "action": { + "description": "", + "enum": [ + "REJECT", + "REDIRECT_TO_URL", + "REDIRECT_TO_POOL", + "REDIRECT_PREFIX" + ], + "example": "REJECT", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "listener_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "position": { + "description": "", + "example": 1, + "type": "integer" + }, + "redirect_pool_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "redirect_url": { + "description": "", + "format": "uri", + "type": "string" + } + }, + "required": [ + "listener_id", + "action" + ], + "type": "object" + } + }, + "required": [ + "l7policy" + ], + "type": "object" + }, + "l7policy_patch": { + "description": "", + "properties": { + "l7policy": { + "description": "", + "properties": { + "action": { + "description": "", + "enum": [ + "REJECT", + "REDIRECT_TO_URL", + "REDIRECT_TO_POOL", + "REDIRECT_PREFIX" + ], + "example": "REJECT", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "listener_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "position": { + "description": "", + "example": 1, + "type": "integer" + }, + "redirect_pool_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "redirect_url": { + "description": "", + "format": "uri", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "l7policy" + ], + "type": "object" + }, + "l7policy_update": { + "description": "", + "properties": { + "l7policy": { + "description": "", + "properties": { + "action": { + "description": "", + "enum": [ + "REJECT", + "REDIRECT_TO_URL", + "REDIRECT_TO_POOL", + "REDIRECT_PREFIX" + ], + "example": "REJECT", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "listener_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "position": { + "description": "", + "example": 1, + "type": "integer" + }, + "redirect_pool_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "redirect_url": { + "description": "", + "format": "uri", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "l7policy" + ], + "type": "object" + }, + "l7rule_create": { + "description": "", + "properties": { + "rule": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "l7rule", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "rule" + ], + "type": "object" + }, + "l7rule_patch": { + "description": "", + "properties": { + "rule": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "l7rule", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "rule" + ], + "type": "object" + }, + "l7rule_update": { + "description": "", + "properties": { + "rule": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "l7rule", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "rule" + ], + "type": "object" + }, + "listener_create": { + "description": "", + "properties": { + "listener": { + "description": "", + "properties": { + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "connection_limit": { + "description": "", + "example": -1, + "type": "integer" + }, + "default_pool_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "insert_headers": { + "description": "", + "properties": {}, + "type": "object" + }, + "loadbalancer_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "protocol": { + "description": "", + "enum": [ + "HTTP", + "HTTPS", + "TCP", + "UDP", + "TERMINATED_HTTPS" + ], + "example": "HTTP", + "type": "string" + }, + "protocol_port": { + "description": "", + "example": 80, + "type": "integer" + } + }, + "required": [ + "loadbalancer_id", + "protocol", + "protocol_port" + ], + "type": "object" + } + }, + "required": [ + "listener" + ], + "type": "object" + }, + "listener_patch": { + "description": "", + "properties": { + "listener": { + "description": "", + "properties": { + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "connection_limit": { + "description": "", + "example": -1, + "type": "integer" + }, + "default_pool_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "insert_headers": { + "description": "", + "properties": {}, + "type": "object" + }, + "loadbalancer_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "protocol": { + "description": "", + "enum": [ + "HTTP", + "HTTPS", + "TCP", + "UDP", + "TERMINATED_HTTPS" + ], + "example": "HTTP", + "type": "string" + }, + "protocol_port": { + "description": "", + "example": 80, + "type": "integer" + } + }, + "type": "object" + } + }, + "required": [ + "listener" + ], + "type": "object" + }, + "listener_update": { + "description": "", + "properties": { + "listener": { + "description": "", + "properties": { + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "connection_limit": { + "description": "", + "example": -1, + "type": "integer" + }, + "default_pool_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "insert_headers": { + "description": "", + "properties": {}, + "type": "object" + }, + "loadbalancer_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "protocol": { + "description": "", + "enum": [ + "HTTP", + "HTTPS", + "TCP", + "UDP", + "TERMINATED_HTTPS" + ], + "example": "HTTP", + "type": "string" + }, + "protocol_port": { + "description": "", + "example": 80, + "type": "integer" + } + }, + "type": "object" + } + }, + "required": [ + "listener" + ], + "type": "object" + }, + "loadbalancer_create": { + "description": "", + "properties": { + "loadbalancer": { + "description": "", + "properties": { + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "flavor_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "listeners": { + "description": "", + "items": { + "description": "", + "properties": {}, + "type": "object" + }, + "type": "array" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "pools": { + "description": "", + "items": { + "description": "", + "properties": {}, + "type": "object" + }, + "type": "array" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "provider": { + "description": "Provider", + "example": "amphora", + "type": "string" + }, + "vip_address": { + "description": "VIP address", + "type": "string" + }, + "vip_network_id": { + "description": "VIP network UUID", + "format": "uuid", + "type": "string" + }, + "vip_subnet_id": { + "description": "VIP subnet UUID", + "format": "uuid", + "type": "string" + } + }, + "required": [ + "vip_subnet_id" + ], + "type": "object" + } + }, + "required": [ + "loadbalancer" + ], + "type": "object" + }, + "loadbalancer_failover": { + "description": "", + "properties": { + "os-start": { + "description": "Action os-start body (null object)", + "type": "null" + } + }, + "required": [ + "os-start" + ], + "type": "object" + }, + "loadbalancer_patch": { + "description": "", + "properties": { + "loadbalancer": { + "description": "", + "properties": { + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "flavor_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "listeners": { + "description": "", + "items": { + "description": "", + "properties": {}, + "type": "object" + }, + "type": "array" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "pools": { + "description": "", + "items": { + "description": "", + "properties": {}, + "type": "object" + }, + "type": "array" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "provider": { + "description": "Provider", + "example": "amphora", + "type": "string" + }, + "vip_address": { + "description": "VIP address", + "type": "string" + }, + "vip_network_id": { + "description": "VIP network UUID", + "format": "uuid", + "type": "string" + }, + "vip_subnet_id": { + "description": "VIP subnet UUID", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "loadbalancer" + ], + "type": "object" + }, + "loadbalancer_update": { + "description": "", + "properties": { + "loadbalancer": { + "description": "", + "properties": { + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "flavor_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "listeners": { + "description": "", + "items": { + "description": "", + "properties": {}, + "type": "object" + }, + "type": "array" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "pools": { + "description": "", + "items": { + "description": "", + "properties": {}, + "type": "object" + }, + "type": "array" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "provider": { + "description": "Provider", + "example": "amphora", + "type": "string" + }, + "vip_address": { + "description": "VIP address", + "type": "string" + }, + "vip_network_id": { + "description": "VIP network UUID", + "format": "uuid", + "type": "string" + }, + "vip_subnet_id": { + "description": "VIP subnet UUID", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "loadbalancer" + ], + "type": "object" + }, + "member_create": { + "description": "", + "properties": { + "member": { + "description": "", + "properties": { + "address": { + "description": "Member IP", + "example": "10.0.0.10", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "backup": { + "default": false, + "description": "", + "type": "boolean" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "monitor_address": { + "description": "", + "type": "string" + }, + "monitor_port": { + "description": "", + "type": "integer" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "protocol_port": { + "description": "", + "example": 80, + "type": "integer" + }, + "subnet_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "weight": { + "description": "", + "example": 1, + "type": "integer" + } + }, + "required": [ + "address", + "protocol_port" + ], + "type": "object" + } + }, + "required": [ + "member" + ], + "type": "object" + }, + "member_patch": { + "description": "", + "properties": { + "member": { + "description": "", + "properties": { + "address": { + "description": "Member IP", + "example": "10.0.0.10", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "backup": { + "default": false, + "description": "", + "type": "boolean" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "monitor_address": { + "description": "", + "type": "string" + }, + "monitor_port": { + "description": "", + "type": "integer" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "protocol_port": { + "description": "", + "example": 80, + "type": "integer" + }, + "subnet_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "weight": { + "description": "", + "example": 1, + "type": "integer" + } + }, + "type": "object" + } + }, + "required": [ + "member" + ], + "type": "object" + }, + "member_update": { + "description": "", + "properties": { + "member": { + "description": "", + "properties": { + "address": { + "description": "Member IP", + "example": "10.0.0.10", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "backup": { + "default": false, + "description": "", + "type": "boolean" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "monitor_address": { + "description": "", + "type": "string" + }, + "monitor_port": { + "description": "", + "type": "integer" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "protocol_port": { + "description": "", + "example": 80, + "type": "integer" + }, + "subnet_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "weight": { + "description": "", + "example": 1, + "type": "integer" + } + }, + "type": "object" + } + }, + "required": [ + "member" + ], + "type": "object" + }, + "pool_create": { + "description": "", + "properties": { + "pool": { + "description": "", + "properties": { + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "lb_algorithm": { + "description": "", + "enum": [ + "ROUND_ROBIN", + "LEAST_CONNECTIONS", + "SOURCE_IP" + ], + "example": "ROUND_ROBIN", + "type": "string" + }, + "listener_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "loadbalancer_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "protocol": { + "description": "", + "enum": [ + "HTTP", + "HTTPS", + "TCP", + "UDP", + "PROXY" + ], + "example": "HTTP", + "type": "string" + }, + "session_persistence": { + "description": "", + "properties": { + "cookie_name": { + "description": "", + "type": "string" + }, + "type": { + "description": "", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "lb_algorithm", + "protocol" + ], + "type": "object" + } + }, + "required": [ + "pool" + ], + "type": "object" + }, + "pool_patch": { + "description": "", + "properties": { + "pool": { + "description": "", + "properties": { + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "lb_algorithm": { + "description": "", + "enum": [ + "ROUND_ROBIN", + "LEAST_CONNECTIONS", + "SOURCE_IP" + ], + "example": "ROUND_ROBIN", + "type": "string" + }, + "listener_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "loadbalancer_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "protocol": { + "description": "", + "enum": [ + "HTTP", + "HTTPS", + "TCP", + "UDP", + "PROXY" + ], + "example": "HTTP", + "type": "string" + }, + "session_persistence": { + "description": "", + "properties": { + "cookie_name": { + "description": "", + "type": "string" + }, + "type": { + "description": "", + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "required": [ + "pool" + ], + "type": "object" + }, + "pool_update": { + "description": "", + "properties": { + "pool": { + "description": "", + "properties": { + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "lb_algorithm": { + "description": "", + "enum": [ + "ROUND_ROBIN", + "LEAST_CONNECTIONS", + "SOURCE_IP" + ], + "example": "ROUND_ROBIN", + "type": "string" + }, + "listener_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "loadbalancer_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "protocol": { + "description": "", + "enum": [ + "HTTP", + "HTTPS", + "TCP", + "UDP", + "PROXY" + ], + "example": "HTTP", + "type": "string" + }, + "session_persistence": { + "description": "", + "properties": { + "cookie_name": { + "description": "", + "type": "string" + }, + "type": { + "description": "", + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "required": [ + "pool" + ], + "type": "object" + }, + "provider_create": { + "description": "", + "properties": { + "provider": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "provider", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "provider" + ], + "type": "object" + }, + "provider_patch": { + "description": "", + "properties": { + "provider": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "provider", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "provider" + ], + "type": "object" + }, + "provider_update": { + "description": "", + "properties": { + "provider": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "provider", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "provider" + ], + "type": "object" + }, + "quota_create": { + "description": "", + "properties": { + "quota": { + "description": "", + "properties": { + "cores": { + "description": "", + "example": 20, + "type": "integer" + }, + "fixed_ips": { + "description": "", + "example": -1, + "type": "integer" + }, + "floating_ips": { + "description": "", + "example": 10, + "type": "integer" + }, + "force": { + "default": false, + "description": "", + "type": "boolean" + }, + "gigabytes": { + "description": "", + "example": 1000, + "type": "integer" + }, + "injected_file_content_bytes": { + "description": "", + "example": 10240, + "type": "integer" + }, + "injected_files": { + "description": "", + "example": 5, + "type": "integer" + }, + "instances": { + "description": "", + "example": 10, + "type": "integer" + }, + "key_pairs": { + "description": "", + "example": 100, + "type": "integer" + }, + "metadata_items": { + "description": "", + "example": 128, + "type": "integer" + }, + "networks": { + "description": "", + "example": 100, + "type": "integer" + }, + "ports": { + "description": "", + "example": 500, + "type": "integer" + }, + "ram": { + "description": "", + "example": 51200, + "type": "integer" + }, + "routers": { + "description": "", + "example": 10, + "type": "integer" + }, + "security_group_rules": { + "description": "", + "example": 20, + "type": "integer" + }, + "security_groups": { + "description": "", + "example": 10, + "type": "integer" + }, + "snapshots": { + "description": "", + "example": 10, + "type": "integer" + }, + "subnets": { + "description": "", + "example": 100, + "type": "integer" + }, + "volumes": { + "description": "", + "example": 10, + "type": "integer" + } + }, + "type": "object" + } + }, + "required": [ + "quota" + ], + "type": "object" + }, + "quota_patch": { + "description": "", + "properties": { + "quota": { + "description": "", + "properties": { + "cores": { + "description": "", + "example": 20, + "type": "integer" + }, + "fixed_ips": { + "description": "", + "example": -1, + "type": "integer" + }, + "floating_ips": { + "description": "", + "example": 10, + "type": "integer" + }, + "force": { + "default": false, + "description": "", + "type": "boolean" + }, + "gigabytes": { + "description": "", + "example": 1000, + "type": "integer" + }, + "injected_file_content_bytes": { + "description": "", + "example": 10240, + "type": "integer" + }, + "injected_files": { + "description": "", + "example": 5, + "type": "integer" + }, + "instances": { + "description": "", + "example": 10, + "type": "integer" + }, + "key_pairs": { + "description": "", + "example": 100, + "type": "integer" + }, + "metadata_items": { + "description": "", + "example": 128, + "type": "integer" + }, + "networks": { + "description": "", + "example": 100, + "type": "integer" + }, + "ports": { + "description": "", + "example": 500, + "type": "integer" + }, + "ram": { + "description": "", + "example": 51200, + "type": "integer" + }, + "routers": { + "description": "", + "example": 10, + "type": "integer" + }, + "security_group_rules": { + "description": "", + "example": 20, + "type": "integer" + }, + "security_groups": { + "description": "", + "example": 10, + "type": "integer" + }, + "snapshots": { + "description": "", + "example": 10, + "type": "integer" + }, + "subnets": { + "description": "", + "example": 100, + "type": "integer" + }, + "volumes": { + "description": "", + "example": 10, + "type": "integer" + } + }, + "type": "object" + } + }, + "required": [ + "quota" + ], + "type": "object" + }, + "quota_update": { + "description": "", + "properties": { + "quota": { + "description": "", + "properties": { + "cores": { + "description": "", + "example": 20, + "type": "integer" + }, + "fixed_ips": { + "description": "", + "example": -1, + "type": "integer" + }, + "floating_ips": { + "description": "", + "example": 10, + "type": "integer" + }, + "force": { + "default": false, + "description": "", + "type": "boolean" + }, + "gigabytes": { + "description": "", + "example": 1000, + "type": "integer" + }, + "injected_file_content_bytes": { + "description": "", + "example": 10240, + "type": "integer" + }, + "injected_files": { + "description": "", + "example": 5, + "type": "integer" + }, + "instances": { + "description": "", + "example": 10, + "type": "integer" + }, + "key_pairs": { + "description": "", + "example": 100, + "type": "integer" + }, + "metadata_items": { + "description": "", + "example": 128, + "type": "integer" + }, + "networks": { + "description": "", + "example": 100, + "type": "integer" + }, + "ports": { + "description": "", + "example": 500, + "type": "integer" + }, + "ram": { + "description": "", + "example": 51200, + "type": "integer" + }, + "routers": { + "description": "", + "example": 10, + "type": "integer" + }, + "security_group_rules": { + "description": "", + "example": 20, + "type": "integer" + }, + "security_groups": { + "description": "", + "example": 10, + "type": "integer" + }, + "snapshots": { + "description": "", + "example": 10, + "type": "integer" + }, + "subnets": { + "description": "", + "example": 100, + "type": "integer" + }, + "volumes": { + "description": "", + "example": 10, + "type": "integer" + } + }, + "type": "object" + } + }, + "required": [ + "quota" + ], + "type": "object" + } + }, + "service": "octavia", + "source": "generated-from-api-ref-catalog" +} diff --git a/contracts/openstack/request_bodies/placement.json b/contracts/openstack/request_bodies/placement.json new file mode 100644 index 0000000..363f508 --- /dev/null +++ b/contracts/openstack/request_bodies/placement.json @@ -0,0 +1,1358 @@ +{ + "by_path": { + "PATCH /resource_classes/{id}": { + "description": "", + "properties": { + "resource_classe": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "resource_class", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "resource_classe" + ], + "type": "object" + }, + "PATCH /resource_providers/{id}": { + "description": "", + "properties": { + "resource_provider": { + "description": "", + "properties": { + "name": { + "description": "", + "example": "example", + "type": "string" + }, + "parent_provider_uuid": { + "description": "", + "format": "uuid", + "type": "string" + }, + "uuid": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "resource_provider" + ], + "type": "object" + }, + "PATCH /traits/{id}": { + "description": "", + "properties": { + "trait": { + "description": "", + "properties": { + "name": { + "description": "", + "example": "CUSTOM_EXAMPLE", + "type": "string" + }, + "traits": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "required": [ + "trait" + ], + "type": "object" + }, + "POST /resource_classes": { + "description": "", + "properties": { + "resource_classe": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "resource_class", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "resource_classe" + ], + "type": "object" + }, + "POST /resource_providers": { + "description": "", + "properties": { + "resource_provider": { + "description": "", + "properties": { + "name": { + "description": "", + "example": "example", + "type": "string" + }, + "parent_provider_uuid": { + "description": "", + "format": "uuid", + "type": "string" + }, + "uuid": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "resource_provider" + ], + "type": "object" + }, + "POST /traits": { + "description": "", + "properties": { + "trait": { + "description": "", + "properties": { + "name": { + "description": "", + "example": "CUSTOM_EXAMPLE", + "type": "string" + }, + "traits": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "trait" + ], + "type": "object" + }, + "PUT /allocations/{consumer_uuid}": { + "description": "", + "properties": { + "allocation": { + "description": "", + "properties": { + "allocations": { + "description": "Map of resource provider UUID to resources", + "properties": {}, + "type": "object" + }, + "consumer_generation": { + "description": "Consumer generation", + "example": 0, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "user_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "required": [ + "allocations", + "project_id", + "user_id" + ], + "type": "object" + } + }, + "type": "object" + }, + "PUT /resource_classes/{id}": { + "description": "", + "properties": { + "resource_classe": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "resource_class", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "resource_classe" + ], + "type": "object" + }, + "PUT /resource_providers/{id}": { + "description": "", + "properties": { + "resource_provider": { + "description": "", + "properties": { + "name": { + "description": "", + "example": "example", + "type": "string" + }, + "parent_provider_uuid": { + "description": "", + "format": "uuid", + "type": "string" + }, + "uuid": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "resource_provider" + ], + "type": "object" + }, + "PUT /resource_providers/{id}/inventories": { + "description": "", + "properties": { + "inventory": { + "description": "", + "properties": { + "allocation_ratio": { + "example": 16.0, + "type": "number" + }, + "max_unit": { + "description": "", + "example": 8, + "type": "integer" + }, + "min_unit": { + "description": "", + "example": 1, + "type": "integer" + }, + "reserved": { + "description": "", + "example": 0, + "type": "integer" + }, + "resource_class": { + "description": "", + "example": "VCPU", + "type": "string" + }, + "step_size": { + "description": "", + "example": 1, + "type": "integer" + }, + "total": { + "description": "", + "example": 8, + "type": "integer" + } + }, + "required": [ + "resource_class", + "total" + ], + "type": "object" + } + }, + "type": "object" + }, + "PUT /traits/{id}": { + "description": "", + "properties": { + "trait": { + "description": "", + "properties": { + "name": { + "description": "", + "example": "CUSTOM_EXAMPLE", + "type": "string" + }, + "traits": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "required": [ + "trait" + ], + "type": "object" + } + }, + "operations": { + "allocation_set": { + "description": "", + "properties": { + "allocation": { + "description": "", + "properties": { + "allocations": { + "description": "Map of resource provider UUID to resources", + "properties": {}, + "type": "object" + }, + "consumer_generation": { + "description": "Consumer generation", + "example": 0, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "user_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "required": [ + "allocations", + "project_id", + "user_id" + ], + "type": "object" + } + }, + "type": "object" + }, + "resource_class_create": { + "description": "", + "properties": { + "resource_classe": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "resource_class", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "resource_classe" + ], + "type": "object" + }, + "resource_class_patch": { + "description": "", + "properties": { + "resource_classe": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "resource_class", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "resource_classe" + ], + "type": "object" + }, + "resource_class_update": { + "description": "", + "properties": { + "resource_classe": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "resource_class", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "resource_classe" + ], + "type": "object" + }, + "resource_provider_create": { + "description": "", + "properties": { + "resource_provider": { + "description": "", + "properties": { + "name": { + "description": "", + "example": "example", + "type": "string" + }, + "parent_provider_uuid": { + "description": "", + "format": "uuid", + "type": "string" + }, + "uuid": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "resource_provider" + ], + "type": "object" + }, + "resource_provider_patch": { + "description": "", + "properties": { + "resource_provider": { + "description": "", + "properties": { + "name": { + "description": "", + "example": "example", + "type": "string" + }, + "parent_provider_uuid": { + "description": "", + "format": "uuid", + "type": "string" + }, + "uuid": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "resource_provider" + ], + "type": "object" + }, + "resource_provider_update": { + "description": "", + "properties": { + "resource_provider": { + "description": "", + "properties": { + "name": { + "description": "", + "example": "example", + "type": "string" + }, + "parent_provider_uuid": { + "description": "", + "format": "uuid", + "type": "string" + }, + "uuid": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "resource_provider" + ], + "type": "object" + }, + "rp_inventories_set": { + "description": "", + "properties": { + "inventory": { + "description": "", + "properties": { + "allocation_ratio": { + "example": 16.0, + "type": "number" + }, + "max_unit": { + "description": "", + "example": 8, + "type": "integer" + }, + "min_unit": { + "description": "", + "example": 1, + "type": "integer" + }, + "reserved": { + "description": "", + "example": 0, + "type": "integer" + }, + "resource_class": { + "description": "", + "example": "VCPU", + "type": "string" + }, + "step_size": { + "description": "", + "example": 1, + "type": "integer" + }, + "total": { + "description": "", + "example": 8, + "type": "integer" + } + }, + "required": [ + "resource_class", + "total" + ], + "type": "object" + } + }, + "type": "object" + }, + "trait_create": { + "description": "", + "properties": { + "trait": { + "description": "", + "properties": { + "name": { + "description": "", + "example": "CUSTOM_EXAMPLE", + "type": "string" + }, + "traits": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "trait" + ], + "type": "object" + }, + "trait_patch": { + "description": "", + "properties": { + "trait": { + "description": "", + "properties": { + "name": { + "description": "", + "example": "CUSTOM_EXAMPLE", + "type": "string" + }, + "traits": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "required": [ + "trait" + ], + "type": "object" + }, + "trait_update": { + "description": "", + "properties": { + "trait": { + "description": "", + "properties": { + "name": { + "description": "", + "example": "CUSTOM_EXAMPLE", + "type": "string" + }, + "traits": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "required": [ + "trait" + ], + "type": "object" + } + }, + "service": "placement", + "source": "generated-from-api-ref-catalog" +} diff --git a/contracts/openstack/request_bodies/swift.json b/contracts/openstack/request_bodies/swift.json new file mode 100644 index 0000000..0861ce9 --- /dev/null +++ b/contracts/openstack/request_bodies/swift.json @@ -0,0 +1,1006 @@ +{ + "by_path": { + "POST /v1/{account}": { + "description": "", + "properties": { + "account": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "account", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "type": "object" + }, + "POST /v1/{account}/{container}/{object}": { + "description": "", + "properties": { + "object": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "object", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "type": "object" + }, + "PUT /v1/{account}/{container}": { + "description": "", + "properties": { + "container": { + "description": "", + "properties": { + "command": { + "description": "Command", + "type": "string" + }, + "cpu": { + "description": "", + "example": 1, + "type": "integer" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "environment": { + "description": "", + "properties": {}, + "type": "object" + }, + "image": { + "description": "Container image", + "example": "cirros", + "type": "string" + }, + "interactive": { + "default": false, + "description": "", + "type": "boolean" + }, + "memory": { + "description": "Memory MiB", + "example": 512, + "type": "integer" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "nets": { + "description": "", + "items": { + "description": "", + "properties": { + "network": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "restart_policy": { + "description": "", + "properties": { + "MaximumRetryCount": { + "description": "", + "example": 0, + "type": "integer" + }, + "Name": { + "description": "", + "example": "no", + "type": "string" + } + }, + "type": "object" + }, + "tty": { + "default": false, + "description": "", + "type": "boolean" + }, + "workdir": { + "description": "", + "type": "string" + } + }, + "required": [ + "image" + ], + "type": "object" + } + }, + "type": "object" + }, + "PUT /v1/{account}/{container}/{object}": { + "description": "", + "properties": { + "object": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "object", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "type": "object" + } + }, + "operations": { + "swift_account_post": { + "description": "", + "properties": { + "account": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "account", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "type": "object" + }, + "swift_container_put": { + "description": "", + "properties": { + "container": { + "description": "", + "properties": { + "command": { + "description": "Command", + "type": "string" + }, + "cpu": { + "description": "", + "example": 1, + "type": "integer" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "environment": { + "description": "", + "properties": {}, + "type": "object" + }, + "image": { + "description": "Container image", + "example": "cirros", + "type": "string" + }, + "interactive": { + "default": false, + "description": "", + "type": "boolean" + }, + "memory": { + "description": "Memory MiB", + "example": 512, + "type": "integer" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "nets": { + "description": "", + "items": { + "description": "", + "properties": { + "network": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "restart_policy": { + "description": "", + "properties": { + "MaximumRetryCount": { + "description": "", + "example": 0, + "type": "integer" + }, + "Name": { + "description": "", + "example": "no", + "type": "string" + } + }, + "type": "object" + }, + "tty": { + "default": false, + "description": "", + "type": "boolean" + }, + "workdir": { + "description": "", + "type": "string" + } + }, + "required": [ + "image" + ], + "type": "object" + } + }, + "type": "object" + }, + "swift_object_post": { + "description": "", + "properties": { + "object": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "object", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "type": "object" + }, + "swift_object_put": { + "description": "", + "properties": { + "object": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "object", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "type": "object" + } + }, + "service": "swift", + "source": "generated-from-api-ref-catalog" +} diff --git a/contracts/openstack/request_bodies/tacker.json b/contracts/openstack/request_bodies/tacker.json new file mode 100644 index 0000000..35d5e51 --- /dev/null +++ b/contracts/openstack/request_bodies/tacker.json @@ -0,0 +1,2748 @@ +{ + "by_path": { + "PATCH /v1.0/vims/{id}": { + "description": "", + "properties": { + "vim": { + "description": "", + "properties": { + "auth_cred": { + "description": "", + "properties": { + "cert_verify": { + "description": "TLS verify", + "example": "True", + "type": "string" + }, + "password": { + "description": "Password", + "example": "secret", + "type": "string" + }, + "user_domain_name": { + "description": "User domain", + "example": "Default", + "type": "string" + }, + "username": { + "description": "Username", + "example": "admin", + "type": "string" + } + }, + "required": [ + "username", + "password", + "user_domain_name" + ], + "type": "object" + }, + "auth_url": { + "description": "Identity endpoint", + "example": "http://127.0.0.1:5000/v3", + "format": "uri", + "type": "string" + }, + "description": { + "description": "", + "type": "string" + }, + "is_default": { + "default": false, + "description": "Default VIM", + "type": "boolean" + }, + "name": { + "description": "VIM name", + "example": "example", + "type": "string" + }, + "type": { + "description": "VIM type", + "enum": [ + "openstack", + "kubernetes" + ], + "example": "openstack", + "type": "string" + }, + "vim_project": { + "description": "", + "properties": { + "name": { + "description": "Project name", + "example": "admin", + "type": "string" + }, + "project_domain_name": { + "description": "Project domain", + "example": "Default", + "type": "string" + } + }, + "required": [ + "name", + "project_domain_name" + ], + "type": "object" + } + }, + "type": "object" + } + }, + "required": [ + "vim" + ], + "type": "object" + }, + "PATCH /v1.0/vnfds/{id}": { + "description": "", + "properties": { + "vnfd": { + "description": "", + "properties": { + "attributes": { + "description": "", + "properties": { + "vnfd": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "service_types": { + "description": "", + "items": { + "description": "", + "properties": { + "service_type": { + "description": "", + "example": "vnfd", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "required": [ + "vnfd" + ], + "type": "object" + }, + "PATCH /v1.0/vnfs/{id}": { + "description": "", + "properties": { + "vnf": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "vim_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "vnfd_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "vnf" + ], + "type": "object" + }, + "PATCH /vnflcm/v1/vnf_instances/{id}": { + "description": "", + "properties": { + "vnf_instance": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "vnf_instance", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "vnf_instance" + ], + "type": "object" + }, + "PATCH /vnfpkgm/v1/vnf_packages/{id}": { + "description": "", + "properties": { + "vnf_package": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "vnf_package", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "vnf_package" + ], + "type": "object" + }, + "POST /v1.0/vims": { + "description": "", + "properties": { + "vim": { + "description": "", + "properties": { + "auth_cred": { + "description": "", + "properties": { + "cert_verify": { + "description": "TLS verify", + "example": "True", + "type": "string" + }, + "password": { + "description": "Password", + "example": "secret", + "type": "string" + }, + "user_domain_name": { + "description": "User domain", + "example": "Default", + "type": "string" + }, + "username": { + "description": "Username", + "example": "admin", + "type": "string" + } + }, + "required": [ + "username", + "password", + "user_domain_name" + ], + "type": "object" + }, + "auth_url": { + "description": "Identity endpoint", + "example": "http://127.0.0.1:5000/v3", + "format": "uri", + "type": "string" + }, + "description": { + "description": "", + "type": "string" + }, + "is_default": { + "default": false, + "description": "Default VIM", + "type": "boolean" + }, + "name": { + "description": "VIM name", + "example": "example", + "type": "string" + }, + "type": { + "description": "VIM type", + "enum": [ + "openstack", + "kubernetes" + ], + "example": "openstack", + "type": "string" + }, + "vim_project": { + "description": "", + "properties": { + "name": { + "description": "Project name", + "example": "admin", + "type": "string" + }, + "project_domain_name": { + "description": "Project domain", + "example": "Default", + "type": "string" + } + }, + "required": [ + "name", + "project_domain_name" + ], + "type": "object" + } + }, + "required": [ + "type", + "auth_url", + "auth_cred", + "vim_project", + "name" + ], + "type": "object" + } + }, + "required": [ + "vim" + ], + "type": "object" + }, + "POST /v1.0/vnfds": { + "description": "", + "properties": { + "vnfd": { + "description": "", + "properties": { + "attributes": { + "description": "", + "properties": { + "vnfd": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "service_types": { + "description": "", + "items": { + "description": "", + "properties": { + "service_type": { + "description": "", + "example": "vnfd", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "vnfd" + ], + "type": "object" + }, + "POST /v1.0/vnfs": { + "description": "", + "properties": { + "vnf": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "vim_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "vnfd_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "required": [ + "name", + "vnfd_id" + ], + "type": "object" + } + }, + "required": [ + "vnf" + ], + "type": "object" + }, + "POST /vnflcm/v1/vnf_instances": { + "description": "", + "properties": { + "vnf_instance": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "vnf_instance", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "vnf_instance" + ], + "type": "object" + }, + "POST /vnfpkgm/v1/vnf_packages": { + "description": "", + "properties": { + "vnf_package": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "vnf_package", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "vnf_package" + ], + "type": "object" + }, + "PUT /v1.0/vims/{id}": { + "description": "", + "properties": { + "vim": { + "description": "", + "properties": { + "auth_cred": { + "description": "", + "properties": { + "cert_verify": { + "description": "TLS verify", + "example": "True", + "type": "string" + }, + "password": { + "description": "Password", + "example": "secret", + "type": "string" + }, + "user_domain_name": { + "description": "User domain", + "example": "Default", + "type": "string" + }, + "username": { + "description": "Username", + "example": "admin", + "type": "string" + } + }, + "required": [ + "username", + "password", + "user_domain_name" + ], + "type": "object" + }, + "auth_url": { + "description": "Identity endpoint", + "example": "http://127.0.0.1:5000/v3", + "format": "uri", + "type": "string" + }, + "description": { + "description": "", + "type": "string" + }, + "is_default": { + "default": false, + "description": "Default VIM", + "type": "boolean" + }, + "name": { + "description": "VIM name", + "example": "example", + "type": "string" + }, + "type": { + "description": "VIM type", + "enum": [ + "openstack", + "kubernetes" + ], + "example": "openstack", + "type": "string" + }, + "vim_project": { + "description": "", + "properties": { + "name": { + "description": "Project name", + "example": "admin", + "type": "string" + }, + "project_domain_name": { + "description": "Project domain", + "example": "Default", + "type": "string" + } + }, + "required": [ + "name", + "project_domain_name" + ], + "type": "object" + } + }, + "type": "object" + } + }, + "required": [ + "vim" + ], + "type": "object" + }, + "PUT /v1.0/vnfds/{id}": { + "description": "", + "properties": { + "vnfd": { + "description": "", + "properties": { + "attributes": { + "description": "", + "properties": { + "vnfd": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "service_types": { + "description": "", + "items": { + "description": "", + "properties": { + "service_type": { + "description": "", + "example": "vnfd", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "required": [ + "vnfd" + ], + "type": "object" + }, + "PUT /v1.0/vnfs/{id}": { + "description": "", + "properties": { + "vnf": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "vim_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "vnfd_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "vnf" + ], + "type": "object" + }, + "PUT /vnflcm/v1/vnf_instances/{id}": { + "description": "", + "properties": { + "vnf_instance": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "vnf_instance", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "vnf_instance" + ], + "type": "object" + }, + "PUT /vnfpkgm/v1/vnf_packages/{id}": { + "description": "", + "properties": { + "vnf_package": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "vnf_package", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "vnf_package" + ], + "type": "object" + } + }, + "operations": { + "vim_create": { + "description": "", + "properties": { + "vim": { + "description": "", + "properties": { + "auth_cred": { + "description": "", + "properties": { + "cert_verify": { + "description": "TLS verify", + "example": "True", + "type": "string" + }, + "password": { + "description": "Password", + "example": "secret", + "type": "string" + }, + "user_domain_name": { + "description": "User domain", + "example": "Default", + "type": "string" + }, + "username": { + "description": "Username", + "example": "admin", + "type": "string" + } + }, + "required": [ + "username", + "password", + "user_domain_name" + ], + "type": "object" + }, + "auth_url": { + "description": "Identity endpoint", + "example": "http://127.0.0.1:5000/v3", + "format": "uri", + "type": "string" + }, + "description": { + "description": "", + "type": "string" + }, + "is_default": { + "default": false, + "description": "Default VIM", + "type": "boolean" + }, + "name": { + "description": "VIM name", + "example": "example", + "type": "string" + }, + "type": { + "description": "VIM type", + "enum": [ + "openstack", + "kubernetes" + ], + "example": "openstack", + "type": "string" + }, + "vim_project": { + "description": "", + "properties": { + "name": { + "description": "Project name", + "example": "admin", + "type": "string" + }, + "project_domain_name": { + "description": "Project domain", + "example": "Default", + "type": "string" + } + }, + "required": [ + "name", + "project_domain_name" + ], + "type": "object" + } + }, + "required": [ + "type", + "auth_url", + "auth_cred", + "vim_project", + "name" + ], + "type": "object" + } + }, + "required": [ + "vim" + ], + "type": "object" + }, + "vim_patch": { + "description": "", + "properties": { + "vim": { + "description": "", + "properties": { + "auth_cred": { + "description": "", + "properties": { + "cert_verify": { + "description": "TLS verify", + "example": "True", + "type": "string" + }, + "password": { + "description": "Password", + "example": "secret", + "type": "string" + }, + "user_domain_name": { + "description": "User domain", + "example": "Default", + "type": "string" + }, + "username": { + "description": "Username", + "example": "admin", + "type": "string" + } + }, + "required": [ + "username", + "password", + "user_domain_name" + ], + "type": "object" + }, + "auth_url": { + "description": "Identity endpoint", + "example": "http://127.0.0.1:5000/v3", + "format": "uri", + "type": "string" + }, + "description": { + "description": "", + "type": "string" + }, + "is_default": { + "default": false, + "description": "Default VIM", + "type": "boolean" + }, + "name": { + "description": "VIM name", + "example": "example", + "type": "string" + }, + "type": { + "description": "VIM type", + "enum": [ + "openstack", + "kubernetes" + ], + "example": "openstack", + "type": "string" + }, + "vim_project": { + "description": "", + "properties": { + "name": { + "description": "Project name", + "example": "admin", + "type": "string" + }, + "project_domain_name": { + "description": "Project domain", + "example": "Default", + "type": "string" + } + }, + "required": [ + "name", + "project_domain_name" + ], + "type": "object" + } + }, + "type": "object" + } + }, + "required": [ + "vim" + ], + "type": "object" + }, + "vim_update": { + "description": "", + "properties": { + "vim": { + "description": "", + "properties": { + "auth_cred": { + "description": "", + "properties": { + "cert_verify": { + "description": "TLS verify", + "example": "True", + "type": "string" + }, + "password": { + "description": "Password", + "example": "secret", + "type": "string" + }, + "user_domain_name": { + "description": "User domain", + "example": "Default", + "type": "string" + }, + "username": { + "description": "Username", + "example": "admin", + "type": "string" + } + }, + "required": [ + "username", + "password", + "user_domain_name" + ], + "type": "object" + }, + "auth_url": { + "description": "Identity endpoint", + "example": "http://127.0.0.1:5000/v3", + "format": "uri", + "type": "string" + }, + "description": { + "description": "", + "type": "string" + }, + "is_default": { + "default": false, + "description": "Default VIM", + "type": "boolean" + }, + "name": { + "description": "VIM name", + "example": "example", + "type": "string" + }, + "type": { + "description": "VIM type", + "enum": [ + "openstack", + "kubernetes" + ], + "example": "openstack", + "type": "string" + }, + "vim_project": { + "description": "", + "properties": { + "name": { + "description": "Project name", + "example": "admin", + "type": "string" + }, + "project_domain_name": { + "description": "Project domain", + "example": "Default", + "type": "string" + } + }, + "required": [ + "name", + "project_domain_name" + ], + "type": "object" + } + }, + "type": "object" + } + }, + "required": [ + "vim" + ], + "type": "object" + }, + "vnf_create": { + "description": "", + "properties": { + "vnf": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "vim_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "vnfd_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "required": [ + "name", + "vnfd_id" + ], + "type": "object" + } + }, + "required": [ + "vnf" + ], + "type": "object" + }, + "vnf_instance_create": { + "description": "", + "properties": { + "vnf_instance": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "vnf_instance", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "vnf_instance" + ], + "type": "object" + }, + "vnf_instance_patch": { + "description": "", + "properties": { + "vnf_instance": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "vnf_instance", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "vnf_instance" + ], + "type": "object" + }, + "vnf_instance_update": { + "description": "", + "properties": { + "vnf_instance": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "vnf_instance", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "vnf_instance" + ], + "type": "object" + }, + "vnf_package_create": { + "description": "", + "properties": { + "vnf_package": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "vnf_package", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "vnf_package" + ], + "type": "object" + }, + "vnf_package_patch": { + "description": "", + "properties": { + "vnf_package": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "vnf_package", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "vnf_package" + ], + "type": "object" + }, + "vnf_package_update": { + "description": "", + "properties": { + "vnf_package": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "vnf_package", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "vnf_package" + ], + "type": "object" + }, + "vnf_patch": { + "description": "", + "properties": { + "vnf": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "vim_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "vnfd_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "vnf" + ], + "type": "object" + }, + "vnf_update": { + "description": "", + "properties": { + "vnf": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "vim_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "vnfd_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "vnf" + ], + "type": "object" + }, + "vnfd_create": { + "description": "", + "properties": { + "vnfd": { + "description": "", + "properties": { + "attributes": { + "description": "", + "properties": { + "vnfd": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "service_types": { + "description": "", + "items": { + "description": "", + "properties": { + "service_type": { + "description": "", + "example": "vnfd", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "vnfd" + ], + "type": "object" + }, + "vnfd_patch": { + "description": "", + "properties": { + "vnfd": { + "description": "", + "properties": { + "attributes": { + "description": "", + "properties": { + "vnfd": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "service_types": { + "description": "", + "items": { + "description": "", + "properties": { + "service_type": { + "description": "", + "example": "vnfd", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "required": [ + "vnfd" + ], + "type": "object" + }, + "vnfd_update": { + "description": "", + "properties": { + "vnfd": { + "description": "", + "properties": { + "attributes": { + "description": "", + "properties": { + "vnfd": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "service_types": { + "description": "", + "items": { + "description": "", + "properties": { + "service_type": { + "description": "", + "example": "vnfd", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "required": [ + "vnfd" + ], + "type": "object" + } + }, + "service": "tacker", + "source": "generated-from-api-ref-catalog" +} diff --git a/contracts/openstack/request_bodies/trove.json b/contracts/openstack/request_bodies/trove.json new file mode 100644 index 0000000..42b5f1e --- /dev/null +++ b/contracts/openstack/request_bodies/trove.json @@ -0,0 +1,3078 @@ +{ + "by_path": { + "PATCH /v1.0/backups/{id}": { + "description": "", + "properties": { + "backup": { + "description": "", + "properties": { + "container": { + "description": "", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "force": { + "default": false, + "description": "", + "type": "boolean" + }, + "incremental": { + "default": false, + "description": "", + "type": "boolean" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "snapshot_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "volume_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "backup" + ], + "type": "object" + }, + "PATCH /v1.0/clusters/{id}": { + "description": "", + "properties": { + "cluster": { + "description": "", + "properties": { + "cluster_template_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "docker_volume_size": { + "description": "", + "example": 5, + "type": "integer" + }, + "flavor_id": { + "description": "", + "type": "string" + }, + "keypair": { + "description": "Keypair name", + "type": "string" + }, + "labels": { + "description": "", + "properties": {}, + "type": "object" + }, + "master_count": { + "description": "", + "example": 1, + "type": "integer" + }, + "master_flavor_id": { + "description": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "node_count": { + "description": "", + "example": 1, + "type": "integer" + } + }, + "type": "object" + } + }, + "required": [ + "cluster" + ], + "type": "object" + }, + "PATCH /v1.0/configurations/{id}": { + "description": "", + "properties": { + "configuration": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "configuration", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "configuration" + ], + "type": "object" + }, + "PATCH /v1.0/datastores/{id}": { + "description": "", + "properties": { + "datastore": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "datastore", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "datastore" + ], + "type": "object" + }, + "PATCH /v1.0/instances/{id}": { + "description": "", + "properties": { + "instance": { + "description": "", + "properties": { + "availability_zone": { + "description": "", + "type": "string" + }, + "databases": { + "description": "", + "items": { + "description": "", + "properties": { + "name": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "datastore": { + "description": "", + "properties": { + "type": { + "description": "", + "example": "mysql", + "type": "string" + }, + "version": { + "description": "", + "example": "8.0", + "type": "string" + } + }, + "required": [ + "type", + "version" + ], + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "flavorRef": { + "description": "", + "example": "1", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "nics": { + "description": "", + "items": { + "description": "", + "properties": { + "net-id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "users": { + "description": "", + "items": { + "description": "", + "properties": { + "databases": { + "description": "", + "items": { + "description": "", + "properties": { + "name": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "name": { + "description": "", + "type": "string" + }, + "password": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "volume_size": { + "description": "", + "example": 1, + "type": "integer" + } + }, + "type": "object" + } + }, + "required": [ + "instance" + ], + "type": "object" + }, + "POST /v1.0/backups": { + "description": "", + "properties": { + "backup": { + "description": "", + "properties": { + "container": { + "description": "", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "force": { + "default": false, + "description": "", + "type": "boolean" + }, + "incremental": { + "default": false, + "description": "", + "type": "boolean" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "snapshot_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "volume_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "required": [ + "volume_id" + ], + "type": "object" + } + }, + "required": [ + "backup" + ], + "type": "object" + }, + "POST /v1.0/clusters": { + "description": "", + "properties": { + "cluster": { + "description": "", + "properties": { + "cluster_template_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "docker_volume_size": { + "description": "", + "example": 5, + "type": "integer" + }, + "flavor_id": { + "description": "", + "type": "string" + }, + "keypair": { + "description": "Keypair name", + "type": "string" + }, + "labels": { + "description": "", + "properties": {}, + "type": "object" + }, + "master_count": { + "description": "", + "example": 1, + "type": "integer" + }, + "master_flavor_id": { + "description": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "node_count": { + "description": "", + "example": 1, + "type": "integer" + } + }, + "required": [ + "name", + "cluster_template_id" + ], + "type": "object" + } + }, + "required": [ + "cluster" + ], + "type": "object" + }, + "POST /v1.0/configurations": { + "description": "", + "properties": { + "configuration": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "configuration", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "configuration" + ], + "type": "object" + }, + "POST /v1.0/datastores": { + "description": "", + "properties": { + "datastore": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "datastore", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "datastore" + ], + "type": "object" + }, + "POST /v1.0/instances": { + "description": "", + "properties": { + "instance": { + "description": "", + "properties": { + "availability_zone": { + "description": "", + "type": "string" + }, + "databases": { + "description": "", + "items": { + "description": "", + "properties": { + "name": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "datastore": { + "description": "", + "properties": { + "type": { + "description": "", + "example": "mysql", + "type": "string" + }, + "version": { + "description": "", + "example": "8.0", + "type": "string" + } + }, + "required": [ + "type", + "version" + ], + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "flavorRef": { + "description": "", + "example": "1", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "nics": { + "description": "", + "items": { + "description": "", + "properties": { + "net-id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "users": { + "description": "", + "items": { + "description": "", + "properties": { + "databases": { + "description": "", + "items": { + "description": "", + "properties": { + "name": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "name": { + "description": "", + "type": "string" + }, + "password": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "volume_size": { + "description": "", + "example": 1, + "type": "integer" + } + }, + "required": [ + "name", + "flavorRef" + ], + "type": "object" + } + }, + "required": [ + "instance" + ], + "type": "object" + }, + "PUT /v1.0/backups/{id}": { + "description": "", + "properties": { + "backup": { + "description": "", + "properties": { + "container": { + "description": "", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "force": { + "default": false, + "description": "", + "type": "boolean" + }, + "incremental": { + "default": false, + "description": "", + "type": "boolean" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "snapshot_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "volume_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "backup" + ], + "type": "object" + }, + "PUT /v1.0/clusters/{id}": { + "description": "", + "properties": { + "cluster": { + "description": "", + "properties": { + "cluster_template_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "docker_volume_size": { + "description": "", + "example": 5, + "type": "integer" + }, + "flavor_id": { + "description": "", + "type": "string" + }, + "keypair": { + "description": "Keypair name", + "type": "string" + }, + "labels": { + "description": "", + "properties": {}, + "type": "object" + }, + "master_count": { + "description": "", + "example": 1, + "type": "integer" + }, + "master_flavor_id": { + "description": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "node_count": { + "description": "", + "example": 1, + "type": "integer" + } + }, + "type": "object" + } + }, + "required": [ + "cluster" + ], + "type": "object" + }, + "PUT /v1.0/configurations/{id}": { + "description": "", + "properties": { + "configuration": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "configuration", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "configuration" + ], + "type": "object" + }, + "PUT /v1.0/datastores/{id}": { + "description": "", + "properties": { + "datastore": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "datastore", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "datastore" + ], + "type": "object" + }, + "PUT /v1.0/instances/{id}": { + "description": "", + "properties": { + "instance": { + "description": "", + "properties": { + "availability_zone": { + "description": "", + "type": "string" + }, + "databases": { + "description": "", + "items": { + "description": "", + "properties": { + "name": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "datastore": { + "description": "", + "properties": { + "type": { + "description": "", + "example": "mysql", + "type": "string" + }, + "version": { + "description": "", + "example": "8.0", + "type": "string" + } + }, + "required": [ + "type", + "version" + ], + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "flavorRef": { + "description": "", + "example": "1", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "nics": { + "description": "", + "items": { + "description": "", + "properties": { + "net-id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "users": { + "description": "", + "items": { + "description": "", + "properties": { + "databases": { + "description": "", + "items": { + "description": "", + "properties": { + "name": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "name": { + "description": "", + "type": "string" + }, + "password": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "volume_size": { + "description": "", + "example": 1, + "type": "integer" + } + }, + "type": "object" + } + }, + "required": [ + "instance" + ], + "type": "object" + } + }, + "operations": { + "backup_create": { + "description": "", + "properties": { + "backup": { + "description": "", + "properties": { + "container": { + "description": "", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "force": { + "default": false, + "description": "", + "type": "boolean" + }, + "incremental": { + "default": false, + "description": "", + "type": "boolean" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "snapshot_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "volume_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "required": [ + "volume_id" + ], + "type": "object" + } + }, + "required": [ + "backup" + ], + "type": "object" + }, + "backup_patch": { + "description": "", + "properties": { + "backup": { + "description": "", + "properties": { + "container": { + "description": "", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "force": { + "default": false, + "description": "", + "type": "boolean" + }, + "incremental": { + "default": false, + "description": "", + "type": "boolean" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "snapshot_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "volume_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "backup" + ], + "type": "object" + }, + "backup_update": { + "description": "", + "properties": { + "backup": { + "description": "", + "properties": { + "container": { + "description": "", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "force": { + "default": false, + "description": "", + "type": "boolean" + }, + "incremental": { + "default": false, + "description": "", + "type": "boolean" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "snapshot_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "volume_id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "backup" + ], + "type": "object" + }, + "cluster_create": { + "description": "", + "properties": { + "cluster": { + "description": "", + "properties": { + "cluster_template_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "docker_volume_size": { + "description": "", + "example": 5, + "type": "integer" + }, + "flavor_id": { + "description": "", + "type": "string" + }, + "keypair": { + "description": "Keypair name", + "type": "string" + }, + "labels": { + "description": "", + "properties": {}, + "type": "object" + }, + "master_count": { + "description": "", + "example": 1, + "type": "integer" + }, + "master_flavor_id": { + "description": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "node_count": { + "description": "", + "example": 1, + "type": "integer" + } + }, + "required": [ + "name", + "cluster_template_id" + ], + "type": "object" + } + }, + "required": [ + "cluster" + ], + "type": "object" + }, + "cluster_patch": { + "description": "", + "properties": { + "cluster": { + "description": "", + "properties": { + "cluster_template_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "docker_volume_size": { + "description": "", + "example": 5, + "type": "integer" + }, + "flavor_id": { + "description": "", + "type": "string" + }, + "keypair": { + "description": "Keypair name", + "type": "string" + }, + "labels": { + "description": "", + "properties": {}, + "type": "object" + }, + "master_count": { + "description": "", + "example": 1, + "type": "integer" + }, + "master_flavor_id": { + "description": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "node_count": { + "description": "", + "example": 1, + "type": "integer" + } + }, + "type": "object" + } + }, + "required": [ + "cluster" + ], + "type": "object" + }, + "cluster_update": { + "description": "", + "properties": { + "cluster": { + "description": "", + "properties": { + "cluster_template_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "docker_volume_size": { + "description": "", + "example": 5, + "type": "integer" + }, + "flavor_id": { + "description": "", + "type": "string" + }, + "keypair": { + "description": "Keypair name", + "type": "string" + }, + "labels": { + "description": "", + "properties": {}, + "type": "object" + }, + "master_count": { + "description": "", + "example": 1, + "type": "integer" + }, + "master_flavor_id": { + "description": "", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "node_count": { + "description": "", + "example": 1, + "type": "integer" + } + }, + "type": "object" + } + }, + "required": [ + "cluster" + ], + "type": "object" + }, + "configuration_create": { + "description": "", + "properties": { + "configuration": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "configuration", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "configuration" + ], + "type": "object" + }, + "configuration_patch": { + "description": "", + "properties": { + "configuration": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "configuration", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "configuration" + ], + "type": "object" + }, + "configuration_update": { + "description": "", + "properties": { + "configuration": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "configuration", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "configuration" + ], + "type": "object" + }, + "datastore_create": { + "description": "", + "properties": { + "datastore": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "datastore", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "datastore" + ], + "type": "object" + }, + "datastore_patch": { + "description": "", + "properties": { + "datastore": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "datastore", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "datastore" + ], + "type": "object" + }, + "datastore_update": { + "description": "", + "properties": { + "datastore": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "datastore", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "datastore" + ], + "type": "object" + }, + "instance_create": { + "description": "", + "properties": { + "instance": { + "description": "", + "properties": { + "availability_zone": { + "description": "", + "type": "string" + }, + "databases": { + "description": "", + "items": { + "description": "", + "properties": { + "name": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "datastore": { + "description": "", + "properties": { + "type": { + "description": "", + "example": "mysql", + "type": "string" + }, + "version": { + "description": "", + "example": "8.0", + "type": "string" + } + }, + "required": [ + "type", + "version" + ], + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "flavorRef": { + "description": "", + "example": "1", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "nics": { + "description": "", + "items": { + "description": "", + "properties": { + "net-id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "users": { + "description": "", + "items": { + "description": "", + "properties": { + "databases": { + "description": "", + "items": { + "description": "", + "properties": { + "name": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "name": { + "description": "", + "type": "string" + }, + "password": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "volume_size": { + "description": "", + "example": 1, + "type": "integer" + } + }, + "required": [ + "name", + "flavorRef" + ], + "type": "object" + } + }, + "required": [ + "instance" + ], + "type": "object" + }, + "instance_patch": { + "description": "", + "properties": { + "instance": { + "description": "", + "properties": { + "availability_zone": { + "description": "", + "type": "string" + }, + "databases": { + "description": "", + "items": { + "description": "", + "properties": { + "name": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "datastore": { + "description": "", + "properties": { + "type": { + "description": "", + "example": "mysql", + "type": "string" + }, + "version": { + "description": "", + "example": "8.0", + "type": "string" + } + }, + "required": [ + "type", + "version" + ], + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "flavorRef": { + "description": "", + "example": "1", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "nics": { + "description": "", + "items": { + "description": "", + "properties": { + "net-id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "users": { + "description": "", + "items": { + "description": "", + "properties": { + "databases": { + "description": "", + "items": { + "description": "", + "properties": { + "name": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "name": { + "description": "", + "type": "string" + }, + "password": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "volume_size": { + "description": "", + "example": 1, + "type": "integer" + } + }, + "type": "object" + } + }, + "required": [ + "instance" + ], + "type": "object" + }, + "instance_update": { + "description": "", + "properties": { + "instance": { + "description": "", + "properties": { + "availability_zone": { + "description": "", + "type": "string" + }, + "databases": { + "description": "", + "items": { + "description": "", + "properties": { + "name": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "datastore": { + "description": "", + "properties": { + "type": { + "description": "", + "example": "mysql", + "type": "string" + }, + "version": { + "description": "", + "example": "8.0", + "type": "string" + } + }, + "required": [ + "type", + "version" + ], + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "flavorRef": { + "description": "", + "example": "1", + "type": "string" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "nics": { + "description": "", + "items": { + "description": "", + "properties": { + "net-id": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "users": { + "description": "", + "items": { + "description": "", + "properties": { + "databases": { + "description": "", + "items": { + "description": "", + "properties": { + "name": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "name": { + "description": "", + "type": "string" + }, + "password": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "volume_size": { + "description": "", + "example": 1, + "type": "integer" + } + }, + "type": "object" + } + }, + "required": [ + "instance" + ], + "type": "object" + } + }, + "service": "trove", + "source": "generated-from-api-ref-catalog" +} diff --git a/contracts/openstack/request_bodies/vitrage.json b/contracts/openstack/request_bodies/vitrage.json new file mode 100644 index 0000000..ad4be3f --- /dev/null +++ b/contracts/openstack/request_bodies/vitrage.json @@ -0,0 +1,3222 @@ +{ + "by_path": { + "PATCH /v1/alarm/{id}": { + "description": "", + "properties": { + "alarm": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "Enabled", + "type": "boolean" + }, + "insufficient_data_actions": { + "description": "", + "items": { + "description": "", + "format": "uri", + "type": "string" + }, + "type": "array" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "ok_actions": { + "description": "", + "items": { + "description": "", + "format": "uri", + "type": "string" + }, + "type": "array" + }, + "repeat_actions": { + "default": true, + "description": "Repeat actions", + "type": "boolean" + }, + "severity_actions": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "threshold_rule": { + "description": "", + "properties": { + "comparison_operator": { + "description": "", + "enum": [ + "gt", + "lt", + "ge", + "le", + "eq", + "ne" + ], + "example": "gt", + "type": "string" + }, + "evaluation_periods": { + "description": "", + "example": 1, + "type": "integer" + }, + "meter_name": { + "description": "", + "example": "cpu_util", + "type": "string" + }, + "period": { + "description": "", + "example": 60, + "type": "integer" + }, + "query": { + "description": "", + "items": { + "description": "", + "properties": { + "field": { + "description": "", + "type": "string" + }, + "op": { + "description": "", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "statistic": { + "description": "", + "enum": [ + "avg", + "max", + "min", + "sum", + "count" + ], + "example": "avg", + "type": "string" + }, + "threshold": { + "description": "", + "example": 80, + "type": "integer" + } + }, + "type": "object" + }, + "type": { + "description": "Alarm type", + "enum": [ + "threshold", + "event", + "gnocchi_resources_threshold" + ], + "example": "threshold", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "alarm" + ], + "type": "object" + }, + "PATCH /v1/event/{id}": { + "description": "", + "properties": { + "event": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "event", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "event" + ], + "type": "object" + }, + "PATCH /v1/resources/{id}": { + "description": "", + "properties": { + "resource": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "resource", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "resource" + ], + "type": "object" + }, + "PATCH /v1/template/{id}": { + "description": "", + "properties": { + "template": { + "description": "", + "properties": { + "disable_rollback": { + "default": true, + "description": "Disable rollback", + "type": "boolean" + }, + "environment": { + "description": "", + "properties": {}, + "type": "object" + }, + "files": { + "description": "", + "properties": {}, + "type": "object" + }, + "parameters": { + "description": "Stack parameters", + "properties": {}, + "type": "object" + }, + "stack_name": { + "description": "Stack name", + "example": "example", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "template": { + "description": "", + "properties": { + "description": { + "description": "", + "type": "string" + }, + "heat_template_version": { + "description": "", + "example": "2015-04-30", + "type": "string" + }, + "parameters": { + "description": "", + "properties": {}, + "type": "object" + }, + "resources": { + "description": "", + "properties": {}, + "type": "object" + } + }, + "required": [ + "heat_template_version" + ], + "type": "object" + }, + "template_url": { + "description": "Template URL", + "format": "uri", + "type": "string" + }, + "timeout_mins": { + "description": "Timeout minutes", + "example": 60, + "type": "integer" + } + }, + "type": "object" + } + }, + "required": [ + "template" + ], + "type": "object" + }, + "PATCH /v1/topology/{id}": { + "description": "", + "properties": { + "topology": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "graph": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "topology" + ], + "type": "object" + }, + "POST /v1/alarm": { + "description": "", + "properties": { + "alarm": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "Enabled", + "type": "boolean" + }, + "insufficient_data_actions": { + "description": "", + "items": { + "description": "", + "format": "uri", + "type": "string" + }, + "type": "array" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "ok_actions": { + "description": "", + "items": { + "description": "", + "format": "uri", + "type": "string" + }, + "type": "array" + }, + "repeat_actions": { + "default": true, + "description": "Repeat actions", + "type": "boolean" + }, + "severity_actions": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "threshold_rule": { + "description": "", + "properties": { + "comparison_operator": { + "description": "", + "enum": [ + "gt", + "lt", + "ge", + "le", + "eq", + "ne" + ], + "example": "gt", + "type": "string" + }, + "evaluation_periods": { + "description": "", + "example": 1, + "type": "integer" + }, + "meter_name": { + "description": "", + "example": "cpu_util", + "type": "string" + }, + "period": { + "description": "", + "example": 60, + "type": "integer" + }, + "query": { + "description": "", + "items": { + "description": "", + "properties": { + "field": { + "description": "", + "type": "string" + }, + "op": { + "description": "", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "statistic": { + "description": "", + "enum": [ + "avg", + "max", + "min", + "sum", + "count" + ], + "example": "avg", + "type": "string" + }, + "threshold": { + "description": "", + "example": 80, + "type": "integer" + } + }, + "type": "object" + }, + "type": { + "description": "Alarm type", + "enum": [ + "threshold", + "event", + "gnocchi_resources_threshold" + ], + "example": "threshold", + "type": "string" + } + }, + "required": [ + "name", + "type" + ], + "type": "object" + } + }, + "required": [ + "alarm" + ], + "type": "object" + }, + "POST /v1/event": { + "description": "", + "properties": { + "event": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "event", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "event" + ], + "type": "object" + }, + "POST /v1/resources": { + "description": "", + "properties": { + "resource": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "resource", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "resource" + ], + "type": "object" + }, + "POST /v1/template": { + "description": "", + "properties": { + "template": { + "description": "", + "properties": { + "disable_rollback": { + "default": true, + "description": "Disable rollback", + "type": "boolean" + }, + "environment": { + "description": "", + "properties": {}, + "type": "object" + }, + "files": { + "description": "", + "properties": {}, + "type": "object" + }, + "parameters": { + "description": "Stack parameters", + "properties": {}, + "type": "object" + }, + "stack_name": { + "description": "Stack name", + "example": "example", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "template": { + "description": "", + "properties": { + "description": { + "description": "", + "type": "string" + }, + "heat_template_version": { + "description": "", + "example": "2015-04-30", + "type": "string" + }, + "parameters": { + "description": "", + "properties": {}, + "type": "object" + }, + "resources": { + "description": "", + "properties": {}, + "type": "object" + } + }, + "required": [ + "heat_template_version" + ], + "type": "object" + }, + "template_url": { + "description": "Template URL", + "format": "uri", + "type": "string" + }, + "timeout_mins": { + "description": "Timeout minutes", + "example": 60, + "type": "integer" + } + }, + "required": [ + "stack_name", + "template" + ], + "type": "object" + } + }, + "required": [ + "template" + ], + "type": "object" + }, + "POST /v1/topology": { + "description": "", + "properties": { + "topology": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "graph": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "topology" + ], + "type": "object" + }, + "PUT /v1/alarm/{id}": { + "description": "", + "properties": { + "alarm": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "Enabled", + "type": "boolean" + }, + "insufficient_data_actions": { + "description": "", + "items": { + "description": "", + "format": "uri", + "type": "string" + }, + "type": "array" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "ok_actions": { + "description": "", + "items": { + "description": "", + "format": "uri", + "type": "string" + }, + "type": "array" + }, + "repeat_actions": { + "default": true, + "description": "Repeat actions", + "type": "boolean" + }, + "severity_actions": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "threshold_rule": { + "description": "", + "properties": { + "comparison_operator": { + "description": "", + "enum": [ + "gt", + "lt", + "ge", + "le", + "eq", + "ne" + ], + "example": "gt", + "type": "string" + }, + "evaluation_periods": { + "description": "", + "example": 1, + "type": "integer" + }, + "meter_name": { + "description": "", + "example": "cpu_util", + "type": "string" + }, + "period": { + "description": "", + "example": 60, + "type": "integer" + }, + "query": { + "description": "", + "items": { + "description": "", + "properties": { + "field": { + "description": "", + "type": "string" + }, + "op": { + "description": "", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "statistic": { + "description": "", + "enum": [ + "avg", + "max", + "min", + "sum", + "count" + ], + "example": "avg", + "type": "string" + }, + "threshold": { + "description": "", + "example": 80, + "type": "integer" + } + }, + "type": "object" + }, + "type": { + "description": "Alarm type", + "enum": [ + "threshold", + "event", + "gnocchi_resources_threshold" + ], + "example": "threshold", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "alarm" + ], + "type": "object" + }, + "PUT /v1/event/{id}": { + "description": "", + "properties": { + "event": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "event", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "event" + ], + "type": "object" + }, + "PUT /v1/resources/{id}": { + "description": "", + "properties": { + "resource": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "resource", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "resource" + ], + "type": "object" + }, + "PUT /v1/template/{id}": { + "description": "", + "properties": { + "template": { + "description": "", + "properties": { + "disable_rollback": { + "default": true, + "description": "Disable rollback", + "type": "boolean" + }, + "environment": { + "description": "", + "properties": {}, + "type": "object" + }, + "files": { + "description": "", + "properties": {}, + "type": "object" + }, + "parameters": { + "description": "Stack parameters", + "properties": {}, + "type": "object" + }, + "stack_name": { + "description": "Stack name", + "example": "example", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "template": { + "description": "", + "properties": { + "description": { + "description": "", + "type": "string" + }, + "heat_template_version": { + "description": "", + "example": "2015-04-30", + "type": "string" + }, + "parameters": { + "description": "", + "properties": {}, + "type": "object" + }, + "resources": { + "description": "", + "properties": {}, + "type": "object" + } + }, + "required": [ + "heat_template_version" + ], + "type": "object" + }, + "template_url": { + "description": "Template URL", + "format": "uri", + "type": "string" + }, + "timeout_mins": { + "description": "Timeout minutes", + "example": 60, + "type": "integer" + } + }, + "type": "object" + } + }, + "required": [ + "template" + ], + "type": "object" + }, + "PUT /v1/topology/{id}": { + "description": "", + "properties": { + "topology": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "graph": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "topology" + ], + "type": "object" + } + }, + "operations": { + "alarm_create": { + "description": "", + "properties": { + "alarm": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "Enabled", + "type": "boolean" + }, + "insufficient_data_actions": { + "description": "", + "items": { + "description": "", + "format": "uri", + "type": "string" + }, + "type": "array" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "ok_actions": { + "description": "", + "items": { + "description": "", + "format": "uri", + "type": "string" + }, + "type": "array" + }, + "repeat_actions": { + "default": true, + "description": "Repeat actions", + "type": "boolean" + }, + "severity_actions": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "threshold_rule": { + "description": "", + "properties": { + "comparison_operator": { + "description": "", + "enum": [ + "gt", + "lt", + "ge", + "le", + "eq", + "ne" + ], + "example": "gt", + "type": "string" + }, + "evaluation_periods": { + "description": "", + "example": 1, + "type": "integer" + }, + "meter_name": { + "description": "", + "example": "cpu_util", + "type": "string" + }, + "period": { + "description": "", + "example": 60, + "type": "integer" + }, + "query": { + "description": "", + "items": { + "description": "", + "properties": { + "field": { + "description": "", + "type": "string" + }, + "op": { + "description": "", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "statistic": { + "description": "", + "enum": [ + "avg", + "max", + "min", + "sum", + "count" + ], + "example": "avg", + "type": "string" + }, + "threshold": { + "description": "", + "example": 80, + "type": "integer" + } + }, + "type": "object" + }, + "type": { + "description": "Alarm type", + "enum": [ + "threshold", + "event", + "gnocchi_resources_threshold" + ], + "example": "threshold", + "type": "string" + } + }, + "required": [ + "name", + "type" + ], + "type": "object" + } + }, + "required": [ + "alarm" + ], + "type": "object" + }, + "alarm_patch": { + "description": "", + "properties": { + "alarm": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "Enabled", + "type": "boolean" + }, + "insufficient_data_actions": { + "description": "", + "items": { + "description": "", + "format": "uri", + "type": "string" + }, + "type": "array" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "ok_actions": { + "description": "", + "items": { + "description": "", + "format": "uri", + "type": "string" + }, + "type": "array" + }, + "repeat_actions": { + "default": true, + "description": "Repeat actions", + "type": "boolean" + }, + "severity_actions": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "threshold_rule": { + "description": "", + "properties": { + "comparison_operator": { + "description": "", + "enum": [ + "gt", + "lt", + "ge", + "le", + "eq", + "ne" + ], + "example": "gt", + "type": "string" + }, + "evaluation_periods": { + "description": "", + "example": 1, + "type": "integer" + }, + "meter_name": { + "description": "", + "example": "cpu_util", + "type": "string" + }, + "period": { + "description": "", + "example": 60, + "type": "integer" + }, + "query": { + "description": "", + "items": { + "description": "", + "properties": { + "field": { + "description": "", + "type": "string" + }, + "op": { + "description": "", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "statistic": { + "description": "", + "enum": [ + "avg", + "max", + "min", + "sum", + "count" + ], + "example": "avg", + "type": "string" + }, + "threshold": { + "description": "", + "example": 80, + "type": "integer" + } + }, + "type": "object" + }, + "type": { + "description": "Alarm type", + "enum": [ + "threshold", + "event", + "gnocchi_resources_threshold" + ], + "example": "threshold", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "alarm" + ], + "type": "object" + }, + "alarm_update": { + "description": "", + "properties": { + "alarm": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "Enabled", + "type": "boolean" + }, + "insufficient_data_actions": { + "description": "", + "items": { + "description": "", + "format": "uri", + "type": "string" + }, + "type": "array" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "ok_actions": { + "description": "", + "items": { + "description": "", + "format": "uri", + "type": "string" + }, + "type": "array" + }, + "repeat_actions": { + "default": true, + "description": "Repeat actions", + "type": "boolean" + }, + "severity_actions": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "threshold_rule": { + "description": "", + "properties": { + "comparison_operator": { + "description": "", + "enum": [ + "gt", + "lt", + "ge", + "le", + "eq", + "ne" + ], + "example": "gt", + "type": "string" + }, + "evaluation_periods": { + "description": "", + "example": 1, + "type": "integer" + }, + "meter_name": { + "description": "", + "example": "cpu_util", + "type": "string" + }, + "period": { + "description": "", + "example": 60, + "type": "integer" + }, + "query": { + "description": "", + "items": { + "description": "", + "properties": { + "field": { + "description": "", + "type": "string" + }, + "op": { + "description": "", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "statistic": { + "description": "", + "enum": [ + "avg", + "max", + "min", + "sum", + "count" + ], + "example": "avg", + "type": "string" + }, + "threshold": { + "description": "", + "example": 80, + "type": "integer" + } + }, + "type": "object" + }, + "type": { + "description": "Alarm type", + "enum": [ + "threshold", + "event", + "gnocchi_resources_threshold" + ], + "example": "threshold", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "alarm" + ], + "type": "object" + }, + "event_create": { + "description": "", + "properties": { + "event": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "event", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "event" + ], + "type": "object" + }, + "event_patch": { + "description": "", + "properties": { + "event": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "event", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "event" + ], + "type": "object" + }, + "event_update": { + "description": "", + "properties": { + "event": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "event", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "event" + ], + "type": "object" + }, + "resource_create": { + "description": "", + "properties": { + "resource": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "resource", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "resource" + ], + "type": "object" + }, + "resource_patch": { + "description": "", + "properties": { + "resource": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "resource", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "resource" + ], + "type": "object" + }, + "resource_update": { + "description": "", + "properties": { + "resource": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "resource", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "resource" + ], + "type": "object" + }, + "template_create": { + "description": "", + "properties": { + "template": { + "description": "", + "properties": { + "disable_rollback": { + "default": true, + "description": "Disable rollback", + "type": "boolean" + }, + "environment": { + "description": "", + "properties": {}, + "type": "object" + }, + "files": { + "description": "", + "properties": {}, + "type": "object" + }, + "parameters": { + "description": "Stack parameters", + "properties": {}, + "type": "object" + }, + "stack_name": { + "description": "Stack name", + "example": "example", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "template": { + "description": "", + "properties": { + "description": { + "description": "", + "type": "string" + }, + "heat_template_version": { + "description": "", + "example": "2015-04-30", + "type": "string" + }, + "parameters": { + "description": "", + "properties": {}, + "type": "object" + }, + "resources": { + "description": "", + "properties": {}, + "type": "object" + } + }, + "required": [ + "heat_template_version" + ], + "type": "object" + }, + "template_url": { + "description": "Template URL", + "format": "uri", + "type": "string" + }, + "timeout_mins": { + "description": "Timeout minutes", + "example": 60, + "type": "integer" + } + }, + "required": [ + "stack_name", + "template" + ], + "type": "object" + } + }, + "required": [ + "template" + ], + "type": "object" + }, + "template_patch": { + "description": "", + "properties": { + "template": { + "description": "", + "properties": { + "disable_rollback": { + "default": true, + "description": "Disable rollback", + "type": "boolean" + }, + "environment": { + "description": "", + "properties": {}, + "type": "object" + }, + "files": { + "description": "", + "properties": {}, + "type": "object" + }, + "parameters": { + "description": "Stack parameters", + "properties": {}, + "type": "object" + }, + "stack_name": { + "description": "Stack name", + "example": "example", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "template": { + "description": "", + "properties": { + "description": { + "description": "", + "type": "string" + }, + "heat_template_version": { + "description": "", + "example": "2015-04-30", + "type": "string" + }, + "parameters": { + "description": "", + "properties": {}, + "type": "object" + }, + "resources": { + "description": "", + "properties": {}, + "type": "object" + } + }, + "required": [ + "heat_template_version" + ], + "type": "object" + }, + "template_url": { + "description": "Template URL", + "format": "uri", + "type": "string" + }, + "timeout_mins": { + "description": "Timeout minutes", + "example": 60, + "type": "integer" + } + }, + "type": "object" + } + }, + "required": [ + "template" + ], + "type": "object" + }, + "template_update": { + "description": "", + "properties": { + "template": { + "description": "", + "properties": { + "disable_rollback": { + "default": true, + "description": "Disable rollback", + "type": "boolean" + }, + "environment": { + "description": "", + "properties": {}, + "type": "object" + }, + "files": { + "description": "", + "properties": {}, + "type": "object" + }, + "parameters": { + "description": "Stack parameters", + "properties": {}, + "type": "object" + }, + "stack_name": { + "description": "Stack name", + "example": "example", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "template": { + "description": "", + "properties": { + "description": { + "description": "", + "type": "string" + }, + "heat_template_version": { + "description": "", + "example": "2015-04-30", + "type": "string" + }, + "parameters": { + "description": "", + "properties": {}, + "type": "object" + }, + "resources": { + "description": "", + "properties": {}, + "type": "object" + } + }, + "required": [ + "heat_template_version" + ], + "type": "object" + }, + "template_url": { + "description": "Template URL", + "format": "uri", + "type": "string" + }, + "timeout_mins": { + "description": "Timeout minutes", + "example": 60, + "type": "integer" + } + }, + "type": "object" + } + }, + "required": [ + "template" + ], + "type": "object" + }, + "topology_create": { + "description": "", + "properties": { + "topology": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "graph": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "topology" + ], + "type": "object" + }, + "topology_patch": { + "description": "", + "properties": { + "topology": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "graph": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "topology" + ], + "type": "object" + }, + "topology_update": { + "description": "", + "properties": { + "topology": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "graph": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "topology" + ], + "type": "object" + } + }, + "service": "vitrage", + "source": "generated-from-api-ref-catalog" +} diff --git a/contracts/openstack/request_bodies/watcher.json b/contracts/openstack/request_bodies/watcher.json new file mode 100644 index 0000000..943885c --- /dev/null +++ b/contracts/openstack/request_bodies/watcher.json @@ -0,0 +1,5272 @@ +{ + "by_path": { + "PATCH /v1/action_plans/{id}": { + "description": "", + "properties": { + "action_plan": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "action_plan", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "action_plan" + ], + "type": "object" + }, + "PATCH /v1/actions/{id}": { + "description": "", + "properties": { + "action": { + "description": "", + "properties": { + "action": { + "description": "", + "example": "os-start", + "type": "string" + }, + "name": { + "description": "", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "action" + ], + "type": "object" + }, + "PATCH /v1/audit_templates/{id}": { + "description": "", + "properties": { + "audit_template": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "audit_template", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "audit_template" + ], + "type": "object" + }, + "PATCH /v1/audits/{id}": { + "description": "", + "properties": { + "audit": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "audit", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "audit" + ], + "type": "object" + }, + "PATCH /v1/goals/{id}": { + "description": "", + "properties": { + "goal": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "goal", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "goal" + ], + "type": "object" + }, + "PATCH /v1/scoring_engines/{id}": { + "description": "", + "properties": { + "scoring_engine": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "scoring_engine", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "scoring_engine" + ], + "type": "object" + }, + "PATCH /v1/services/{id}": { + "description": "", + "properties": { + "service": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "type": { + "description": "", + "example": "compute", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "service" + ], + "type": "object" + }, + "PATCH /v1/strategies/{id}": { + "description": "", + "properties": { + "strategy": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "strategy", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "strategy" + ], + "type": "object" + }, + "POST /v1/action_plans": { + "description": "", + "properties": { + "action_plan": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "action_plan", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "action_plan" + ], + "type": "object" + }, + "POST /v1/actions": { + "description": "", + "properties": { + "action": { + "description": "", + "properties": { + "action": { + "description": "", + "example": "os-start", + "type": "string" + }, + "name": { + "description": "", + "type": "string" + } + }, + "required": [ + "action" + ], + "type": "object" + } + }, + "required": [ + "action" + ], + "type": "object" + }, + "POST /v1/audit_templates": { + "description": "", + "properties": { + "audit_template": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "audit_template", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "audit_template" + ], + "type": "object" + }, + "POST /v1/audits": { + "description": "", + "properties": { + "audit": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "audit", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "audit" + ], + "type": "object" + }, + "POST /v1/goals": { + "description": "", + "properties": { + "goal": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "goal", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "goal" + ], + "type": "object" + }, + "POST /v1/scoring_engines": { + "description": "", + "properties": { + "scoring_engine": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "scoring_engine", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "scoring_engine" + ], + "type": "object" + }, + "POST /v1/services": { + "description": "", + "properties": { + "service": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "type": { + "description": "", + "example": "compute", + "type": "string" + } + }, + "required": [ + "name", + "type" + ], + "type": "object" + } + }, + "required": [ + "service" + ], + "type": "object" + }, + "POST /v1/strategies": { + "description": "", + "properties": { + "strategy": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "strategy", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "strategy" + ], + "type": "object" + }, + "PUT /v1/action_plans/{id}": { + "description": "", + "properties": { + "action_plan": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "action_plan", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "action_plan" + ], + "type": "object" + }, + "PUT /v1/actions/{id}": { + "description": "", + "properties": { + "action": { + "description": "", + "properties": { + "action": { + "description": "", + "example": "os-start", + "type": "string" + }, + "name": { + "description": "", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "action" + ], + "type": "object" + }, + "PUT /v1/audit_templates/{id}": { + "description": "", + "properties": { + "audit_template": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "audit_template", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "audit_template" + ], + "type": "object" + }, + "PUT /v1/audits/{id}": { + "description": "", + "properties": { + "audit": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "audit", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "audit" + ], + "type": "object" + }, + "PUT /v1/goals/{id}": { + "description": "", + "properties": { + "goal": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "goal", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "goal" + ], + "type": "object" + }, + "PUT /v1/scoring_engines/{id}": { + "description": "", + "properties": { + "scoring_engine": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "scoring_engine", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "scoring_engine" + ], + "type": "object" + }, + "PUT /v1/services/{id}": { + "description": "", + "properties": { + "service": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "type": { + "description": "", + "example": "compute", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "service" + ], + "type": "object" + }, + "PUT /v1/strategies/{id}": { + "description": "", + "properties": { + "strategy": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "strategy", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "strategy" + ], + "type": "object" + } + }, + "operations": { + "action_create": { + "description": "", + "properties": { + "action": { + "description": "", + "properties": { + "action": { + "description": "", + "example": "os-start", + "type": "string" + }, + "name": { + "description": "", + "type": "string" + } + }, + "required": [ + "action" + ], + "type": "object" + } + }, + "required": [ + "action" + ], + "type": "object" + }, + "action_patch": { + "description": "", + "properties": { + "action": { + "description": "", + "properties": { + "action": { + "description": "", + "example": "os-start", + "type": "string" + }, + "name": { + "description": "", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "action" + ], + "type": "object" + }, + "action_plan_create": { + "description": "", + "properties": { + "action_plan": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "action_plan", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "action_plan" + ], + "type": "object" + }, + "action_plan_patch": { + "description": "", + "properties": { + "action_plan": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "action_plan", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "action_plan" + ], + "type": "object" + }, + "action_plan_update": { + "description": "", + "properties": { + "action_plan": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "action_plan", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "action_plan" + ], + "type": "object" + }, + "action_update": { + "description": "", + "properties": { + "action": { + "description": "", + "properties": { + "action": { + "description": "", + "example": "os-start", + "type": "string" + }, + "name": { + "description": "", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "action" + ], + "type": "object" + }, + "audit_create": { + "description": "", + "properties": { + "audit": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "audit", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "audit" + ], + "type": "object" + }, + "audit_patch": { + "description": "", + "properties": { + "audit": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "audit", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "audit" + ], + "type": "object" + }, + "audit_template_create": { + "description": "", + "properties": { + "audit_template": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "audit_template", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "audit_template" + ], + "type": "object" + }, + "audit_template_patch": { + "description": "", + "properties": { + "audit_template": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "audit_template", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "audit_template" + ], + "type": "object" + }, + "audit_template_update": { + "description": "", + "properties": { + "audit_template": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "audit_template", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "audit_template" + ], + "type": "object" + }, + "audit_update": { + "description": "", + "properties": { + "audit": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "audit", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "audit" + ], + "type": "object" + }, + "goal_create": { + "description": "", + "properties": { + "goal": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "goal", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "goal" + ], + "type": "object" + }, + "goal_patch": { + "description": "", + "properties": { + "goal": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "goal", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "goal" + ], + "type": "object" + }, + "goal_update": { + "description": "", + "properties": { + "goal": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "goal", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "goal" + ], + "type": "object" + }, + "scoring_engine_create": { + "description": "", + "properties": { + "scoring_engine": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "scoring_engine", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "scoring_engine" + ], + "type": "object" + }, + "scoring_engine_patch": { + "description": "", + "properties": { + "scoring_engine": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "scoring_engine", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "scoring_engine" + ], + "type": "object" + }, + "scoring_engine_update": { + "description": "", + "properties": { + "scoring_engine": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "scoring_engine", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "scoring_engine" + ], + "type": "object" + }, + "service_create": { + "description": "", + "properties": { + "service": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "type": { + "description": "", + "example": "compute", + "type": "string" + } + }, + "required": [ + "name", + "type" + ], + "type": "object" + } + }, + "required": [ + "service" + ], + "type": "object" + }, + "service_patch": { + "description": "", + "properties": { + "service": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "type": { + "description": "", + "example": "compute", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "service" + ], + "type": "object" + }, + "service_update": { + "description": "", + "properties": { + "service": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "type": { + "description": "", + "example": "compute", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "service" + ], + "type": "object" + }, + "strategy_create": { + "description": "", + "properties": { + "strategy": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "strategy", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "strategy" + ], + "type": "object" + }, + "strategy_patch": { + "description": "", + "properties": { + "strategy": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "strategy", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "strategy" + ], + "type": "object" + }, + "strategy_update": { + "description": "", + "properties": { + "strategy": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "strategy", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "strategy" + ], + "type": "object" + } + }, + "service": "watcher", + "source": "generated-from-api-ref-catalog" +} diff --git a/contracts/openstack/request_bodies/zaqar.json b/contracts/openstack/request_bodies/zaqar.json new file mode 100644 index 0000000..bceeb89 --- /dev/null +++ b/contracts/openstack/request_bodies/zaqar.json @@ -0,0 +1,1414 @@ +{ + "by_path": { + "PATCH /v2/queues/{id}": { + "description": "", + "properties": { + "queue": { + "description": "", + "properties": { + "_metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "queue_name": { + "description": "", + "example": "example", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "queue" + ], + "type": "object" + }, + "PATCH /v2/queues/{queue_name}/claims/{id}": { + "description": "", + "properties": { + "claim": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "claim", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "claim" + ], + "type": "object" + }, + "PATCH /v2/queues/{queue_name}/messages/{id}": { + "description": "", + "properties": { + "message": { + "description": "", + "properties": { + "messages": { + "description": "", + "items": { + "description": "", + "properties": { + "body": { + "description": "", + "properties": { + "event": { + "description": "", + "example": "example", + "type": "string" + } + }, + "type": "object" + }, + "ttl": { + "description": "", + "example": 3600, + "type": "integer" + } + }, + "required": [ + "body" + ], + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "required": [ + "message" + ], + "type": "object" + }, + "PATCH /v2/queues/{queue_name}/subscriptions/{id}": { + "description": "", + "properties": { + "subscription": { + "description": "", + "properties": { + "options": { + "description": "", + "properties": {}, + "type": "object" + }, + "subscriber": { + "description": "", + "example": "http://example.com/hook", + "format": "uri", + "type": "string" + }, + "ttl": { + "description": "", + "example": 3600, + "type": "integer" + } + }, + "type": "object" + } + }, + "required": [ + "subscription" + ], + "type": "object" + }, + "POST /v2/queues": { + "description": "", + "properties": { + "queue": { + "description": "", + "properties": { + "_metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "queue_name": { + "description": "", + "example": "example", + "type": "string" + } + }, + "required": [ + "queue_name" + ], + "type": "object" + } + }, + "required": [ + "queue" + ], + "type": "object" + }, + "POST /v2/queues/{queue_name}/claims": { + "description": "", + "properties": { + "claim": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "claim", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "claim" + ], + "type": "object" + }, + "POST /v2/queues/{queue_name}/messages": { + "description": "", + "properties": { + "message": { + "description": "", + "properties": { + "messages": { + "description": "", + "items": { + "description": "", + "properties": { + "body": { + "description": "", + "properties": { + "event": { + "description": "", + "example": "example", + "type": "string" + } + }, + "type": "object" + }, + "ttl": { + "description": "", + "example": 3600, + "type": "integer" + } + }, + "required": [ + "body" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "messages" + ], + "type": "object" + } + }, + "required": [ + "message" + ], + "type": "object" + }, + "POST /v2/queues/{queue_name}/subscriptions": { + "description": "", + "properties": { + "subscription": { + "description": "", + "properties": { + "options": { + "description": "", + "properties": {}, + "type": "object" + }, + "subscriber": { + "description": "", + "example": "http://example.com/hook", + "format": "uri", + "type": "string" + }, + "ttl": { + "description": "", + "example": 3600, + "type": "integer" + } + }, + "required": [ + "subscriber" + ], + "type": "object" + } + }, + "required": [ + "subscription" + ], + "type": "object" + }, + "PUT /v2/queues/{id}": { + "description": "", + "properties": { + "_metadata": { + "description": "", + "properties": {}, + "type": "object" + } + }, + "type": "object" + }, + "PUT /v2/queues/{queue_name}/claims/{id}": { + "description": "", + "properties": { + "claim": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "claim", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "claim" + ], + "type": "object" + }, + "PUT /v2/queues/{queue_name}/messages/{id}": { + "description": "", + "properties": { + "message": { + "description": "", + "properties": { + "messages": { + "description": "", + "items": { + "description": "", + "properties": { + "body": { + "description": "", + "properties": { + "event": { + "description": "", + "example": "example", + "type": "string" + } + }, + "type": "object" + }, + "ttl": { + "description": "", + "example": 3600, + "type": "integer" + } + }, + "required": [ + "body" + ], + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "required": [ + "message" + ], + "type": "object" + }, + "PUT /v2/queues/{queue_name}/subscriptions/{id}": { + "description": "", + "properties": { + "subscription": { + "description": "", + "properties": { + "options": { + "description": "", + "properties": {}, + "type": "object" + }, + "subscriber": { + "description": "", + "example": "http://example.com/hook", + "format": "uri", + "type": "string" + }, + "ttl": { + "description": "", + "example": 3600, + "type": "integer" + } + }, + "type": "object" + } + }, + "required": [ + "subscription" + ], + "type": "object" + } + }, + "operations": { + "claim_create": { + "description": "", + "properties": { + "claim": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "claim", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "claim" + ], + "type": "object" + }, + "claim_patch": { + "description": "", + "properties": { + "claim": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "claim", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "claim" + ], + "type": "object" + }, + "claim_update": { + "description": "", + "properties": { + "claim": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "claim", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "claim" + ], + "type": "object" + }, + "message_create": { + "description": "", + "properties": { + "message": { + "description": "", + "properties": { + "messages": { + "description": "", + "items": { + "description": "", + "properties": { + "body": { + "description": "", + "properties": { + "event": { + "description": "", + "example": "example", + "type": "string" + } + }, + "type": "object" + }, + "ttl": { + "description": "", + "example": 3600, + "type": "integer" + } + }, + "required": [ + "body" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "messages" + ], + "type": "object" + } + }, + "required": [ + "message" + ], + "type": "object" + }, + "message_patch": { + "description": "", + "properties": { + "message": { + "description": "", + "properties": { + "messages": { + "description": "", + "items": { + "description": "", + "properties": { + "body": { + "description": "", + "properties": { + "event": { + "description": "", + "example": "example", + "type": "string" + } + }, + "type": "object" + }, + "ttl": { + "description": "", + "example": 3600, + "type": "integer" + } + }, + "required": [ + "body" + ], + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "required": [ + "message" + ], + "type": "object" + }, + "message_update": { + "description": "", + "properties": { + "message": { + "description": "", + "properties": { + "messages": { + "description": "", + "items": { + "description": "", + "properties": { + "body": { + "description": "", + "properties": { + "event": { + "description": "", + "example": "example", + "type": "string" + } + }, + "type": "object" + }, + "ttl": { + "description": "", + "example": 3600, + "type": "integer" + } + }, + "required": [ + "body" + ], + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "required": [ + "message" + ], + "type": "object" + }, + "queue_create": { + "description": "", + "properties": { + "queue": { + "description": "", + "properties": { + "_metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "queue_name": { + "description": "", + "example": "example", + "type": "string" + } + }, + "required": [ + "queue_name" + ], + "type": "object" + } + }, + "required": [ + "queue" + ], + "type": "object" + }, + "queue_patch": { + "description": "", + "properties": { + "queue": { + "description": "", + "properties": { + "_metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "queue_name": { + "description": "", + "example": "example", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "queue" + ], + "type": "object" + }, + "queue_update": { + "description": "", + "properties": { + "_metadata": { + "description": "", + "properties": {}, + "type": "object" + } + }, + "type": "object" + }, + "subscription_create": { + "description": "", + "properties": { + "subscription": { + "description": "", + "properties": { + "options": { + "description": "", + "properties": {}, + "type": "object" + }, + "subscriber": { + "description": "", + "example": "http://example.com/hook", + "format": "uri", + "type": "string" + }, + "ttl": { + "description": "", + "example": 3600, + "type": "integer" + } + }, + "required": [ + "subscriber" + ], + "type": "object" + } + }, + "required": [ + "subscription" + ], + "type": "object" + }, + "subscription_patch": { + "description": "", + "properties": { + "subscription": { + "description": "", + "properties": { + "options": { + "description": "", + "properties": {}, + "type": "object" + }, + "subscriber": { + "description": "", + "example": "http://example.com/hook", + "format": "uri", + "type": "string" + }, + "ttl": { + "description": "", + "example": 3600, + "type": "integer" + } + }, + "type": "object" + } + }, + "required": [ + "subscription" + ], + "type": "object" + }, + "subscription_update": { + "description": "", + "properties": { + "subscription": { + "description": "", + "properties": { + "options": { + "description": "", + "properties": {}, + "type": "object" + }, + "subscriber": { + "description": "", + "example": "http://example.com/hook", + "format": "uri", + "type": "string" + }, + "ttl": { + "description": "", + "example": 3600, + "type": "integer" + } + }, + "type": "object" + } + }, + "required": [ + "subscription" + ], + "type": "object" + } + }, + "service": "zaqar", + "source": "generated-from-api-ref-catalog" +} diff --git a/contracts/openstack/request_bodies/zun.json b/contracts/openstack/request_bodies/zun.json new file mode 100644 index 0000000..7c8c059 --- /dev/null +++ b/contracts/openstack/request_bodies/zun.json @@ -0,0 +1,2442 @@ +{ + "by_path": { + "PATCH /v1/capsules/{id}": { + "description": "", + "properties": { + "capsule": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "capsule", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "capsule" + ], + "type": "object" + }, + "PATCH /v1/containers/{id}": { + "description": "", + "properties": { + "container": { + "description": "", + "properties": { + "command": { + "description": "Command", + "type": "string" + }, + "cpu": { + "description": "", + "example": 1, + "type": "integer" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "environment": { + "description": "", + "properties": {}, + "type": "object" + }, + "image": { + "description": "Container image", + "example": "cirros", + "type": "string" + }, + "interactive": { + "default": false, + "description": "", + "type": "boolean" + }, + "memory": { + "description": "Memory MiB", + "example": 512, + "type": "integer" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "nets": { + "description": "", + "items": { + "description": "", + "properties": { + "network": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "restart_policy": { + "description": "", + "properties": { + "MaximumRetryCount": { + "description": "", + "example": 0, + "type": "integer" + }, + "Name": { + "description": "", + "example": "no", + "type": "string" + } + }, + "type": "object" + }, + "tty": { + "default": false, + "description": "", + "type": "boolean" + }, + "workdir": { + "description": "", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "container" + ], + "type": "object" + }, + "PATCH /v1/hosts/{id}": { + "description": "", + "properties": { + "host": { + "description": "", + "properties": { + "extra_capabilities": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "", + "example": "example", + "type": "string" + }, + "reservable": { + "default": true, + "description": "", + "type": "boolean" + } + }, + "type": "object" + } + }, + "required": [ + "host" + ], + "type": "object" + }, + "PATCH /v1/images/{id}": { + "description": "", + "properties": { + "image": { + "description": "", + "properties": { + "architecture": { + "description": "CPU architecture", + "type": "string" + }, + "container_format": { + "description": "Container format", + "enum": [ + "bare", + "ovf", + "aki", + "ari", + "ami", + "ova", + "docker" + ], + "example": "bare", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "disk_format": { + "description": "Disk format", + "enum": [ + "raw", + "qcow2", + "vmdk", + "vdi", + "iso", + "aki", + "ari", + "ami" + ], + "example": "qcow2", + "type": "string" + }, + "min_disk": { + "description": "Min disk GiB", + "example": 0, + "minimum": 0, + "type": "integer" + }, + "min_ram": { + "description": "Min RAM MiB", + "example": 0, + "minimum": 0, + "type": "integer" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "os_type": { + "description": "OS type", + "type": "string" + }, + "protected": { + "description": "Protected", + "type": "boolean" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "visibility": { + "description": "Visibility", + "enum": [ + "public", + "private", + "shared", + "community" + ], + "example": "private", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "image" + ], + "type": "object" + }, + "PATCH /v1/services/{id}": { + "description": "", + "properties": { + "service": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "type": { + "description": "", + "example": "compute", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "service" + ], + "type": "object" + }, + "POST /v1/capsules": { + "description": "", + "properties": { + "capsule": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "capsule", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "capsule" + ], + "type": "object" + }, + "POST /v1/containers": { + "description": "", + "properties": { + "container": { + "description": "", + "properties": { + "command": { + "description": "Command", + "type": "string" + }, + "cpu": { + "description": "", + "example": 1, + "type": "integer" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "environment": { + "description": "", + "properties": {}, + "type": "object" + }, + "image": { + "description": "Container image", + "example": "cirros", + "type": "string" + }, + "interactive": { + "default": false, + "description": "", + "type": "boolean" + }, + "memory": { + "description": "Memory MiB", + "example": 512, + "type": "integer" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "nets": { + "description": "", + "items": { + "description": "", + "properties": { + "network": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "restart_policy": { + "description": "", + "properties": { + "MaximumRetryCount": { + "description": "", + "example": 0, + "type": "integer" + }, + "Name": { + "description": "", + "example": "no", + "type": "string" + } + }, + "type": "object" + }, + "tty": { + "default": false, + "description": "", + "type": "boolean" + }, + "workdir": { + "description": "", + "type": "string" + } + }, + "required": [ + "image" + ], + "type": "object" + } + }, + "required": [ + "container" + ], + "type": "object" + }, + "POST /v1/containers/{id}/start": { + "description": "", + "properties": { + "os-start": { + "description": "Action os-start body (null object)", + "type": "null" + } + }, + "required": [ + "os-start" + ], + "type": "object" + }, + "POST /v1/containers/{id}/stop": { + "description": "", + "properties": { + "os-start": { + "description": "Action os-start body (null object)", + "type": "null" + } + }, + "required": [ + "os-start" + ], + "type": "object" + }, + "POST /v1/hosts": { + "description": "", + "properties": { + "host": { + "description": "", + "properties": { + "extra_capabilities": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "", + "example": "example", + "type": "string" + }, + "reservable": { + "default": true, + "description": "", + "type": "boolean" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "host" + ], + "type": "object" + }, + "POST /v1/images": { + "description": "", + "properties": { + "image": { + "description": "", + "properties": { + "architecture": { + "description": "CPU architecture", + "type": "string" + }, + "container_format": { + "description": "Container format", + "enum": [ + "bare", + "ovf", + "aki", + "ari", + "ami", + "ova", + "docker" + ], + "example": "bare", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "disk_format": { + "description": "Disk format", + "enum": [ + "raw", + "qcow2", + "vmdk", + "vdi", + "iso", + "aki", + "ari", + "ami" + ], + "example": "qcow2", + "type": "string" + }, + "min_disk": { + "description": "Min disk GiB", + "example": 0, + "minimum": 0, + "type": "integer" + }, + "min_ram": { + "description": "Min RAM MiB", + "example": 0, + "minimum": 0, + "type": "integer" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "os_type": { + "description": "OS type", + "type": "string" + }, + "protected": { + "description": "Protected", + "type": "boolean" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "visibility": { + "description": "Visibility", + "enum": [ + "public", + "private", + "shared", + "community" + ], + "example": "private", + "type": "string" + } + }, + "required": [ + "name", + "container_format", + "disk_format" + ], + "type": "object" + } + }, + "required": [ + "image" + ], + "type": "object" + }, + "POST /v1/services": { + "description": "", + "properties": { + "service": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "type": { + "description": "", + "example": "compute", + "type": "string" + } + }, + "required": [ + "name", + "type" + ], + "type": "object" + } + }, + "required": [ + "service" + ], + "type": "object" + }, + "PUT /v1/capsules/{id}": { + "description": "", + "properties": { + "capsule": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "capsule", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "capsule" + ], + "type": "object" + }, + "PUT /v1/containers/{id}": { + "description": "", + "properties": { + "container": { + "description": "", + "properties": { + "command": { + "description": "Command", + "type": "string" + }, + "cpu": { + "description": "", + "example": 1, + "type": "integer" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "environment": { + "description": "", + "properties": {}, + "type": "object" + }, + "image": { + "description": "Container image", + "example": "cirros", + "type": "string" + }, + "interactive": { + "default": false, + "description": "", + "type": "boolean" + }, + "memory": { + "description": "Memory MiB", + "example": 512, + "type": "integer" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "nets": { + "description": "", + "items": { + "description": "", + "properties": { + "network": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "restart_policy": { + "description": "", + "properties": { + "MaximumRetryCount": { + "description": "", + "example": 0, + "type": "integer" + }, + "Name": { + "description": "", + "example": "no", + "type": "string" + } + }, + "type": "object" + }, + "tty": { + "default": false, + "description": "", + "type": "boolean" + }, + "workdir": { + "description": "", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "container" + ], + "type": "object" + }, + "PUT /v1/hosts/{id}": { + "description": "", + "properties": { + "host": { + "description": "", + "properties": { + "extra_capabilities": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "", + "example": "example", + "type": "string" + }, + "reservable": { + "default": true, + "description": "", + "type": "boolean" + } + }, + "type": "object" + } + }, + "required": [ + "host" + ], + "type": "object" + }, + "PUT /v1/images/{id}": { + "description": "", + "properties": { + "image": { + "description": "", + "properties": { + "architecture": { + "description": "CPU architecture", + "type": "string" + }, + "container_format": { + "description": "Container format", + "enum": [ + "bare", + "ovf", + "aki", + "ari", + "ami", + "ova", + "docker" + ], + "example": "bare", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "disk_format": { + "description": "Disk format", + "enum": [ + "raw", + "qcow2", + "vmdk", + "vdi", + "iso", + "aki", + "ari", + "ami" + ], + "example": "qcow2", + "type": "string" + }, + "min_disk": { + "description": "Min disk GiB", + "example": 0, + "minimum": 0, + "type": "integer" + }, + "min_ram": { + "description": "Min RAM MiB", + "example": 0, + "minimum": 0, + "type": "integer" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "os_type": { + "description": "OS type", + "type": "string" + }, + "protected": { + "description": "Protected", + "type": "boolean" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "visibility": { + "description": "Visibility", + "enum": [ + "public", + "private", + "shared", + "community" + ], + "example": "private", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "image" + ], + "type": "object" + }, + "PUT /v1/services/{id}": { + "description": "", + "properties": { + "service": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "type": { + "description": "", + "example": "compute", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "service" + ], + "type": "object" + } + }, + "operations": { + "capsule_create": { + "description": "", + "properties": { + "capsule": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "capsule", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "capsule" + ], + "type": "object" + }, + "capsule_patch": { + "description": "", + "properties": { + "capsule": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "capsule", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "capsule" + ], + "type": "object" + }, + "capsule_update": { + "description": "", + "properties": { + "capsule": { + "description": "", + "properties": { + "address": { + "description": "", + "type": "string" + }, + "admin_state_up": { + "default": true, + "description": "", + "type": "boolean" + }, + "configuration": { + "description": "", + "properties": {}, + "type": "object" + }, + "data": { + "description": "", + "properties": {}, + "type": "object" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "extra": { + "description": "", + "properties": {}, + "type": "object" + }, + "id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "metadata": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "port": { + "description": "", + "example": 80, + "type": "integer" + }, + "project_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "properties": { + "description": "", + "properties": {}, + "type": "object" + }, + "protocol": { + "description": "", + "type": "string" + }, + "shared": { + "default": false, + "description": "", + "type": "boolean" + }, + "size": { + "description": "", + "example": 1, + "type": "integer" + }, + "spec": { + "description": "", + "properties": {}, + "type": "object" + }, + "status": { + "description": "", + "example": "ACTIVE", + "type": "string" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "tenant_id": { + "description": "", + "format": "uuid", + "type": "string" + }, + "type": { + "description": "", + "example": "capsule", + "type": "string" + }, + "url": { + "description": "", + "format": "uri", + "type": "string" + }, + "value": { + "description": "", + "type": "string" + }, + "version": { + "description": "", + "example": "1", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "capsule" + ], + "type": "object" + }, + "container_action": { + "description": "", + "properties": { + "os-start": { + "description": "Action os-start body (null object)", + "type": "null" + } + }, + "required": [ + "os-start" + ], + "type": "object" + }, + "container_create": { + "description": "", + "properties": { + "container": { + "description": "", + "properties": { + "command": { + "description": "Command", + "type": "string" + }, + "cpu": { + "description": "", + "example": 1, + "type": "integer" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "environment": { + "description": "", + "properties": {}, + "type": "object" + }, + "image": { + "description": "Container image", + "example": "cirros", + "type": "string" + }, + "interactive": { + "default": false, + "description": "", + "type": "boolean" + }, + "memory": { + "description": "Memory MiB", + "example": 512, + "type": "integer" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "nets": { + "description": "", + "items": { + "description": "", + "properties": { + "network": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "restart_policy": { + "description": "", + "properties": { + "MaximumRetryCount": { + "description": "", + "example": 0, + "type": "integer" + }, + "Name": { + "description": "", + "example": "no", + "type": "string" + } + }, + "type": "object" + }, + "tty": { + "default": false, + "description": "", + "type": "boolean" + }, + "workdir": { + "description": "", + "type": "string" + } + }, + "required": [ + "image" + ], + "type": "object" + } + }, + "required": [ + "container" + ], + "type": "object" + }, + "container_patch": { + "description": "", + "properties": { + "container": { + "description": "", + "properties": { + "command": { + "description": "Command", + "type": "string" + }, + "cpu": { + "description": "", + "example": 1, + "type": "integer" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "environment": { + "description": "", + "properties": {}, + "type": "object" + }, + "image": { + "description": "Container image", + "example": "cirros", + "type": "string" + }, + "interactive": { + "default": false, + "description": "", + "type": "boolean" + }, + "memory": { + "description": "Memory MiB", + "example": 512, + "type": "integer" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "nets": { + "description": "", + "items": { + "description": "", + "properties": { + "network": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "restart_policy": { + "description": "", + "properties": { + "MaximumRetryCount": { + "description": "", + "example": 0, + "type": "integer" + }, + "Name": { + "description": "", + "example": "no", + "type": "string" + } + }, + "type": "object" + }, + "tty": { + "default": false, + "description": "", + "type": "boolean" + }, + "workdir": { + "description": "", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "container" + ], + "type": "object" + }, + "container_stop": { + "description": "", + "properties": { + "os-start": { + "description": "Action os-start body (null object)", + "type": "null" + } + }, + "required": [ + "os-start" + ], + "type": "object" + }, + "container_update": { + "description": "", + "properties": { + "container": { + "description": "", + "properties": { + "command": { + "description": "Command", + "type": "string" + }, + "cpu": { + "description": "", + "example": 1, + "type": "integer" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "environment": { + "description": "", + "properties": {}, + "type": "object" + }, + "image": { + "description": "Container image", + "example": "cirros", + "type": "string" + }, + "interactive": { + "default": false, + "description": "", + "type": "boolean" + }, + "memory": { + "description": "Memory MiB", + "example": 512, + "type": "integer" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "nets": { + "description": "", + "items": { + "description": "", + "properties": { + "network": { + "description": "", + "format": "uuid", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "restart_policy": { + "description": "", + "properties": { + "MaximumRetryCount": { + "description": "", + "example": 0, + "type": "integer" + }, + "Name": { + "description": "", + "example": "no", + "type": "string" + } + }, + "type": "object" + }, + "tty": { + "default": false, + "description": "", + "type": "boolean" + }, + "workdir": { + "description": "", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "container" + ], + "type": "object" + }, + "host_create": { + "description": "", + "properties": { + "host": { + "description": "", + "properties": { + "extra_capabilities": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "", + "example": "example", + "type": "string" + }, + "reservable": { + "default": true, + "description": "", + "type": "boolean" + } + }, + "required": [ + "name" + ], + "type": "object" + } + }, + "required": [ + "host" + ], + "type": "object" + }, + "host_patch": { + "description": "", + "properties": { + "host": { + "description": "", + "properties": { + "extra_capabilities": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "", + "example": "example", + "type": "string" + }, + "reservable": { + "default": true, + "description": "", + "type": "boolean" + } + }, + "type": "object" + } + }, + "required": [ + "host" + ], + "type": "object" + }, + "host_update": { + "description": "", + "properties": { + "host": { + "description": "", + "properties": { + "extra_capabilities": { + "description": "", + "properties": {}, + "type": "object" + }, + "name": { + "description": "", + "example": "example", + "type": "string" + }, + "reservable": { + "default": true, + "description": "", + "type": "boolean" + } + }, + "type": "object" + } + }, + "required": [ + "host" + ], + "type": "object" + }, + "image_create": { + "description": "", + "properties": { + "image": { + "description": "", + "properties": { + "architecture": { + "description": "CPU architecture", + "type": "string" + }, + "container_format": { + "description": "Container format", + "enum": [ + "bare", + "ovf", + "aki", + "ari", + "ami", + "ova", + "docker" + ], + "example": "bare", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "disk_format": { + "description": "Disk format", + "enum": [ + "raw", + "qcow2", + "vmdk", + "vdi", + "iso", + "aki", + "ari", + "ami" + ], + "example": "qcow2", + "type": "string" + }, + "min_disk": { + "description": "Min disk GiB", + "example": 0, + "minimum": 0, + "type": "integer" + }, + "min_ram": { + "description": "Min RAM MiB", + "example": 0, + "minimum": 0, + "type": "integer" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "os_type": { + "description": "OS type", + "type": "string" + }, + "protected": { + "description": "Protected", + "type": "boolean" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "visibility": { + "description": "Visibility", + "enum": [ + "public", + "private", + "shared", + "community" + ], + "example": "private", + "type": "string" + } + }, + "required": [ + "name", + "container_format", + "disk_format" + ], + "type": "object" + } + }, + "required": [ + "image" + ], + "type": "object" + }, + "image_patch": { + "description": "", + "properties": { + "image": { + "description": "", + "properties": { + "architecture": { + "description": "CPU architecture", + "type": "string" + }, + "container_format": { + "description": "Container format", + "enum": [ + "bare", + "ovf", + "aki", + "ari", + "ami", + "ova", + "docker" + ], + "example": "bare", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "disk_format": { + "description": "Disk format", + "enum": [ + "raw", + "qcow2", + "vmdk", + "vdi", + "iso", + "aki", + "ari", + "ami" + ], + "example": "qcow2", + "type": "string" + }, + "min_disk": { + "description": "Min disk GiB", + "example": 0, + "minimum": 0, + "type": "integer" + }, + "min_ram": { + "description": "Min RAM MiB", + "example": 0, + "minimum": 0, + "type": "integer" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "os_type": { + "description": "OS type", + "type": "string" + }, + "protected": { + "description": "Protected", + "type": "boolean" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "visibility": { + "description": "Visibility", + "enum": [ + "public", + "private", + "shared", + "community" + ], + "example": "private", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "image" + ], + "type": "object" + }, + "image_update": { + "description": "", + "properties": { + "image": { + "description": "", + "properties": { + "architecture": { + "description": "CPU architecture", + "type": "string" + }, + "container_format": { + "description": "Container format", + "enum": [ + "bare", + "ovf", + "aki", + "ari", + "ami", + "ova", + "docker" + ], + "example": "bare", + "type": "string" + }, + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "disk_format": { + "description": "Disk format", + "enum": [ + "raw", + "qcow2", + "vmdk", + "vdi", + "iso", + "aki", + "ari", + "ami" + ], + "example": "qcow2", + "type": "string" + }, + "min_disk": { + "description": "Min disk GiB", + "example": 0, + "minimum": 0, + "type": "integer" + }, + "min_ram": { + "description": "Min RAM MiB", + "example": 0, + "minimum": 0, + "type": "integer" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "os_type": { + "description": "OS type", + "type": "string" + }, + "protected": { + "description": "Protected", + "type": "boolean" + }, + "tags": { + "description": "", + "items": { + "description": "", + "type": "string" + }, + "type": "array" + }, + "visibility": { + "description": "Visibility", + "enum": [ + "public", + "private", + "shared", + "community" + ], + "example": "private", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "image" + ], + "type": "object" + }, + "service_create": { + "description": "", + "properties": { + "service": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "type": { + "description": "", + "example": "compute", + "type": "string" + } + }, + "required": [ + "name", + "type" + ], + "type": "object" + } + }, + "required": [ + "service" + ], + "type": "object" + }, + "service_patch": { + "description": "", + "properties": { + "service": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "type": { + "description": "", + "example": "compute", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "service" + ], + "type": "object" + }, + "service_update": { + "description": "", + "properties": { + "service": { + "description": "", + "properties": { + "description": { + "description": "Optional description", + "example": "", + "type": "string" + }, + "enabled": { + "default": true, + "description": "", + "type": "boolean" + }, + "name": { + "description": "Human-readable name", + "example": "example", + "type": "string" + }, + "type": { + "description": "", + "example": "compute", + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "service" + ], + "type": "object" + } + }, + "service": "zun", + "source": "generated-from-api-ref-catalog" +} diff --git a/contracts/openstack/yoga/adjutant/api.json b/contracts/openstack/yoga/adjutant/api.json index bc4c31d..f3943b7 100644 --- a/contracts/openstack/yoga/adjutant/api.json +++ b/contracts/openstack/yoga/adjutant/api.json @@ -268,7 +268,7 @@ "collection_key": "status", "create_status": 201, "introduced_in": "yoga", - "item_key": "statu", + "item_key": "status", "kind": "collection", "method": "POST", "operation_id": "status_create", @@ -282,7 +282,7 @@ { "collection_key": "status", "introduced_in": "yoga", - "item_key": "statu", + "item_key": "status", "kind": "item", "method": "GET", "operation_id": "status_show", @@ -296,7 +296,7 @@ { "collection_key": "status", "introduced_in": "yoga", - "item_key": "statu", + "item_key": "status", "kind": "item", "method": "PUT", "operation_id": "status_update", @@ -310,7 +310,7 @@ { "collection_key": "status", "introduced_in": "yoga", - "item_key": "statu", + "item_key": "status", "kind": "item", "method": "PATCH", "operation_id": "status_patch", diff --git a/docker-compose.override.example.yml b/docker-compose.override.example.yml new file mode 100644 index 0000000..3942808 --- /dev/null +++ b/docker-compose.override.example.yml @@ -0,0 +1,41 @@ +# Example local port overrides for `make up-local`. +# Copied to docker-compose.override.yml (gitignored) — not used by CI / make up. +# +# Host 5000 is often taken by macOS AirPlay Receiver; map Keystone/console to 15000. +# Internal container ports stay OpenStack-default. +services: + postgres: + ports: !override + - "127.0.0.1:5433:5432" + api-gateway: + ports: !override + - "127.0.0.1:8080:80" + - "127.0.0.1:8443:443" + - "127.0.0.1:1234:1234" + - "127.0.0.1:15000:5000" + - "127.0.0.1:5050:5050" + - "127.0.0.1:8888:8888" + - "127.0.0.1:9322:9322" + - "127.0.0.1:6385:6385" + - "127.0.0.1:8000:8000" + - "127.0.0.1:8003:8003" + - "127.0.0.1:8004:8004" + - "127.0.0.1:8042:8042" + - "127.0.0.1:18080:8080" + - "127.0.0.1:8774:8774" + - "127.0.0.1:8776:8776" + - "127.0.0.1:8779:8779" + - "127.0.0.1:8786:8786" + - "127.0.0.1:8889:8889" + - "127.0.0.1:8989:8989" + - "127.0.0.1:8999:8999" + - "127.0.0.1:9001:9001" + - "127.0.0.1:9090:9090" + - "127.0.0.1:9292:9292" + - "127.0.0.1:9311:9311" + - "127.0.0.1:9511:9511" + - "127.0.0.1:9517:9517" + - "127.0.0.1:9696:9696" + - "127.0.0.1:9876:9876" + - "127.0.0.1:9890:9890" + - "127.0.0.1:15868:15868" diff --git a/docs/api-versions.md b/docs/api-versions.md index 51dee05..bda1e58 100644 --- a/docs/api-versions.md +++ b/docs/api-versions.md @@ -33,7 +33,7 @@ curl -X POST http://127.0.0.1:5000/ui/api/openstack/contracts/activate \ -d '{"series":"dalmatian"}' ``` -Or Web UI → Environment → OpenStack API pack → Activate. +Or Web UI → API catalog → select series → **Apply as runtime**. Hot-swap remounts schema routes (`remount_schema_services`) without rebuilding the image. diff --git a/docs/api_coverage.md b/docs/api_coverage.md index 74b2f88..161c05a 100644 --- a/docs/api_coverage.md +++ b/docs/api_coverage.md @@ -19,7 +19,7 @@ Generated from `contracts/openstack/dalmatian/manifest.json`. | Yoga | 6 | 1060 | Older series omit paths introduced later (`tools/os_api_inventory/series_deltas.py`) -and use lower microversion ceilings. Apply a pack in the Environment drawer to hot-swap. +and use lower microversion ceilings. Apply a pack in the API catalog drawer to hot-swap. Surface-complete means every operation in the pack is mounted by the schema engine (specialized routers still win on overlapping stateful paths). diff --git a/docs/configuration.md b/docs/configuration.md index 86f0787..9a9b11c 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -53,7 +53,4 @@ Specialized routers (Keystone, Nova, Neutron, …) remain stateful for happy-pat ## Web UI overrides -Environment drawer → **OpenStack API pack**: - -- Activate series (hot remount) -- Per-service microversion override +API catalog drawer: select series card → microversion on the card → **Apply as runtime**. diff --git a/docs/examples/troubleshooting-clients.md b/docs/examples/troubleshooting-clients.md index 16b2806..aac9256 100644 --- a/docs/examples/troubleshooting-clients.md +++ b/docs/examples/troubleshooting-clients.md @@ -23,4 +23,4 @@ make seed-demo ## Microversion rejected -Lower the requested compute microversion or clear Web UI overrides. +Lower the requested compute microversion or apply an earlier series in the API catalog. diff --git a/docs/getting-started.md b/docs/getting-started.md index fb9de8b..98205ea 100644 --- a/docs/getting-started.md +++ b/docs/getting-started.md @@ -95,8 +95,12 @@ curl -sH "X-Auth-Token: $TOKEN" http://127.0.0.1:9696/v2.0/networks ## 6. Open the Web UI -[http://localhost:5000/](http://localhost:5000/) — console, Environment drawer -(OpenStack pack series + microversions), Data drawer (load/unload demo cloud). +[http://localhost:5000/](http://localhost:5000/) — console, API catalog +(OpenStack pack series), Data drawer (load/unload demo cloud). + +![Web console](images/web-ui/console-main.png) + +Walkthrough of drawers and request parameters: [Web UI](web-ui.md). ## 7. Smoke / conformance diff --git a/docs/images/web-ui/api-catalog.png b/docs/images/web-ui/api-catalog.png new file mode 100644 index 0000000000000000000000000000000000000000..4c6f56e8a8065df215837184a8f7a089e361314e GIT binary patch literal 49983 zcmeFZ2V9fO@-Q3}Q96Vo9f8oB5IP9bNq_*MNf8d+1nEeVqS8C00HI3nB2_>{r4xEp ziXy$(s0yg?#&h)EbMOD2_mM@;yC#@QJF*ewMBC@la0x={dt%<9)N!oNR|?GmAgjUbl?;o}0h32*{j z0zd%n00)2=AtwpA43GfGoX!E%0cX#g`Tiv&V#4>_g>&bKiO-RpKTmRjf{cQKoQ#~D zk_t#eNkvOVPENx}LrX``z`#I3eUXWgo(V|LK>xiFqO*iL#OFxQog<~EB&VeRx6|n} z0PTe{BE*2RMBIQgv_xlViB7u+9UuanIZO225`QM*b7x4-6P>+4D7{7l0GvBRL_$hJ zc7d3f_&ne&fanaN2ec$W1}g7TD5Nc0!R{UYUk+Vi@C^S=H-2N zVv$#-wq8nB?UsFh!E+|fd*Kls+kAyP-}w?){zyOho*{Jc9Lf3be6P|Hq#`0ZM@({# zjO6UEvJue|7z4Q^RL?OOrP9&EjlIUW!FH%x5=kj(Z=bvQb=!M3BwS$S?fT3;#$ z%dKEAZS8al7!Axinc(a?>AX?2h({RBrh{`3csQn#mb%2F({lQ&F{jvVb(mzf16xV6 zXY_l|ubA1oiB4lM*I@@Si{{c zumxkJ?Uc9V2Zr}X#r7ilj9EkvWNvFQml_f58!*-V}(@;ba3FfYA-#2%V#79_12=cZW}Z)0*X$B0+nA97vx3g7kfqY~X= zBtbo_B`-LVuNO|2j9I&ZH%Hkl+WSS`MOr|_Lhrr^;*|BX_C4>|%}GL`9wh)@mp8i0 zXL1H%{H6g0T;}cM=D|y$%pI=C^Z8LYY~LtfB(vd435ZLEXQ`=sz)HKUvR&Oo-eHgW zxlh#n@4rfCCGr4Mi4pN9qwoygyr7Q-C+%)3eIdweA!P@qnn*bC9?U4K#9zEp6`?Y( zw9~MuZ?bm^h@Kv(lNsa@9APPs$-u?8J!t)g4kf#Mk*w3806J$?&08b`%jylzMz0-M zhb$Tbmt17DVqtU;Va=rfG^t?Ys0#|Z!Qd^|Zn(}6DlD+;F}B6-HJPwhpc3C*UALMa;goCSFCh_Z z-)4Imz;1Ktr)mD{(4nXBLGDfhx?YH(Q?#Le+31BqfLGbu(l)cA07<;X&iAa``x@3PXX^KzUZX#LbF;KlJT0HXJyp8vWq ze@sb)Q}9}XhJess4YZ{K4>X($gkPQl0w@6H>qoOaU+LW`P63M77VaeyI`NPQ*Xqr! z8KQym>SC@0RcSdE3cq~n`OKAp+fn6E{uJPw=f=&1Bd%K>QboWsdAPsfA$cbn_C39# z{3}7!2Mb(E>uY<7SKWQ9bYVj3M$WXa&Y_Aj#k3ESOZ+=CBLa99H(inM_Hx0+;GRI0 zVz*a$wVz59SYEod223+`^%(aoXDSOpu#6J8C%fpq=)#qZ2X}3;kzP&;wZ!A_HxHDe z>hPP=yn>QEVu@#L_-nK(HSI;zEJs9=SLUYdxy9E6*JPrRD-%gT8Vkzm;FT;;tnG%w z%){k01?g;)`KKyJx|R8rvvi8eUbzxU5?=Tv_K{OS%(13c)r9Be&TFnp)A=UCjpqhU z?pa7}nFI>^SgtfNRcZ2kl)6?$E-7-C;a^Yzl+fdl8rAe%PUb2henckqF3 ziesSp(ty~fwY{)_wfhLTpR92LRcP9fR~0|)z)X|Ri$J80E*+wkFHbpU z?j}DTVr?PWZ?Bi&f|OKn^JJ3xwUkd-@V$a7yYC$A7N5W3oy4BDY;A=T!!hSU*c&c@ zxwR~77`lLz2lo?o*E9z}`^QzvC?f-BjU;}qHT}vaBs`{H!|%A|s5fs)3R!tHVtbgzaW;@e6}ffbkk?O@Mzz5T=Q@yNMQ)ac9Q8{Gff?Cm9p0VQ8IFmI_s2 zipXacZr4xF-bXZdXYB9kxl8DPGUxC{A|D+62k_#i4Zato=^x@aFG|V`30}F__`Wpz ziaC_KGP=j&O8q04QTA4dKuc@S(uXbNlHACJ#o)jv75bWLmU-&L&#N9ZpdM(|SfnMM zxdhmENU)<#@Q&`Eni{b+7QGJhkyR?(eggoMUi#xp=nqQHP83@=D}b|b`Z1RAG5$f* z5!KA#2}LUi?S*!z*=`86;n#}K)Z}E-`(fcD-?K7IixFKP+uO$~8(bIDIPN{L4>Zs+ zxmPM3Q-F!gYFP5Eo80ntx3!?njgK!G=62P)V(5)SbqafFGF()fD!qi!yuXjTA#Q}A zkB+P~7vGLO1*F-$*|n+P*Ej_XhKCwByR$3yf%h-+mA0DWC!TUc^UY#Njw0 zEO}X6dzJdFzU{ZL63+T!&%4hn+vICFIv;c<>s2gTw1x5AnK01IjwmMuX<1}Kklbo0 zEk7`LT>iDpBKX{LHfP8FtRvHYAl(Z!O$DWrOm`DB0)~l>rA&jGRFhfoXlJYMl~J3$ z-JAZV`D_?e-1){k5g2RR!4z8d3U0rnCZXXgSDvbWVdY3rDl=R4B9m4G`))$=TTVR* zaJWn;C7q{l#VhGHbF)~nM`>kU&ht_8+I%h;=2!JgGoHwbe_%JWGH35=f=*sGkXETs*Tx+>U^4??Zux!hu1+c=hCjO$B6`tDJK z*18e=y>O?77}1_GApI<~Nm7MMZ1>)m6E zEHf+dddbvohB>EhP(Om#$%#wZ3zsr`DA~itgg$UItk~BBYuSioe$$sG$>3jsWAftB z8ed#_8?@8?P!^Utq1=G%o3F3gGpL$|mQ>i4ZI%j7#JR$tiB zLip!sqEmq8$O-Wm1QAZgn;U8;1d&_1fW{PXgL!FZ*T3A+e=~=|9F>}_oEYrLl+jHu zQ(heFIzF8HniY2CA{7uOI1-r&Q$c?>RD`b4YE@7tR} zx}d~>_g^~Y%75uCcoTN!Nh4rzPHu<$VKHdljRe|n#7vu+@ZS5|GEuon!tAY^a_Ou_ z`3OZ+e0GG$CjWz+hz}IM0S3=mD|QG}u{>r=#Ue|Cx$BFP$Aw6kFZuPj=|p;K!>x$K(>Nid3os(PA{0(CvPhcGW50Mb5v+W2*2ze z`D;OZIp2aP!5EZ;in7vk2?ogA5*=Pz<@&{ET{z*3@iEM0?P44Fy}_nnUWUz%QTEEl z-hiEAxP1THG=d?nahxxG@o9bddQG&4p4}H&6g01 zP!=Uqv>6z8uo+o>$^E(IW3uu{#3n+E*(dsGV^j5&M{Xmwx_izo-%@E$0i;*C*LUC1 z-k$&5sgnLn{Ok4hE8?k;|AG8IW_be-H9z_+P@G)9Cw@EkkREeJEKKbA#U~@d;3K~a zPd?m!^WEIPJ|?#Ld}aFw>$`t8^?!%1UPOMN?0`#PP5UIWW#-j|Zx6Y_1U2%Ecop=z zX&O4GVjB<-H=;QtN9qZI5&O_Ci7^p#^KSVbUbu~ zm`FKBE{!0!w+DBy{P$XXw;ClWHV3s#wH#7j`l5>Sp#~RG1(M>Z2huVs3tkmw z0n#&zkp^wy($LAgKnhxb?hw3@|F!C`$U7QD;=kfa zkl1qNT_PIdwkctF$O?0XS<#n1;;XjRZK!wt_;=ro|Jv*W1Ui@2?{DcOb@B2A^xhmxs|?j z{nMaEa)G*Sm+cl;at38l1sblQDZ0yjKv(hl%J9Tv$7BYpo(a*4JG1o-A7*&E&9;9a zJK~Y|WvbpQHtFn`wt;_?70i}VRw}~Yqm)cND1MX)G*z5M{;1UXqm1m&2EQxz|56=_ zcmWe{xtJ763yjX-aPxz^K;bB98c3X9qR2pAyf}jUGMe>-#buj+PA8v&uq*C%kL8+zI1_-N!`5$s;u94RX@GuaI3KHXG+LV$Gk} z3J6)1&@!R34lWnh?;$-c4gv|%lSfF&OtUt5J-=TbQWyO^IrAL{O`yXDz;xa%cvgVgz0)UVX-pqR+kaNeLZ*)HRN z%&x6l`W& z!@x{jcK}lV{ORoP|xAZZOeZ1-$ebqNS=z+xf(hA#H|2YXNm61nZ zHBSnhFYO=b?udPH=ITBAMDVpeois2L*S75lBRNhIdfsr{;X3*9mO_<<55mMewll~< zB4%g`7%P9_3JHXlBa8F$%GvzI51bN7OwYTc?hhqph&FtoeeKQTie`9(AK@xZs2jzm z%hT@fCuVK*J*W(&Z>Pe#lWmKhryDBo&0%?vW;UjoaMb9+x=hZyr%nHuF`V19@0*sU zSH+l|L!F=_F(+n+qAq!DEuMkB&xkCd+mU9$hPaY`p6J46(x6AGITM3ZRGb7|ApOV}%;u zIcsTz7G7vCJ?~`uT)7rvH^UT9W9+#fkO0LRnncJoY9Pw3v1C%kvgRy{B4`g|B$#nK z^ju?Mm4rcs{VY3|&sKlYxV2}lmo!5b#5XMg!vXbXOvXC2yfoUryIs|lQ4?u7EmkTy zD2Kgpqa;V@{w$wlb6G9wIuwm+WQi9U?p|kp>DI;&ELCiGQOK0SST85m)!me=nqk^W za?n>npUyEHp;r?Rp{2c!R-GGKqunpJ)hvS@3N0}O)0=vYyU4r~LI`>^l)+h{De28< zDWwKFS2MG03~u9KJ|RAqs_@z#*nDN7YCMEWe9=8ZzpGuI@!uO4jrUM=#0pt=@@ zUa^Z8r@+?%0G4O}$e8{q?))rp2I)YK!WU`l#>z6Q?b0uK6oV?+69zQj`E3yG5WU_` zCV6R7pMX5am#uG%zapx0w^zZ zy{q1D*ky8_Yf6@yAi<`H$N?@sjSC;T)x9}==izeoyz(e*UxB{52Tu1Jk{r*pKi$+; zx%@oG*j%IrFrN$7DA+(-j=WigT2~ZEI0fv|Y8N@9d3b8mt0Jju zxKqpgf9XusnN)n}zybf%cw39D_&xGd0*Q5;R{pDSDoq~456=?sR?c2# z_7-G`_M?!ePgH+QBC#s&YTjUnx0$ZF@yw~O2+98P@(Ns<>K#)r=1H~9ShV16%O{0I zpJYn1eIMQko`EJhzDfpR95r0r(cEH7oXY>tw4eU}PB;E!^B;`;e~Z$zc?{S7&XO^* zyPF+mBZhTuX+FjXk?2o zWmHcri|IvrU49ipvSqQ1xn~A5vrLGUZGxc=7Oqa#wsV#mTILI7ad~Ir07as!_eWjL zS(ZW}xH&c5=}V<7<|!S_`Zo5K>TN;r^n^NVJRUDzBW&<-oO@b$icOV^da~q-^a@Wr z^tG8$u`IaOmtpYBv#bAfivJ@5A~dWz+Hl#`*!@yJ#FDB9E#|;;z|;k>7H3{M@0{KJ zLP$5wjg{oMxY^yy*xoDs&*(kIbfLg|4h`CFiey-JlT09ava z(TGE04b#4E3UTvZ;qCNtad*Y#bYtmQr#Gl4%o*<=HNsMGMuiGX7(5$Ki}0o4g;T(o z7C>}>=|!AgEU#6WcdRJdKoOswwneVWt9=_6q9p_Xn7{ZrSI3i`0*cvANWMkH?SO}L z?f?Yu|55k;U3}lK3$7qrP=NIc#m49R3hMV2RG*kLg-=Y0cRhZe5z(J%ql(hkf{IJE z4C;4rF5K*rI|V2&>|8vKb-1BUEl8@uUs2KGQ|#h!3izfj2K)T(z17WAKoJ+9 zsASjwsS9$><=dr|kDN4FhC5sfJ^YmW!^13kOxHsd7fLHm|>BV)2hOk|7!z3|!MV=?^@09wg zslZF3Dw2I~F70N&qeh*$1u!OV#q4R-%>^yZTOMr!!JL~fdG5`MNfg>^+F#q9?v%`l z8_;HswssYnljfZgC5NPz@^#c-cvA2>&8!Q?o>Gj5~|-yu5&6uI@-m1=$SB<(_A@5#obb@Mz-FYJWy}A%d{ly9{5R&>ppVuouXN+ zaS7CqQjMoPFjhpE*R3jPr9j0fMKhbTXh-}x9ra?Mfo^(YkuY_=YN~~|#*LeOAwu@X zM$rP_BUe()gdM06=J zIMOv-svu3mLHLso+Ei)5Vb#Q%4x+qv(&_Q;N}T!pUzxVk0Oc>{9Ox$`^1-TAz@?ok z*6rdRHSg80<0*T3;NV1=T9!m>W6WUM?5$5`OXf_6 zBhy8RBxs&~Wru^8p2&|>a-ZoGdrT!vwd`9I$EXwhRU0;G70}#c>n|S!uiHJe=tN0g@k>aW1Efb4SV7`d_O zhnUQpo8!EbOVVWO$e1r8%?aroAX-6#M^1uHg+i;|6Wsyk&uN+!dreu`6`oK7pE+>p zncQ!VY}ztG86ng#*#%D$VzrA}y4DW^7SF&g#ai8FG|4INN-9fef8>E0PukLKNx%fb zR!gU)tu>l!0;JxUcT37pkd1LYn%*`RgRDJawZ zRF(#8LNo)Bt?hnc-m`^=sWu|QCm5eY)=xm;t`TYJ=UX(T^bj?DsIonGOUAY@>@1Ho zKZ|gpo0y}vB^qO1JKvDRf;(2?S2_RKac13hR_aqg=If03!vXc7@yFoT%u(*xncVF` zH#VQlZvSYuwc6{;W6j$irGsAy*I!x8aNfL*`$*9<)+=9S9^f_X%J7;sYR~+SsxCHr z{8{l&<^2E2a_${rWgclt+8f>@F+S)2sGZ#ICc$jAMK4M~sBj%-ox8t0bZBe%ypdum-EEV>S2X zpZ&Y@`rpxqY#xwGl~?IS?Jnc(9G78DesFs09xdhXWWsNM&WqiVVdF_*XG1$Q18{34 z%?jFpr|a5bWKR!t)|QJr$xnR!w<}KpCdqtb2l8KeKYigmNE-PPa3bVqDf?O-ainVm zsyRq1S9!B;6K#1HhRlbhm7DUyO_p^n=p-TSU@ncK)UT)~_!W5vsx0cJO@<*dURusc zhnmSyI)>IKL0B^!EaA(3Yay1YT-FStDoTu%bP5q{u};ozX^C$2C|vBmf z$ZwY%ssbhr^ zm^nL!t6s}BP)lgwEF1Vt^P2yR3la7PSm0rHxv@{A{u+}&)DmjhdCNPcl0{ckW*sgW zldPI(#j?oo3%>TM^(P@Jpm$mm%@Twk)y zw&xe8(E28TbC>_l7XR&^L*Uyqa&m5-SZy_AA4`R}7MrU?rWQN@GNSixFYU9_9 zz@#d_RS5Ps*PA_Ax=b~ai{5#49qjrgy7!jvP|XJ(z~7Sq{*Hi|C9rSc^PPW2_D|dS zli*)e_9OMAI$6KuyMI|pD8li$#woC z#j>!?dceWF@-4oX#}pzVBwQ}cmY)?n-V{^LoM{2!y&rjOg&fuG-T7T-9T zR!NW*V>|_{UGe`IKcn*@n|Yfw!i)1P=D1!E793%58HrFIZoa1NqPiPOXTyH#{Kz>^b zn-U)jmfvQNx*T??5Wy*ME38vb0`x=gn$HxPqZQNVKbilVTz*o2P-T_Km0tu1#G<%L=p2CGPB`-$tJ zbrkQQP2ucSTZ5bzjOUfqp>lf*K8sux*y?HHXokLX|W8a@B zST1>yL8+{8z&b5u4PK?=$B$jBC~iQ*`c8?1)s+GS#RiBMsj@T(%eQGE5EIjItq;Fm z)T<$wOpK40EN8SzY}#j3qZjv{HZdcnaKHe+G zzOu7%TiH(CtVIpQP`q&vqXq)JDN?OKamT=hIOLZ3V!fCUEeDVHE7X^+v{rV7P_(|dRnXO6C zI;Aei>>G}IUPA{c(q6rO!KXU2>)SWpzKkn0DAKc6r&-W|8Szdw!ITS)cpFXuOJHb2 zP<2sH77&`R>#TMm(M?nggdKF&_HLd*1al3QOd^59Y=TIfgfx}tehn9n6pl%!b)wxE zFbfCs9Hid4Q^g~Z$!uyHB;rh8oZplifO;FJnks@yx{d8qD;Q_19?>()L14=gc5{tT zzM)HC@V73>GIP-6o34Zt)e^~9mS!4(P+5AYQErw`dRa`!_Aux+g}$GEV69soXlai+I@&LZ0m}94GfQ$}O1D5* zt@z$lrH0Hzc?;zN9-b%PG`%chDr=UIgP9nN)WpY3eI3Vy6f+26o2hef_c*A#doOn*H8P!YN4PBGG-$|5uB91cUp##LKx3* zyJ=n9@a?ea2RZatNB`|fl|=LV8yEHQBc6`+OD@_^h{oB8#woX&e?EtG&7VIB=zRK_ z=@jsxNbMhDJ%3#seELU=gW1cX!jvU^7t^_<>Ud$ltdFFc$?$5M3qn|c!xo`6@q3AZ z3R1ZimYwE{9w!bjLJyx{5;e32j+OH|RL+++J+*YRZ5uf*ekr)$cFxfHT3uE+yIYCy z0501M3$ffi>`A|s3C~)w9@jwdfWaG2HP4@!d<8PaCo^gwgB^v~gjy-nfXLw2R_ZR!@>vf6H1Q15D7+Dt+V@YO93ndJ&l=Fm7Hic(N9wHRb6 z?k&-<9D`4_?ELtw5}sM{u!9w~TiRv8+uc@FtkpCU55HM(g_DceLLCF3`l8x3X*mS9 zKXMYu@5*AwjSTZ;db`OtrKQu~Gp)lkTJIXI2lj1@J-hR757O@|km$9o_#3{}B}7Gh zz}|o77y@#jA(a2S_XgWv0PMiuxBH*x|5;!{)}2$p2$TQGGUvC+m}@`76@HIRVp%Xx z@346lzF*Bb+q)BW(9!lelMtsHk?9RtY8*uqykqV8Z-`-ur9yJyg4ezU)bMK z``S7#bqX|AWM+lI+|TC{6?EzrNT{nzzO=u}kO&bb&-i-IFx#I(p*4FcI@YB-S)W_V zDNE=^Iu~;9rgLPufUuSRQAaP+u)%&|C+y8{U~zUkk0`^R!Txwi6t~+VC8foeh8v`< zc5g`u4Vr_n$3sAIYe8g7Ic&6sMZawAADRlHk-nduGFgr2y^SfVV#R=L5Y}|z%sLaT zTn8RR?0)IM)G1|3=`=)Fcwl4SFWIuzt$KAAhPyO0 zT*j66N5XRyLgZaXD!gyHY~4udpcGuTh;v5WDwLd9cUD*KsVtbu3c0AS?SJeom+QFN;t; zAM5sK00q#0KBfGw=06QLmnCd5&b|EcTaU_@a+=zo@c_TavPrksh(|nme16kXr7?M# zav<{QQS$XKOP}CE_orNUm|ar)b0_puy{w^W5N_U8EWw!@Z}5?^P4pBn81!-BVqI#1 zJ@sLU^5Pj8+p)iWHWe-5wW58N&S8R(W&~+NQ3KWGjwStC&W_q!ggerS1890j64b&4 z7IOTOOdr{*YXi^WmgL19#3bNP0oO*gXAa@qO`XY?mqpu?B#Pz2A#zzbC(uat11)oL z3#R?KWn+I$2cWEu9|mU%nqW67_afEh!#MkcrS_;Z`CrVfFpHbe^-&D-CWe)@%`oh*k&9`7>uaU0Caei3?jf0Mq3}G`h$1Erx z=D|JFDrZJx|L_JVMoU-FY34m0Xi-K- zI!#r4H8t#FO_3{kC)W8*0dmuaj?z!6Pwp+>RH&=a^tdvEkjbo6u7NUJjQ9$wxm;AR z@!C;RkA@$)U`UqJC-bl1dFCctr?Ac|oz`gDLsuwBa+w?suhWf{!WH3HfdXWrSxgzNJ$98khX^rBU)mYT(H4;CIm}( z8}*sQEq%szd&G02rmvGji%pQ-O@Vbt#K@#2Qc?$g4Wbc0V6rg0c@FgMaGo0%m zV&z;zY-~wy`%#ZKgt>C|u%?rT?QuN*-2JZTMn?FFU~==-*T3_s8I_N%m@sx$vH55N zF-N;rs;TLdNFLg{ljPFv>>ezxxyHqf!E?Ix&<*>Q zNsuRLXlT5^93C{^I=xq?tqYTTvzyFNE>U1-8Bz3z0aN$&Y^dT5g(B>g?xrI_h#0Ko zJ$483r5|X}`@MUpj@MGPHS6;CHtKj(1g4FA8h9lLwQ#X9J2bjDzOfNtX zl+4o{0qe|#@tzYHw`_YY{i)P(3-z}hTEcJcrAnH76*uUp%dO9Qp?Y3s6t^DPRA~K^wmy~S+)gN z$k(Hx0c~N&zxtGDRXq4c^7@(lgmM?Yib1)Q`B0y=vM3y>^yL*})%=oC3ticXqQ01z z5kU<(6*Rbg;HW2Ld)L{2CQNRmUB-UK{o`|ga+3!X1;1pPYPGG}NL73dJa|Of3z8tC zchSpmqRhK8h1rdXTZ7za)j_f;PP3%yKHta5Wr|&{G0wpFRBW%XMTm;^NjEI86tpIw zZ-rPpweIu2(mK2jowpz)O zf;0#L(xSx9+8586$Z=IZ&r@y`CesXcQ4~ ztaEoFBdCDjfAyMn)Idq=JHFE#v=y=YIeg#sS^CiW9Yw`c60*V^($)xn{eZ5e#+1f7 z!?tBNEej-q#(F-`L+U%cP;fo36CZTbFSA|E1ijPO3U{aR-~Zo%p6vhv}} z*eJ`YbESXZL7C#TN+QHhmP)vsPqxG0kC71ML&jXa;VdLdy}QpbFL@s!m+8imkqi1 zIN5&gQfVbFYU`O1c6vm?Q{H*>1YPJnZ=7;ce+AVnggf2fC&Hn-K zU&cr7XNN?GJo^Ek=LvmLGQc-}i2ecZbP8P@_xi;C`Ror!5?uLiM@8sGE87ovmZHoS z()-eX{wHMKt*P(&T4}T4{R2|`Wd9TXDaN0J@~3V1&;O4rg$z0IUZ|c~Y(-7k`-_#Wb&o8u!yKy)CW&JBL zn*>>`baj?m6;|;#y~QUDD#bF z7U+;0!Bgc#>%YO$$VoN%_8>EaFYnx@DNA^avxp=AaGT0AxhGU>cHRo|DD z=3K}H9G`%lE9R`YV@U4s`A~~ zI*gW79grLzTX&~BN&DO3LwPZWc*8~;QzRiBry%$D4 z8+;DFJRzqT2`fIv0q&tQ zoonvW@J@l4B;3`AC0QUHgH+5JcyT-S7nyDxGY10xsSfS!6z0 zLaBlFB6aJOE*6r6l!F|#{0^AfI`hsZ(I5|_QuWIu&Lnl~KbjnznsjIzH=78y&$LmG zMy)0)BVN994(?YpnNX&s6KrS=7U^YFmLoMfkbz|g_=pI3tO*5E*^b>~yvvxM` zEuRfoeK>b-yngu;BNI&%b}M(f+M&q0d$nFV{YE%o;NwA$ahEZl&O;gdpd7Vmy+SSZ z17^(Xa0q;hW;Ve>(mMILwD}#jX!2FunwE<@QR{uex{vxVh(9L9gs82rl$E_v_$DS$StEVs%gF_YsARxF*w zVp4GIb*7`&{q~*W&xY<^flg~Hb3(_GbyZq^wbrgY4#l3awgu|3Ec87ydfLDhe;61V zSjfAY%G(L4BJ4%zZ`c23smbdDzB^m2tiFjgDb|deWsw>}y-k!{dNsf|YT<@L6)t6u z*FkkbgM)EB-YV+G6{1(Y(aLPYSIXX|;L{4c#aYI)c}41OBI;d__zK5{e1xZJBCB94 zrJVA$51K|_FdFjgKtL>sBx#3jm~y_x84ZmBydp;`NlpjjrJ`onc*7-(V?XDXm61Ru zG-ZaFMK2*%*oc`UoM*z5RiFPZ^RQ`bTn?08AgbOi9pXx0>5?dk;EPX1>GK6T#yipa zY%pAt1=PlFzfucqZya)ZEf}NMhG%@AC5=m!E0Es1n0XJp&Us;8WGNu2-wRhe>QO1q zpQ0_*P?ZqhfOa3k6%K(_8SpRG7<}0fW}Ols?b7xM{kA|YcWt-srYbbd7zx*#Gflv6 zN-8fA)r#N6qY#4GrbxAfm;5b~Ha>|hy{p8pnjbr{nwu-b!i8UV-IAiBMqWcx8&s?H+3jY|5ZurULxg0d5?FSSMduY-W{{+VXnV!Tg{*;KM-hCiJ`hJu@ZsZbaco)Un zmYxl_Ykn@H+BPnZWV<)se6zWy_Vgu#5YNM}U%jog2fX5h$SBvRO6oMT0_4N&G zNj$daU=^D3y{czs6=O7cJTFKbt8tv8>sV)Lt%^b)7i|~`d~kLyRHS6AHchuK*U6J# z4z=1E@ap6i&YRS<=RTliyeIYx?eFi#|8m}Wpu%oN0R<^11Z#_eisoB&K4{q*Z7=~S zpEX-_IhpGlCzNEb$V})z$>gSO&|ip`qLp?mm#r0u`$X8nDQvFOYZ@qJTwMNgGp@1N zJ%C}tnm@RumN1E~2+^d=+2U!!MSGXDz}L3|jUTV%@i zlHi9~F;}j@zv{Nn#N4cFp_Z9INH;IV3POSghr86SwFqIz8HP1aiWql3c$Xd&-Q*AG zDZW>UK_KImv)>5{a)S|HxHPnf?hk7228G^l)A-0r7i?Fb^loxbZ`kCdAu-}3#j3$u zotLm3>i*5+dpmS(O1XJu;0;&2`P;QvD$FQGrx@qIY{RL6H?{qMDooeI3h%)qTWqf7lD z3+rQ`<|*J|j55kWo_1Ag*PG2i!JsX;NBRNz&rm>NO)Tr$+PAUW2s*YG;tv5-vH$Wd z;eSi$`0H5|SAIR!ki_@)C_C3E`=!^F2|pJ|mrntu=Pvz>8|tJ!4$3-Ads0U? zmBYTU=yeKEs8ESaKAEACRFv&lKDlKQM$Y-IjuobKsC+e<1gq0|&A$0SO&8O|z2pzd zHx#1MRb@`SM2Ju<97{pg@>*Qy8LAt)VYeOq@_k18_^gVDc=yq>^KXw!pO>B?9E}@6 zMbqiR;^soKr1P=I-a4qzxj{Fnm<~U16Qk{|W}4zBh3?WWs*+~o-446&kb6$T2As%z z>|}J%7e;MtZs?|Ew3IKD;*7QMaB>oe8PAiASKLe4|ERwFVPMabderx6c!T^rq3#(C z%WP{=n-VqDyK!OqSTQYGlTMgG9RzB`0=IMvyY}=OkzJtl7N~e}Ye-_om-)c_vTk1MuzGVc#2Yb*!MT%His#?N}j${ICk zp;}T|+|9>jrbEf+*>pOaKUg~UOOL;0C`&P$-!mRS@{oEFPdLuTt~zn%+~Oaa2sta8 z|G4fe@@$*^$%PGH4zhfc{KeM!^;ZQw6*csYyh;(dw;Z8%I+EOV?ub$6wt_2+YhQvd z%W-zHQ91}<5+pc`jdmB*lb|M8!9XP&gY37W_Xq2eb)gmrVcd=OkJ^03ckXOhvu?W? zbj?fH-Q+c^?$T5!<@*8Y8GUH1G8Ks|b zd?c*uYN8GXw>I_!2n8u%Wl^*J>-v<1AcFbvOcX_hs~^h4D}n(_6o#&;t6XB%vsP67 zZpCa&m1<_LNiJ!{0+`)8lon(Owq`E8wlC{vn{zc3)%)~(07Z^uWYpy;FCRx}NoRZ< zJ1X*Oxe#2e5X4NIN}HPyZW=3uewwPbsqF+R22G*A~h8v-jX((Pks6?r;+zdw-K zQfcY9cSR;?X21nsU$#CTq&%G4&64W*rVSTn9^mct?fP=-v@%sS+;hsks^TcvKv1vO z>mKx7nw3BA626tuaZUe!vG?9#O>NuWFg6qwlq#VLBtWPVdf#-CP)tIRrdyhX-jO1> zr9)^bK&S!<5UO-y-O_t6QY`c;QWX&O%Rc+;bIyLhbMAe_JQ-upa~ zYvw1TcJp0)=RMmo-RARud&m~2ND>tWuPQYsenHd@S-wygTn zPxi0m3Go&4;qo{LZghH6?mt2U6{d2*p`4@JTW5l< zS~`tPrH^GympqfNiwg5mAvJWcI(Z$xpgH?G6!SLa-48J=JETzt`Sb<`*H``47|M|E zRXcAt_|MCYh&BLB%t1VH6uhHt$^lq`6Fm+ZUkZ+?QUrk$mFZbS(f%k{#9T+-)2hCNnOLDcuzKh0_45v>@XuOdYyf!|X4|889S!2HNub?Oap zX*m?UgrKx#0H;l_q7(2GU?S1V733nMt`THuQmOsnR=Jwk*ptM7^L!~6l3cS|U4*)6 zesqLNg_?@EF3iA5n|;m6<9G3ynRC~Ag6$xoD#batzgw5=p$Ztn@~FH_n;oU1t(2Y$ z_l5BVGm(J}q~{Y;pxM5cK0wKmZ3d%O|LI?hyjLWv)IBs{NDf`IC8!pFB}s)%FVt@) zujSruLUEz}y*bIP$raDPsp=T?Dl!VDdULkym4<;78IDCP+=%XST82gkQ*>hBRQ1P6 zdi^Bl>c|J`Q{G@Fa|M16zj3kK#$&r&w*HOyMpr@5HJ)I-2*f^(#)r8R6KrbwUGdqS zoFmBbrRQOoia>4-P*JdIoU4CrYP{1$cv|=8u5KyE(q7THeZt33#^Ay9>UR$Nq4ZOE z3V0e{$BWAsPe=}OdZ}zB$q$1aYo^ZJx13{9 zyr?u{{GdzfSH)}{#~wS-8*Da5HlxP&(^>^wv+vY)j$BQrl+V>;^^(e%;l>R&wDCeZ zN@kmApMWXuFVf9O^$;C<2amC$4_mgQ53iXQ>2}Ws8U_HTxDePn39N>%R3hfnrE(#( z>Z9Lf28DH&RhZgH)Kf;xMulM>^y{@Zo%+z?t4(9FfzOcPkBM7mAZ2BRZfptOlbu>o zJ{$I@{O9|RYJokYZm$=L3I6PZ}rtCh2=F+zHh0L`)Y+gK`T$I{rH8~k<)@eSnyeWGBc=E zQrJRvWd*VV_&wLT-$k4*tFt_H!yKa30;^4sd0HirLc)dG1}jh$$Z5TxSK@+4YN2Jf zjgLP14fpBHw5)ecn|ydKRgpy6It37u6UF1?N|P5I10ga}cFqOr+$+moUU zxFa^9eyuSt_4krq`n}lv=NDDMODbOzgU55nn%Gk8G=dj+A|jan2a_l8Q$Gm8!IcQ@h7*8pUVHSl5@Lzn{V@#b61xSI>yUWz=kS| z(V)c~B7H{kR$6nQ)qc52{<6AW2+Cw9E(645J18jy;LCfUc<`o5=udVrusQYoiuL#o z)b$w%lP6{tv+Ly^d$}?^6n*fEB^jg)5`&6JV``KFdpG>{zS+zFqd}ezbboig(zVX_ zvFG9vrF}6S>cqQgcNWMYm}QbpRzRqryLuPQ3Ao|Vy$c!9<7xG|ukYJgaYJW$r|JfE zCK`}jm0foSWGGh}pXXpm5?#9?(&2a4XisI(f~7)Xhi#-BRhFmiCHWi7e`-C|I_GV5 zH}lVFw?fPhzq}7whH1z+m*>mxXLhJVeR$y&N*huoM2~V{?@?Mx?mw28ajQR{z}HaP zKuB`MiSDeKnx-z&^Z1NGobQ19FmfSX~#neKsRlvNloOln6E@S|iZF|5 z+X~5o$gM&`8no6wZgcy`uFdq<#t)%HHE znuDce{`f#Ee$z0|2mJ}2VjQ<7w>gP&lOq6l>jC9j03xvKq00wNXzQWo-R@hL*e8k& zhXx?k8=^k=*%JSItxPV&#WOA%DtxqH?L%t2kat zL34FB20TgBW*|$0g>g_82G^&TF;$L`x$4M1_17!s*_-_xM0_{o&=+jJD9*rXWE5@8 z6tIZJodn*INYL-F4@g62OlO?~6%3zl8hY2jhGh7KX;qB(unTbEcY z(|3oyNf{|{yTsL6nEFulBc3IShwrhaH+w0O7PAxN_5rJB9<+j(o9jSf)k^!{cZNQA zv)?X9{ruvhor3Jb`)U*^kn)no|EbMICBP$4z706Y5c+`+%V&=k`94&W< z^ItXySgI$m>@w2pPFRVHPoNv>XU{7yTZZ69Y zZ8JWN+Z9xKEs?|%0^|n6uINW~fW5=KwIiKKQ zD>#%L>lic?!t{E8F2F2|r{-L)M-Lf5j0GL06-sFzb|))L+tyj=VekazG-Af&-70&j zOJbSM4-cHpO5qRTm>3?kn+DQL&NJhhKVcWCM+miE8aQK2i!8=@N|LcdMcTbYs4C#H ze)})mMi@V{GF*@O!e2!yNTO2ZIDcPLIhL6%anT%uiTGI{*^PX$6yeq>YRD@W)RhtA}8@oSl!12|O zC7tav6jaome2+A~8LdI**0I@KH-| zFq;O&oxY&gCil;jWxQT4$wm7&*xRa^Tj}eGoxc6R7u?~#)4h-l7be@OV0}B6bCX-_ zY(8|}E&vo3+5q@SRo2^v}`qQQ@9n6wr6;M%?NZ{w!q6E~Rm%#w`4@ ze2+ZRfnCiYmg4_rv%|ZbH5c1=k6pk7lpcqFtwIo;3R-H!r(OSTQ#H_*JM5a+t%~h_ znUl^PFzO)=;tqpVk!Jd=F;z5|48V(X@aTth#sB>4%D=e!FM*i; z=7s)$DVpX+>-W6k@1Sb;$UlG}E^Dr>d(B&a?lQITzm=4K!8;c9+S~PJp#cql;3f*5 z#z#I!HKrIZIRZeAj`~)vpSXUV^3FIPP~pK6R%YXq6eo^u${|RWu7Q*Zsk)wEpmXrW zEjB{geb;u0(FMH}VF`Hy8<=kCFt^Tf`egd3^PKQFBlhIv?*_;K2V1Pnz?_MpngMxV7&|~xzgEpghJTtki`%KPN_{tADmPD=auZdiP z^y3L2#dNjw+`Vier%2>1u=3IUbVq0-^m@{V3#W$r9@j1rNufE)h0DbBPUb$`y$v0P-t=^7PvW zh-JHgr|u2)y^ec{@QZQ<^p+sNj1~ahtR7pIRw#@boAS^{Dz!atWHXdo-HYq1^ioy{ zuU$JeMA(jLbJ9`j6759!+7dm-?2@Nvp--cV4lGUAlfck4E~9$>F&(=OTS3i)Cj*?1 z3kaPhLkpC8kf#%6(!$ZrDmPL8k)SjpWIqXMX7HiQhQ-QPbyXGIghV4Fg86S8{bqpA zUmx}qJQ7PbF2M&GFIxf*_c-BwFGqR@w1*07GGxB#>pGF5IWtZbrxPy)(ARpLEfh4b zUt*5f5&>iEovmb_U6ZPM-xA3t6El9Ud4HZ#M*613eoo7AK+4wHp)s?&yN<^i0D%_1 z7p=Dg+9y@<*SK9prwuKs<&-qW*kp8ZEnV_pl*9{oIxdM~qlwIS3cu9YAmWW|Kj#KY ziW#M69kn;$Nkw0X9LWxxY=UywgsdadjH2OIIoE|v*X89`6~PZ24BA^Kymvg_SjJ*3 zBVpjtoRXayAw@3n-Rp82Y4LU5L&akxB3ak7dR>*!wP}$St8w+svrEDPIx6-9a{2;f zB)VV46)xrUgzR)Jr+9FYcwCR>vPZkwBzVYC^ykg+T$jWa$zfPXlk%I*+fPEWN(Yrj z$0(92)4mhYODxztoRH+XgV>7I!@RnZ`Pm>eI1{FNF2Iv@k)W-GQ4DIs49ZV!WW zW;OI++L3tTl&XirwLh8m_3$`9BBzY0z4<1%xWCROQ7f(NqzxzS(k8Il;nSm7@DB1W zF%}^m6)3s1@xU07lk6_TEB6I$L}fnPGtp>a3>MC*2X{&oQIFPNY&onM9U40%7+sJl z>M9{4c#`KGbJeTV!*pU6faK|AC?YS};ox1nr`hQ;c3(QWiGT5S{O6bd$G$UHPR~!D z6Tdjm#U3uNw|by_brIyhbRC~3lJwM6x&$K$8j|~&EhE%#PMXC@p?0+Xo`a^q$|OJ% zEOmWo0ql~xR@ULHi`}aTqV8Q_-2Qf|w0`xd3O42G#?t3J`NbHLspsdRNoB9j4OA1mSy_1 z?K|hk_{k>~$}KG-M4;+k!;;tzj$a7NEE4KzqUa(3a>(rLpeJgjO~H z8waHf8A^S*`C*oW9_Pw)#GrA7Q4ysAn4=AvHeTl>u2#rlqTW(NT$Jn6koydv8jE607#$$Q(B zXt6(=Ur3DRWmYz5b9)4@j}jr1~FuRm2s&oCYbBjMNjccED>{ zI8{mUrn1+qpDxMq1i*Y5r3y3}H^xiKlDhLc*>2uKIbtzy$BN{LN1c7v7u%H5|9H^l z56PW0%H%uG6~`dYUVZ8wQB|nLe8LzF=5ITR4rC78J=2kE*P*<=}7%>U|>f8N3V<<);hZ}5NLDerFVH+AC^`0XkBKk!01 zBSy#Gw>5lB&8t|g;g$VmQy_LnEu^gctVzF4%~Uk+kyt`+N1cWB{dw)UoS__iSzC}s zD3i1FlPc9VP61zb?Xs@ooJWHGM9ZvacWAubOTN@MM?EWdp(l0K;2VKPO^Tx$>eH^e9P`+~>Y5%~Ss1z-;FuINf4`_JzZKW6HLRzyZ`R6T3HEA*5Lwl|*@RYe2Y!2{ z<_B^LZYVAiS+~Ajrx*%da&kFHyJJkPCWX}~$W=LjFKgPA8B$bwj3p@t?}3=Dz~jE7 z!JKbDt9-ojOV;H+bONQ;Iz1DA0zXaQK4_G6n&bne<<^&jE{v|fnviX`y)xHhf3+U6 zsSGbREB4hd5k_9fgb3R%uvqM+NUc(5M8=dc-#KKWO%;8g>#3j2&fmtk1un<37Ks0# zYb#t+%{)XY!P?oJI&H;fOV^W2@ZDs+!2TKTMyg9sjqS_FTtf`wJ)0*`RA2!LPsQ0a z+6;t|Z&het_-z98pu)i1S9MDz#wvM}fcIy~wGt4nz%w8BAyPROKh0bEUa=V>8^L~jb^v9FuZ#vGcv2(mFt#1%URe+XRplAs)J=*_M0jzh} ztGq;SBZqzN__jpJYhPpSFiXgKyvT)%?SsC@ol?F{hyW^MRT#NR zz{*R&RJ42CzqFe4y^derTo^p2Lh;Iu^L`8KAGZ@%wbKn6x@SLnaCJ^41oyrA+DIpQ zismrkyb`;cr{O_(E^BB4$hLT}9_hKeq!oWPTOU!L*dyfK*E4Mt*OfS-P_}Yu*_pQELiKwmw;d)Hbg%J;T40v2v5Qvz;=CxHAD# zjw`Er*}6gLv*`;PO-QXng) z(XYQDi~B-~y;G37j@cwEP{6oSFCDvlr1nkF$ug2NRYqM{$d@FRBG6zM{&)`f3i&R> z0-ug2G6NjTIzz7x4N&B5i+A5^pvYgJR!aB3@MuhA^mcJKj{S4e*^-HAODB-pnzZ6#X_dj_PI=!FnNdWQ&4xU4 zT2>C?-HPAA@u2A^euIqw0E#<(|H!1rJudb59WotzV5J`<@G=E8y<?>a+#KH_3ShESB4N|{ z-Ueq^g=soeWV!o3_B|WcXI!jnrCU5-A^GQAb?7USL;Ys+)(<*DfMsXC>fxOe1;;t1 zA&M-2=1dw1mY+@O>s5<>JW{w|=be}hOk!AlI#?!Mux(E7ESIeZD=SSoJ2tv|8_l>R zkt^KoB2LUQ8q`8-c)hdTDzMBppAU8{aqC==ZD6)5GFf}FM^s9uIuJ99Rfk`W|d2jYaPIpoOsJ- zPgn0_SW=PGLdb3Q&Wx0HYI&ry_3PRV5{2;@yBb+$i4>RXmOS5uhpLi}{oiY?9wdeG zqX6W2RwI|_i{isYT^{vITxy?hk{z=!eZ8WC6ZYhuajiG8?0$&w%i5w$H@G@F3$`HSrAoMyZoeM;brT zsjB_U8N%OhTs;0e0n**S0rCq6Q~tYeAae+XewcYQGDm+7X}!KmmOpnmoG2z=&DTMqFr7x{9{upx0fu2PSZQ?GsZIaPL1Dc#PefnQ9a9}P-- zt1LX??nHwwQ?B%kS7aLJFEMi{lk2zw@+j^4ShyG@Nw04Kfn1FqxY5oclP;KHNrU7b zx%_-wt;r}ZE-n%5?5g2qmGCpoxL8Z^V#&bLrqcw5E7#(#YShDf-lLH#&wO@E;>5-9z1+qb;&2P&x}tWPzEjw znHX!pn@>d-0Lf%)IRHpEa8)%Wn}^$;ilEd2S{p=eQOX5b;}Yt?7i-G8hDn<^&5F2A zzm)Ba)*bJDLG*~Tsug*XH{)~;3X?ixSkjJZA(hV5wH2X*b*)5}^JPRWbq}q4Rg76w z@B3%rE~>fgaK^)n{xErE1CU1l*I~2U8)HlAYOPfZj3CH z%XsftSTQ!^DkN9hGfM+NS*zJ+NZFQ6vdX6Cy0JM0aenPt*y>}WXlx`kCBEn7=_}4( z(G~Ockp}aVCvWBB^ZAWGJ_f-q4z%JgYv-D=g2+akfHK zNq279LaAa*3^NQ)T^bi+L!Xqfq2p_zP_51dYkB=zHr+6*bUZd;T4H{HQICgnev-Rb zDMt~73V_JQ)FwRBuu{H_o-xf{3IC|pI`ZMwHKHM;)m%q(7smRE{Z8i5;#A%6Zi*y_ zRD@D2)ZogS2eaDa&Ym2(5Y(Ef6y^XS9#g`~9j85=T%2^yZON*|3N1I?p>dc$M5 zjJ#X;psO^Y&POsIf~o8auS!$Au&tP|lcXQbr!KjQD3@iXm)CcL>w3z#%9Vf}aS-ve zJ?1^mHTLQ#GRI3V?X>7(-6Bfn*(hX51H=9^=FYKbmaLys@ueiOHQ0r&5u6Z}p;>3n z68d`I)z;;Ww3sdW=3*DFXQuaok%njPtb*~V{JVF)W4a-RF}H7@KTm%bYM(ip1BY9` z^ARQ&A2WzH9cMPg|5QHMT30^2x)zwm&?YNrZ6y&iQH|A)_(A8FS|Y7$@b$}s^iEjo ziJX3cxBD{FZUB`TC>66o)**@57adn zT;Zzh(-E6wWHKW!P!N=jXdxCe`!Rqw$%#iEGM^)O1j0MJN~%cSUEDwZF3slVfnxr4 zkkZt0g5OqBY&RFN^1!I#o07F}!aTsQt~zE=`zo=nf~pAspZDbP$a9%C#l zfvRib>Ay@mg$W}RqfWPpwUXM@-t6=J)E5O{trnfwcozzTW~CRYa+!`nfG&$@DZzzL9OAH|n>%$AbR?OkBSf(^x+U@E@L-hV-6vl^#-@fN9`GQU%s3?b;r{ zz~}5AbTlZ&cjDg++QOrc|32>iM`!6UL48u9dfq*$>%2j>Ff|7#%$qe9*S;G`v9K!dkb!5`$_2ywsuyHTk@lk-NS~*C+ zNR_`^l^K2N=;Zt=SN`c+CYc+l_t&H1eeEbsfc=+`;5@{bw}L)ET#srsaMP*JVQ-s` z?wyk0>ol3lkODs2-~iTG(+~%_u8ZAi@@>}r*LTfJprxDofzUVf$!GSXQI9HQj9wcL zQV{DkoWJBQ@=7j2`o=1szk{MDMBLf%kHtZ6f6iSs|IG&-q4;6=(HfhpeW9+zmWWP6)U z6meB7v^Jx?(j8RKWibVe7x%9ydV#43tNTSIEM!8tv`U!APCwIl30yIo)w(^c$YO;~ zc5~0Qgcuv_LiNjS;}k3LOFwDq$VOVXYF@ak+p}uc+$_NA)Dh>R&(tf^5?rx34CO895RIs^T7nZAuLqzJ+K=rj5J>D0TJJP zDtM0CyH0nJHXi{Rlo}?y=NK)<-w_vX3yJtH$ZxbGYa0q`);WdmiR%0PT(+&>XES~7 z^6AH=MuV*KowYU(%VjTYnG*T8BwIMoY27@4$(N25J;iJ}tI=@{{YO3cZ}!( zOwpHe@31>f2A?cG@PWn)tf1D|a_hwqEvd?jAdo98F|%va@qZEMkX}{uC51lX+Q;Fq zkxN(pJm*5xxPRGTCmBu9S9CZO4W2Pv&Tw-DJ~s3I*#Ld@qt7 zUJ8AZHyxC$kqw_tQ5@R(RvR(ZyEWKt>3YZdc27_=rsR(X*`d$ezbHSLIuiTyQ%Y8MU%WA;@j34Y-`*6VQTVRyzbM^P{deMjYoq-S z+h`BC!#L&w)h_NpiCRsG4LRN$_T}b!8f>h8bA?jlp>k^=Br90gz$*UkpA1o`BWknO zsuA0*SBodJ7*_X_I%niwOgeO!?2OMl{VAzTzjVNx9o%zS_}f4=$4{pSznd}#`GCAx za=-KUT-$$5L~rr?W$TQIjN0496w*cyd2Let#3SjJ>RXf&X+h7wxW8JPR#A(>|BvVC>KQvo|Y^-R6J$o7Ix@ z4{)-(^Dn}QzlE(|{v)(KH1>t2(FyAI6qD6=_h*|w=L2J(?MRQ z+uS8$I6|AgdxC^HD~6(fZ09Eeqit)Qd^(9p#2tEv3VK-u?rMKC>PYV0k8W2G%G&rxbTjP zRX%A@Do@t<#(AyM4_VgEFTHvnL{ogt@CJ948Q?0WTBX$9%-9y;Qzc!B{C0X11=8_w zG2~6SkdN|hAFj%x^$~{$OhG0-)1hh$FJv`P3wILrPSp&#co-R*XXI)#5E`dmq-9|B zm!YMvQa{(lIG{G<4*R-%5Fjw9lZtb5S|p~C`Y z^GK0tc^}E3uu78|EFp*jz^vh-JsU!*dsvm9BWQvi}#WjfTN`g+JL)Iw0tm$w)tq2 z`O$|XI~q)|A{uq&Wb#;>N=_i7S^9&4mhz57mjl55`NFPGjCuCXA{iR2Cu+y?bliO6 zg-tq13{hCKb=%bGw}LfP>{8s|5u>+XFQCKqc0aFez?1i#8T?Cfbab6R|D|Ek&&4u+ z&@G(%vPPqx^wcq#vpjinCp`aKXOZ*qX1H|9^bfknZsC1YuOD;*Kj?NNzMVa#`GYR? z2i=k8_eXT!Y+uFF(aAji!$#IKBj`ugHR)$<;szMhZA<34!pvaM(y_51tFSSgpsE#2 z+n?x{x^?jWQSuq06}(PNzCwvei&u}f|B3Y4h|~Z+lu++@?x}=>K|RGq6IO=o06vT* z3qSFfxoDnu2S=?obPF;HQeuw#zSl1k z438(a7Zci%4Ty*PQ}_^qdWS>fo*!3~?}gsP;9v%E(WFZ>ml5NA&i+-gJBh!B$5Kvs zZq$dLA7qzJSZuJ&FbQlj`2{QilF~JbmW!Fdde1HxgXOufI4!=!d?n)RFLZAdqckqw z*Gxs0;b-+ME6g&pWg3wiVR^EW&+7{Sy3Q4mdl#rMxZ52b|k?=P1 zC$hR8nsRhUgP1oY1Sr7aegz(nu>u-Hyqs7Et|o0iE$ItK*tP9v-ZBjV>(R*6k1A&C zII{`Ply+Wa$_md&kJ%TlqVAWleqdsW@b@Rp;3K2+o6}!jUyGd1U{IQ4v=@uvY?Ujk zSK)C~F_Lt_?+MRU>Mu}w&_KP%RSf_lv&(4d-IPe-EB*d}y^RB|KKz(NgGCY?9f>ZU zlvv1eFJW0XJQ)@7WfaMe@~cD^oEN%r;$->0anmJKX-1 z#O0|U1O?o}>=SPd8VeEE{R%wPVo?o@AmmtPzXu6B?88*pPH3v3SVtP{AvWo>JGRAu1HQ=1qcYs^!` zXyluRyE6P(c_ZwG{`_bMDi<_k0*`WvD0MpiId(tvtD~mude-;euM&Y@oCm+wENP1T zbc%*!YjpK{N`!ml{_88NUp{xKqwY+3g@5*Xkpezap<{~pYgYc^3lRpd8ntKwy5GOZ z{^ZaTZu0O<{`X9QZ+zdU&aXYkw zixZ|>;@7;FBmOGruX6dyt2c{7z3Lz<<$S2!0Q9Y@8hId*9dHF0H=^6{UW<_Oy#B(+ ziIw_j0hYHgv*8;gY(3W{qGq!n|L9rGqW3e`zunL|R{vJZzCNS7@0UEenPXq1R2_Aa zt3G|8b+AO0887P<&wBcUPMYQu6&o*>%0|}D`znTHnaaB6C9es5l~L;Z{?DSWSWGJq zt5;9Sa@XZpwuGDDILKnm6>m}(#H`Xvhsps&-mXsvd}#z&CFIGjT{fs&3Rp{n0ii`z zDwq6K5#hh<=EYiEzA zAZ4uf$ZRsd$ABZ)^~GrD%$GZcOYi@zEXDE0_%+ewiA{{FgWCNExZMD~`H(scq^AtR zSZpjj?K{vdcY>3imEC>X&@(Bn+$}Qk$OGQ1nq|19_fFa1&t*Gb?!m{pJaDj?;>G_= zQv^yx5)cq&>B1@F&x+h|Dc1{2d+3fuqRjOhKVe$(*3_u zoiB6yD)#AJ|Cj&3$W*`7J=hF3?H;1@`$6}=G=SOUXOnN6??Y)O;eV>cyZrkt=~t%T z=l?LX$(nRc31fz4OuGUXXo&(h@9U$+1r1F#_>6Z-)XZJUn0`?A#LYeAX-G&0zFpVs zBKx3y@7G49sY3hGOBd*9P>a#~y<3J6e>vWK zcskiEY=ra83?R_4wApyw5T;I2m9@H# zXF-@~vtFx`Ns%7eUik^otZcwSczh~#&M0*w3Df{`>lw)g68e2LZ!N!{djR>0<^RhO zQqVY6;60fFZdUFCb90zmwR(cuq%w(O^JavT`m7M9FHQ3M@duhwmJAIM8NS@5SQgYR!Ykw>mK8+t#CkoEXn?9Q9bmNvY-*Wp@!sm zB`yA4Dq4B~vMf7#_sW&+lEm#?P?jAx^BAT6vvYCbn9B%T6b)y>J^*OjQ^RZb2Xluj;y8)|Mo7)2#<-}86O|E4TLs@&l4Z4Q{D59B7sF4`a0 zjaeo5Ag@&aE%zn^aTFaQF4eP)COT*jvm7EAP!^vigWA+XS zv%$L#@{DVu=@m^}?wD+7ezow5!-{xrieXhyjGFiNYbmij?E&Tpq2>(Q_)176fP&En z@3k>wdZEm@y@rz!Eyqq@fSP|fid}lJVz5%~S6O~>$q?jPEW?O)zMm(^?9F@6wCj#y@ssfg%|_?-2F&O`9( zS7Tf+uyPiw#T$n;2xVqwzUFiF@ZsdSKR~6}3wu)b{K8jX)W;{gWxSy~ulw+CgV}%O z1VRIrlD>JM*7~c%C|`>5uhfTM|2`#u6a{W4GYBE^fr3(gGOB+>D_ylg2(*=sz-eKM z&^`V!p!-1{qg%ZzPHrzb{@^^HuX0<767sfAX`_v+wv=PxD+5!lIPx#z1A^CB;RNuJ z<4&PmpxHwAJOR6myijGKkv8;xZkfAwL8(Gh5XnHf+!YeGNZW#Yif2~HNXk#eB&I3B zHI?=wH7^LNlw+N4PVAW|EVu%DwN%ObYLTF9VJt*p#9(=CWhn5}fXgBORm%bX>qREm zSt>ZLcQv^R>`8o+mf=p@)m1;UIKficRo+9EHO%=2ld|Mz&fKu6Ts$d48dmAr3EdBk zd6b6y#llVsYF^l*GwJ!*C1IXbbkUK5)yK*6RujB#8@CxTwgf1iTM#3--B48~UIDG{ zOv+&!jip(m^k0g0>-oPKX5M_UqKKa^}U1346Gb z{xhM}9W(31=gmn7h+uQrZsgaP}q6&?gmG)u=#$cof= zSSQ=W8G>}ttf;bIE@-V?8Y=qL8CzOatax>=vKtD5iIxDwwV}0gN5#&LuI5JxZD(|F zk!~_nErJ578`Hy&EiS6)Q8DlDaM=q^$$zX}iV%}aw|}N`w$uY|z|HFmK%s+q9RV3R z*1=u=WtL2xCarE{vBY%JlbAOTSXlH4c)z>)wJ6sfDCrYTBa$F|5SvnKRC zg2VZlPWH(pKH53EydWiiu|$BSHYr-3v7MC)3UIvjd?VyzpNa$@4`pb_?Vw?9Z6s-_ z3R)xh#FK>|wH6H1N9p4q_n);=7OryWp)x0wG~af8fYhl2BTX)CGhNI~)J*U>*Q2zH z-M;pUXg2Y^nnyrHdJ1;x}F4d zB4Ng?gQN0?w*=v=Y)gVRSK0$&GMJY+V*5?7{T%MSqFvn$A+g$o)(yE6T|cl{5bs@z zRJR9enY-L3F?}prbWlJT`VGn~l2eP>#k6}!$GG4P<+J>)B_=5Z{j9rV{bkvMjnnr} zYISlDj#)`R=#Yj9oxT=`heP07x9jYjIw|$>4e4YYdG z`yD4Fw5s9rT(xB$1WP8e9aW8{aoHMhsbKNPsb6D?5Go|zbX_!*NZPFpj!SM=wpHua zPG2yK>Hkcw-B)zf@B|kl+Lmfx$u;-YB@buSM@$wC3~_Nc%U->45@TCnmK~z1R+uIntxj3z3$q=fkb?@||Z~EuxxwG74({{F+Fw%^hBlzLC@k zKG$C9IK{lg6FG|2)qNz+yJgnQ8rAmmG(3%`m@4DZyEJSuRs{kFC7=QWlrJtYJJFbX zH6AD+9**Ce>uC^UL*vkXcU$q6_PTK!I$kb9du&clE)aEI!SDCZW@NQ}&O>b}!gQ{lQue6WWsA8^FjruA>80Cjx@v{vOyUq+qamwS4?wG?{@j7H}`2M}+ar;`IH0cZ$Zj=F##D@yAB9@DbRukO#6@G~t;Hb+{ zPFqIVh2mwvMSg^%HqUM_gK8GjB8|80MUXo9l=ce!n<9dtv-;^0Wr>%~9s9RTDlb}_ zp&>%uYtYq|A^U>qbH)kIKEAn zUQkx)r$6F@*24sA$`+mMM--Tt4iOQN_&!nmXJH!8@#%)#qN22xs;9jQmpvB;#HBHtCVbD+9N8mWsu^(A8s%It`hr}aR1 ziniD?VVSQKgZB!_JsxoiCEC1D2g>~NdIC%tn>0;{bxq8iDRr8laz}Yc8Z2Y?gPUGe zwfY-e-miyypJe)_v32=z-IYJBMK+S#aE8g%>#eXBJ3?WGNub9)i#Mvh-9dUUI{Mr@b$&N z=I-*}D%5g1N%Xs>Ii|>C+WPEPAyo31W!h=NsaQu6u5I`>HD-j|=s1{(ogWDn>ycf4 z`H*K>n5}Y<2AYRh=}L8*?=CK^g!MFH0Vn#BcuLx%Q|J$5VFW3+XGYys(%# z*536ZgPaHintNO)ruoyTV;xJ(J`{I#MJ&~CH{L`Fa!ZyrKkYWgh2dn?g)Ny&XJwxm z$&tIRsB|kbRN!e#3Slmvx<-_%X`V@5q>$ig z8yae7saJL9Y0KpvUj5vQ65aksh(frK(k`Eqp~t+GpEjnVdQl-(=H!|TspmB!$1_)0 zY%YgmDNRxoWoy^n7b&P|7te9P%zSyrlEHXh;)YrA+CWDz4Pywr0@|s}Dtc0kXje?N zMR1upSBlYaf0%EbMdz^CuZIC@?-Upt2q_qUz8{^PM4p(Kw?GS0ML-Rv>Agp?Y$-Pse1T+kEnjJD;0^4E^7rjjxY9a!(S$7E!at4{n`fyc2n% zqnphnm!R8fJEGNwa+ieS@KF`q z(owdJNE(~MLZO0B%?Q^tl{u&GZLjc|UnCnjT*;AB^YS$>M4Gp=Ry2-uJ9-39a|=mC zYO#NGV`iquY|*tzfbdjm^ zYU){UIf*Z?`LZN#h#oy>Bv}+x85VnG;|9rxXT7DF_Uui*urt-{4{ZL^LHHwVZ3#n^ R1A_!{t5=B{4PyU)696k>Pl^Bl literal 0 HcmV?d00001 diff --git a/docs/images/web-ui/authentication.png b/docs/images/web-ui/authentication.png new file mode 100644 index 0000000000000000000000000000000000000000..337fdf0c17d11cd697db7ca1c8d1e2deeabdc97b GIT binary patch literal 31227 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 gL@JX+H24vLjmEV$0ZabdFN~^s^eC0 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�B{ikWzEiHPLCn9Saq3+Sy<~_PGAWzF5!mMFVS3&x;kjLwhsR zPkPFpV9c)_orBcgdwcN5RDQ>l0gK*3zMRJ8gl6BgR6Xf&>G-~)S?Qczle|%cdCy_ zB2p#rQgj0gadf4Lb=)ZC&}gaH_=j(lfP(ybvBS>s)fL0r_LC763SR`z_%xAxtGBe1 z4tG8c>r&twEux+k2=SBAyU%;xIBv(7)L?UQ^wpAG_qqhI|UdtJX|Fnv77yCdbz z2g;HaAX(sSFum~^$Z|!0r%O|CAa=LEEcn*=m%)a@oIf6?&PdZ*&Ln#aaOEqmUL}Oo zW|R3rajf(3U?LEWg~HKA6wS6Ud2ag{gz-zqajBTn+S4R1@49!J4m+y0wKC7mDQ;9& z$;uX!eq+$paPxFg54&`narRxyC(ptTi{tyyiYF|l2JGN-1t^gP&rOtj zI7T*$#cbx7o?)ensWfDWg3(Jl>G37k{C(n%y_|86iV$fQ_swN8s#8F%_wh_;T${1U zLICB+Z_^G#nBY8w1L3lkoUNlx?eXM@ro*vsi;i>2Yx)Pib%Vqh!mHPB?E&nz5agf+ zLAi6D-b&U1L>jm(waePQk z=tlwvgrj6#9{csv`It(~`@YYXsxV;7>)2)vG5BtOV~7TfvI~z7*#k`3glGu_knB?m zO)fh0Rb03z zr;gIXk!au;I<7i~&M)CxWiTtEifgP7V8u^jq|-sIdLHV1zIXe5F2=@jM7Y{FAcxDN4`c!?MuC?^nDf~tzQukm#`RAoy-I`*0;-oKC) zrFO^{vQoa%Ft{2~r6{0pWcse(b`K!FgCw>^M6KJ`wn$rKiAqSyJs?ZBM6;%)-%bs;r%d=6J66Y-mFDoQCVWCm9|${p@OBYjXsMywBq%^X?Zk z0~q@14jg_1Tb_{Vp*o+0y0hLbP)qHXsftY;AXh`ek2G}0P!EILsibi6zRW|+*%C+% z=&hShHYeGkb|a4V-!<1$ArOfD1hewy2MG(vqH{sZ9-#Ph^un_}fI?A3dGPjoA>9j{ zPYKpjeLR^7gO~tnYsZieobcS=60UH5WF0hpNzz&pUJ?t z|3b(CUrX2VoN-csX8b}p7~HeDA#~myM2V) z8@U5@4y<$FJO96mtQ>2l-^Rsnf~y`2dBSD0(r^e{TSx5%CfvWr|EY&vVjYdI=_zPv z^46ajI;%Rj|1J102XvY1#Xb_f*za%+TAUc-P+A3nAU4A+tpBG(!fkW)+StjNW<=oV z*GV61ijB?S9>8?jO6r_>gbPb@ZH;=8XRRZ44wkkDXfnQjUHQdqBdYhzYQw2dUzSCb zj=!-{%{E0pUAR>>3J&aAR#HFHd}(DnzVmqb*$?J^vOBG+86WMpo|IXLI0qg2f|~Ta z=JcrM%f`uUJ`We-Pn561pJm@q_uW5t|G$~<{W|C3uW4s)?HYQq4Dl@#s`2bj3H}tK z{HgQ#$9=JU=l1|&O84gD*7^kLmmLQr{3H{&=4Iu#Kk@jph~&)IHw?DC6PhAw41ZCn zD;2B#ni<)p)7<{44!BeKZld91-ac9ONwVPnMBV*WB!>^XUw8Qm-Y2p+G0VC?P4w3) z8ur(f zl+?^SS3>{2Xi){}m*e#~Pc0$L?0dMUepV+N<@QCj7}lj{_)tia#T5OJNzb~i=qRG` zfx%+v)IwnT1W~IQwWKd=bg8MZ^SaudwX)veovHVGfNL=u%HM2;8%)N&r=Qw+BQ@E3 z_T=s|p4KBkf8-<$`2>&nL(X z<#3l>PF`0Mqqsf-Kj$jvTnf~PCc-6ZJF0XtKRqV&+rdwGqBUGeBGC zvm=J<%SXm$@|vaqTQ*v=US%QFL7}SxIj}c#JigAWhJ!Jq*c&s!R3l^LsA-72YTd;c z0Uo%@A!{zlG%+}r)u())-y3}(v58(GvZ-8u?qGBBhXo)#xL@`um4l~j2Ir|D>-@kFII(6)WCR(!2-u^Y%M1XJB(=#r2Sy2{E zZYhy0?9Bs951X$Otj||wJKgqNHC`~%;1ugAv#pX>I=pJ1zoe{+L1ScPHpO?2v2gVE z@N^oR9aXV*&DjGGfkd*SW~yBEr!<|6Wf_+O-`@+!NViOZY6DYJfTta#aw>k!@LmOL z|HCaIvT-~C5txfh#(gYc&;Obv+*A0d04M>oD?2HQL+d|@6cBW+5t+vEmALcRuYG_6 ziy|6V{dZo>UOT-hZTYwdhR8lAVQO7GIa~-VmxJDzt$H!|9ecsO{tQAVc0G(;jha$m zKn*q(?awi-byH=xUAKSGIH3{raVp@P=EoAt5ldr=kV5sb9ghi1@$%!Tl5Qv%htIstYbi}Z#?YF%d>?z9mKBi;CUjBYGAeTLU@W!< zvtwMM+;gkrP;YAq-alR;SplHz=v~hElZ4a;>)M5$7)}FM;C(CePDmaz;Y)((N$$2&+>@L8= zc;svyWM`wgjq;tAxqLcMY1vlN$dffkYfo(78oo5IM)z*bAU6g2KY(Dn#%dDIZ7{8< zhZQ@MfU`hLL?@3%$LyA)9;SBneQxfil3SuH@X2>M1wYrb+vC49h0Yre<31+p>x8`d zV3%XN9<;dqWbk^b4QTg@+RjMC^m%-muiD0wvF|~9fQ;pGr2QTskchhQ?@7#hp$9<= zL99A^!o+e7qkdmCQbFvlm=I3OH%IxnB7l)S-Kq(^as9 zqS9rE!&k`@ct7YQ&p@>A$k0qqCt*MrirO2WMaiCSi6jtmaqhBcnF4HVj;SOTh@E@p z#3q)j?=v{%Gh94fqkXzw3P*0Rt_8!ey4l61HlF;=ec+rk{RR&Qg64fhMm!shR5%1` zu>(MK&B&a$sf2gPAJ398_W5vy=dUvhnioiy)T41HvE;x@Z8ju1TgbYMbchos@W0n_TJlBM8n~5Fz?afW z5-&(h(7NdupOdVBH%36lZ2OCz|Mx7)*XlVMu}MeZyXo~g^DKk_tK{Pp+cg`vc}KIV=Y(zw zN>ypzZWUx^GZ9N1Cd$D2icYJ*Rc@%j4PkCo=Tb`292C3!+EY$v&Ai7us`yqR0);TN z0NC?e;fX!f4{O9gCdGEQi0i z6OS2Xh1B5hjTP3VCK4LVG|4L=$a&K%y08FFm7XgTL|HHuE>i`z9-I2;bk#|Laym7O zWI!JFy|^k62j4L#tH-f9Ur!3nZF-mxB46T=XeLx@V6bTL;z$wg7C61fqYTvEY}`uv z=Bj&F>5uq~_;o+SMjzL0h&6f1Vp++s@`maY2vn5O%^4<^RXQhmsl-3P(JMd(OFvs` zpoaH0UkFIIOwOA9*rJ|1L6iaJjn0%BX*rE~HEH7Y&mqM?o=AZrkpO3F=UarSF?n9* zHnd8qJD&JnFI0q5#YHN$T)+D^e^^5k4H;@RFi42fkXdkuelM0qM9av?gn_}}2#njK znZ#=AG<3bQmc|O?fqQ;FuP;V{BQc=b$#JJ2UDc1p1_R4p9|0-$){yAWH)#DxJN=tv zVJdb#pd-+=n*L}Yf)KXhP!V|{naYa;;b&H@q2)`{#n&9qp55YstpRHwBC({kxf`o%a}qd5*=X5bqevjka}$akXO%)hGW z=LSc@lM{xglCr}tDl`Zfub5*y=3WuFFXk9M^*>1Sz) zdg|2KH#^pz-=IGbp<&sZzN~-LjUn2PT5;(UG{%LvP0Sfq?pF|&8$q@?T+pNS_->z?|$uD{sQ0@`;RFO zKq8}7PNV$2CMVF2wf}S)$s}WF(pSnd?>|d2eO>=>8r9n;*l(cH)d9Ku|1rIp^73^u z^|wNGqs#Q`&ag=6(!J_8bYRB>tq zH~CjM{>yG0Vv}EFLFddh2HijYV|pJp`e!&w)cxf%S80(My9+L&e??<~{y&|j&#U{@ zckhkBJI6Tg{KphONa264=?_x)-)nEcK??ty4StZq|7L?9r0~Dj;0G!E@3r?q3jdq! z4fx-ra7}NX7_9iPd8_{H1QbgwD8_s$zRu*Npu~04Q4>_MF|}lM)&n{K*I1~m2 z5D@_YM1()U*9D^2FeN3+8whPEOhe^IMmK;Eh_3(uC|55uLRFE?$k>GK+%G?Be9N=4 z@pS(d|4AU=J)HQ49RL^={F5?&l}uub^t2%qcu)9((1gYb#L^I88v7qG&o|im2Q2pu zzUAfaMJRLQ8;sUNC=p;=0?cFoJJ|Ynu#G$VTlpwL899`T_qVpbg>Mv-Azk%#3GsQt zml@y*Kmb$$ir@NAxF!U*8~{M-001~0_aAB2DF8ryFaSV5^&e@VM*sk25CBj&^dD*e z!4r2YwAFWX#Dw2dc6I>3ZUF#5ZVUiid4gjA z6x3AY6hMj#7pUl{fEQ_KX=%wQFVWM{&{NaU(tJZgbed3y_zcOJGbA+R7szS;>G1U_ z0C@hC05RY+5eMKDkmxj!=xYang}`nCY2P&Q*Fb!R=E3aqEmz}0MAkrh-BBroD&WTy!z zfTw|gYk-eeJRNbZ3#KTp+QKcEkS8;7HcC7EeFt$E!u6JJZk|>x-_EFt;x4y)0&C>12d^pZ&-LMW0z;aUNeU&UYD;gMtq4n zh?3MSzsmYVwM;XoVak5=kyN!m#(0vn3S)M1x_n>Wb*tIyT$Ocf?pgMB8eY%z!lwy* zL}EqnO}I%sF!S-iWkwi(W#&wR>{*dxF}?S}!c^UIDyl`A+3fWNx(kB+n<#-T+{Ye{ zFAv`-JP~FhaucNxBI3RV#_}z}VROjOpQi&JZ5LS`=8o&r7OBBWq@k`UGpz%`HD3Yu z_qs;&#C3;0$=8|3*I6-W-5%Fa?&vpP_I~v~ZI9=v89%vvI6um@CNXYO#*Jkct(`XD zF-Lko>7sO%7~DM-o}vqHL|yv|cxnnFo6p@bdAg52;45HEbVtB9d4JHnxia)C;6&*f^^26)tje!|?AX=4 zd$G@jKU}q3{|e{=09aqG{?pC;XBC)xMq{aU*FkB~kD{ej(468xix;1-yAxSfthzBB z^1LMvki9)usp_6s^O&fARvO6Bngf$sAREURa6)u&Tb57VX=yoZuN_N&1@vln#gl0~ zH1=3|R9B=4j1M>i8ag@O)%8M<`&{MFdzqqnqFuh%M(W-Uz5b-jLhd3lE9XpRZNt0hF>sj{)Ei0P|K_;o zgnjEcpZ}5JvXz;!R;hv*wt+vEy|k)H69(4^>&v~F6uvoJJZuz6l~~=!d0e+=6c%|L z;TxSj)hMLu3u1A(Pij*E+zql z)O=F@!mfZMzefn?~<2nk<&@sH(4}vDtD#Zc=1@4O6;+$?q9+Q7rRXDjY`@ zta9unFLKa;$^;?D%oesoQchKxzN(W8k&S2fpV(O|CTQv@tBO%?d+O#_X*S{S&gRxX z$1)%EO8J;Z+s*WNb@v~uZ9i5>p@xj#E@z8#D9X0CTuc1Ow3A?H@D?+V~!K@rA zw|~|VRey77zVI_15%Fku*$UqS^`6wUWsG;*!$)lyn;nY2mQ;I-07gI3>Oi=+x{^ua zrBZdJU7D&yx#AWs+Lpex_0gKaOxN6AI|CH{{WNszgr09K;<6CED+;Y4g`L12dK`yn zAU2=syhWqLhuY3i31r*vZ810G7zy7%O@kRZr@bGP=FY6^I*FLsy?k@G(V~a6q6lJ2AF-LE~+SXFT0(VBVnq<3pNdB`jYE zefdZvrC}k(1bem)BZn)#F2Szn0+^9by{}4mbuTvl{+)Wu%s2jqT4lSwH;$$B+{d+A zH04mn(ZbYn>m8cCjxq_3=|>C~od#;=?ZQg!c74lij&1;)I52ik0knTDxc_bLxz9=0 z-f}OhQP@s)hw}y%ffmC!v=Cuo{a97!toKBc2`HL^0hzkkU%uFlpSm;Iu5xI1_h|aW zG{8KG0-?n_6kM!zE$}Go%NvbpDYe#_4_UGSWdZ9|?UrK~??n6ge7X5EwvwuOY}4Z| zztAcUSV5)VjyFPJTqOd*wuMn)15lsF0N_&teaezi7LUKOcF$0oR$;P}Mo=pJJQfUfXGjC(Ur=F3%+XaJDAlmG&vWhrOn>I%8(j zN*X2Q)3$KoU+!6vsr;<(47=*}p1VN+{|M-f&uqGVafWe3+gy(1?S+S!`~OQJAyPQe zB@@_Y!Go*Mep1oE%R_AbkB$BEH!1={|E+jsT@0)LrYIq#MO@2^-^7aq1ENcpws!gm zaOu*)w+MN)BFRm_>f3B^W2mEY#d?kz{Q%NpBBl`v93bK*$>lK7mI!94KyHg@tCw(~ zv_Rg^V$^(>By!>DjljaN?L|tVp`dlgE(TBkdlOSNhqLv%4kNpEjbDJklN2I;b^Dje z3!W=Xx^h|icq`=vx}ukc#8akAlW@76n&2ft-{$6A7(+Zm+`hc5I?>tz1$5`CybDi( zaxnWO!V5CIyh>7EMbfSmqP|1Pwp({p7q;4ivMpAj%0cLjR*EBq&_s%8`Ws7vI_MhS*F)@`7dT}x9ilfW% zMP{wLPdWbG3bpS}I-P!p<$}D##{-M{P;Fn{Jtn?M&93RBDUF~#^Uzo}-dZ=Ywqky)l zGEV5F6tMP1lH70)1uP2qcwFDvU?ANXybm?Rd^1vZC)L$6@2% z!%>S%4U!~kUHXP>UGCE!WM%JYYo+q2?{;9fMQIdADGj)W^Bb0EBo_37WL zNtN}RY2c_aBV#bI#e^&auG@}+zXSV%UQe8h7g8`5BsN8j8KQx`FD z%vBa?qspP|)jjxd^o``b*FLhnktqRSWi9XrQAb&mWgE^$|A%}#teifr2Ue>T$}g&V z`ggz%2>rYGrOf_>wkzB3tAY8(-B466_zJ!*Bu)*AG}grE_A9H_y$O&aLHP0~X_e@* z4W@S>_3Wg{Lt%U-H29TWJ*dioeuif3#~CMFv7c9QdRR0}qo%4_p$W^V)?dfkK0PRG z(a{j2FrxX2d_bQaor45(rf?xd z?kR=hJXh_SAmBe--d83P)`!nzIi4-XHOh|=Q4zQ3^P~OojKu~^pVWx2Qy=J+^&G}I z6`3Y%v;AH5zr!Y|aPbwhB`{7%zfI8}e?_myPJ+!??k+g!(p z5hV~YX$aafls4dC4$%@wtS5Jx%40}MFSF9Rn>=Pa z|5;iny;Ct;w-lB@E4H%!mJXgO7LU19ljx_lq--oP#kT`J)p46!q+%_h@aRC0+_99m zc|K>-HZ5@)$zAhMw976>!`o{&HGFa3rN-3=e?3|&Rwj8svv6RH$xm=x0!?aO9b%VN zj6@}_GrwN;r+R!<`+{-~jfqzyMYo%z^oT^X101bgu96VIg!kk@}4iuHcL+xHsUgafRud&G;%>LJEHVPn!{F0FFhA{ zd_tkcRX(~-Rei^7{e0Afw`~woP#M#!v>4ExK|hsZe}B96JFj9QTF@LQcEWU^P4_ z8Q6V&oo<)r2@D~R1$Z--iyy5}29P@la;0wB+hoP~J{NDv056-Yx)me)kwZ18gQ(a~y~4((N`_@d`}zMGZcCuJaYPSH9Ot@dh0f8ge8bmpg;J13l%G#}_& zhwD9n>!!RGWtB^uHZW1cLMtxu$_ha(tTNX4Oh%;rOPpO8#9s>tKdT$V)~O@B@={5v zJ?w{Yaag*+iYd^IFLAX3;-L zq99Bm*Ky|rl3qZ*;WXO{)hPnuaNXSlTt1L1Zyx3q72rOkJ=J~x+|kh#67A!Aq$Q(? zN$=|g@!PpKR`pH`qgn3&#QsXM6%|K1Lk)9J<1GaEzvy|sm3$8}j2e=NCr&PK80l}^ zL+*f})HVU58lS>Hj)-vrCL6CN-|(O|6RXOVFu-uz=F5~L-GH6IJpMJpqj835u$_9* zRh`0W8K|!EeDj`hhj^-}94@Z|>*qo4d=e5dNIYNhJqh-qafPA?gMZOZ0+p5BMfu{iL$t!pYaaB$VM_cg{ay$56< zP-*#F(2;dA<61o zxpJF`kuSOt9uRUK7^{BFc05a2-3Kb)kCY1d(JLeGorUF>yfqMdZpa2~Q>bVnjCO{z zr)N!JFJ&(0Zuf0#y>-5zPC-ghEU|NFwwHQZ4%$(6tkNt#wi=?8~s#je~S9Nnb{P}zA zc^mA`aouK(7iCm$zvzIg=R?1?mW|X%tm^Km7E3`vR$BTTXF>wkIrHIRUk@8x{7-HnmFat=Q!} za%m&agmMiYNU=C+FqE~@G@?YzrMDX~*^NjQ=T(C(6()F2V{BFpW=(~_T@!dgZm%M4 z8_so3=B2)S&Rtuf>Hedurp4ksUjaq2^0ER}>By+}u_q@Mg7Ske)J<75AoDEOSg!^Y zjR8*29RKnc%p_Ca6{~2S`y3VZ6S%(!-{s7FY<+QSQ)W{Lwla)x03 z%RsOeqgoHx8iXrV?6MS^$waGj)4zIO=09V8qsyrLjITQ>$Lp6iBJ60osj-%j`Lq(4 z?My_6%_0^3Z19_;N%1#kjq*$5w>N=S8rN3@if!aHHOskDJ(z8-JBbB%BUli1j05Uo ziJH9~mJY?s+Bhw3Hmg>{;@i&DPr~?`@!b)1MT7?ceGNx`-SSmz1ueW+Ka%Uyg)G-0 z%u~smZwNNKxW8bN;j7Put21uDs8!I>eg*JJe_;AZ&EI98ruI+|#5<8E@lae)6NfQd zMFO*q&*y^d5;!?4lhQ*%U4uE@-w}m;|BaDRpB~?#cNBIr?6@iIfRLnkPyge05#Q2c z2@Js;9^8eVPWj6BQUL-L6y_{d>&;(-}W8evb)d#`W$a(EP+upp{|x0mcR%v^vk))qfjX_ zd*uMP6|-MNUZ~x&UnPtR1j`%YuxEG5M1HQBtp%jjg9XFSbBI^fG++!xQdoKy41S%y z-E*qKX~W2+Fs9CNQ+f$25OE*_nYVJq`D?d2wr{Oc{){hHM;{BgS;q}Zu2r@~KocHP z23>x#;PYfJ^k*DC*>yrES*d2vv~TpLlg(Y>ec*??TCeW8|BO9krRH+F4tdEI??p1b z##5Y^r@HqpeCpjG>(7|`M@{y0w_zJUng`F$J*S-Aku^VR{~32|{irGWgAggUj|!h! zxt-gjZvTuke$)){Xj6&aLYyPM{Fhz0{!8HexwjuP%0JKlj2C=<)MWV45oW5pY$tOU zYv{@LLaVN>-j~&?fAmLHUx8d2?(Z9N zqehTU*8!9{J(qmuF6r|}U8an(!rAJ5pWo_tZ@cXlh6enUbQ>WKOw9)-V_TfElag8w(reHz_-zPov?HQ=*396c&q%F4=SEA}far@TFC#1S5X z*@6Y&a~Mn|F!lVI z2TAut$*wJLxRuuK#931c>$M=~qS`5s?xbxB-nA7Sml1%@YArQA(aTpTR7LWK3kjrz z-ExKBc*ZjUmoJiEWh zjPhZzk{JktBUKphr~;#U3YThKmyO8LrHXD-W4;K@=B=~FUb9u^dR0%96Y8dc3?+|l ziS#A1MMBeH$S{Ze0lnI`%X_`t6bc}mrzE**LL4+fw59*8Q%jIfqg{nK{JGbzD`W0_ zqhlK5b_wqRzWb#%t6>zZGTxNiI`){@_cKo4@wR#IQsb4}7u+mLD5-VKn}G^;UnYpg zyDz583})Nbbdbgi9U_^r%$fK1+f!JH8_KTTVr%{iSi|g?A`fxBpVYd&I1^<`j10<@ zl<9e#@?GucV6r%5g+O;gQoP^maA<-KU0?V}qhGmNTnApaNN1J#^*BjY8q&5Yu%BgG zvf0n%gDA*$rvIteW%lurQgIT)t^FFeaJpz2QSzWvA87c|++*4)>1RAK8Wk7L2 zWKnwzr}`YDyF)n9e(uX$SEU#2lr}YR40a>EyO+=$qN`UETlySAUT{%%=NfD{mLb9; z6n8;jttH;@KnO!s4vBFridWh0$?`o+2dqs3X7a{^TAN>=LCVo9w_r2@ z+^v@1sITrkV#sh7n%KWv70`=mlKd#d| zb&0el{}G=H2{lN?n0)5b2Ftr+(8j z*t(Emp$G$evkZ2ab=D^nd^7(n{MnWbKx-`F7Pu?({f}rTo0xbTCW$t4d`JExBKkYw z|F`@&qxAiT$-MzfJOO$XG}|EhIfVxJ}L~VJ&p>QgaoGMb&r*M(H6{i6fqcpEtt#tNK49Y9lkZ${RqQ(C2L` z7oX3U7frh zGs7y1by3)fwR|8ygMWzp!)JF3ckL0+Xwo?&oyQY%=gknyJ{kIUS&2<}?-X8CL)7w= z2b@DTrTEoe?8W6=EXT4b&P+Q}mw7=_Kec`usp`$%Y73km!l(q)s6APz)*E^H*ZUY} z!AFdSb8cUt(4W9{k33)CkdbhZ(aR!}!}?PhdCq%ZogX!(rGF?n z%n;cRNcysmT)3BQYhZGRDoMS;_-C|YR8+V@OF74Zp9RM;KfB&}oE&YG zm5s8rg)@beMyHt z-J^Q!8OA?Wo+Q&EMV0SM*bVr^|Q!F>A+#9>AL|p>4t0obNi6u|q@8X6; zP2{mvLBhhC4}sD?$7=HemOXE!3!Zj(_nY$5>E&vLYL&EerL?cRj5(=0^&0488fZr- z8^HW?)3pr7m6mP-Sd9K`>iUuXXFEWe?#T1H5uj|Yyvrg$v;LcRxY^@V6QXG|P(rq< zCJ9)>%9*+t#*`1YweHzJv7KCXo)SB}o%$v@@~}^7e58fpot;%l-W}05{awSEp0~?i z4oNo~I_$g3$qrZ=!uRc4QbNjcYeRmbOi2LUJL@lCOYK*{3!# z#AyWJ$x|EKA?a6!4)*DrB{h=ds{((p#0FCN-pSh(`fSGmjcdR#`sem|MaP*i*KTO2Q?VXNPB4sroiveDJz;=Kq3% z?bM&6`QO!l1#n#Y$*1;meLIbY4Ww@l3JSFi!K9^lqBt(_%Hx()uik70_UpHos6FgW zb(oeIE6wF*f*(%3L9@L1zldf3BSl%X+|AAMXnVlX?9+!`nk4ld7IW& z?|r_^{f;VITY1cJ@mIhs=fDd*`oi(ryW)zI5xF$gW9d)e!%vq_Uf6%Rd(X+oMDmT2 z<8hx3sNyhIFKgekLaFR}f%uIAb-iLt5uZn1X?P0gjVHS@KK=yJ(z_&A8LAmN?G>>S zOdS@xC9-*N8QB2>5x<&VW-kBc?s76)Hl^r|gtl6@NlSgL~hDD+q`tCMOOtn`#_=eDG z;M84H^9}550~L%iwH2f4E+_YWq-xe89#rCcX{Tc)jmY05P3ym+L*5DQ8W>w>U_wp6=1bJg&Pl%joGr$+j=qcC}jB%F&9U zEHph)TGxh}Y8vVydO%<}#F2Xyv==RlHACNhWH5}-VB^3|D`3n;zEg7AQ+H8VQ-Eb!@__Qpe+OD2$xeXhuX~ESAg5PW45A5V$l6pw_leMbD zcn>g1q^D!pdF?nOjWMR+Whv~;G;F3DOX!zu3f=H3o9zB-QxC!a`bS^pUjqL95;hB) z3)XhYeYqS>1bjhIv&H)zZJh8=+k`_LWW#0>4sXkdF*>a(o-l@K?roN1&skf7U$e^3 z2MUXu{nGRIc=L6<>V7HqTaO8yg?aWvW+D4As(EE@+(r=NhMINN1=f*7M-btt9&=0EQ}gkAG5QgZ;!wV9 z26E*R)x4@Fmp>+WtHByD8wFC4Ck1X-DEa;YTWImseShqrEG`6xaLGQRO^Q%OZ=#!rX^M#TnW#@7oYXp}` z^AWt0djlJR3@LHdV)1mtw&>AFd^(s9AM}Jy2@$>obx7PRb3wV5aJ^-`J9&$W61$~V zyvqsx@zP0XILTR6jHz$$=T|%O#=c?+-2`W^hQRai zI9=wvZixgiZx8nkTR6OIrIEp9{d_MsMngmFDS+|%pRO&eE#ve255EGIY=48!F&f4* zA3Xf1de@PnBW`r7OjB+o+`&Yv3kRHuYAam(c~gP~(&uZ&JkNBMG56q+%#dX#ws*<9 ztl*g}P*?A3)=BN5yrsb9iQW)REV<6INF4w{Xqc;M5WXmny;K zYpjKxnjJFFhzV5GB*wFZPv$id}ny92=Dh$B)@ZF6zZCK+P_j zD~soK%N~WzATG${P8mXAMs=@UYAti+$vSUCSZoraU5xg!V`<&z`vrF8o{q)8DKI2ZUbhoIQ1gwA3b1D}RnPv=E$A587iGB2;ZwJ3yT^vJgJ zKpeEJKd_ZVwL_ia+JSF&19ey33bB7})}eg0g4Un*N+(o;^FhxS_M&kSR@$=X+2bk2 zRnso=OG%nosb>XF2raO(qyAv0-~RJu$+hXgLL+-t){7n9CW-7%g6Vr?>7Y&ib+-HzW|kQ_KEX?q7n=YW=br# z8JAsaC4u_OV;jQhDI+twLvlGB;)R1NK7zp~#B7YVe=2nVfcD@w->c5xfZiDYt}nz9 zJ1HxpW^{UP!vkM*?mE)u^hO^`xAh7~bBYW!8tcqU>XbYS+iVQU@+TJ@;a{T0Dm&F@ zzG|4Z+tt01|H33+eoQq9Os1+{u+R|5O*Ua?2&r?4=z!k4GW@buqNa$;5uvq&ToGy2 zTu!Y=q=!?#4%t8~zGYHQqDmOVWAL;5U?7mLkAcDLFnR5H@_UWKYQA`6!?c@1G=7Qw zmLxS2Ew+z~iaLsQ*etSw6wDu+Ya1(jYJnN9z~yR;jjuAHR@Xi$FD}!*a!Rm=<&1)5 zd4oE|8qg#>E(r;k^dz;zc-sE{A$w`kyalrZF7VZ3FUhHhjdWxu6TT)7-mB|Jr|c-Y zE>QM_?7p@IvA?(Be6;fS+93uRqP_8u2$uLZSgj{I_cs6&HW%w=b`CYAh}c_&KXA^%B%-(KWgue0a+ zxGJBHu}>ZdpTITECop(Bk_S`TR^pct&E2LecV-x~+8DOkv^_Na`>VeX2X>GvQ8mpD&PY{o~hi#l#OOM_(oneJ2A8_F^L+!BFfol z=2FvoV`bDyoW!1jrdA_4H3YR^!Ja~bz$O8az^y)mc2Ul~`1|)uIYm+#^eyiQ*wN%= z*Ja+uY(^-=3t(dWaNUYIBg|z(8U`7TxWcI2OdX6*z$sDDFT~P%{1_*9YiI!5D1&Pm zKZjf%Qv{f22-VovuPpn15adUu>7%3}4$5%UC@Y9|_Ck|(u0k-Ebk;Hml>2WFAV;! zvVgpH`YRxwrAZ}SUT17TZw{S6a$|-Iv!o*U;i8wYAU~&WNNJAf)f9ti8}>>4Wx;hy z{fmrbW+{{~32+l`b;|LTW;@K-SF&|Fg<^hrBZND4ORe*?<(Ujm=l32*_ zhWRLZ_URan`P}Nbb}bxZDEj3T|HloDrWS-(*p(%&oMFhmJ;`$y3^V~2kLfYwRA3o^ z+OM`eb-pf)w8p~nX&^ZWV~9iQh>4Z*`iVB#wbdM&V+PmeAK$Gz<@$W4_0dX8qCiZEmBYym|0Kj9t#@aN_vPi9^VWzUHV^UTkX8_8)nCkcV2 zRZKcqB10VbICoDgXH$p`2QH$h%H^uKi=#HtF;{U;p;TU$TxWk!B5WlSLz=sAhpd^K zLv+kZEX89G^NcVV+vSf$EhIic8JG6I8?xGyB76JHtzai$q<~C!enEOB%jy`%Pi_NQ~ z^^K+5JuU-qS7|UP7c9`?cP&k*H_BrR{h$!=Pk~@GR>i(bO`zLawFOAa+p&7p0P)UX}@2^wbUq7?a z(7|d^bf>S4AzLEj{IgUR}?WZyQqJoL!_ zkx7a9*q!CAgc-)Sxvzw6Gv}QPy61#z#EzJj4<9&{{W;n*#kI4lJoAf5CJWq50y}-7ipCdeOq|npz&`hrw-*b`%Th&)QP5!Khn$d4xozLM{O~Vi z7x7#Be+%|M8x{XAsV~Y$FBBUbpN&elHkbc66gAo1l3w)Am zD_;RTtzr?wzs)eoD>F~-1HArf?fhS#SBSb>3!iz$_4w;NTxHXW+CQg8IM*nw-}S5C z^>4>!6#n3iF{HOv$(j{-bkUPu1z!|_F^ShHfG3Z_-K-i$gM!5Uz5+6!Dgojzk}q@{ zEj-b*<`;2tyE0>d?E^*9p-7Ddl~vtj!eWofA#JXv<(mAwQ)8DSo)Ds9b2UuFy!Qo{ z!_u3(Tq()RiemT%RIkK{rYxoeDN!Q`(_!g8dTThP%p1T%AE>LE#{#oID^r!CkbO3P zh+k;w3Gz~OeY)3zi?eALUrcewLH}@%@`xshq7L?!PCO{A+)l-FRTf30_7@U7{j24T zlk-=IP3q@CMhPu#_pDH(iTLZ%j9i&VqFFt?-Hi-yUh(gdyZ*GpS*et1w$~bs^SJ~o zXE6A>G)J0~uJb?a^XQOEkyOoFFfQwhQ&IJ~Xq+O*&hI|Qt+g6g3pAA+xz&~o&*~9y zNJcBIl?e9EnCQ|bWvBazCVLHIVCYW<$_rW(_42cUy6wqt>VpWR7^&F_OaL{Xz%W`!;W|jXqq(j&8ld z7Jf~Jtn36zctaC!a*kdi=$a{ZZ%a!iK}*Uu*HvL^Q?t)r#6>VoI_Qq8Y{l>hw!Nt7 zx$c$Kcu=IxN}xjHzz`-^c;mERMz<)Ip>o)u_@Yj&-vRfVhzXyqx)nvuGQ2u?mP-}= zI^brJHmKN;pJt1($n8o>uN#MQSXU?&E|;e~a_^{)A^s@J`Q?#Pht~(kK@kIgzJkYv zl~tuVC>%p-T4j7Z{$2kq_K{K#a|>=~stnjHdIXcd{JK1lqtd9%nnN&1*?^6y_=wJ> z@!Es1aecIOPt;g~G_cC%NgvV^f|Hm43b>qoq#fG>!YyqGp9%iCT8ccEhQ+ z*t)CIOz7~1F-ty;JmrQQjpT3x_99K!%+P$98r^BG9NcyajAu;Q;FF&HiE^`Mbjj_G zMd$F%RGq47m{=Z(LSgrq4~*d560thy!+-xz*MtAMYoU5j# z3_8x)*65kcT~u$UPf`f~V-YKZIoy`LP1MBzluD3}(u%{N96k&fzPU z`L@vkJ#Qd6qwAp+JDjNJ<~L_6Uj(V%VpK#8&cDXqT7g~C+}epDVg6VvXFEVGFHlk& z@&?CASJ~bJPMWq6#m8FCS?8jDZR=^T@N7jL=pH--JoYndn9PzL+@~d{z`!Ens;M+w z@A81VvELl;O!Uoj(k$W8?$jR4NNEch5dA@I-9m|4Pix$B>YyT7A4V5{CbGIMsrI!1 z<(!*lZ2hGDlk~eje38MMMB%E=vkvmbLrj%GO;Dpy=r;qU*IumbnIpwF>xkV!zWhNu62ULsjZCj z846#d#sO)fwltd{xYo{$dL6wGo^lRs!wD%g%0~tssl-1-8eTM7+RbIn($hDdNbKKl zsI7AqQ&V8FQ%Bw7P1&l?ayUx&Ki8WzViy|eo+yw%AH~`%t<&W>S!m4=Gaxy#G1aRh z(Ti3GpRFx3b-gEYl6dsqjj5bh{N=yv;{Oi{Z_UK-Q4m)b4fE#XgcYR64p?Otwh&Po zP23v!3ZQak96YvMpc_d5C{2iG?6-9=c2&0~eSFxf@xK(gz*AnKT5`1XZ#x2teM(eSK5Q_C z?f>v&kFhQ%YutH>@9@}X8{FWkaQ+HV;QYxcW7vK6&F|bI|G@?%7a;TpD}G=-gH1lg z`hyieSV@PtdH&9Kb_V|Y;n@7`sJ$$xX>X{^t;p&2m&%H)#rWX;SMxhgpw(H?w%?IVAhS#10vLk=u{IX z@JgH$e~~>VZQ3zqi;0$VZOOaYDtujptJ?=G!>=9=7NidU@CK^OBPy734taaIszY^^ zXkqGifYF#)rp0F8xG@{BLO9!bj_xGz_t5pZvn zAtd?B$)G6fsKF9Nf;!%+XqO+sE~<;8keTr&Z-8n;w93@rG)@AM@y51hOEyZ&>Zhw8 z@K@$^>JD}!FhCf6Uod(LfyVI5?5M&X*p9YqdrR*$z{%uy9M}M`H2t5wbkF=0Gn_{~ zgXm72t-{)mNd0zzet==TR>l2gE!&`iC20GL&h&Tv>$vm7Km{G{siSdbUMvAhj$ zphE)%i%%LuH$y`kDdg0lUEVxHZK?P&ji>6y!q_CLV5xat2T{#%5`G33Q4=-b^6yzS zvlBwwzHi17>V!R_y=14KW}4DSq98HJZWl~9P~a(;b+aL>$DiXIH+D-SC4rl5k2EW% zDC_;wLR2)VB32!?wWDtXZyl2I&Hp{EnepA;mw@P?fm3A1sciLHPF{_!5L{97hN(n1 zCQF1V*z=kQ!%;9h8b%R)U1@xEL#?ivYbxIhmhE z+0;=^P9_th(Jh#2SP>~o_0XJ;10qUzA1I^z?+BK;f6nz^;*yw5(XO~8#NJa(!p{B! zHGlAb$*^?`09fn(>owzlG52)*x95Cz%(r)ET+d)wqlhDXEJ~vO;F$HBYbn>gl@oFEmKaQR#At@(DV5QXAjQ zsoS`$!z+*^imcyAQoXVibt`N-T!zoN_EfZV=M&yCu&;2L3MNmWVv!*p$dHw+1Gs>- zF}pr>16HODWADmPpb1WdPiv_=2|gj`eXY78_)y%FYHUZK3a6jNk>f9APTV`3#M@FRC<%xq1{u=mUL7JZ^3KhYzKJ^WD3gu>n6k( zn7i<@B(`5P*mIRu+;Kp~be%uV0nv;Edc|8j_p&H1wi78I))IMIsu|=FS2x)&kGC7C zZt9V^8kD=b&JzBDK3uqF*BM9LG};$8)eG+)S?CUT7Hl)>4vYGHc-eF}ZC|rpt2a;g z${VI66>)0=9xeUX<>ESUQLR?$jDlTaEcV5OL{JGUwnLx7vrwUm#bX7 z>tSe}BDkKQrRao`T8w52Ne~9w)*1L{Ms%6Vh%$7PZ?)PdAd(;gMngT`YdbKQRbJ_U zATXmJW8s`R`_QY@(kxBIDVC#5WW&^;JER_q;+lCQxLvjC8X0k)32E1?W8^_iRg7=f z2$GoYa4Xphce8Ocn8jy__y#R3Q(jEaoqqo?H~uQL5s9zZ+kjN2)@_RlhTKClz6aDp zh07&+Y9gA)YB3`ak^`V|?h_* zofJr&gy^u-Tsr=MkH`b2omgmI)DSLR~R(CBIUU48wKE*4h-GX@I3 z1e^I#2FE1{b)A$tgc(ZP_e-7rAtl#~+r0riM$aq4HbMe35OD>w19ezXMZYra+b)dR zH0qv*c6M8X=lyo20QXg*U}X=}`WqCpziUp<8?gOyZbtg4)%S8w|3xo<-BgI#{!Y7; zwpCZ*NHnU5*x7Xw23aQ>|M`BOrswp<*$;L!xv3E5TuypDf_*Wyv?J<@VZF<%f{Bnd zS{l2=ZQAFGG}XLk?qb@GR9!>9%nzPElj-)z!*XP2{RT3T>N(XFq*jTE4VC_CCE>z?5g4Sn|VN^WwZpSPTXkU%Jl-iP74Y1D%Q zxjbW~n7x$!jL+A;Gd|>dD-5#_m&Z=m|1O15^&h2i?%(0^jQ(%#EH+_kqx$YqrM4m6 z-Cq_|+`su({(ryeuY{zK*`*rh)hbekf%a04O1b_pXhp|an(8VWlRgF-Oh`fqn+nON zVGeixF$G}4T2|_c{K7U~8{Oa5!3CfTEpcW_2?!HM*?0=?kla6$y)o6bV!1$WYBbaL zS@9;(zcL2)Q3$O{2zsgJ*rcU=dE3MG*R%6ry3#-juOMC>CSM26s_2p_!hZ!(`_X04 z&pV>@{r{!sy#LBQ{h!DyMqL|n{PNf!DRPtg=!Mba-*yxrW$wm0ZK{$-Dm!?C$lvT* zQ7dODqRo@MHEE5(Rcfveed4qJ72XbZ%{ddsi>TL?sOzio@(PVLYx+z`r3-M#<)xk5WYjuw=xZ#QGz#K&SvNpnfOgGY4vy%TTj!_U40H zrVAC#B{Q|nI>S<1d|npDNCMPi`5UPX&xB{zPj*^k{j9{)ebH;MA*)hi17jviVR>x< zx(G=01hsIeV-Yu8jdId_R;3pu##g~DEORX{O3#8^^`an!@6;aaAdnpoprDCjECkCB z-vq8vJry$|Ik=Z#L6U)dkxj4~I1R*-d3(8iW4U1X)ftjtkT6&x{U?o*wOgjpu@`PP zmzWXnuM8HCUDionw6!33LJ%fUXdBftBX}g&&e%O_Q3gx==v{tAcGVDK$pu!;i{A~4 zD8HhZ3dfE^8X7Q3IZs~j>^{+Q-i4)^Mqk$NX?WXc0I4Z~i4)3q0qqASP?Z8qRc`uL z+@gu$^*VBjs9Na=vSRElw@dT@K59&YpzGa50)yM|Jd{r2`D18;q)gi+N_7mc1aS5m z*bbJoyH0B#`>a1{2N2VSLoR}u~m`4NcbIwcX8+mWE7v?l#j3kEAs@{>0$r}JVzCW_r2NCjltg@_Eq9rIUU>q1jYz32xQfJo1VgXRGyjyqrTm$pp`1U>15>6tWwd>W=iXB+XT{> zAH2kpS))EnVesT&dE8DhN2ZT8=o8b&_!ir{;PPX^deg)tk)}1q0d?#Zsby1Wc}g)$ zKj}Mi4LX6cD*W1dUf=9ex76o7l>lw#!np(B2iY#WEG)ve5}}(TP&_bvY1VOekMSeC z4P1OfNxsN@-5u)DZ_m5jE(hq1HsqeP&{^W0 zr6_eO>ql9krWsquLM}Y48WuS^wR)_BhpAXP*6Wm{p|Nmz3oAK0Y6XMc>2Jd92@Z1@ z{eUdz=?IUv&ohE-B@7}mZd6b~a$%E=_83gpHX_v)im%v!0`N>z#PggLlW4OQeyvx- zUz5k&L1qHeXP_WDett;@e!l1aN{Q;T8|epm?p4tY-Eu4VP^`j}csOpSDtowyVk_bku31(0hRz2Le>F+7 zDZ0jNjLd^IwC%BP`ArBC`nmM`NuD1pV<&9FdpIVF=Gc!FTdO1sPIb#YyTQCD2p zNp&rrBvKNE6UPV@m2D|w&nnJj`O45&_Gvii#wDi^>=X#AUvsC$@C8}W@qxD1R+!3e z@UqpJ$B`>Twf1u=%#VQVxuE{~#zgSgi@2|7dPI1s*bbgeDX@F_wT0KRDv(SRD>5$M zUYGr5%7#y(_nu$P2Jt|JKi--4Xi-TcX1?)ip}Ys&xTV5eNgI#JnuJwB%s^4TY|NHz za~|lb!XsLzA=OHbC5~EQ#hUV%_gKI7X6P5)d z7#jZFO8)unZw>xmb@_zsRG2%*sPL58Dg75&?iE#LAkI?cMOctPBYZzzU}VYS4`Kvd zOh#%2&0v{|Z(c0?5@xkq@T}GQCQqluGryrTKj>2| z^_6_QJ|-JKVouN^+bF1NW2+rytsCM|1DL@f>jFgG=u4)GrmRpMZ(5EawK=`|-oS|ldZHS;|}7DrGb-BxxBawfsQl~60XC@X|KqVDN8=l%z<=rFqS?S=feiSH<&@z^ZbF=aRjSa_s7L!^lgfVXlUgB zSEf6$_kSRb({X2|MOgoKp*Ebwz#{qH7_W4M2?B)LoyY$bR z|JVQj3j|&1xML~iE`3f8A`%}oIy4pkq;;OibgGaKI}TY1yI-I?S6k<1(fcKB2Jq`5 zL6Eokw>K^sqh1Jjnon_@Odx-!ZO*Z?uzB?Rg8DxX{0I5|P)T{?oMJDBp*L-O^<%ry z5xLF91M&xUxpHksI6kc865=S1{JKavo#F;gh9K?y?!04G5ZmM+2~+c=?Vk1d#=jS9 zl5lDG{VT(-<%qBxxl&d0;`gPgWbpT@$A1K52NY`Rj6>?B4!saZX%KX|uaE z+4!pynO_(2|MS2jmjHg_KhrJ(}{xG9t0WwJZ z*vWxh%6+vs)@0ry>6PjHd!$yE+thBQ#(3T+^*Bt=-<8n#-DyYUY&JttU-owgvrR2usl&S5{*<#M)%5Wv&84D$9`-SHSgNlvo!W!USry`c ze$Vhj+3&ZOdTBe?*5&9)dGki8&z|t~i7%#WA2?i2WeW^Ai|kr$ z#kCgNdK8!ainzjOO#6Ib(~!4mp@EQ|_`uZ6?4l{S`;thY#-~KlZ`j&ppKcC{g>>fa>6;($Hf5NJ8_U2_Nu_Y=5uWo5gXze_FGazexTUot*A`Yv%r^ zX?x6AeP5$G&VQ{cX#kkO zYlz)ftwRcpJ3_vX){WZLt2wVyp_#ncotZlUA5U#UM{ z9v1fUi}TD$Djw6l?!Q{UR^=-Xb~{8%FR<#3*)2(R9KN`t%!B)0v_bi6a#6pBmwxwk*_)v#qWL($Z(vB{q)Q+;B!>z`sh|>;9t$JXvhlr zHy#*&Osa(b^#&ZjNALTvz+g0%za;gK=C;)7RsWuzi}F8DZ@z=C{J{4R&2wS=htiSE z+0kLTdFSAN>P~qc)u$iZBhsh=j_VHoM{lcfOW2sD@g&2j)n4Mqu`A6&BM=+@+bC|f zwikI!xPGEy=3nC$2_}0i08?R9q{d@6+sn%`ZruOVB5-~&4@gjbaCaXp~T9nMhwqTJnr=4jQu1J6_YHXn$D{x0-+zPO|b#)Mw|@e{9G#-TI%B#EBx8t zeW}OCnPOiU(r5{1F;9odwT|6Y;za9UA-Rvw-`WpfmyIk+<E>ZoPheBB3D>u#MvYqny28tkij^-tHBJF)1gm4P<;zNcic7c0=CDDWG&KM?7%034YcgKEBKG*J)i-9z zbDJXdY-zc_By66t&~uZ!n$4%4THIN1*Ck6|iVG-crXoQx!~(9V&Nm%q`mnbibg%1? zw9PO6kYHpHms6V2`uY|E>UEMLZzn&HC5#zf*WXJU&Fn8%*_B$}-_*MwOAdMAI9jb& zG#bHNvKv{IZQo0C5F#mDaw|vE zI04?1@{Xfj!dQZA1vu%Jz8%Zy8KPgMr4<0&Ng!wJYAkngHn&tj)A+?QvkU;~W1!$M6p z)R=p@UftNGf;rXch9f~fggFocQ8L`(527kOEm6O^{dxQ zCym^_>y+qvXy!weay~^x95btNFtDN%EDN`X4296w_&bdu#erbq*Uls1n ze?ThWl!ekl68{FWb%{2z5VDCpJ-Ckxoa_P`tX6zu6T<= z`&YwWgIby~cOf3PVU7Z^XMrH$m#gb4QC|#{tag@1x&fM-Bi8B(fnv1VE@T5lZe(Q> zwf>2pu9Pb)pk&FErRwlbat?Ow$!nh(Ga`kTijy*pdPakIMsu=`=GZYDpP?uTDD(X^ zXT0JWen;W9@z5nD1MT+ph1V$Etc&wTUoQXV1Lrk;PlD%6pAraA;rcg%l&0*+QU-(bG%NM>IEA;eU4X!I9 zXaY~7e$Y)Ai(RihU>i=~#*V(E<~m$Sex z&`(({1YO9~V}3<(aw9OY+A5w_4pI&dbrv>;1Jd|B`IQ+gAn7Cs@_`IB$cH#z*dpw( zdaCW5wf8Z^T!JPWJIz&^zH`rzNDKvusvGcXwYFsQJ9wX*t2Z>@BM`YM!~rL0AD)XO zEaKh#B}Gd?hM=JFs@JBZ0Ddy?sag#2M}*}uvY$7;E&3_LQ@e9_fRa4Z?w$@VhS!DT z%LYuYuil!67ZBfUyzWXzcKpER#$5TrbkB`j)q8oRvU%gZwv)o{DG1+ox_8U-6cJSmR_yN{Z{N|HkCO7Em<|81oYNHuLgo+qQDD^OINc$Nu?iEIK}Nez`;Y2Rh!1ZFpv;YJueem5!Y4s)gN3&o>)#$!u+X zL0vk|ZcBrrhimV@jdnKh2&cP)`x;a6D6Nw0Q85s$bsx4fW^nTYa)P;8qT8ZlV`$vf zY)nSoSBCYnxQkCex#g(%x zZ)I?SPRx^1>tvG1X=vW2^`61D&yK5jB}(+wYTIsN?{;cjezv+vm9|OFiq`DpDM`n~ z5^wpcV$e1v`HY4pgV7#rarWSe;}xkWw6s@_ zN0o1m;6mN|wNS?~+pT0A?;2~f2oV~7y#8j#BsZnrgj6A?TLBA$q`D8kN-vVd&kefl zSjXR*lsu8)8;$=&ePOpA{o7voeRr!Px6ZB_Uds8B45ofesT@RJ74PAjRbW!#(Yn=@DB zm_Het|NQBP;v4asz6UR5zA5}@iet)AjoFi&_?lp}nxFk|fj{8GYybPQtpDb&|Kd@m zW)`uvX$Cz%(+%tXSkVeo;#lOclJ^1cK%yHn$UkX7+qZAmIY+oW%gJ2yMC7MWauI3@ zyy<8Uwkb25gQ_^Da)`D+0KjCs<`Kb_hhLm~?GSZi73aK*f)C3i8V?HY7OTR1r3~=j zmb1}S(5X8r`~CDqU}c z*32n{jeHU7fbpVoiCyBhkJ$_*Ko;+p5`%UisKsHwFjn8}P3UBd=K&L{OF*gmSay4X z1;JtN4&yB&iN?V;Hnskwa{!F>X}$>Qd-R9}uVaYUwby;=wZ)Zg+*MQ8n_!#P&rB?C z06vPuE8%S2Hxf=CGS{T2NqM0}L29k%o>!{3$5P3_yv^Kz>a&)gmVtA4&ZqdmZ%(3h z>RhM@61{a^j*1o9;`m1$Bwf$z%d#*lbQKm36ceUCcFU0mvXw_us8#vu9oS`jUrZ3Y z6O}q(QJk)8!GwPVNo@mZ>D+2XoyI}*n^%6^Pvu<#R2Lpj#HXUIgEOQOOt8O^* zK+?XNQLv!xffb*3&nZ18VTZTJu8MA*PqY4|7F>Ezdtu-7SFOQhv>DE~`4=x=aMzD= zR>E9NA6_XH6U%xv!-r6P@T%(ZXL$iWdT$pP!WEI&gB8PPQrUce>eNd8{gL_`!e?%c zo03HAWeggS1KGY{Ea@lB=apsO&DAH*yVBz<9L^m0t79tSaoZx!iSS18wtN){iHczn ziv~l4F8P%V5Xe{kctBk(A*Os+gx%HJvg(@<0xgS4A1Y!h`{lcfr4vuHo^ZSA#@=+#dVR zj&yvSak8~{>nSk>_Es9Iqn)O^WMX3!QE|IJa%k0{$uQYg9EFY5dc02*7(7TgO7A#p zop8x<%YKXu(q1peprIx)#m+Eb&D`o;zBfh6cfHpXd1)4T5N^XSy@mx197+}qkUhvb z5@@7I-9duTbf7(PCFPvAWr2yZ?X#{8x*yigqRqeT z2^-qGZaCEI$LSA*>8rnX=~X+ryv?jr-#3&pr0vH6+uKPJ;!N#Ga=hdPb(nbZ#^B_v z&~8rgT$UX2VoCf8GlLbl+HJp^%|`+A8FU=v`uJLkQ3(lQr8g*>cYQpkiGYNlA94hw z2*(UPc)L6XkyL#Bmd-uv!K&18$_eIBBjgj+c)%SGJ#$LbGQ# zInNH=APZ0ucrX=8CEny9@yoEvlRCVRm4ECE_>H@ za+~DhaRxC&qLULIXuu(n(9V(BQxCE6QWE~F9Ge51w**z z%Q3@RSe2l@4{Np)JVjju`*KWgQNy-?6nRM`-A*XmI6TK|+)BU33fi+GFj2Ruhh)&-5!(x71kVl@)K-)*vz@b}1CM8#?`$v|P+57C& z)!atfYn2Db5B}#tv(%))aVw18t9xeK>0)IqFI|#Bw%4$FhLWjjBM4wz_zI)ahB1P z@#@wW1(vJbqYJOd)L8>ZpIJMe!?Zph~X!V2Y-xjH&y?5*&McHykENd>eL_4ptkeh(Y)inLH}a{swVnte{j8TH9!BV z*sv$?eiqfzn#3=|s_dA$PKgyYv-K}IbYJv@Oiz(lD`!!Mp|mdVh--uDAi@%l>6VR8 zOq(aAf|U)aZAn^)NOZi~_oKaYtB!`2@{GL|@WAS_;@t6+ zRB4MC)r#L$BI{-9YI=A~e^;hua)NH3r51pGHucHnE3iG<(lXnh9t3h$;m{|hP?N%S z2tlXve`yE-v655UVH(ht(zE78@O8NyO@5iQb0_z>%O>sYU!^g-mOd81b>j74@t1MM zZyZMR`czxiPhp&=9oeO0bV_B%)>JmtHWnvi~w zxsQA<{TaH*VrH^;+4h_xJM? zTBVp7ciY~0Yj9joIe+FZ5gz8B^ijZiSYr#TK^4bY{=@jPc>9OrPnsd~?}-{u_tn1r z#bWm~icof^ZixDemPq$<5C%li2BI1K;u#C%^i=qxR}`}0y7K@A8-8f4A6}TdCSsv+#-V%wz#}A(jai11h%Qt**l+j&(*u-EX^%&6n6Sp zKUK0AZlg-&w@&Gym)4aHRh}yXQ@#af0Qd>?IaIVSEWjodGyeh)mtcI3RpIAr~hZ^;iq$x|&*!@M5r zs>Hi)?=J+IFYla%m#OB}$J@5c3U17na#a6&uOTc2C~p|Sza3-PLoB<-4>o~BG^g`ZpfzXO$(^D(w^%piatra z>Me6NE`3=FEhQat3RwA1Jjr(HkK_(#ycxu_85~gC;Tq!fpRp&e|0&`+t)u_)7izvx zX_`w}Um3kN6ti`6d6@}Y1lT8`i@Bff)SUv zc3k8nia`)aGeH22#LCp|ybOe?J$jc3msayKMu8BmSD>F{)~)D$ zl5n0Q_tspHh9^`xE#tFVi^}!#iE`YK3taFm#gM+B!vpj#g$rT{MNgOVDG8thz8j$q zyB@0HMsKfP2mu~Q_toWTcFZz5 zVOP&2z|y{N;1Lr+m|sT7CmrqLZ3Trk6F)@jIWlyrcaSZM__Ow|KN^M06Qp@%JFr%I zs+D;|&3qQf;{Abvz}Dk3IO&jk$B#ex1DkyB?<5={Y}ZJ7Ktba#Uqj*^@5?tHlJDeVLs^htrvu3p2tA2SXgl6f!JaUi`&sU3V74eQ<&-92Jr)zAsT*u}X6C)*@O)<) zuXgm(1sZ?xQyzYUA`60#K zLNK5`3v2;kQ`=Mxq&@fSH=nxi@icW!SmN=`&-ZbUnY!xZki+n?R&H{>w6YsP*ZT>VTh{*8lOI5g;srN>CI&%5vU(Nh2j3|YxO&li?UbF4GS!+`o&Q-(QNyUoI*33ZNv2$ zGnqDziw^{)%?PiA7RY{OyMdUYC}J_x6KH_8v-Lh>IgU$75!gO=)YUpAYIy6RexzUE z?uw-4vPdxuij;R($VxP{vv)FawT#&VU~l{Ih~U^b^g;r7ZCR2m;IGK39C|5*{Dw(P z8JU_Dp`;*@HV`PAL`JCBjPbKf(AJeNIOxk??ypVB%0qp@&gh*Ip~yb!Qpt|Ac*>dc z!b<&(Nar)=*Ae7JkzgBTZMiaOmUWe!hi9_D$XHvU#8+_*V3`JLou?}t-_Heo8KSvx z`Y=P|mzs0pNH72E#jWC#)_e!k+FvF$T2pQ-evqREBZ&RzgL-u+*H(g;00%KN3|%qgh_M=rapSh`AA98WjzzGu+uz2ufmF`1I>${ zhlp<~NW$Khw?Vz4*HVP>aDh?2K>!b|Dqu!L`jcQ_YO2!9LI-8n0woab(pe$qCC_4< z3pHUCo!SsHK>mI{N0R<_=1X>OmbPA4fgn;mYO(gjqondekhtA%g#M$ucmK~KsN zt!fE-skER>x~!_Je}wn)k2Zk~GrMPdb03!Oa2CyBme{{t>1q+K5sby_r-mqE8c?tS zy^{HD5^Z&4rR9;=azbLMS&6YUK`T2#_l4=H9n=-Am_;x}Pkva5j_M?8nF+bF%IxKK zQ?wQm^}+i_;ZRN|>*95~(_Gn>dESfsQ;?=?gVNGIzKSJAZSRs31=1EZFY+Rc{GHwB z5ZEG=n<3)DhVIZTywrs`2Gf^>yO5Jt@!w$OPb#h)Q~#i_0X-;Ld(i~TGOqvV|_ovz>;b-T(4@R$iY@ymF`TEcEt0kd-87JKjXZ~F* z14p7K^Z&MhO{wl9+meGpI{@v!V7FGIf79W_hGE&LuN;s?HkE7_ z*J4}M3=)w|5hwB?n~>81{ILD~{@xveOCwTu_)*nPoUiV75BH44R`*Iv%D`D!DhqZ^av^-1zAz3c=-E zIe&4mnj$z*tET)UMpEAE;tfaeq@L?mdNI?AO*G){quO1%(91u0gEoB}e{ zGZW0q7acLmnGx+zGO?D`7hhIjWvny+gJt_|ofEVk0+{eqdqO4MV}d@jC${e=<>TYV zOdgGY-Yhd&UH`nS6E#b=XON|^Ti6KT9tjVESD_xfiZnyL=`=KyzkHKFX|QWQdJbJ^ z!b!eIRL97@_(%;a;V13=UzsIJ!zX`xyG{PXrUj*%YB~Sn_kF5QNz|ad(xlaVoSIm2 z4IFsOHIL7;5}wMDrW|1$7xQk=$_=-vz=0g5n+~a&hFF~$b-Az`XCxd5JmzBx8^75p zr;pfP(67-cyNW9%fT9t^_087e)maok#c&OWq@tUvqg$Oz zD|IjvYkk!f6r-r;Vp6u+H7gtV#)6_?v|-(F!z!ru?Oe-Z&Xu>4$DXr0w00PdaGOH( zzW8EV*S!(B9#9WqyM#qTp^Um))rTQf*CoI;_MVHW$T^-xC>rL$%mX{x z?X-JdM!@DMV;kjaG{L|=*Yb;mOWqt#b!M2L_vBj7;rzDJD0(n?zu;tMgJ8Z{n2-`` z`8}>f#5!9qfc5%Qiwd3GW3A&hjHc3s*BjrZ0jU7@95|$QvzA%gdEB$({H+(|Y5su} zwveb{vGQZ`Ck-)0>xy^(d)24yZ}up{(OgvDh*~z)8Lig12pClIhxaQyEYsE!GbkiS}=`M=8_=^ChqK-?41!Mg4WK` z0)sBA%Q|7ZJXVbS`+})JAaTB2C1t9{iWWQlJW$kA5f7GC;PmiblGL7inuw~G$T(UN zCJERG3K)O(gML#E^R<4I)=h#fDFKi$Zyh8tZHEIBGvWC_y8obaWrZTEO~#{V&#}=g|x9v(KA$J$8OZl$tLuizd0hNp~}et23rnc z)?Pj7HcockFlCqa^k6AXrdZ3)#cc?@`Ow@q^;ICPbfcX?u8~?`TOr36ge&iDZQ`RN zn`2yu%Ldx^c!nd);w|y48^Jptm17t$)=zt*i{*o~it2-EP`)jSyY8StOP6Lf$u@&Y zC~8#@Vqb+T$VYifh^iLK01r3fh1=qXLd03NlsIZkQ1I!P)%wW1WC&#u;G2eKYlW1D7>9sbD03`PB3ya?Yez>@@_f`J%l0Ajzu*I)ZA$vnGJm=US^G3Xz-AoaRpmp$U6h3+mp_qsl?Un zly7shr{1j0UPOxwbAHta7?53PcSpuyU+^c5^MdZmT^o5^7CMr0xxw=> zcgbY)Mais7x(GT~utCBd87Na8)b_2?z_Kf1x?VHtqsVCCZ|h zSjV&HL1T^_ABDU0UpQ#u87n3%xzZ#W{E1wyWP@4<3s%aVslv7TxfsJ@pL}@t3l4|0 zOCYsvD={BEVbghe9PC=TV36P){#3d_$wWfgo?vs=;o<^y7!&ubGM7M(_^7HfFMK4J#80pDfFa}of%te3U$*D}bk z`yhb*Ff%8CqJs4G*OS!TQ)VI_8;^>rKF_2YSGlusuEjEF8|=41TguX?v4gS`6LV7g zC@+#zJ>k?MqZ`lg>a{{6n1Ox}lVPRj2|68C?0j9XuWct^DU*TgH}n3xhH2e@R8kPw zzIoF)ar}}R^#k}Q`vcdlpi@Z}A#a_1U=1b^vo`L%v|fp(CDk(@FFb^0lr}4?UCkLT zCr-|9gFTC}0|^FsaAXxxl>Cl6P0}d$(c^2%Img~)BMiiv$0ML0$VSq; z0QT(YAhnE`&m9LncV6OpN**;b$;)*tQkwIX;{{?R@NYa0 zydu69Co79noMFLKZLsuYK(&w|8tW$cN9H>oiPm@rps|1#^yK2DRmAJ-hzBqPfq7`O z7YxG&sBmNSebX!x<2G-8Ug(JK3Cdf!aIRh(ZXf#VN=O~16Q)f_~zgLQ^c5Nq2 z>0w>f(nwX3hzJl2OLu`zpZcQPHgrmxE%kuN_o&U}p1%4Fx`iflBt^OO(nDcP%pNl3 z^2a+rX|BtNFa?SCG+GCpyQbIHEQ>|h-3E30;XJVCMF-`O!ZC5*VO{EM{i$`uLJoas zm0=}Nn^~A(0OH0H+Ugupgt1!C&UwnEqwcXmNh?LMNDAR$sWL!<8T@fw{dH}4Il^` zDcV6gD=>R{Y)L+lyJSja+C9tOQ8n?1INib{n1+6_TXZcuiO>M&6P@+I+d7C%MP?a^ zf!Tx7SG!O*=7viOyvO!Qv6`YNK#;jaj3tq^_O6c#;FS1?q4de)(8s5H!0^-$Sj&$aV21^DWxyaSYSiCK_=ZgpMJ%*RCyn+gNA9VC1QTFy)F8xV zz=eo#8JunrC&3Iy!4tmHYw`J@0fTOnXj7)<@^KwGJTa{-23Ke#4ZtEGcSG2&p4Y6} z=G8bqoWK*NUG^GC&TOt*U$(ZFD&a9BGg&h}*vCM$X`;Gg2KSWHDL%Z?qXey}K%O^f z2m;a5731`xQr&;jJQoA&&v$lShX%fy!K!<4NYT*z(Zi2X0}MugxgC#7{;hmBK_lVqSj-twer0nCAUu5QncE8M*&u5TBO1bkdh+_%86`bTr>di!d zs&g@)orNm((cYU8|kQ~AmnNzPS^jX@BcU8O$& zA2bwS;2)S%{!LlnkXya2<_39Tnc$s+X#gn}HCVy+6Cl(&F4x#6r(zB>Zn~7DFC~>F zQxMr%<4z9z>$7$4U-E9SS{AX&&8X7e)Em{kEu{zX=r{Ejju-6<5GbzEsTZ)d*QW2h zai2eD2Qg1BRW{OsrMv2hftY`Z?n_L7*&Nzo1uSe?{?@mu8m$LGhVn-8y2xzH8$pIB z*vb2-$c0WH~9 zUS{u=g8G>klSIToY?ueD>K-{=gxAKd6w$Mp2Nq!~%~`g-A{N^Dqq(D^U&%YK_dXos z=E`SDFFqSa4}@be$*I7tG^Fsh-tD-M)AWKgl@6lJ8_9Ih+4_@jF9Ik+ zCW|i!DOe*kl$q-L-35YY&aR(`L$vkHJ(NYfm@)Gh2s$grCkitmU`cu^;zwcSI@S}A|gaWS~vhcbo zaTeUsV_r{Fqa(zAzt5pPQ^6Ag#Wt25PIEByWM_x!6(neK^W?-}i^Epf%5f=ce>4IPp#6jLP9k(!wbHqAQ{+^=Hkxnm>)` zIEwf`F$0n#>=FzgEJG@o7Q0bJvdglwBC;!+v*}2JkQ3guE%Us>zhNYy(WGn89;tHr z9@*_+H}M*o1W^BljX8KR*34iV;i5{|Ve*)feK?9;7F?*%tcaNz-vDL}&BDgDU~r*K z3`qp2p%!1@KAs0BASi_O zxA|P;DK_p44I%Q&SqHRvC-gg`&>US&H<@2!Hmw(WvE%-dmOPY~MFeQz*iV`zTZ^f9 zC$(xnd_Kn!eV3x65sn~@Z~=>+jpc5~8Yy?NaTNiw&JAHGOQowaEmNxZXhIyM)+e>#(hZ37$U z`2!{hf;c`H=+ZTTk>ylLA33Jvog2qmeL{GmZf+!JMf8g1Im;>H83;{Ijjpl<+ZYNe z18Z*9y^|L8V#&{J->RTZB2)aj6`c>#lwWxk6?C@UG#S@aG?jW#Y^95-QO%(VL9>Z(&toN<^@3x32TQ4a=+2E^OtCN8g;v;_zl#eie)27 zYIKAFcfoV~hX~Pl*4dfxrYm+L_y16F=-EANw@k>Id#&wzRgqSm}yV zEB^%b1akz?fhf4|x>s0fT?KyViN_0N4)w*~+wkL1XX-@=U4*5UXnF$LXk}X(7{CT* zdb4yYoMhSkZJpeE=RHa%q)?|BWCRO_0H-rJl^Ehen7Of*{5~%{MYKwEUxidFfK@hI zDO)96g=1b(yk*9hUP6|6%_pQ|&>UgCDmJ$F`#;9+WHIE!C;)G!2oF%){bl z7&a3?9S@6Vq5h3gq|I5Z+dEFoklaJ(I#4HIs;xU7RJLK=q(&&xfnm2wso6;#jrEsC zLM+#1Gc*8Jc2Z8LYEfAWloRyeC4aHwxe?sKmjfmZwu#wWT;j2%QG1Y$=%!Z{G4Q@H?8GFg zCv;hRn4{5?mzor_&R|ZOa?qoA=`TKdiIgADuyf$ZF;SFWVsR9dTv@&tS!zN6*ocyd z^DT8-w~mD+y1<27^N_k?_5%YXSuUr9aaIZhg$uduJ7eWB?7PNt`Omtah*JFFl=0Py znhkNGv!AzW`{+G28={cQYa2MV=V2E(zBfAj?{Uk@Ru?4S(r^R*^z{Gk|38=TV#>RB zVvR4wyyDG&oebev;de91f?CFV##XMxpv;tILgT8(9bVgFZ+j)n5H{^35+9PiP}& zr*kM6g-vUg=w-S&c^ePNH+(+&=dE{d@vi3me%+@Hj?WW&Vrnmr zeY0QF_HWPZ1@oeARq6+P16I-_ql)P`7xx2}faxFFIB|e!u4cZuK1z<3 z)7jrs6@s-islv)ycX)Ij@0)ENm7s3>k-O)=X_T_150`Q|sAjII7VWeo{>#3fD!xUo zlqzS20}yd#l=;Lt2Zc*6*BeazQml!|wFVpoM6-=sBx79}Sh{{0B^CG!NO};E5`H7M z#Vs)yAF?9-IsEzI;?{K2;cG+n;QgNN!GAg48zc4`m0%8gGO|Z~BSE66>^(?)Fej$k zSB)^kH;}lglRo%CA|p9S%%dmEB=sFw-CoFZW+|`u`^p&aX_eC&La4F)_2{gBnfuFo zM!#2Q_Pg{{{`2)issF3JYYm5bUHj8&muiKkm8dW+W)jMovM{riLr%##=QIw9A!Ks4 zdYw-*42`oX2@JeBba9)2D9TQ%8houhVwP^FO55(f zeo&n8>ZL<)RhuY|&Mvk6TJ_>K>CPsYlE7@JjQm4V6{@Bm0amCmq@LGDk+P-^_7OFKCd+#?WOE#@(%VA`@T!=R+Lz1%(cqj0r)!7sDn2|s9$ z#cH_!e6HY4k1suX1XeJJq6O5mxsEExjog2|&7gexP3!7KdX^#m-PY^0+ja;3oV@${ zU0zS=#PMjw99P1au0_c`(o!#v5_=ZQSme@rVd5m!!ZQUIQ{%|;#t{=ruPC&~X=Dox z;rOazDCzdCpC>;ji_S`NcyuC>2=O|)2bJ`^0Ybt3tKlzqTy*q0DJ|DSG+NNM(X}sh z3?~vB5b5U;jdqqovQGsqB`d3JREPCy616eG&LAlwt=`J(4bHzxkc+{UpIAQKz0}h6 zCrkMFn+Td_Qyw_?zj!(gzyhmyK)+#Ispln3SA}xybfvs4%o}>i-e)b{B+p^Bm3&uY zBVy16zU(W-`l5nKE)ze~=UMsoF1KA=N63j@UMw6b3*>rA(h1q%?3(5gE*mau&@3^f z7<847vYcf*_BD*L|-&E8o|Yl6_s#x0@1D$VYSzysP+-F&UCjmztNO&PX_QO9-|EeX-#0 zG?z$=V4AHfrJ&w6v-lhJtpR&B0ygjf0LSBepxy1P11-RO61Gb_3}=4%Ecla5oDKxT z>Fa>e#Hcx80@hnzi_odz5aXPSv&=VbZwnO-bWqjtMHYIAm(1Nd>k^ahDJQZou||-g zclXQ?oVx`L1Ynv|-s_-YWYlxra%vKRZ@lS(eDmr8bw!WB@%l4;Ji@k6zsq=LiQ*^s zw@=p-X4j%okJCnEjKY1zA;Je6}=ry>jgx^aa+_72lkgk638DoFC%mPw|lc zw9vGQ-pQlHF8xZ6-q1;F4JXP2x-O{|kthD7`n<8DeP5o*3=hJw6_SD?UbT$&c&X*l z3NiH%GwIC*p2&vWY6caAZl9%HQ-$_^MKT7(4%>u?HN>D4^pjm_RhL4qKap{ar5yKb%+>2`}Qie?(fqMxjns+)^`t3KyPRpB#@7amy`1wb?r?>)4?M z_l$5l_eDnr1mY{?s)$r&dP+@XN_1i2Ta<@#K03`;SNBdJf0^}s23C4+SjkPXhqbwP z;&LqAoh-l#6&0aLSuOI`VoF&p;)uZon0S(Qnl=}XIdWFXP;oZqRbDm zQw`+tPa%wVT@$C3NP~q*x_VI44o&Q^0v7vM6Lj(OU{gy z<}1XHhps%77pj#gpVQM4OQWg7`;BxEj7#}Pu$iH1`S+X?0Hv^Mrs z_L);pbcyz9A3T$D)ewznn30{9E(DOO`miN#-I6RLyd#pUdpNbNOi`C=#M>;4GD@1C zZVOmm{S}~$@BJ09_XEmw6R<2;zdo^ID9^idj4$vbMYp$%nb*&Y6J|K+O0z z@3y@^%gA99a9Mv9{$WFamKsIVD}oO=u^Y~3?`Cxze79WwHM5>)&_+D1O68U>Z_m@I{xC7b(e^RjK7;JFD{+-T5EFD`xo5+RZ0rAq(S#4+ zO38XLEZ(z02eA9{4FBM8+~Tz9=?>&-l`W$6dKnS|#H}5;0hDjecpAHq;Z!`rPw;`B zQ7IdIKQI$lYvp!XgDLtULbPo%HbXVB+I;ru2s`>z={n?|94o3@)}FRhS9>u+2x6$0 zBbybT+HN?IRD*#On#syL%r4sATCL=$7QibzP6(6M^QuFX1RGDK)lR}H_!eUdiYC$H zK<47a7fnUmhmr?6Bl|T9`9^c2YDhj?OV{VIBHynb$ zQiK<`;5~7X)ZYSS?4Ffyu7N~1anQVROe$Cbw((1SVl))s8g~ zSi!<|1}{k5^mhksGz9tno0K@lJo`jo6Cg)!TqvZmD|Q8X9BMgRERkeW83U`>#-83E zYR<{`)kkg+{}|1Ft%m%|2UbZ>2CvQuuSxwrO55!5G;Fa}szJ~GF}C{b>(Jr6J2wHV z_+#XG&->r6`2Qyh?eeKfw4;o7#D&9m4oy(`Lu*BqizVi+zvsL&HHq3|W8)EDtBqLM zZY$ZZ6`%6px<3BqN#7sM<{`io+IB~a$i1#r7lw`RVac_<$YJW5rZ==u0W)2{A3i@O z(;-jr)+^}D{&2I5$8MBt;a!yr*=L^~dQa$M?TLea9nc8Sv+fl0$X8-!{Pez8GR?Q) zB@zMhFKw%ff>x+R!IKk`BmJ-duc>3?Ev!5ykPGI5lcJ7JGo|PJ8iHMxYXgjytyWwj zo7|0A3*9NoJJUsg1kv4yuo?_HgUY?Pl zb1L>)*u~1n;IBp2>Lf>TmtyT1{D;)DiI|vV=`=&N;F(LhMV+OmJHpdYkAYZA`>&mI z9g)W4S?h}4KoO@YJ9c&wIqye z1b_D?AT@a765*)X;R)uFV|<@UU5wu8a>G!aI~dGIAz}XYfBV|)y6gIIV`#78Q^_@~;wCHSb%#^5Kn`136$DEF5yDvv%o5 z$L02&i#tO(XlmWqVu*V8+M8eo5;@@W40--~YX2ZCb8ZaQ> zNbk}+2m+xaNRj@`>eJ0I{U1%_CD*Zz4ksFIQ#^- ztPX)e07s4h07n=fz~SVP0oa2F77z7wATUkvZ-_zm;!( zFI)XqR{CD{_IT{Upn3Scj5g4Fz$n`=$~W!*u59&pW$VZ2@AMH28YLHJ&+q5@p1!yE zysax-pOK$t{I~%afF1w}xc~k78OMy|mIeUa*#H2Jz5E-@Dggi}dkz3x8TuQH|1|(` z>1P0-wBv8EzscmWCED^=cE=h2NA2tYfVFG@-~ti=VEG6DoHh9s$N2jfZM)7uaWmTG z#`xF+oB_6g>i`(Q6<`ezXOyG>w*is>*~4ML1HiGPN56j=={Vzi;`E6V$B&;ld+OB5 z)925gKY#A*xpNmTGGD%Mk?G>ObC=mKGqJF;v9X=M#Bqh4^$Ig98|!x_M~*S-96xd9 z#ECPk7tUQ^{g2b(djQkvqoT(F$BqC2N12WsV>)tJ%ea6efMX2Mk>4+tp>iiq9yxmI z*l7k<|1#jnalp|NXBf>re*D;}6AW!V%D4iilgw;4^iQ#{O6nTm@SVVW(M3`qJ&&%_ zeA1Tgn5VDOCfM(z3uQdt{KCO+bwyV0L3;73fS|R_vo8#$Tt|LSe?8}~Oi!L-AQhO7 z0FE9xe&p!UQzuTI`n6R@n2sJ}zHv|Txb6u{7NC^-o5C+ArSIc@VFjU|J}YA5#9cf~u5ql3>HOWdNNA=$>sXI{aP<_p~zJin^N&`jDPpwnR2 zEk&G@Y?^FUff!4g30ib7J_H=J1%>WoAuQ?fs7I?Nw7$&+`F1b07v1)={p>1X*)6Fd zj`jKx*01`xA8fu2Z1&A7`O?$V*InbGT5B7lr4yN;TEidhp$C>esC8>=*<~4f08-HZ zvG)V<7gS0KDqnSEaepu^`>6%{1t+x<0)^|oxYyD)F!E-%R|%faUoLm?V}DJL<$C;+ zK)*?gi+$fLa#FSOP13R>tz&L0M_<`XaQ9aZ|G2t$jh#?><0Mx|o$g9sx(o$UW+9v9 z(&kO{lCbPoKLiN+TSLB#pi$qJFJaAovB8#onP*nEf6hyj9F))PAMhN#lvrx6aLJ}C zs_7>+59_04zM7Edi3ZF<7U|4tQF()GOdLpKY@m9@1{}?4y)9$qd*k`sh38$O*O)7w zO3CM2Zd?;mbO}EA75ovIez;{@8n;V^A8pLIK;(i@Ba|%|3Y-lxHlE01+gUvqKGu$4Ivwi zx)<%R_$cxCx#?G?_fHEshdwFTu5XMBzm$}iKAQigXY<~vzBWXUFKAobksyMQF;K`L znP=t>VUc`RBA(GQUxS;xJy6?eXGqU!>$3Ql>(I2(`@ zak=~va4(`wSkAQOn$CcSurTb^A>h->!CbYXnoaYqeDehszhq`%p+yWlXg18*VTl^_ z%c4a`z{!pL;y#-TDQp>U(Uwf`x8aE_@HRuc@STpV{?7Jech7uTr&0ry=n-?8U+-S) zs`Reezg8#tv9G3Y?z53K%T*mYUfuOvV!W6wJaJBLJ-lKz*X+SHYFat+g*7WY*EM`$ zAlytEMI)oqguPq^=I$z+u#-+0hip;GB|2M1@j#)~Tg#9pcaJa_Q-qe<*g=V_ma6ye zt;O{_(~($vHaUrogRc2m)ZTsjZu-^FS3Yy_ir-ic+J#PBi4l`hchQ zntLD994i?;Uj_&1lLPjhc6F+S$6tw`Zq?UZaELs0Ox#+(HhS)yD6PrrW-oWIvo;Dv z3Gmw=g$64qNrt;`r>C32pXU&X3F*Z;pJ<-At30lWW*h>~b>Gpcv3q4J$`v=Z1G+ZJ zclL5DvYrTpBtJ7IhncD+qFf54iBol8bJr@hz6IMAc*{nN!h`L5ON-VzD~lJc_Ym5` zN#mM*v*lso6rrk-{>u2ppFFC{WN@Mrl$_@I+CU^J6OoSIy;*54)W4@!SGB95Bh;5xKd-z>jo6uMmQL0obI2Kun2lG|j_s5nf$5*EpffOFGtaZO)KAyJX zM6aq0JwaEjMT&7Gbi*&|R5lN^&e6F|R8Lm)le2p|Zlz5*PTY~0U`Jb-*BWkot*SR# z86M|GkqJ7`z0|sfm?{qc^p-<>NWxFeKG)=Q7|hVom82&~XXymRH0C7s$`P4-ymmfA z4*}Dc_d1kXzxdv%)`1SD01cONv=fxZtn^3Z zK^{bj(qR0|HLT7^K5%~%*K!j^hHbqX?C6LPemEN$GaDl>mwb90sx2JT;u%BM0;`(T$6s_{w$UJF0+fZ=;jFrWso?K9Xk1h1X60*{} zY}yqT1f3Ff;T&+Lvw>>sH4lih?4kVMQX(vOZd@?ECsTdwZDapsnsm%wzf2_9Z$Acm zg=}GKOe0>4d_UwGNdCy9JhclQP4ikMeAAZJ&KHUmwy4Q4q}rF137R{a#m>db0n;|J zi%ci>(jCNu10U}2j&d|OXuPI$&N`VC`@Yj4l**gdx8?OVtD+0p^hJ9wHC%U*Q!x+J ze3$;osPsgpc(kLu;%=!;a1J;lIxtM7;X z7qx>CAozR&rO19DG!Eg2BinA+^jl@25`=~A!hTN9m%Df^_(iI|HYPv^HvhT1A$-z0 zzFN}ag^o_-SY(#`vCLUFD}(QXo<=gmJ7-WAiG5d$Vx|8GI?`D zD=mV=_bgbK!uL5-D=d=h{0{-}@k79aK(AC2*^JV4%-To-5G1AgfCwoSHhxM$!T6ZC z@}^YbjA4UtP%~@I#=2LUr5lTRCAj9&skh%-SFZ9cD52#ttccE*usjp6w;TkO_*@~` ztln#~UaHQp2QGb8IY@aq-OeXH-r=`Bau6F-;{^$NWVXxX|Kt#Gd4MCZ)`C~1*4)VG z-iFzwbw&DP#XKkTOe5}@JY1pf5CyCXM^lj5OA2f;u(4Yf$FX=h5#HW5?qrAiL$QIw z{@8Ucy^diwTvafIJ+>uOz9sQBWqONP`;$YyH~GuU-2Y1Stl32HmWZ^`AglPUdws~% ze)#eYoL6RQ={R4&$)4iP;VHM*Mfj&2DCDlon%qYh4HcIv$j-TEe}ew+lEhU>4fz1s zZLZnJ@tH~8-_`3`v-)wDY1|Ja+! zoTf}_D{P7NQSnV!s!INlACVfd=Ibw{p?w+N5#jrClK{I^|CwOXRD+FZ|gk-F0C)K`P=MSyJbHneHQwB;!mPK zMezBAblr0BYz$Va&L-U$90|FhmxSHoGpRI46O-|~Qt^`+UR^X2CJ_3uO5O^_ zIU`{#EWYyCF`LxHF64Ex?fmN30C7~2EJPj;ZA%lbY&B?O0jch*=cXc$jHEWcHTANp zb!xIiHMnnpOe39j&>)@^q_}!6fxEM-lD~%kY0t<|?zwEtRaR#w{S-(>Xq?r&oOcCZ z9zi36+0y-EPw2}c*$0$HBfNqvrPw%s!JtE+WrK}9zJs6Rwkh~!TgVSFL0?4#;#4;= zjwg*5h`EW;Lz*$t;2Skfnc-eWLtCF>-?fukJBU*-E~TVlglMs542R6VDq@Zo*Amqh zp#>bE$(F-9_{q;R{EZ8uXTlKpV6iGanF49WjuLy#OWsZgOS!O(2IuWR$jtj+tT54z2PE8 zWU#?VMO+ZlPZmGN^ZbJ$l3gpta+Bx;BDGbvJH>5gxoEY#%_vsisF3OqRWDNC@Qabs z>_vc%0t6OGrfjSCipY-*l_n+{8c>2eA_oRT3Gk(7k zIe)MI!=DxZxNw@*wOPn#9G?%htcy&(I1_B#rXo{yQyjT%lAO#}V(*GnLi#GlMg0-J zvG~D4DK4OU$2~q2DeLzJHkE92e0&3^3Y6synKX;D}Pu6_||cji-lQ|K)ayK z(#Gpyka9!51ZITRVmoBlcsp$wy{y{e!*x9BSk0>PwS}t3B1?2n>U5gHUe8*#T$L&mO*L@)k=*@d%QpWJVB7zzYy#=MOlb+igoef z97GDqN9#)CI1q@!@IF$i&F-sptKJ3i%#-X*Z;AuYepDFClLm!z+}f()IOwbPlkH0`>q*eL1U8HO|4WvHwrO{%xw&Pz?rZ)y%g zor}tkcUhDdj(0wU4GjztBZHL49r>hOmB_%)OLBrV!!~FI!#eQ_Hm0x~5wI%tXoDb$|CJ z?nMe6nBJ=ks%lpc@2f7BN}=R;z8Oh9@&>YP<6QQ#7wWE`cWG?lkRMIoZd`Dh)!*u8WoXb zSWeO{l+VRenVP2#0mPh;mXU<#yB@;wG3_r{BGrI+HTxJVG{)7MZ8v%>4C|$_Qy!M5 zayo3Eq&95)Y5`JI}mty6pFJuC}+dZ({#E?j+jPS zJINE;@w|2Jy5X*ip>h;To`Twq;mCu0e!h9>^>TxSl>XadNPjwC40SYzNbV34UUsv8 zw{kJKCe(SRyI{lrRcvp>=Qfk*80A+Tf%}6&%xnR&b;6a`xL$*ulNNp6*Qt%-1zj}D zTvc^Gf%7xUNDbz)my0%(;?XbtqXNZ5bYOYaC~;VDS+)_3#zFO+}J{WNt05&J0S> zX0D}W(=BH7k`+DVw*swnfJy7Htpht9V6v}jMYRH>yZl@z!E|7IZm3)BZdGm7SBduQ zhI2(jM#&nNz=mLHezcIe+7$fmUtcrsynpPo9?nx!Ky2=|!s?h~dlp}`|G zw~-vUGwaIBZ;Bs#v}fN+fACmKk`9ZX)bsrZ7F>_A{a^et_S0|K^XW+De^2pK^v@}Y zFSbGhIktG@F0C-{Ni0JKZjImg;{EzB+0=wk*2Mm##q<3Jt(x81>T|oe(zD);{yej? zzh&}wU~_MSp2STAxpzN4Se5v2Fy-Az-E8bMB_pZc3`g?!HQuitN@}=po>GXC%b)1=i%Zqa116Nug;`$1NnrLVZMV9r(OvtfogbyF$^6=>t&@-V_6#Sw2?Ej?d;BZ|MU_N^ep zir!AQR^U&dbp|HnB)Ay{C8)HlG;VRM6~B&exLJP2?`oY)Xfh0*@tzhh2M>6=s5UciLDLj<3HO>d3akYV{lsc9fKHCD}xqvEOwu zsTQn|nQvUdEN*XH>L`^t2h07WSx@gAF+P8F30lU4k04XX=9w_Ia+*Yi4|{$1XONqg zx<7DF?#7FZCUf-;=ZJ8GNfHJw4Vfp37cIB=EGQ_p2wqYV8cB7C#dU-mefWaCPB;)T zmm?)8%ke7|P}znL0g$OCZ^6>fA0-a~%?n5Cd>;Pv3Ux&+N%30XDZlf@>cfd>jz+p- zJVIW#ywy5jPu?#B~$=%NQTGo@>#qnrKaM3BTTITyLk8=B&kv(6M_}#?I%ogmw zUb7AEbTZ7c_5El?wT*Q&#adq(Bv8=A4Iof>20r(@JtV2N3nxjKumOGqVVL@$m-y+^$QMHV)<^koC?xve4 zJHMNjR%v(1o^=|##Ry{KnB=+OSEn*Fxd(Z~Rd&|#_gXI=n6K(=zpZA9KOI&H>k-XL zeUtwrdvC-d!~?X#dI(4iU%i@)K&4I5#244@7#P4APLva`y4Qb4UJS0BO#SK}$akBG z4b!CX{GX!!d4)frzX|UD7CD>&y7+pH%q@sNrsYHwbHyOM_4r~m-?KjiNOj*q*DFBz zjCwI~xlGdVJIX9Cn>&%+P)uQ|mih|DGg>K5X3V{(WA;nZe#$s(j^4Y2RncKF$pRj1 zKic%9EXmdA7L&alt2hafzS?~6pvpo_V?ycHHMF?FzKW9Z3y^l|Xx29rN`CH6^GwQeB?KfpRcL+bab7SRatqE%Pl*m$ zVd{X@dWQ_S+WxB(@>%|Qx<7^aKd&ke;{(3;2z}jO6_%c{>$=Kyp|!o^*Dj!Nf`P+n z$tepBdx!jv>v~8{-IJ*T%g?f74goLX8ndEPqL(Tdy&<5C(NpLyzZ>{3&+Pnl{`0bf zk4h(pV_&@GTM3x$X;C#wv6sag9zN7Lxv{sH46n zzkJzcmyes2K_2@QmZg?U7FLVNfV-9C%*Ex(JvnMe!h0soD+U!+ly7-n%?x}-d*jrs z{qvfJo<9OAEDCc~(l(ZJ6eGZy^i*RVfI;$!R*_KQN*bMpkP}2d)-;JWyA#D*5jJrL z%vK%R_F{re^ZBR|JhA#Q#;KC*jCD$Fhn|D4K!G&V1iLAvYgalW^r3xXZ?x50M3VZP zgvC)kD4LuEjeDH=1S)zY<)%{&|5x?($UBoLS_hh<)}zWWCLd>(&5H`Z5ZJlq7p-Zz zA!Fw-9652pKdLs_b~E=bd-?j-BN!sVL*E7q&$&0_OqomR-4tV7t)-Vmg|0i=qjY_m%_Ax9R7C+4n7feq|zjC&`4_Xc_aeMO*C(9Z3+6;UnZlo3WV>M1u@Ge1N>R=|jpFM)+b* zJHtP=ayEBcqXf(ZDLpU~QEemA!U$TkK^oayHD1!Aik2v<(sELDM;X~X`FTT6xCl~I z*dCKW3t6`-l2cmiGsU6DtHm>gK|F*k;!Lt%`E&MtDAu8Y|E(YoWDVXq>~z9U>ftjb zmo;%A7Kg&sCilEV<6FM!w4BGgXhKk9Wc_gfXxMwuOV~O+g@`$ff@oe8v8g|A-4_Hn6$`ltBzlKa(r6YXP(%~3Y zgVp;SvP%ce%L}7DH_HG=U;p=4=zj}2cE=Zby?S>}V$|YbNoiy~@?OwZmqmH?{*X@q zbQ!aoxmk5-|MT1-pdo4|J6Isa4lb;~FfoiRM~IfeyfjcW|wd9|?zU5l?@_4hklN3rb9PCZx0UyGvJ z`hr3>`OMB{`3)27!uyiVpyh7aHDOCBH8k$Bu+LYXD-2ZL5_w1*HgwI?PruTy2xoy? z_nRH;o8shVV4chNB?AQW9oJVi#nzx9P0#zS?Gdsgi&06#eL&Vi`%`f z?ZWy`V!kbA1sLtxCD91O3MBVn%=~&su1Sh|%IArYwT%p~f>v{~ob>5v);gOyp_FHN zu5GIsPMltH{NRp!DfBzw#0YjWKJtk9SGSLm8$`WHP(gNMrJ(OBJ#SsJ=nx=M1UBs# zXk2i^VXtTYY*;7Y47=aXx@df>69I2Ul_3+R*SnFVI4k^@Dr3PK4_`9;{hSU~KV6VZ zhtmVkU(g>|>e2)5#YCGmMjEt9%SXkTx{C2sJpFoE@jUf;LvT35+!%rSkKDH^<(YKv*S5M@(jH#Lq;|k6P8-Yt$nIy&9)`|s%CHEiyj7i zlRU#z-r;{9m($y4z?eWoI|d|&fW`ha1rGLt@~_fHT2cyx<(cKLEa#+*w(DfBh>SNcv$x)l<ea%+erurn${4EvU;t_hgG9+n(9Mw!x5e!sbj^4o#kzlgq#pCEh}G;|AknZ})Zg zd_JERIOls_iS)^(ns0mIqxv+?D_unLt4-;sEQK+NCm)72J6Q3xGjOyJz7wbtY~>-M z=P7#Ex15>_!uI6LX&`lVgA7o49p5}JuWR5%h8(TaEqw-x27Kt$t_Bw4kxuD8Kb%4@ zOa7Qi^_p+j>4J)ZpI_0#D&-oR@X-1}CTr6S!$JhIvDctYm+kTrr*Q(f_Hoa=C5yfw z7F`xR5mPYlJ>O)9Ri~!gD0Oq=+MD3*F-*Sw@RryBAE5YT&6(*JXKGedn`SCqi-l_J zQ@nqu^{mTROckuaj3#np!EJ%h?E9c@Q@t7a)%WoR22`K0S)eCz31NeUqh{8719edI z6z%aIs}j;Zi?n6x`LDo1%9PVk(^V1aeQhfeB7cM^)z$Ms;$}LJrWB#xh4NwBw8pY5 zxPpnKywfxH3$mb+j0Tyw6w!#S~Xu}nB-w$ zS8&Z?qY$;kuYOVpQa8Vay;9NYL$rq<8!zJV&#u&&;bO~;oDYMkET;36;B!p!i*4Rh zb4Kf0gVW1R7ZI`C!tdPsY`jEOx8_Gv)UNc8x`B;~(QYkrL~-OU&bNd6=z9S8pZAe} z4Yj|dHpOuW2oTsM9RfzP6XQ4)T~Qid#%onqlSX;KzTQA!b_Onl9i`)^?2r;L%fLWssdhFH2&lu*c! z?Ax^`;m@Mc=5<#ktX`IWugdo;7xA-NO@6F4m0|aPrNRD6{`S_NEdMIv|NqM}@({rE zSkF~sAYEWlkJCyPy|1{Z&2qVz5EyU(Z2pUWJQ!m4W*qZ5AU{{vA~i1jGqaz&*EYR0 zEjJ9x-vN;p(6ZfsL47#gP8Pdp%GOh`y(CMTtqWku&WpPtw3VO+_6FVa6DmR~a#A#Y&Xc&^6^b86O)w*h;`fw zR%N)UHUnm`NtLpioDSj*h6kdBgU^(V9WC06;FJ{B5U&+W8nq93LG5{tXPfT@+Me@!iN9)5)r{NGm$_%{%q?CHCZf@Yibfn06 z+;WRx*=GC~&5h!oT`kMZ$ZIwLZk`|h^{DVKF;_pdoZROb9~ElvDk=J<8tT0T`&xpV z&P6_2Pp@_N1qsB(hxrV$OsjV2a!-N1%=e00`$ng-FV{F#_6vn&bQCp;l)^V{tTMv# z;hMctGo4bZ@XZKC-r2E!5S)UV2}_xli}SIoUlnOBbUllv7U=+Mu{f-`XHLJIY$bO{ zNMezJL7R7O=X0r9En=CZdg)Z8d`{n-LPVewA6y#jhO)^a^;C4E2&6f_m_6VKT@uE7 zOrbMQPxsqt_b!gdRTpnW$Gt+@)`^c5Kbwfnq#i?&Y)nq~L9o5Ou6a2Xoh%GL{Ak~E z{q?w%4=Bs86Fu~>JPQ6QcTxIKzap}8*%wGfP(fwO21otYnY|~AyMsp!r7G2yTI_sq zg?v1uN{+FFN~zI=)^~}Y+1|X}?kiz7^q4JxN%7Q zzUk<3xuqbdM62($Dw}Iun#&1IT`>K+AQ7}GtN6|9mY{&)Rd&={pP!6MMm zApok>FM!Io%6eq=I6~3M$}=~kvmZGY0TX~j%IBIOZR8CX$F9@v%&uJ%Q}NO)t8WmB1w$X_cnT+5WCu=EkG9 zs_~UuPt>~|{tgt)giKmiH8B0UC1`7hvo4;Km9}RtYD`P+{3m^V(fnW)hV;OdrHQ;H3PeWWui5qA|LrRek&03&P?^*P|_mfb)eORn(*% zTp7WJT+Ba&ljq%sqzR|FA%I!xDbrhS*M~p)>%Cg5;djr&mDfDF?L z4F&)7a&EYN^qGu#G`|);Jyi+Y7S-?6X$Gu7vLU=mP1X$V#^>L{7$vg0pg^9^TDFhM zL@YY$Sc~$)dYX1<^lA{;yx^`ZO}HV~gkkd)dMt@51DQU8$`>2q`@tuq192G;341^yStKl<-#2o=s+Y?LnKiw_-hB+ zhGLqz$uYi&%0g8agx^g@mW5Bo<>_WyzKwvL@6CWQ%b-LUp;S>&yRcf*-e%HD$8G5! zDyf;G#lZqHzub<81J%kkAIb|@yjij*$CefL$8C=emxp}cv*VAXV?_ZhKQBCZwIg(< z@2LW2KoRDe{`##W(c+~N+YiGU94&;5s)8T+ zDu!E$X!S}CT(imsmvJvcsJd+Y5aD^nAst)qEWgf66tO15m&O}Sc|V-&JnO(LzeR$4}7m5uz+HqWml;$fU*mtbnt7<`*TEBUJrK@$dl^j zc!c9GOGLekFrp?$8?V?8BHRr6n%J1o`n_3uS(8r*BFdt?LuNJZNg`KEhdHF5x2KF^umyABI4ud19ObVoXOud#i!ldl@w$gCFh2BiHmho5_^TzJic# zxDeg|1J~89&VX!q-XL|gn-uT}ld^h7gRNzptly68fXz1CAPq&Wt$t>#WA%FX!`2N{ zn{+|ZdxPn?;Lb5MnGSWy#Z#v;)1Tl?8@NMXc!cGLDPAzGEUjz|$x}6ed+Pybez5z| zx{ZYGu)jdP7cb4Z8|qqu%R|wDpzy_AaWm&mo>+%4KT}4GvnK4|3>zFFn-$p1))#bBJw7sGPLL<)QnkCg@hYUbsO21~$jczO9NA~I-Pe?) zKHclfhcgaKjFS_(r2O9Jc74fH8C^>?pq5}A$JrV@Qpy9*_t~mapUekU@9Enj%CjiL z?>>nV>UUCs3FI=CN#7RwikTFBW>~|wG1O*AEW;GT4WPCJkio#jUde-WC9;F7@=s93 z+ZV2=$GpzlEK4F(a7U)fn0E4r#KQND=c?V$UF;5EeV;S8%ya%qUGukf*L?UA{!Rj` zqYOr}!zw+-G%^Yvke^nWj;jw3)Y;L>V0IvyVQ-&aPh|?^2v%ecHtKW4-%06hL9Dyd z2SV1{q&o_}g1}${gC_lvKzwb`tz@1qtmMZ%1oH<;_1*$9Um|R|u8T_nCOv4Tpmd?> z-3YQ@vl!mQv!Zg>`rFcyP`#_w+gGE&eHuG569OW%TLfyUs_ut8lPF@ux*GhELGgDQ z`*WgP>)t^gsfy}de>JwCv6-6yo~ysp{HOWIxDJ)4>ZSHkZEsXn{&$6owyloj`M-!Ugg{8=y ztatuoIBrLz3V2ApFJEc{*;vP~%%KV8d&Q1CC|RQ9h91}LI+pH)Lx7AsMk_jhZr&!W zQUfoJOuNaGHDv<3@qvR0UXy(Ee(}8A<>$6dH((o{AS#uX+210bVG%f)e_?9jN}Y%8 zw?!U~H$uueO=6PK8f|=L;u)y&_FgCz!M~N<|LUEKm51*a6vgMjskF$@;(+jE<%WK@ zrgkug;m5pGns|ESPt)T5Veb;Px5}Vqha{DG@dmqCrSju$ASct*s^b0k~ zb7w@GV2x7+#q~pEC+8+b-C_-(P?sN$JYFGMW=o)7?6@^BT@uQVKQYtgRdy36r)4g@ zatN6F&|1L(+IlLmhx=SGPS$q3-6+HepOn>vuo`jqphyB*&I5}n zLHykwoY=H&GU~E&K0*FQA^~HXumbk3q@~{Uv1|BL+kM&D2yN=26X}Cb*WH8<(W;<= z>Xc2c71f2&B}J83zLtwPE3^>-(dUwoStvXZ$?A+nX25u{7HFreBCjKx-oPO!Pk(>R zHyg1?xh8?Q$=hFaX|Gs`U^<4t^JCWT&fr58GwiQ*X% zXlfI|btES%j%!+ntAR9_FQxyiGGwgDifmR$ZTHWMg-PjrmG3MD?W=`^1pD#U=gkSq zhgkK)DKy{OSUW>GIAfb7)5YkK1me@<|G9?)0QjHoQDQQvEA+Z_n+Rwbyd^qXW?uR0 z#VP$u)vpt6^Kt#75KS=9MwkCWC_WDrMpx#hyTT1n;;`5NdwQP8<-s_UyIECgxug^` zyDDBoN%e1<@urxes0%pHWZhCWKKQ=N{1%H?H&dx2y{|@Jct@TRbc*)*-H#4cQFHsr zT!rCn!Vk3l%z%|o_)RAn#ypLT^Mvb$(+0)YN1liiI@8VHg~L)4U@<`4BBT;oE!wFN zCt7BwQQ2})I&{b-(Q6r5(5Jv3Ya))pMS`Jnpe&f55J31Uk zl~x_y2`yO55AFM4`(ZMr=ZOa?Z--ov%N4g#MjCk$jnL?s&aKulEc_g{jp>-&d19M= zrO#+&ci69){psv-xUT{n!m+NTYAL(Y6b!ti>>F4GSgcw-*{_r*+5uK;7e`BbbvEr)|aX`<9 zau=5f-{+v{=FCAf^0@K=7u)Kwxkm0NCT(B(Cu*K$c&4dZoHhjfeo0IUQ4P720 zF~^_`rzC*WGOo-1B^(+FeVXT**KVKWTVbf>;=JK$l8UIj#2a+Wa4Od4T8Dzhd9`VD zE3NUnDCC5m@nlacY-G^{144DXWD!o9q{JZt*?UQKG+}6>J#)dSv7RZ!y!Lesx%^}g zNpxgJ((Kg$y~wUUmqKUwK1+S*H1AtKO(X8l&)VIJu$0X6Vkb~@6^%m41Q15EcxmZY zKAIY4g;(BOG%4C@Xr*-xAVd;Ud`YPlGT_GC2AMu*^sVj9yRa-(s0Kfw-8}!^<3i@a zHQhHJG9RXeWn&&;KWZuA8<^Gh;u}=>!3J#zgm`i1V598WMQPqzo)8g{PLg5IdBT-9 zcvXVDDHg3f7adKQ*X+fNJb^?xj*_`uybb7&iq8tmKCv;Bm)>{W)$l^sMHFd7xwPc$ zhJ;#<3JkV}goToa@xmLMNzxHBffR!+hj|A}ENTLS*>>N{j>~=IA8I*}5<}szYBtP^ zH+T{U^U$;sE*DfrCXQfLwfu|WTRa8J&~+!~H`)-3g26@WrT4g8Lpez{)6}FsC{Y+i z@hk5ikNw(`KAp}J>O_(lL-pH(E*d6pm)e99lSA=9+ntxeNjc+CKHMf#lXYg=*Onbu zp`B_Ar0l%TssbcGD~i*bUR^=&wr_TQYDu^nIs9S1iDz~ai%F0#a~t2}p3 zO?Na#J{nK2*v;4;Qd{e(dVeha`X6WWUnu`K5w?Fn0e|%e=Ev`(#^geKYGx4uq|#}d z%lDY==J?TRpqykPF~oN%s%cFL!CF7rx#)GyLnd(2@>?ZMIqUsQA08_{$GAJS-`TecrsI|bvAQ8grP%!p=3{nRfsrGJLzbl>sQ z4h*y~uz$Ql2^QSA95LSRBrmmq!uYtgh|Lp2wCYua78St-S_*MjyJDfCkC^mR^5DdB zwZ#TYrcP4w0o=^Rw6ZyYNM!z$9e%98AgZZ>xppRFP?E?7EOyOQ#T%e)=4Q$DQ>im% z20f77k(|&zpRt75)^eVVZ^0L&+UJB}IV3yMf?5U6yMDdT%|b7>S?|aHBKtpj(9Uio zH@kc=ch@T>GxoxcVs*Jraz>Px#v(vL>W}jHN4mvd7jjPD4gKKxT03d;V&{P3{mr+3 zGa&zN4(^r7Y)Xv9$2_m|*5@$5T9Nea(3CdY&~{XrS!JZ=SMZiFa5wU?vSfV;Dppee zd~J572}gdXL>)_+Q8xyT#TMOZy*X2;WL_!(>o51gM61Gfw=U~inwHK5GC|K| zUliaXSzf^1-n?6a?8OYskOrnu@;uQox|ju3^OF0CQ2Bce>lzno9VR$-c>M3nfvpX% zjBJ704CR@YQ8XHrv1^pRj2WFWX&UD+qZ}@EvPwz#3SY5eqMlqijA~eHTnmw09&MK& zCRA$l_UZOdk&e{3zmt{UOp$n@a@iSUjtxCw6DsyqxCvC`$4l1i_Z4>X^s5sqG|~~? zK|KBCd5sRchx-K9Pnd54yEn`m2`wICtRK`}Zi{TI>RP^2)?5{9Q4u~=7||j#KsD^D z$me1!zTcy2%~oEXOAH|pL&6eV8^^Vp%vl1PA943zQQ^ zteV#GT6>|sE%*Klw=|2bsk+}=Ea#|11_;?XW3O%`g%aGKi|)j1uo@R>o2(BxtDH+0 zzcV*yNwFp&2qjXI#Ku@b5nQW5pe`kwn!>Qpf~{dP(JWnysCKaklYqthAJUqnJDCvt zkTl@m(v5inQxoJ^$OJ(pbVQ>J>C(bOXeOO1oz3!aXdNQVCAl;i(HTpBQnq(Q8nce? zshq4`g&N0Y7=_6{-uDKX#<;GP@wLMm{9hq^)`HW{LH7y;C?zWfT z+Gq`$^WMFd`4}tMX|ydIcnwtka#$TNrKvm+SQ$#rqZJt>>Y`E7{5y`Z8Z?abtECV^ zm3e@RX$i5gB5tPsQ+zjXloP*GcW#puFneFE|MnjA5_x;G>JHoBbUU!jq>SIZcw;jL z9hbJTtyvg!qW1Rg9o7;tDcQv=l2tT(;hZNAGAv~*>k#0yQ6bhaQ>jQ5m@gVkFfM9S zxwB!-6q-jQ(m+g1EJ1pLYMO$W@Fb^=E%{j|ds4fR%cRQoL~_*WdK<&mzLvbHkpmwl zw8iIy{yoKT+c>GkqTZHdH-tTMNeMs4%aXPwZdyl(a{Ixs-~RR>yo=F&n0Wg^9Qo97LdWy#{_OQ>}JE^*IM?x6%w-e?7qW>XO-qx{XmGFDFBfErtB z)CQ5=tBvQC>Z|Xu2^r`|hC~Z$nfHvp-8Oj>*8P+}HQ8Cyw9{u~197*qIk31ayZo93 zOh$av&wxko7P}JU^p{$Xhy8~234XeKF&L*ZKUCtH*VnJhiIdWky{;ogdB_>G`~tTN zmbN_aq|2o8>}qdk!=$uO>#=|<0G@B4i+3LmhL%_~u0F7ny;Ko=gWBWI{H9O5! zAkyTL9|xJJdUWc@x~GrHF*~D_mozvTXIxIq?F-3n4LkO(cRFv%xv)w|m=DL>3pOy% z9Aj)3{hy{|cm8Tl8OHwpti>x)B?c#t`PUoi+hws>46&2O4ej#=00gpc+H|gCx z!Y^suQ4fYtZi@S3(CyFS4MI>(>;xIW-0{}aFpU0piLA)UK*~oKzP%B zM(6&vPG&PiLh#f@-sXb&Px`}e2i|0wU*U&Ht`-?8cdHnRrjT*Oy-xi=dwRWcCy``I zhHDmsTOK>X8LoG>c6bw$^1Ql9U}XA_vnhm%XvQYEu8%x#Z`7E_*@iRwYM^Qz6=N#~ zimAq1^Hg0pl0aiI5q%k#afSEUrz>v4Pk7J$XvskqILk37mZxhb<~-C}$gKmTnik5N zmgmrgH-sxM?{!8YEL zIIqBw_JsXL^WB@Xk4N;G0xJ2juEuqr!I?-DDW~dY=eB0CDBi89IjmN-*Sxy1MJ6(| zP-LW#ih&3(gO?g-Z0)Seckn4^eR`a^nt45AN3b3` z!w5ar$2Xl1NTG=Cei^F{T=HE)I)A`p2r)i!_owN)o}jP3;`_@TaJI{3!M-!l+XeS(wkBh6y}TDnb~{J zIp4YV?Cb1r&X3Ix)_ZZS^0L-?*Lv3T-1oiGI@#N4d=NeezqF96cT!CUFIA&1E1h8X zs<$OiA_L~&;sS60(6it?abmfVvwd~h^ld=>yVHB$bt{V%>>a)!B+tIb@10iTG6XOx z$RUa5H|>4cm>X8{bfm2zeTvEtETe4Mt`bD@lU5g{()x zGF~`&#%UsVl5>WvRJrn&b4JuDpxU}-uV{Vb`du3p>yAiwCVlWxy$P`0yEWJ;ox}=V zS0$nQu*q?wg<0tuh+@BrG8|$CRchRSV87*L7U=Q*4yH{4>9{VZP>UcpxYRndqN^gb zvm&X8;u)7w?+lxCrmM+1k6K=VyG8nJdRw1<(hvgFfQ4zv%fj<-o$~s4_jOp2!(2(A z9AAyTBS3V>Fm8;((d}4;u#073*5b9^sfHh%ofWi?m8^J7I9Zq)$fo~J=?MvE0)agjRZpNT`}wZX)uX+$ z;_-+2*8?w;vw1c(SN%>Zo+HIqRnPeGb+$P(AzIot0y<3l2mJwGW*G?%LRlsO!*o{> zQG9Wvd{}JJ#ai>b7Ge^oW|ml)7pPH3rQgZ=Wsf+ZEjv-fCI~-Ls_elpTu&8mN+cAN zjU@Y0lPMGh(In%7>^6oAZVrtscAUrJGciDy;DNsLjluY2+U(OUlpe}s1S4Cs+@ih~ z8b0PQY(q0783TqOHhgMG6}Lvbx%lOtPx@4(UpI)~aI(6U%~ki3tY!QK@H8 z!}5r2c~LFo&bWgB>fJbeM@2e(%EH$C7{HgcCpKkrMAFwU< zC1<(Y8()gt)(2uLqc>afV&5O+sqnh$(5A#ZmCs}q*58Dg3UNEiRPkOc5&$ll=2F!4 zvY(JbRN)2*th)!&i$Je{bW0zF3~77DWU1XB-rSCPSM`q3`8GrCp0zA|G>5r+wxO!6 z9?=y~l=_JYsUUe6A7{6#_A8s*1Ef{ZwR{@(-kl6UvbzEqfsLVvJ|O6X_DWZltq-Ux z-OU@)U4A3|>651iwR`B#Z?6@y!Z2i>s)82vAq5I^P?MzOS@qNMH2K?7@ zL-vM-HzGHBL%Kt{1HE03^ZapI$U8oU-ER3jsf|8&JqkDVzh^U#yP^1NjlXtenXOXWte&K)W`gPFc|F8XJH|zOL9aIMA0I9H|vcSJ^c?-zobA40sKkwGXF5K#X?Z3Xo z#{Leq*XMn|^b1#G&Ee2i;0$N+8VF6aAylC2mn+`)8+t6wr)-N4LAQ&e zU%bAg$_+T$U!ilLYwPsh+fjR0u9YKl2FKTG`IM!I&u|Ri0tgap7f>MH@bdYq0pn?E z4r==R=F9M=q7<9!E+Jm%0jiqYf%ArzG`;Lz9wq*IbM||Wt@w-UXu;<{IGdlU5(lX! z903o(Mne`7QN=m z>qxXWoy;k{hu7}hFuF6)TJ3K({2uAJ(%E4yHud;j)p;z927CBn8p-emgTaW(Yh?`)wz%0FJ~{cq%i*y%KwD!Xp?b@l zgNy2$9j$1m47SxRS)I#gj{BX8l~4x|!_HbB$}H2BamZ2L@g_*AVjy;`tX;FIw9pWv zA1VyK%;Fw}`HhFZ=z!2y>~W1rI}dy9qnex>ml`4{c%UKh;L3=lv!r>o89{CD@dYg0 zYd}-s?5KyQU%dgNL1qwwwOLABnaxt`GL4K@GH&QlxhkA1VpK%Wyh)%c<<~cEUYeuW zTSr6eWR|V+zgWnAxRDXRSQ&qj`zp;ur3udLjVWdSVJ2wZgGx zk$NkGF{AhY9NOX2#{7-L@KCq`=eUo&eq3~~vSaVon(XtA^mAO16OR84-t^{=M~uGz zRQ6x^kx2POju$Wadba{rqCn{d= z-K;0QEKel8p*zXY^%A=qEW3&oYif@%DUo8m(zyCo#h*vhJS-grEi$x#j>_hFwsOZ$ zzEBJ~*5cI^nB{(3gN3cky%3gIS;1f~`{n!P*MT^PQIYQOZ%187mwD5PY2A-z(9439 zo*Jory?6Q$yI4*wgp;b4dTqgJkC%fmj!Ms%b18PR+S+T8upJJ0VZqf9^)bs+=w+O- zdH#47AF00pT|14S*6-1D9lLPz=_XB)YfE;^aU1SQ>|BE5&-s_H%a{zgc9@j6>m%ow zW8*B4#fB~iQz!R67bD|}hGxBV{iMwE3&aDyl~k)Gh>e;whU4r`xq4IcHXvj1StBEEq@z7_bhQ~OIn(6&o5#~;Qf zTxxG7k`MAeB)%ojCUKpKfc^#M^p?SE;=%fpHIv^%LucYYhTWRf+V9!P(W;ixF$7z@ z*cLay!Rs_c9@mf8Jn||6N_7@g48!~tv7YuJ+chi**o9$lIl7(eD7ITyK5%LMG#&}|6H@Ze(5o@DoX2=@m^GWB;Ao;W3abMxaINS=(m3aH zBwYh++jnwc_1m^e&54yDep&#z9@ytGgEL7&%4?U-I&W}df#(;`L@Z1U0d!N+62p?(&s?$gnJk79EJVm8HLwV?=lfI3Hkf zVY*KEWy4q}jim1+f<7Ni&k3=+@H zKQKI38oVm{;G@;+SMAbpMxB5IyEO}f!pDYaSO?hHbYd)0kaLk2R0RYbbI!f9lrfB$ z%k$8rfUWmUhU~3hm0OZaGPh}^bWPO+x{~C3Q^|m(rG2-HAv;kiMDj65ML)6=F=HKA z?BKm4m0>OZdX>@q?V+Flv`^@_DV$>R+wKs2K~RtU1^f)tI3E@j~fe$j@+*kzpW$C>pqvqPYZ*be(MKa8tPX z_2-1A61x!=-vHj#Zzwp?N)|Ua6^z;#suAOZa^l`mWB?=tLE8oT5!To_Mwodif?{US z*>I@=#9Mm)^{>9^`j%icp2JZ!VuS|M8pjKVJ%#k%Ni|42cRemiSzTs_ZPdL8_?&D% zHjv2>%TFN_OPd@6U@JLXy?Yss$Tjn=*gJYf9w&QOLJl+Q z86~ze;qX>+q&G?iE1cWkmQ@r2Q%vLIsQAuko!($HMPr(wdpw_$GjYb)yPgmYBeTpQ zVTI{Tmqy#Q@8o+HmO2hi;s6CER4O5f4)iO?D2rHov3LX^43vafRX1u{7A3wqZzY*D z+$Q4f$h~gTDHv+hL}EP2fvM}|a!%{-c-r(rf?Qu$r8WQjIl05-lv=p|hsHSp3OR%S zC6lt5_4x4P<=LPIpOc4N$8jk;+iNR*OFj@%_QU&??dk&#WHg=U0#w);N zTzqF5hLGVVtDPt%!M@oe#qX-wTD;WQxNZ#~szqV+*<$CY7e?Tx zS+Qv5ot?LG3!FgLCN0_(CAxc?oD!1%erciC&(1E(#JOT_W03x_;r@ur41l*qETMaJ zZ5)@qPV+zlggbM@Rd%vThEWH>3=aP~g@XqP=~5G~U9i+YJP@7wcK^DZsYV|L>Qz14 z+ob(?m=vaFq#V5o-oJD&1eOt?RAPO!?DUp9DGsb4*Wtu_`-ztH{leqA=|GSd9$;vQ zU780v&gc3B8EHJ9ya#DtzIZqqw2o4K=%cHIEY5GLG6r#Wqq(LeqzZI(q3m%!SJdGP zE?dvz6h*W7r&L+br9wHI`q#H(uQNitFvil_-5mwlRenRA+b+I74V~}j72y{PQ#Edj zTR$AF!;nH7ZYmVo)}IfHEG4iI?d?)zVv57PhAO3Y@nb*!StFE_|BLM3J+=zwzhT); z&%iTAxI(@Dh59}f`C{}F-soZXC*IKaIoc}{1=ZnktHHnfAigm8{it^6?A}lns0?>r zv=VC*p;2uiBxq=FGHYl*WIw!Y)mu}Gx)~z5=W@`o=nN2Go}MY&E=l3WOxt6n~;b)`RFLekp_Rl#SMV4jBhc(h3Ex(hmKwZSq}iML4Kv*vEv`iDGZC zCZALcTca0@WN$mPy&}cAhp34gX-@H0RcUD};)kJ?#Y8OHnVMz?Q%qss*uH56hi6?t z`JA8ApEIxtD!H5Oi&b~5=!sw&t z_HIDzQ9n!g`b@1udRv~DUsIVTjP}zM<=d_iWAP zc&4^mmKwA?P7aSi@xEOHOyo?*FO6=|Q${s#Ny*O7 z+AIxXtuc$~6$laO@OdV3`i9ds^y^Elel{SdT$6;{kNYkDf*a-UmBwu}9Ug>at`#w~ z@~nUTS1ORQemq6@+$qx&y!q1nQcCY_9ZrEg`$5qVaa6*p8#1@DC;GCOx!G9zRo>QF zqUC-1i?L1#HDfiarG*8TQq*iR5}nh?2-O%EWbAB94(ViSLLRIu>aPEDi7_xmAWh=b<^_30U$~d}` z)_Fla)=yR1JM@RL(FmW07ghS3>BmO`zbhODK6i?zpjyjB-7EY6^jkEt5r@}tc)$FH z2ur(Nc4B(4{ao)4iS;X7U;pzT|9{6b{x|x4{;>TfbBNvpc$v7RF8;DBSqIXs4c#2G z4EhsN@kwiDMkL25=Z$NGPrPTQ^iWiV^eBceKYsJ0b85BEeGfizML-4sj+dp}>Pqy)bsX^4*0(<)ZNp*$w;h~LLj}lnWolsh zLHxi+)5M50jxA66a;7Nb*Ty-)!BZZ8YggfWn!F%yKlddgZ471BFGXg@#$W~ZBiEmS zy#3X53YD!Rm*)p2R9eoR1$w(?$V=B2?Mqxs8N>N<$TOaNy>5d8!*9Etvyk^R@zedr zXLziQ#naF2S>dY<_*(FXrZI|jzB)Z)Ysg|mnc}?zyQenYL+tXrYLQIXlgXJqE1OUi zoDLKE?3^#X|3PbIzdv^jh{=d@psUW;GE@OD>SWa`Ozp&Cy- zbwb$RzER!*@MJVF1r0qylI?eL%U3opx2`Ml@;%)aTs18ZLCw`=TTs*Z)UB7SPn|y3 z<>3S7mr$%if|5LZ=H=H64d0b=RJ)o)U!1Ufdt_k};M0aUX*TIwyfw0VVLS2%{0v#` z>AaNcx^-zg6+$Cobq3U@oN$4r?$0#p*_4S^mV!z$cOW0)=w!FPfb?y4_R8BO+8fAl zAaNUl@hO+jubLCnP#nO>_8rgnuOB0HrAL*MTwa#hT)~*_rtd45ryN+Q0MWCSZ(^W} z&;|iLFohlfY>9l=SrIadQwtq}QW@-W_BKV&EiLCvNq*x)&-1R5N^)fv6(UQnr1f7) zAc4CCx+@v#T{aM;^8kpht{{Et>Bxk15L!C0L4aY;ve;ng+9C7IHT>-{jVYJjkGf~C zSRn(WL+lv_&}(HMkDpBbk?X-fzgYa9^DjqZJ$#`Ezk9TBn>20t3l|-P1If&ZX{o(a zwZUx$vR7g9x-u*JhqE7CYdBY7b+m#+w^dx$BmVrHQC8)cl&B8wRStyGcDE~QZ$>A} zJwLbA`bO>WElm`vz7xMKHuf>$wdPjj`xQvVlVd)SqeehSDGnRmm%#ZYKa2Cxi}X}n zZ&|ej4edHJ9fMgT)g9&1P%)mwrI4~ilhlpy;^<9(Tdjz(Z`IQz#0!u)A64mhpTYRd z74AH{W0(kp(ps?;g*3cDP3e-o zm8@_9@m~9|4l|NNHZ9slUdtfdF-*P;TohAq^#+S4(LME=TDpXc^WutU=Auo)}*)MS*h|V5Ud}1Q{Mb~xBpXmkqKwaJt|6wF(U7G`0 z9YZzchi-P@xt6ZqxXZk<=@E7>X{!xW1)p21WVcCP+3@Z@fjKy}?nQ`lMf1T!px^J?Mx2#T} zvKB5TSZpEN_zNAiRN*vzf!?mpGFrqucK72c4>eRKay<5?doqRF&x1X=7Z=cJ zs5{R}?==}T(%uD7?O@?i-T2DQE{*t8L`?w&Ku&VhEDjXnS|iLoPs%MBbJifYto(TB z=jwlYJpZ2YuU_n~sF2ZzJF0c5OYjy&nZ$9?4sm~2Ic>exs3tsivS6%y@)678#hb4E z9u8ZZTXPNf{fA7DqhRac2z$?rEWn717JUbR6W72H{UaR3|Fc<-y>!AfwIJ_n6_U+9 z8lh{OL|&*Kp_t^T+tmavX1xd+8>5)<#yqvn$Y%O zhA6STxj)c3Bhpt3K=9_#gZ5wBA0pNSVHJ;D{@X+)aC>MF-d=U1$!h*xo^^F26!pzf1;&OKaevD(t3q88v#kbAx$ z6sMgWZn8ocT5=n_lx(Dme^{e@4aHDsp-HRELs@Pin)yf{SeOH#erW2>P?_lMI&9h&GS4S?rx8Lm#jJx?Q+{gDO`$X3oZkO z!=&99Ydi1cZ;J1|*t2=jh}coM#ba^dn#z^iPMQxWLvb(EG>N%Y#@^{BIp$A5hVOER zFK^_<+kJC;Ao!X`3&)m~^9&8CPzB%J()RQUa&gXW?k~RHFnO<$emz-k4CHrg;OL`3 zbhmIW&I#3k_g*?c$G5g?!;?A3UQ2ln?1_m^6h+my(aw8H&%6{2lqi4#9Q+;oC46lj zeo5OAZ|_{#?Es14K+YW{uCd*fj^b0<8H>v5D9_YuQ@F9%W8){DXk5=eC#@8nN0Mb) zG8>dWY_J2AHt;`9*KAzB$0mn2tx8m+R@y&bq8uK=L`q{!(gZ|S0Zehc)EoxFfT;(l z%&HeyR27jS1%)6y%DMf`FiL?>O*=0U=5G~{Uea%pR$5`tfQZj@=?o!%czaWhc^rP0 zEwiHtrJj&A%^=btOLIi=%0P31Q~{QOl=o)kZX~_jKo>s>&JlSrA^Cj99CFTCH!Hp8 z(YSbJ&W0&qEZKRIT<5|kM$poL7!~_){plzP7uUagfj8FwQ3WoZ7VY$R)c!xH1w2>$ zfm>u`b)MzNZVQMkVI&PZ7ohuGMoUJQ-^Df;fD@3$g&G0ypRh0*vjAgk3U6^9R+yf* z;oN}XJmZ5XO=xnf(VIMi9(k(VJmlrk`5stVzeqrIi4{bwcXbC`+gL2j43rGd@vVKN zIgQe`ZKSkS%w6s&7`9m?5c$->40VL^_YiuQa?0hqq3>+(6>KVKUiSfoS83p8iKN_^ zu>uNRFZr%WSG!8mwN-Hs0*i1we6F-Ja?2m>P~epujYS$FKnt|_2AMvk(fy1xZWoSb zK-#toDX+SDFA;L{qsICL9fNLx)ickgTL2^|!(qkJ{ZzPo`6gLY&VeQ$t?VbZ$FxH} zIJL52lQhH}KVO&>bN~;-I52G-Ms|xkM3ps5J!@weab7#ITprz{D#C`mlt>11^a=r zGFsDoOmB_Qn-VxhL?uT~Q-Yw4G^#Yo8dAUf?1!X_oZHKD9I6b#U_hP>C05d4^TH8IlLglFKZUbF6TQmlawUoBWzp%XFq*E(5A*nfE1L}g% zD$UApvxM2PqDeV=u`YU=yD4^m879X6%5)}8ptB>tAS=%!zw*|jj@MC!J<$A1oi37( zFc2jExmv>BuJb{&#WiOXAnZF0WYnyzz`S7uuj%un+W zPUoKS@IvoOCou%zPly`egTqCxj_Xly1I;6c=}dQi`HIwWO`8V2w1{wJQ$qB{?$qR7F(doe&7dGF}^Ojrl(K|A*>$vMk;gE-JtZ7!$$(-oaNL6LeBF)I%ge-3O8}Oh< z7|6i(^bP2Jj-x*i_Pomc1gncU^mhvWAU*WM`o0w4ZE&xrVsS7kegSU)G&_!YH4-YE z9iqdDXYxOY4gXpb*i|_)E=3%xA1kHRMJZ30U$|JEMpRUL>7ZJ=o_^KOawICm`NPmy z<$Pq%HWE=8)s&dgxUm>%U#GD%7rj#N6fCXY!)Z8tKLtsc)+1>u++&b^w-17-<}06bY6PunZaWnEht zCfl5DMdm%AYRH~ydt1C2E?rDAtZqm6$rr$oK21%9F&s5nPw{j|)#G)fW``(UmSYVo z*-?V{0fZIWNsR)R*e;6sH+P$Z%9x2m)I$~x?+MS)S&@2~kPd=d~tLrNs_)X{VaSoZd*P?LPbVzN; zC1CW;L|)^wHu?_sd#a$G)dy&ybL%l&$=vHMeux3o5^?LxrpC%?o+#~_F=H9V0~8Lp zEbg`)TLUUHXxlrm!j>%p4%mHpx6&epm5!YKnEPr>0`1fy=iqa;Gqawhoo<{`mtSmw zU2ITh|H5T^MlUe*UYZ!eMlU^Bwl91fU)I~R1))zI%n2_G)k?)Q!c*?dr!Ka64lm#5 zGWzFNRFRfdC_8lq){(x|Wz$8FkFA;JepEef`&QwjYHiUg*n96AN?qnWRFyBEw1^>G z58t{Akyr1J$3aW5%{c?H0Fdn7O_pnFn?j)gWE7K7p8%0SbDM zx0gdV#}#?3`fJ+Uz7qS}pKbjAkl`Yj@^o%SE`?ew4G g|I=OfRr)O1?6q`wLu7`sS>o_x&X94@t$!K)FDL*%_5c6? literal 0 HcmV?d00001 diff --git a/docs/images/web-ui/environment.png b/docs/images/web-ui/environment.png new file mode 100644 index 0000000000000000000000000000000000000000..9cf79339fae86fdef5b45e300f230c04310982b0 GIT binary patch literal 37595 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 I<74mt1M^QIxc~qF literal 0 HcmV?d00001 diff --git a/docs/images/web-ui/help-compatibility.png b/docs/images/web-ui/help-compatibility.png new file mode 100644 index 0000000000000000000000000000000000000000..0533bbcafca2863529f942f907ea793c15a0f4f2 GIT binary patch literal 53093 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

ksp-I=9@9>BZ59 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 WX*c;(UQYFgU*_I_)hqPJ=zjorfP3!% literal 0 HcmV?d00001 diff --git a/docs/images/web-ui/request-parameters.png b/docs/images/web-ui/request-parameters.png new file mode 100644 index 0000000000000000000000000000000000000000..e78bd9198a49dbfc911a04ecb01a1f4a597a44fb GIT binary patch literal 35987 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.json` +and are merged onto pack operations at load time (shared across series). + +```bash +make request-bodies-generate # rebuild from in-repo api-ref catalog +make request-bodies-import # overlay Tier-1 services from openstack-openapi +make request-bodies-coverage # assert every write op has a schema +``` + +Tier-1 OpenAPI import covers nova, neutron, keystone, glance, cinder, octavia, +swift, and placement. Other services use the curated catalog generator. + ## Backing up lab state PostgreSQL is the system of record. Use `pg_dump` / volume snapshots. diff --git a/docs/ru/api-versions.md b/docs/ru/api-versions.md index dbe916b..57b0033 100644 --- a/docs/ru/api-versions.md +++ b/docs/ru/api-versions.md @@ -33,7 +33,7 @@ curl -X POST http://127.0.0.1:5000/ui/api/openstack/contracts/activate \ -d '{"series":"dalmatian"}' ``` -Или Web UI → Environment → OpenStack API pack → Activate. +Или Web UI → API catalog → выбрать серию → **Apply as runtime**. Hot-swap перемонтирует schema-маршруты (`remount_schema_services`) без пересборки образа. diff --git a/docs/ru/api_coverage.md b/docs/ru/api_coverage.md index 3ef80fd..70bdde8 100644 --- a/docs/ru/api_coverage.md +++ b/docs/ru/api_coverage.md @@ -19,7 +19,7 @@ | Yoga | 6 | 1060 | Более старые серии опускают пути, добавленные позже (`tools/os_api_inventory/series_deltas.py`), -и используют более низкие потолки microversion. Примените пакет в Environment drawer для hot-swap. +и используют более низкие потолки microversion. Примените пакет в API catalog drawer для hot-swap. Surface-complete означает, что каждая операция пакета смонтирована schema-движком (специализированные роутеры по-прежнему выигрывают на пересекающихся stateful-путях). diff --git a/docs/ru/configuration.md b/docs/ru/configuration.md index c9e5240..2673714 100644 --- a/docs/ru/configuration.md +++ b/docs/ru/configuration.md @@ -53,7 +53,4 @@ ## Переопределения Web UI -Environment drawer → **OpenStack API pack**: - -- Активация серии (hot remount) -- Переопределение microversion по сервисам +API catalog drawer: карточка серии → microversion в карточке → **Apply as runtime**. diff --git a/docs/ru/examples/troubleshooting-clients.md b/docs/ru/examples/troubleshooting-clients.md index f3acf69..231a885 100644 --- a/docs/ru/examples/troubleshooting-clients.md +++ b/docs/ru/examples/troubleshooting-clients.md @@ -24,4 +24,4 @@ make seed-demo ## Microversion отклонён -Понизьте запрошенную compute microversion или сбросьте переопределения в Web UI. +Понизьте запрошенную compute microversion или примените более раннюю серию в API catalog. diff --git a/docs/ru/getting-started.md b/docs/ru/getting-started.md index 40b3768..6a45732 100644 --- a/docs/ru/getting-started.md +++ b/docs/ru/getting-started.md @@ -95,8 +95,12 @@ curl -sH "X-Auth-Token: $TOKEN" http://127.0.0.1:9696/v2.0/networks ## 6. Откройте Web UI -[http://localhost:5000/](http://localhost:5000/) — консоль, Environment drawer -(серия OpenStack pack + microversions), Data drawer (загрузка/выгрузка demo cloud). +[http://localhost:5000/](http://localhost:5000/) — консоль, API catalog +(серия OpenStack pack), Data drawer (загрузка/выгрузка demo cloud). + +![Web-консоль](../images/web-ui/console-main.png) + +Обзор drawers и параметров запроса: [Web UI](web-ui.md). ## 7. Smoke / conformance diff --git a/docs/ru/operations.md b/docs/ru/operations.md index 1d30e71..b7fcd77 100644 --- a/docs/ru/operations.md +++ b/docs/ru/operations.md @@ -69,6 +69,21 @@ PYTHONPATH=tools python3 tools/os_api_inventory/generate_packs.py PYTHONPATH=tools python3 tools/os_api_inventory/coverage_report.py ``` +## Схемы Request body (консоль) + +Для `POST`/`PUT`/`PATCH` консоль показывает полные JSON Schema поля. +Схемы лежат в `contracts/openstack/request_bodies/.json` и +подмешиваются к операциям пака при загрузке (общие для всех серий). + +```bash +make request-bodies-generate # пересобрать из api-ref каталога +make request-bodies-import # наложить Tier-1 из openstack-openapi +make request-bodies-coverage # проверить, что у всех write-op есть схема +``` + +Tier-1: nova, neutron, keystone, glance, cinder, octavia, swift, placement. +Остальные сервисы — курируемый генератор каталога. + ## Резервное копирование состояния лаборатории PostgreSQL — источник истины. Используйте `pg_dump` / снимки volume. diff --git a/docs/ru/web-ui.md b/docs/ru/web-ui.md index de51d7b..a102761 100644 --- a/docs/ru/web-ui.md +++ b/docs/ru/web-ui.md @@ -10,15 +10,70 @@ | `/docs` | OpenAPI (simulator) | | `/ui/api/…` | UI JSON APIs | +![Главный экран консоли](../images/web-ui/console-main.png) + +## Endpoints drawer + +Обзор поверхности пака по сервисам (например Adjutant). У каждого path — +поддерживаемые HTTP-методы. + +![Endpoints drawer](../images/web-ui/endpoints.png) + +## Отправка запросов + +Выберите verb + path и нажмите **Send**. Успешные ответы попадают в +**RESPONSE**. + +![Запрос и ответ](../images/web-ui/request-response.png) + +### Request parameters + +Для `POST` / `PUT` / `PATCH` в **Request parameters** показаны поля схемы +(dotted-имена для вложенных OpenStack envelope), типы, optional и примеры. +JSON Request body собирается из этих полей. + +![Request parameters](../images/web-ui/request-parameters.png) + +## Authentication drawer + +Вход через лабораторный Keystone (`admin` / `secret`, проекты вроде `admin` +или `demo`). Можно вставить готовый `X-Auth-Token`. + +![Authentication drawer](../images/web-ui/authentication.png) + ## Environment drawer -- **OpenStack API pack** — список серий, активация пакета, переопределения microversion -- Apply немедленно перемонтирует schema-маршруты +- Runtime / catalog / активная **microversion**, плюс живой инвентарь облака + (servers, nets, volumes…) + +![Environment drawer](../images/web-ui/environment.png) + +## API catalog drawer + +- Выбор карточки серии (`os · yoga` …), microversion в карточке, затем + **Apply as runtime** (выбор сохраняется после перезагрузки) + +![API catalog drawer](../images/web-ui/api-catalog.png) ## Data drawer -- **Load demo cloud** — `POST /ui/api/demo/load` → `seed_openstack_demo` -- **Unload / minimal** — сброс к minimal seed +- **Load demo cloud** — кластеры small / large / big +- **Reset to minimal** — минимальный lab seed + +![Data drawer](../images/web-ui/data.png) + +## History drawer + +Недавние вызовы консоли: method, URL и status. + +![History drawer](../images/web-ui/history.png) + +## Help · Compatibility + +Покрытие поверхности пака для активной серии (declared / implemented, +сервисы, смесь verb). + +![Help compatibility](../images/web-ui/help-compatibility.png) ## Брендинг diff --git a/docs/web-ui.md b/docs/web-ui.md index 110bbef..51f951a 100644 --- a/docs/web-ui.md +++ b/docs/web-ui.md @@ -10,15 +10,70 @@ Console is served from the Keystone/UI port (**5000** on the gateway). | `/docs` | OpenAPI (simulator) | | `/ui/api/…` | UI JSON APIs | +![Console main view](images/web-ui/console-main.png) + +## Endpoints drawer + +Browse the pack surface by service (for example Adjutant). Each path shows the +supported verbs. + +![Endpoints drawer](images/web-ui/endpoints.png) + +## Sending requests + +Pick a verb + path, then **Send**. Successful calls show status and JSON in +**RESPONSE**. + +![Request and response](images/web-ui/request-response.png) + +### Request parameters + +For `POST` / `PUT` / `PATCH`, **Request parameters** lists schema fields +(dotted names for nested OpenStack envelopes) with types, optional flags, and +example values. The Request body JSON is built from those fields. + +![Request parameters](images/web-ui/request-parameters.png) + +## Authentication drawer + +Sign in with lab Keystone users (`admin` / `secret`, projects such as `admin` +or `demo`). Optional paste of an existing `X-Auth-Token`. + +![Authentication drawer](images/web-ui/authentication.png) + ## Environment drawer -- **OpenStack API pack** — list series, activate pack, set microversion overrides -- Apply remounts schema routes immediately +- Runtime / catalog / active **microversion**, plus live cloud inventory + (servers, nets, volumes…) + +![Environment drawer](images/web-ui/environment.png) + +## API catalog drawer + +- Select an OpenStack series card (`os · yoga` …), choose a **microversion** on + the card, then **Apply as runtime** (choice is remembered across reloads) + +![API catalog drawer](images/web-ui/api-catalog.png) ## Data drawer -- **Load demo cloud** — `POST /ui/api/demo/load` → `seed_openstack_demo` -- **Unload / minimal** — reset to minimal seed +- **Load demo cloud** — sized clusters (small / large / big) +- **Reset to minimal** — minimal lab seed + +![Data drawer](images/web-ui/data.png) + +## History drawer + +Recent console calls with method, URL, and status. + +![History drawer](images/web-ui/history.png) + +## Help · Compatibility + +Pack surface coverage for the active series (declared / implemented ops, +services, verb mix). + +![Help compatibility](images/web-ui/help-compatibility.png) ## Branding diff --git a/pulumi-tests/README.md b/pulumi-tests/README.md index ee5b7ee..25fac60 100644 --- a/pulumi-tests/README.md +++ b/pulumi-tests/README.md @@ -2,8 +2,16 @@ # Pulumi OpenStack tests (`pulumi-tests`) -Coverage lab that **maximises `pulumi_openstack`**, then probes remaining pack -operations over HTTP with **non-empty body checks** and **full method coverage**. +**100% coverage = HTTP contract matrix** (every series-pack operation + synthetic +`HEAD` on each GET path), not the number of `pulumi_openstack` resources. + +Layer A (gate): pack ops × yoga→dalmatian on **real service ports** +([docs/ports.md](../docs/ports.md)), microversions when the pack declares them, +non-empty success bodies for entity/collection envelopes, `probed == declared + HEAD`, +`critical=0`. + +Layer B (smoke): `pulumi_openstack` lifecycle — maximises provider surface; does +**not** define 100%. ## Quick start @@ -14,8 +22,8 @@ make pulumi-tests # or cd pulumi-tests make up && make build -make test-pulumi-smoke # fast: collection GET only -make test-pulumi # full: all pack ops × all HTTP methods +make test-pulumi-smoke # fast: collection GET + HEAD +make test-pulumi # full Layer A matrix × all series open reports/pulumi-report.html ``` @@ -23,28 +31,33 @@ open reports/pulumi-report.html | Target | Mode | What is exercised | |---|---|---| -| `make test-pulumi-smoke` | Smoke (`TEST_SMOKE=1`) | `pulumi_openstack` + **collection GET** nonempty checks (fast) | -| `make pulumi-tests` / `make test-pulumi` | Full lifecycle | `pulumi_openstack` + **every pack operation × GET/POST/PUT/PATCH/DELETE**, completeness assert (`total == pack size`), nonempty bodies on succeeded responses (DELETE/204 may be empty) | +| `make test-pulumi-smoke` | Smoke (`TEST_SMOKE=1`) | Layer B + **collection GET + HEAD** nonempty checks (fast) | +| `make pulumi-tests` / `make test-pulumi` | Full matrix | Layer B + **every pack op × GET/POST/PUT/PATCH/DELETE** + **synthetic HEAD per GET**, completeness (`total == declared + HEAD`), nonempty bodies on succeeded responses (DELETE/204/HEAD may be empty) | -Pack sizes (ops): yoga ~1060 → antelope ~1108 → caracal ~1196 → **dalmatian ~1357**. +Pack sizes (ops, without HEAD): yoga ~1060 → antelope ~1108 → caracal ~1196 → **dalmatian ~1357**. ## What runs (per series: yoga → dalmatian) 1. Activate OpenStack series pack -2. **`pulumi up`** `programs/os_coverage` via Automation API — creates/looks up - resources with `pulumi_openstack` (identity, images, compute, networking, - blockstorage, objectstorage, dns, orchestration) -3. Assert **every stack export is non-empty** -4. HTTP-probe pack operations (smoke: collection GET; full: all methods lifecycle) -5. Assert coverage completeness + nonempty JSON on successful body responses +2. **`pulumi up`** `programs/os_coverage` (Layer B — provider smoke) +3. Assert stack exports are non-empty (Layer B) +4. HTTP contract matrix on **catalog ports** (Keystone token → Nova `:8774`, Neutron `:9696`, …) +5. Assert `probed == declared + HEAD`, `critical=0`, nonempty JSON on success bodies 6. `pulumi destroy` -7. Write `pulumi-report.html` + `pulumi-junit.xml` +7. Write `pulumi-report.html` + `pulumi-junit.xml` + verb histogram (incl. HEAD) ## Reports | File | Contents | |---|---| -| `reports/pulumi-report.html` | HTML summary (expected vs actual + method breakdown) | +| `reports/pulumi-report.html` | HTML summary (expected vs actual + method breakdown incl. HEAD) | | `reports/pulumi-junit.xml` | JUnit | | `reports/series-.json` | Per-series pulumi + HTTP details | -| `reports/summary.json` | Aggregates | +| `reports/summary.json` | Aggregates (`http_total` / `http_expected`, `http_critical`) | + +## Approximate (not blockers) + +Nova create may skip a long `BUILD` window; many Nova actions only flip server +status; Placement mutations and Octavia listeners/pools are largely schema / +`os_api_objects`; Neutron `router:external` is derived from the shared `public` +network name. diff --git a/pulumi-tests/README.ru.md b/pulumi-tests/README.ru.md index b007f1f..8dbfa17 100644 --- a/pulumi-tests/README.ru.md +++ b/pulumi-tests/README.ru.md @@ -2,8 +2,16 @@ # Тесты Pulumi OpenStack (`pulumi-tests`) -Лаборатория покрытия: **максимально `pulumi_openstack`**, затем HTTP-probe -остальных pack-операций с проверкой **непустых тел** и **полным покрытием методов**. +**100% покрытия = HTTP contract matrix** (каждая операция series-pack + +синтетический `HEAD` на каждый GET path), а не число ресурсов `pulumi_openstack`. + +Layer A (гейт): pack ops × yoga→dalmatian на **реальных портах сервисов** +([docs/ports.md](../docs/ports.md) / [docs/ru/ports.md](../docs/ru/ports.md)), +microversions где pack их задаёт, nonempty тела успешных ответов, +`probed == declared + HEAD`, `critical=0`. + +Layer B (smoke): lifecycle `pulumi_openstack` — расширяет provider surface; **не** +определяет 100%. ## Быстрый старт @@ -14,8 +22,8 @@ make pulumi-tests # или cd pulumi-tests make up && make build -make test-pulumi-smoke # быстро: только collection GET -make test-pulumi # полный: все ручки пака × все HTTP-методы +make test-pulumi-smoke # быстро: collection GET + HEAD +make test-pulumi # полная Layer A matrix × все серии open reports/pulumi-report.html ``` @@ -23,28 +31,32 @@ open reports/pulumi-report.html | Цель | Режим | Что проверяется | |---|---|---| -| `make test-pulumi-smoke` | Smoke (`TEST_SMOKE=1`) | `pulumi_openstack` + **collection GET** с nonempty (быстро) | -| `make pulumi-tests` / `make test-pulumi` | Полный lifecycle | `pulumi_openstack` + **все операции пака × GET/POST/PUT/PATCH/DELETE**, assert полноты (`total == размер пака`), nonempty тел успешных ответов (DELETE/204 могут быть пустыми) | +| `make test-pulumi-smoke` | Smoke (`TEST_SMOKE=1`) | Layer B + **collection GET + HEAD** с nonempty (быстро) | +| `make pulumi-tests` / `make test-pulumi` | Полная matrix | Layer B + **все ops пака × GET/POST/PUT/PATCH/DELETE** + **синтетический HEAD на каждый GET**, полнота (`total == declared + HEAD`), nonempty тел (DELETE/204/HEAD могут быть пустыми) | -Размеры паков (ops): yoga ~1060 → antelope ~1108 → caracal ~1196 → **dalmatian ~1357**. +Размеры паков (ops без HEAD): yoga ~1060 → antelope ~1108 → caracal ~1196 → **dalmatian ~1357**. ## Что выполняется (на каждую серию yoga → dalmatian) 1. Активация pack серии OpenStack -2. **`pulumi up`** программы `programs/os_coverage` через Automation API — - ресурсы через `pulumi_openstack` (identity, images, compute, networking, - blockstorage, objectstorage, dns, orchestration) -3. Проверка: **каждый export стека непустой** -4. HTTP-probe pack-операций (smoke: collection GET; полный: lifecycle всех методов) -5. Assert полноты покрытия + nonempty JSON у успешных ответов с телом +2. **`pulumi up`** `programs/os_coverage` (Layer B — provider smoke) +3. Проверка непустых export стека (Layer B) +4. HTTP contract matrix на **портах каталога** (токен Keystone → Nova `:8774`, Neutron `:9696`, …) +5. Assert `probed == declared + HEAD`, `critical=0`, nonempty JSON 6. `pulumi destroy` -7. Отчёты `pulumi-report.html` + `pulumi-junit.xml` +7. Отчёты HTML/JUnit + histogram глаголов (включая HEAD) ## Отчёты | Файл | Содержимое | |---|---| -| `reports/pulumi-report.html` | HTML-сводка (expected vs actual + breakdown методов) | +| `reports/pulumi-report.html` | HTML-сводка (expected vs actual + breakdown методов вкл. HEAD) | | `reports/pulumi-junit.xml` | JUnit | | `reports/series-.json` | Детали pulumi + HTTP по серии | -| `reports/summary.json` | Агрегаты | +| `reports/summary.json` | Агрегаты (`http_total` / `http_expected`, `http_critical`) | + +## Approximate (не блокеры) + +Nova create может пропускать длинное окно `BUILD`; многие Nova actions только +меняют status; Placement mutations и Octavia listeners/pools в основном schema / +`os_api_objects`; Neutron `router:external` выводится из shared сети `public`. diff --git a/pulumi-tests/docker-compose.yml b/pulumi-tests/docker-compose.yml index c436623..6685c95 100644 --- a/pulumi-tests/docker-compose.yml +++ b/pulumi-tests/docker-compose.yml @@ -132,8 +132,8 @@ services: - ../docker/gateway/openstack-ports.conf:/etc/nginx/conf.d/default.conf:ro - ../docker/tls/server.crt:/etc/nginx/tls/server.crt:ro - ../docker/tls/server.key:/etc/nginx/tls/server.key:ro - ports: - - "127.0.0.1:15000:5000" + # No host port publish — pulumi-runner reaches api-gateway on the lab + # network (avoids colliding with `make up-local` on :15000). pulumi-runner: build: diff --git a/pulumi-tests/pulumi/_lib/http_coverage.py b/pulumi-tests/pulumi/_lib/http_coverage.py index 1477bfa..677d1a5 100644 --- a/pulumi-tests/pulumi/_lib/http_coverage.py +++ b/pulumi-tests/pulumi/_lib/http_coverage.py @@ -9,19 +9,28 @@ from typing import Any from _lib.validate import payload_nonempty -# Methods that normally return a JSON body on success (DELETE / 204 may be empty). +# Methods that normally return a JSON body on success (DELETE / 204 / HEAD may be empty). _BODY_METHODS = frozenset({"GET", "POST", "PUT", "PATCH"}) +_VERB_ORDER = ("GET", "POST", "PUT", "PATCH", "DELETE", "HEAD") -def _expected_ops(packs: dict[str, Any], *, collections_only: bool) -> int: +def _expected_ops(packs: dict[str, Any], *, collections_only: bool) -> tuple[int, int, int]: + """Return (expected_total, declared_pack_ops, synthetic_head_ops).""" + + from app.openstack.surface_probe import count_declared_ops + if not collections_only: - return sum(len(p.operations) for p in packs.values()) - total = 0 + declared, heads = count_declared_ops(packs) + return declared + heads, declared, heads + + declared = 0 + heads = 0 for pack in packs.values(): for op in pack.operations: if op.method == "GET" and "{" not in op.path: - total += 1 - return total + declared += 1 + heads += 1 + return declared + heads, declared, heads def _methods_breakdown(results: list[Any]) -> dict[str, int]: @@ -30,16 +39,16 @@ def _methods_breakdown(results: list[Any]) -> dict[str, int]: method = getattr(r, "method", None) or (r.get("method") if isinstance(r, dict) else None) if method: counts[str(method).upper()] += 1 - return {m: counts.get(m, 0) for m in ("GET", "POST", "PUT", "PATCH", "DELETE")} + return {m: counts.get(m, 0) for m in _VERB_ORDER} def _nonempty_from_lifecycle(report: Any) -> list[dict[str, Any]]: - """Check succeeded lifecycle bodies (skip DELETE / 204 / 202 / no-body).""" + """Check succeeded lifecycle bodies (skip DELETE / HEAD / 204 / 202 / no-body).""" failures: list[dict[str, Any]] = [] for r in report.results: if not r.succeeded: continue - if r.method == "DELETE" or r.status in {202, 204}: + if r.method in {"DELETE", "HEAD"} or r.status in {202, 204}: continue if r.method not in _BODY_METHODS: continue @@ -74,6 +83,8 @@ def _nonempty_smoke_collections( fill_path, http_request, issue_token, + microversion_headers, + service_base_url, _seed_context, ) @@ -96,8 +107,14 @@ def _nonempty_smoke_collections( "account": project_id, }, ) - url = f"{host.rstrip('/')}{path}" - status, payload = http_request(op.method, url, token=token, service=pack.name) + url = f"{service_base_url(host, pack.name, port=pack.port)}{path}" + status, payload = http_request( + op.method, + url, + token=token, + service=pack.name, + headers=microversion_headers(pack, op) or None, + ) if status not in SUCCESS or status == 204: continue if not payload_nonempty(payload, collection_key=op.collection_key, method=op.method): @@ -134,7 +151,7 @@ def probe_pack_operations( ) packs = load_series_pack(series) - expected_ops = _expected_ops(packs, collections_only=collections_only) + expected_ops, declared_ops, head_ops = _expected_ops(packs, collections_only=collections_only) methods = _methods_breakdown(report.results) coverage_incomplete = len(report.results) != expected_ops @@ -168,23 +185,31 @@ def probe_pack_operations( "method": "*", "path": "*", "status": 0, - "detail": f"coverage_incomplete: total={len(report.results)} expected_ops={expected_ops}", + "detail": ( + f"coverage_incomplete: total={len(report.results)} " + f"expected_ops={expected_ops} " + f"(declared={declared_ops} + HEAD={head_ops})" + ), "ok": False, "nonempty": True, } ) + critical = len(coverage_failures) + len(probe_failures) + len(nonempty_failures) return { "series": series, "host": host, "mode": report.mode, "total": len(report.results), "expected_ops": expected_ops, + "declared_ops": declared_ops, + "head_ops": head_ops, "coverage_incomplete": coverage_incomplete, "methods": methods, "ok_count": len(report.results) - len(report.failures), "fail_count": len(report.failures) + (1 if coverage_incomplete else 0), "nonempty_fail_count": len(nonempty_failures), + "critical": critical, "results": [ { "service": r.service, diff --git a/pulumi-tests/pulumi/_lib/report_html.py b/pulumi-tests/pulumi/_lib/report_html.py index c1fb007..e679a64 100644 --- a/pulumi-tests/pulumi/_lib/report_html.py +++ b/pulumi-tests/pulumi/_lib/report_html.py @@ -12,7 +12,9 @@ SERIES_ORDER = ("yoga", "antelope", "caracal", "dalmatian") def _methods_line(methods: dict[str, Any]) -> str: - return " ".join(f"{m}={methods.get(m, 0)}" for m in ("GET", "POST", "PUT", "PATCH", "DELETE")) + return " ".join( + f"{m}={methods.get(m, 0)}" for m in ("GET", "POST", "PUT", "PATCH", "DELETE", "HEAD") + ) def render_html(summary: dict[str, Any], series_reports: list[dict[str, Any]]) -> str: @@ -33,8 +35,8 @@ def render_html(summary: dict[str, Any], series_reports: list[dict[str, Any]]) -

http ok={http.get("ok_count", 0)} - http fail={http.get("fail_count", 0)} nonempty_fail={http.get("nonempty_fail_count", 0)} - http total={http.get("total", 0)}/{http.get("expected_ops", "?")} + http fail={http.get("fail_count", 0)} nonempty_fail={http.get("nonempty_fail_count", 0)} critical={http.get("critical", 0)} + http total={http.get("total", 0)}/{http.get("expected_ops", "?")} (declared={http.get("declared_ops", "?")}+HEAD={http.get("head_ops", "?")})
methods: {html.escape(_methods_line(http.get("methods") or {}))} @@ -92,7 +94,7 @@ def render_html(summary: dict[str, Any], series_reports: list[dict[str, Any]]) -

Pulumi OpenStack API coverage

-

Generated {html.escape(generated)} · pulumi_openstack primary + HTTP pack probe with non-empty checks

+

Generated {html.escape(generated)} · 100% = HTTP contract matrix (pack ops + synthetic HEAD), not pulumi_openstack resource count. Layer B provider lifecycle is smoke only.

diff --git a/pulumi-tests/pulumi/run_suite.py b/pulumi-tests/pulumi/run_suite.py index bc9d232..06fd8aa 100644 --- a/pulumi-tests/pulumi/run_suite.py +++ b/pulumi-tests/pulumi/run_suite.py @@ -233,10 +233,20 @@ def main() -> int: "total": 0, "expected_ops": 0, "coverage_incomplete": False, - "methods": {"GET": 0, "POST": 0, "PUT": 0, "PATCH": 0, "DELETE": 0}, + "methods": { + "GET": 0, + "POST": 0, + "PUT": 0, + "PATCH": 0, + "DELETE": 0, + "HEAD": 0, + }, "ok_count": 0, "fail_count": 0, "nonempty_fail_count": 0, + "critical": 0, + "declared_ops": 0, + "head_ops": 0, "results": [], "failures": [], } @@ -245,12 +255,15 @@ def main() -> int: http = run_http_coverage(series, collections_only=collections_only) methods = http.get("methods") or {} methods_s = " ".join( - f"{m}={methods.get(m, 0)}" for m in ("GET", "POST", "PUT", "PATCH", "DELETE") + f"{m}={methods.get(m, 0)}" + for m in ("GET", "POST", "PUT", "PATCH", "DELETE", "HEAD") ) print( f"{series}: http ok={http.get('ok_count')} fail={http.get('fail_count')} " f"nonempty_fail={http.get('nonempty_fail_count')} " + f"critical={http.get('critical')} " f"total={http.get('total')}/{http.get('expected_ops')} " + f"(declared={http.get('declared_ops')}+HEAD={http.get('head_ops')}) " f"coverage_incomplete={http.get('coverage_incomplete')} " f"methods[{methods_s}]" ) @@ -273,10 +286,16 @@ def main() -> int: int(r["http"].get("fail_count", 0)) + int(r["http"].get("nonempty_fail_count", 0)) for r in series_reports ), + "http_critical": sum(int(r["http"].get("critical", 0)) for r in series_reports), + "http_declared": sum(int(r["http"].get("declared_ops", 0)) for r in series_reports), + "http_head": sum(int(r["http"].get("head_ops", 0)) for r in series_reports), + "http_total": sum(int(r["http"].get("total", 0)) for r in series_reports), + "http_expected": sum(int(r["http"].get("expected_ops", 0)) for r in series_reports), "coverage_incomplete": sum( 1 for r in series_reports if r["http"].get("coverage_incomplete") ), "collections_only": collections_only, + "definition": "100% = HTTP contract matrix (pack ops + synthetic HEAD), not pulumi_openstack resource count", } html_path = write_html(REPORT_DIR, summary, series_reports) (REPORT_DIR / "summary.json").write_text(json.dumps(summary, indent=2) + "\n", encoding="utf-8") @@ -285,7 +304,10 @@ def main() -> int: print(json.dumps(summary, indent=2)) failed = ( - summary["pulumi_fail"] > 0 or summary["http_fail"] > 0 or summary["coverage_incomplete"] > 0 + summary["pulumi_fail"] > 0 + or summary["http_fail"] > 0 + or summary["coverage_incomplete"] > 0 + or summary["http_critical"] > 0 ) return 1 if failed else 0 diff --git a/pulumi-tests/reports/pulumi-junit.xml b/pulumi-tests/reports/pulumi-junit.xml index 1702477..e9c04b6 100644 --- a/pulumi-tests/reports/pulumi-junit.xml +++ b/pulumi-tests/reports/pulumi-junit.xml @@ -1,2 +1,2 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/pulumi-tests/reports/pulumi-report.html b/pulumi-tests/reports/pulumi-report.html index e1cd0b7..19ec9bc 100644 --- a/pulumi-tests/reports/pulumi-report.html +++ b/pulumi-tests/reports/pulumi-report.html @@ -21,14 +21,14 @@

Pulumi OpenStack API coverage

-

Generated 2026-07-17 13:12:06 UTC · pulumi_openstack primary + HTTP pack probe with non-empty checks

+

Generated 2026-07-18 03:50:29 UTC · 100% = HTTP contract matrix (pack ops + synthetic HEAD), not pulumi_openstack resource count. Layer B provider lifecycle is smoke only.

4 series
4 pulumi stacks ok
0 pulumi failures
-
4721 http ops ok
+
6514 http ops ok
0 http / nonempty fails

Series

@@ -41,12 +41,12 @@ empty exports=0
- http ok=1060 - http fail=0 nonempty_fail=0 - http total=1060/1060 + http ok=1464 + http fail=0 nonempty_fail=0 critical=0 + http total=1464/1464 (declared=1060+HEAD=404)
- methods: GET=404 POST=168 PUT=171 PATCH=155 DELETE=162 + methods: GET=404 POST=168 PUT=171 PATCH=155 DELETE=162 HEAD=404
@@ -58,12 +58,12 @@ empty exports=0
- http ok=1108 - http fail=0 nonempty_fail=0 - http total=1108/1108 + http ok=1530 + http fail=0 nonempty_fail=0 critical=0 + http total=1530/1530 (declared=1108+HEAD=422)
- methods: GET=422 POST=177 PUT=178 PATCH=162 DELETE=169 + methods: GET=422 POST=177 PUT=178 PATCH=162 DELETE=169 HEAD=422
@@ -75,12 +75,12 @@ empty exports=0
- http ok=1196 - http fail=0 nonempty_fail=0 - http total=1196/1196 + http ok=1649 + http fail=0 nonempty_fail=0 critical=0 + http total=1649/1649 (declared=1196+HEAD=453)
- methods: GET=453 POST=192 PUT=192 PATCH=176 DELETE=183 + methods: GET=453 POST=192 PUT=192 PATCH=176 DELETE=183 HEAD=453
@@ -92,12 +92,12 @@ empty exports=0
- http ok=1357 - http fail=0 nonempty_fail=0 - http total=1357/1357 + http ok=1871 + http fail=0 nonempty_fail=0 critical=0 + http total=1871/1871 (declared=1357+HEAD=514)
- methods: GET=514 POST=217 PUT=217 PATCH=201 DELETE=208 + methods: GET=514 POST=217 PUT=217 PATCH=201 DELETE=208 HEAD=514
diff --git a/pulumi-tests/reports/series-antelope.json b/pulumi-tests/reports/series-antelope.json index 9111928..4dc7858 100644 --- a/pulumi-tests/reports/series-antelope.json +++ b/pulumi-tests/reports/series-antelope.json @@ -2,35 +2,35 @@ "series": "antelope", "pulumi": { "series": "antelope", - "elapsed_s": 11.41, + "elapsed_s": 15.55, "error": null, "outputs": { "auth_project_id": "8924e279-51c7-582e-b6f5-8e41b33e7581", "auth_user_id": "b76edf4a-1452-5436-a411-a099ada1f7cb", - "created_project_id": "dc000843-bb4b-4451-a8de-bc91f1edb8d4", - "created_user_id": "3cb3feef-0a5c-4992-8951-3915e060c80b", + "created_project_id": "636996ce-af86-4a46-803a-d00392971169", + "created_user_id": "efe09170-ca36-4285-b3a4-025a3002a480", "demo_net_id": "a245268b-88ba-597a-b8db-017810782f98", "flavor_id": "1", "image_id": "c58b99c0-2d7b-5842-b260-b617db2f7803", "image_name": "cirros", - "interface_id": "1502c2fe-f1f6-4ce9-a0ed-943c900fbc3f/545e94f4-7636-4fe4-98ed-9a0bbbb2d7fc", - "keypair_name": "pu-antelope-eec96b-kp", - "network_id": "c715ca0e-56ce-4c39-bb26-0e6dbc606787", - "port_id": "545e94f4-7636-4fe4-98ed-9a0bbbb2d7fc", + "interface_id": "94e2bacd-4643-4aa7-9f52-fdf83a65d689/ade9bfa2-3134-45dc-ab23-d622e4e68e5c", + "keypair_name": "pu-antelope-bf6ba4-kp", + "network_id": "13af915a-7f32-4b03-bba3-cef4e3be9ac9", + "port_id": "ade9bfa2-3134-45dc-ab23-d622e4e68e5c", "project_name": "demo", - "router_id": "935e7f9f-ec23-41d8-be15-b37b88864149", - "router_iface_id": "ecc8b9cd-4f6d-4cc6-88c5-abfdd991a2a6", - "secgroup_id": "dd190f34-3e78-428a-8f4a-548f502c004f", - "secgroup_rule_id": "abd96942-163f-4fae-b014-f00c660bb9d3", + "router_id": "e64d25a6-43f6-40d8-a3fe-b80c6768603a", + "router_iface_id": "ba04886a-aff6-464a-ba16-dd067ce6e1dd", + "secgroup_id": "b45ef742-cd84-45f3-92a6-6379facbc10b", + "secgroup_rule_id": "ed4ab26d-9d9d-4a08-a6db-261ed034e01d", "series": "antelope", - "server_group_id": "3d17f6b9-9830-468a-9cc3-7769a4fed8fc", - "server_id": "1502c2fe-f1f6-4ce9-a0ed-943c900fbc3f", - "server_name": "pu-antelope-eec96b-vm", - "subnet_id": "ffb6c546-006b-4c63-a5f9-d57065da3819", - "tag": "pu-antelope-eec96b", - "volume2_id": "b77bff66-11c7-48c9-87ce-4ec6bec736f8", - "volume_attach_id": "1502c2fe-f1f6-4ce9-a0ed-943c900fbc3f/186f5370-7072-4e43-8f34-e5460505b665", - "volume_id": "1a76b15e-0456-4840-9eb3-229d7ef4f742" + "server_group_id": "fbea9f9d-2dc6-485d-ab96-e143525fb781", + "server_id": "94e2bacd-4643-4aa7-9f52-fdf83a65d689", + "server_name": "pu-antelope-bf6ba4-vm", + "subnet_id": "46f11ac5-cfe7-4a70-ab29-6ee9e000f8ea", + "tag": "pu-antelope-bf6ba4", + "volume2_id": "e6d48c67-e79c-4db1-b3a6-8b62a3540a2a", + "volume_attach_id": "94e2bacd-4643-4aa7-9f52-fdf83a65d689/7066859a-cf37-4baf-b969-4b2cea586d34", + "volume_id": "a3e4eedd-dc55-4999-b1a9-714f8dfa2c28" }, "empty_exports": [], "ok": true @@ -39,19 +39,23 @@ "series": "antelope", "host": "http://api-gateway:5000", "mode": "lifecycle", - "total": 1108, - "expected_ops": 1108, + "total": 1530, + "expected_ops": 1530, + "declared_ops": 1108, + "head_ops": 422, "coverage_incomplete": false, "methods": { "GET": 422, "POST": 177, "PUT": 178, "PATCH": 162, - "DELETE": 169 + "DELETE": 169, + "HEAD": 422 }, - "ok_count": 1108, + "ok_count": 1530, "fail_count": 0, "nonempty_fail_count": 0, + "critical": 0, "results": [ { "service": "adjutant", @@ -12240,6 +12244,4648 @@ "mode": "lifecycle", "ok": true, "succeeded": true + }, + { + "service": "adjutant", + "method": "HEAD", + "path": "/v1/tasks", + "operation_id": "task_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "adjutant", + "method": "HEAD", + "path": "/v1/tasks/{id}", + "operation_id": "task_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "adjutant", + "method": "HEAD", + "path": "/v1/tokens", + "operation_id": "token_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "adjutant", + "method": "HEAD", + "path": "/v1/tokens/{id}", + "operation_id": "token_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "adjutant", + "method": "HEAD", + "path": "/v1/notifications", + "operation_id": "notification_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "adjutant", + "method": "HEAD", + "path": "/v1/notifications/{id}", + "operation_id": "notification_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "adjutant", + "method": "HEAD", + "path": "/v1/status", + "operation_id": "status_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "adjutant", + "method": "HEAD", + "path": "/v1/status/{id}", + "operation_id": "status_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "aodh", + "method": "HEAD", + "path": "/v2", + "operation_id": "aodh_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "aodh", + "method": "HEAD", + "path": "/v2/alarms", + "operation_id": "alarm_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "aodh", + "method": "HEAD", + "path": "/v2/alarms/{id}", + "operation_id": "alarm_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "aodh", + "method": "HEAD", + "path": "/v2/alarms/{alarm_id}/history", + "operation_id": "alarm_history_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "aodh", + "method": "HEAD", + "path": "/v2/alarms/{alarm_id}/history/{id}", + "operation_id": "alarm_history_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "aodh", + "method": "HEAD", + "path": "/v2/quotas", + "operation_id": "quota_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "aodh", + "method": "HEAD", + "path": "/v2/quotas/{id}", + "operation_id": "quota_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "barbican", + "method": "HEAD", + "path": "/v1", + "operation_id": "barbican_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "barbican", + "method": "HEAD", + "path": "/v1/secrets", + "operation_id": "secret_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "barbican", + "method": "HEAD", + "path": "/v1/secrets/{id}", + "operation_id": "secret_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "barbican", + "method": "HEAD", + "path": "/v1/containers", + "operation_id": "container_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "barbican", + "method": "HEAD", + "path": "/v1/containers/{id}", + "operation_id": "container_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "barbican", + "method": "HEAD", + "path": "/v1/orders", + "operation_id": "order_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "barbican", + "method": "HEAD", + "path": "/v1/orders/{id}", + "operation_id": "order_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "barbican", + "method": "HEAD", + "path": "/v1/secret-stores", + "operation_id": "secret_store_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "barbican", + "method": "HEAD", + "path": "/v1/secret-stores/{id}", + "operation_id": "secret_store_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "blazar", + "method": "HEAD", + "path": "/v1", + "operation_id": "blazar_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "blazar", + "method": "HEAD", + "path": "/leases", + "operation_id": "lease_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "blazar", + "method": "HEAD", + "path": "/leases/{id}", + "operation_id": "lease_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "blazar", + "method": "HEAD", + "path": "/os-hosts", + "operation_id": "host_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "blazar", + "method": "HEAD", + "path": "/os-hosts/{id}", + "operation_id": "host_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "blazar", + "method": "HEAD", + "path": "/floatingips", + "operation_id": "floatingip_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "blazar", + "method": "HEAD", + "path": "/floatingips/{id}", + "operation_id": "floatingip_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3", + "operation_id": "cinder_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/volumes", + "operation_id": "volume_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/volumes/{id}", + "operation_id": "volume_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/volumes/detail", + "operation_id": "volume_list_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/snapshots", + "operation_id": "snapshot_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/snapshots/{id}", + "operation_id": "snapshot_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/snapshots/detail", + "operation_id": "snapshot_list_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/backups", + "operation_id": "backup_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/backups/{id}", + "operation_id": "backup_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/backups/detail", + "operation_id": "backup_list_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/types", + "operation_id": "volume_type_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/types/{id}", + "operation_id": "volume_type_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/types/detail", + "operation_id": "volume_type_list_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/qos-specs", + "operation_id": "qos_spec_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/qos-specs/{id}", + "operation_id": "qos_spec_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/qos-specs/detail", + "operation_id": "qos_spec_list_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/groups", + "operation_id": "group_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/groups/{id}", + "operation_id": "group_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/groups/detail", + "operation_id": "group_list_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/group_snapshots", + "operation_id": "group_snapshot_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/group_snapshots/{id}", + "operation_id": "group_snapshot_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/group_snapshots/detail", + "operation_id": "group_snapshot_list_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/consistencygroups", + "operation_id": "consistencygroup_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/consistencygroups/{id}", + "operation_id": "consistencygroup_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/consistencygroups/detail", + "operation_id": "consistencygroup_list_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/attachments", + "operation_id": "attachment_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/attachments/{id}", + "operation_id": "attachment_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/attachments/detail", + "operation_id": "attachment_list_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/volume-transfers", + "operation_id": "transfer_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/volume-transfers/{id}", + "operation_id": "transfer_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/volume-transfers/detail", + "operation_id": "transfer_list_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/messages", + "operation_id": "message_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/messages/{id}", + "operation_id": "message_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/messages/detail", + "operation_id": "message_list_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/clusters", + "operation_id": "cluster_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/clusters/{id}", + "operation_id": "cluster_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/clusters/detail", + "operation_id": "cluster_list_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/{project_id}/volumes", + "operation_id": "volume_tenant_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/{project_id}/volumes/{id}", + "operation_id": "volume_tenant_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/{project_id}/volumes/detail", + "operation_id": "volume_tenant_list_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/os-services", + "operation_id": "cinder_services__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/limits", + "operation_id": "cinder_limits__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/os-quota-sets/{id}", + "operation_id": "cinder_quota_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/resource_filters", + "operation_id": "cinder_resource_filters__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/scheduler-stats/get_pools", + "operation_id": "cinder_pools__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cloudkitty", + "method": "HEAD", + "path": "/v1", + "operation_id": "cloudkitty_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cloudkitty", + "method": "HEAD", + "path": "/v1/rating/module_config/hashmap/services", + "operation_id": "hashmap_service_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cloudkitty", + "method": "HEAD", + "path": "/v1/rating/module_config/hashmap/services/{id}", + "operation_id": "hashmap_service_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cloudkitty", + "method": "HEAD", + "path": "/v1/rating/module_config/hashmap/fields", + "operation_id": "hashmap_field_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cloudkitty", + "method": "HEAD", + "path": "/v1/rating/module_config/hashmap/fields/{id}", + "operation_id": "hashmap_field_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cloudkitty", + "method": "HEAD", + "path": "/v1/report/summary", + "operation_id": "report_summary_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cloudkitty", + "method": "HEAD", + "path": "/v1/report/summary/{id}", + "operation_id": "report_summary_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cloudkitty", + "method": "HEAD", + "path": "/v1/storage/dataframes", + "operation_id": "dataframes_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cloudkitty", + "method": "HEAD", + "path": "/v1/storage/dataframes/{id}", + "operation_id": "dataframes_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "designate", + "method": "HEAD", + "path": "/v2", + "operation_id": "designate_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "designate", + "method": "HEAD", + "path": "/v2/zones", + "operation_id": "zone_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "designate", + "method": "HEAD", + "path": "/v2/zones/{id}", + "operation_id": "zone_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "designate", + "method": "HEAD", + "path": "/v2/pools", + "operation_id": "pool_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "designate", + "method": "HEAD", + "path": "/v2/pools/{id}", + "operation_id": "pool_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "designate", + "method": "HEAD", + "path": "/v2/service_statuses", + "operation_id": "service_status_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "designate", + "method": "HEAD", + "path": "/v2/service_statuses/{id}", + "operation_id": "service_status_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "freezer", + "method": "HEAD", + "path": "/v2", + "operation_id": "freezer_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "freezer", + "method": "HEAD", + "path": "/v2/jobs", + "operation_id": "job_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "freezer", + "method": "HEAD", + "path": "/v2/jobs/{id}", + "operation_id": "job_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "freezer", + "method": "HEAD", + "path": "/v2/clients", + "operation_id": "client_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "freezer", + "method": "HEAD", + "path": "/v2/clients/{id}", + "operation_id": "client_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "freezer", + "method": "HEAD", + "path": "/v2/backups", + "operation_id": "backup_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "freezer", + "method": "HEAD", + "path": "/v2/backups/{id}", + "operation_id": "backup_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "freezer", + "method": "HEAD", + "path": "/v2/sessions", + "operation_id": "session_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "freezer", + "method": "HEAD", + "path": "/v2/sessions/{id}", + "operation_id": "session_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "freezer", + "method": "HEAD", + "path": "/v2/actions", + "operation_id": "action_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "freezer", + "method": "HEAD", + "path": "/v2/actions/{id}", + "operation_id": "action_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "glance", + "method": "HEAD", + "path": "/v2", + "operation_id": "glance_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "glance", + "method": "HEAD", + "path": "/v2/images", + "operation_id": "image_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "glance", + "method": "HEAD", + "path": "/v2/images/{id}", + "operation_id": "image_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "glance", + "method": "HEAD", + "path": "/v2/images/{id}/file", + "operation_id": "image_download__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "glance", + "method": "HEAD", + "path": "/v2/metadefs/namespaces", + "operation_id": "metadef_namespace_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "glance", + "method": "HEAD", + "path": "/v2/metadefs/namespaces/{id}", + "operation_id": "metadef_namespace_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "glance", + "method": "HEAD", + "path": "/v2/tasks", + "operation_id": "task_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "glance", + "method": "HEAD", + "path": "/v2/tasks/{id}", + "operation_id": "task_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "glance", + "method": "HEAD", + "path": "/v2/schemas/image", + "operation_id": "glance_schema_image__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "glance", + "method": "HEAD", + "path": "/v2/schemas/images", + "operation_id": "glance_schema_images__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "glance", + "method": "HEAD", + "path": "/v2/images/{image_id}/members", + "operation_id": "image_member_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "glance", + "method": "HEAD", + "path": "/v2/images/{image_id}/members/{id}", + "operation_id": "image_member_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "glance", + "method": "HEAD", + "path": "/v2/images/{image_id}/tags", + "operation_id": "image_tag_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "glance", + "method": "HEAD", + "path": "/v2/images/{image_id}/tags/{id}", + "operation_id": "image_tag_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "heat", + "method": "HEAD", + "path": "/v1", + "operation_id": "heat_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "heat", + "method": "HEAD", + "path": "/v1/{tenant_id}/stacks", + "operation_id": "stack_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "heat", + "method": "HEAD", + "path": "/v1/{tenant_id}/stacks/{id}", + "operation_id": "stack_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "heat", + "method": "HEAD", + "path": "/v1/{tenant_id}/stacks/detail", + "operation_id": "stack_list_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "heat", + "method": "HEAD", + "path": "/v1/{tenant_id}/stacks/{stack_name}/{stack_id}", + "operation_id": "stack_show_by_name__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "heat", + "method": "HEAD", + "path": "/v1/{tenant_id}/stacks/{stack_name}/{stack_id}/resources", + "operation_id": "stack_resource_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "heat", + "method": "HEAD", + "path": "/v1/{tenant_id}/stacks/{stack_name}/{stack_id}/resources/{id}", + "operation_id": "stack_resource_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "heat", + "method": "HEAD", + "path": "/v1/{tenant_id}/stacks/{stack_name}/{stack_id}/events", + "operation_id": "stack_event_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "heat", + "method": "HEAD", + "path": "/v1/{tenant_id}/stacks/{stack_name}/{stack_id}/events/{id}", + "operation_id": "stack_event_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "heat", + "method": "HEAD", + "path": "/v1/{tenant_id}/software_configs", + "operation_id": "software_config_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "heat", + "method": "HEAD", + "path": "/v1/{tenant_id}/software_configs/{id}", + "operation_id": "software_config_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "heat", + "method": "HEAD", + "path": "/v1/{tenant_id}/software_deployments", + "operation_id": "software_deployment_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "heat", + "method": "HEAD", + "path": "/v1/{tenant_id}/software_deployments/{id}", + "operation_id": "software_deployment_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "heat", + "method": "HEAD", + "path": "/v1/{tenant_id}/resource_types", + "operation_id": "heat_resource_types__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "heat", + "method": "HEAD", + "path": "/v1/{tenant_id}/services", + "operation_id": "heat_services__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "heat-cfn", + "method": "HEAD", + "path": "/stacks", + "operation_id": "stack_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "heat-cfn", + "method": "HEAD", + "path": "/stacks/{id}", + "operation_id": "stack_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "heat-cfn", + "method": "HEAD", + "path": "/v1", + "operation_id": "heat_cfn_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1", + "operation_id": "ironic_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/nodes", + "operation_id": "node_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/nodes/{id}", + "operation_id": "node_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/ports", + "operation_id": "port_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/ports/{id}", + "operation_id": "port_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/portgroups", + "operation_id": "portgroup_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/portgroups/{id}", + "operation_id": "portgroup_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/chassis", + "operation_id": "chassis_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/chassis/{id}", + "operation_id": "chassis_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/allocations", + "operation_id": "allocation_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/allocations/{id}", + "operation_id": "allocation_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/deploy_templates", + "operation_id": "deploy_template_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/deploy_templates/{id}", + "operation_id": "deploy_template_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/volume/connectors", + "operation_id": "volume_connector_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/volume/connectors/{id}", + "operation_id": "volume_connector_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/volume/targets", + "operation_id": "volume_target_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/volume/targets/{id}", + "operation_id": "volume_target_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/drivers", + "operation_id": "ironic_drivers__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/drivers/{name}", + "operation_id": "ironic_driver_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/conductors", + "operation_id": "ironic_conductors__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/nodes/{id}/states", + "operation_id": "node_states__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/nodes/{id}/vendor_passthru", + "operation_id": "node_vendor_passthru__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3", + "operation_id": "keystone_v3_root__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/auth/tokens", + "operation_id": "keystone_validate_token__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/auth/catalog", + "operation_id": "keystone_catalog__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/domains", + "operation_id": "domain_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/domains/{id}", + "operation_id": "domain_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/projects", + "operation_id": "project_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/projects/{id}", + "operation_id": "project_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/users", + "operation_id": "user_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/users/{id}", + "operation_id": "user_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/groups", + "operation_id": "group_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/groups/{id}", + "operation_id": "group_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/roles", + "operation_id": "role_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/roles/{id}", + "operation_id": "role_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/regions", + "operation_id": "region_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/regions/{id}", + "operation_id": "region_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/services", + "operation_id": "service_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/services/{id}", + "operation_id": "service_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/endpoints", + "operation_id": "endpoint_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/endpoints/{id}", + "operation_id": "endpoint_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/credentials", + "operation_id": "credential_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/credentials/{id}", + "operation_id": "credential_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/policies", + "operation_id": "policy_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/policies/{id}", + "operation_id": "policy_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/users/{user_id}/application_credentials", + "operation_id": "application_credential_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/users/{user_id}/application_credentials/{id}", + "operation_id": "application_credential_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/role_assignments", + "operation_id": "keystone_role_assignments__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/projects/{project_id}/users/{user_id}/roles", + "operation_id": "keystone_list_project_user_roles__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/OS-INHERIT/domains/{domain_id}/users/{user_id}/roles", + "operation_id": "keystone_inherit_roles__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/limits", + "operation_id": "keystone_limits__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/registered_limits", + "operation_id": "keystone_registered_limits__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "magnum", + "method": "HEAD", + "path": "/v1", + "operation_id": "magnum_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "magnum", + "method": "HEAD", + "path": "/v1/clusters", + "operation_id": "cluster_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "magnum", + "method": "HEAD", + "path": "/v1/clusters/{id}", + "operation_id": "cluster_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "magnum", + "method": "HEAD", + "path": "/v1/clustertemplates", + "operation_id": "clustertemplate_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "magnum", + "method": "HEAD", + "path": "/v1/clustertemplates/{id}", + "operation_id": "clustertemplate_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "magnum", + "method": "HEAD", + "path": "/v1/certificates", + "operation_id": "certificate_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "magnum", + "method": "HEAD", + "path": "/v1/certificates/{id}", + "operation_id": "certificate_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "magnum", + "method": "HEAD", + "path": "/v1/clusters/{cluster_id}/nodegroups", + "operation_id": "nodegroup_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "magnum", + "method": "HEAD", + "path": "/v1/clusters/{cluster_id}/nodegroups/{id}", + "operation_id": "nodegroup_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "manila", + "method": "HEAD", + "path": "/v2", + "operation_id": "manila_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "manila", + "method": "HEAD", + "path": "/v2/shares", + "operation_id": "share_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "manila", + "method": "HEAD", + "path": "/v2/shares/{id}", + "operation_id": "share_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "manila", + "method": "HEAD", + "path": "/v2/snapshots", + "operation_id": "share_snapshot_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "manila", + "method": "HEAD", + "path": "/v2/snapshots/{id}", + "operation_id": "share_snapshot_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "manila", + "method": "HEAD", + "path": "/v2/share-networks", + "operation_id": "share_network_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "manila", + "method": "HEAD", + "path": "/v2/share-networks/{id}", + "operation_id": "share_network_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "manila", + "method": "HEAD", + "path": "/v2/types", + "operation_id": "share_type_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "manila", + "method": "HEAD", + "path": "/v2/types/{id}", + "operation_id": "share_type_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "manila", + "method": "HEAD", + "path": "/v2/share-servers", + "operation_id": "share_server_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "manila", + "method": "HEAD", + "path": "/v2/share-servers/{id}", + "operation_id": "share_server_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "manila", + "method": "HEAD", + "path": "/v2/security-services", + "operation_id": "security_service_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "manila", + "method": "HEAD", + "path": "/v2/security-services/{id}", + "operation_id": "security_service_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "manila", + "method": "HEAD", + "path": "/v2/share-groups", + "operation_id": "share_group_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "manila", + "method": "HEAD", + "path": "/v2/share-groups/{id}", + "operation_id": "share_group_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "masakari", + "method": "HEAD", + "path": "/v1", + "operation_id": "masakari_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "masakari", + "method": "HEAD", + "path": "/v1/segments", + "operation_id": "segment_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "masakari", + "method": "HEAD", + "path": "/v1/segments/{id}", + "operation_id": "segment_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "masakari", + "method": "HEAD", + "path": "/v1/segments/{segment_id}/hosts", + "operation_id": "host_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "masakari", + "method": "HEAD", + "path": "/v1/segments/{segment_id}/hosts/{id}", + "operation_id": "host_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "masakari", + "method": "HEAD", + "path": "/v1/notifications", + "operation_id": "notification_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "masakari", + "method": "HEAD", + "path": "/v1/notifications/{id}", + "operation_id": "notification_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "mistral", + "method": "HEAD", + "path": "/v2", + "operation_id": "mistral_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "mistral", + "method": "HEAD", + "path": "/v2/workflows", + "operation_id": "workflow_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "mistral", + "method": "HEAD", + "path": "/v2/workflows/{id}", + "operation_id": "workflow_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "mistral", + "method": "HEAD", + "path": "/v2/executions", + "operation_id": "execution_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "mistral", + "method": "HEAD", + "path": "/v2/executions/{id}", + "operation_id": "execution_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "mistral", + "method": "HEAD", + "path": "/v2/actions", + "operation_id": "action_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "mistral", + "method": "HEAD", + "path": "/v2/actions/{id}", + "operation_id": "action_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "mistral", + "method": "HEAD", + "path": "/v2/workbooks", + "operation_id": "workbook_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "mistral", + "method": "HEAD", + "path": "/v2/workbooks/{id}", + "operation_id": "workbook_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "mistral", + "method": "HEAD", + "path": "/v2/cron_triggers", + "operation_id": "cron_trigger_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "mistral", + "method": "HEAD", + "path": "/v2/cron_triggers/{id}", + "operation_id": "cron_trigger_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "mistral", + "method": "HEAD", + "path": "/v2/tasks", + "operation_id": "task_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "mistral", + "method": "HEAD", + "path": "/v2/tasks/{id}", + "operation_id": "task_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0", + "operation_id": "neutron_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/networks", + "operation_id": "network_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/networks/{id}", + "operation_id": "network_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/subnets", + "operation_id": "subnet_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/subnets/{id}", + "operation_id": "subnet_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/ports", + "operation_id": "port_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/ports/{id}", + "operation_id": "port_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/routers", + "operation_id": "router_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/routers/{id}", + "operation_id": "router_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/floatingips", + "operation_id": "floatingip_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/floatingips/{id}", + "operation_id": "floatingip_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/security-groups", + "operation_id": "security_group_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/security-groups/{id}", + "operation_id": "security_group_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/security-group-rules", + "operation_id": "security_group_rule_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/security-group-rules/{id}", + "operation_id": "security_group_rule_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/address-scopes", + "operation_id": "address_scope_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/address-scopes/{id}", + "operation_id": "address_scope_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/subnetpools", + "operation_id": "subnetpool_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/subnetpools/{id}", + "operation_id": "subnetpool_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/qos/policies", + "operation_id": "qos_policy_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/qos/policies/{id}", + "operation_id": "qos_policy_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/trunks", + "operation_id": "trunk_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/trunks/{id}", + "operation_id": "trunk_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/rbac-policies", + "operation_id": "rbac_policy_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/rbac-policies/{id}", + "operation_id": "rbac_policy_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/metering/metering-labels", + "operation_id": "metering_label_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/metering/metering-labels/{id}", + "operation_id": "metering_label_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/metering/metering-label-rules", + "operation_id": "metering_label_rule_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/metering/metering-label-rules/{id}", + "operation_id": "metering_label_rule_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/log/logs", + "operation_id": "log_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/log/logs/{id}", + "operation_id": "log_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/ndp_proxies", + "operation_id": "ndp_proxy_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/ndp_proxies/{id}", + "operation_id": "ndp_proxy_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/local_ips", + "operation_id": "local_ip_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/local_ips/{id}", + "operation_id": "local_ip_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/service_profiles", + "operation_id": "service_profile_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/service_profiles/{id}", + "operation_id": "service_profile_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/flavors", + "operation_id": "neutron_flavor_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/flavors/{id}", + "operation_id": "neutron_flavor_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/lbaas/loadbalancers", + "operation_id": "lbaas_loadbalancer_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/lbaas/loadbalancers/{id}", + "operation_id": "lbaas_loadbalancer_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/lbaas/listeners", + "operation_id": "lbaas_listener_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/lbaas/listeners/{id}", + "operation_id": "lbaas_listener_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/lbaas/pools", + "operation_id": "lbaas_pool_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/lbaas/pools/{id}", + "operation_id": "lbaas_pool_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/agents", + "operation_id": "neutron_agents__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/agents/{id}", + "operation_id": "neutron_agent_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/quotas", + "operation_id": "neutron_quota_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/quotas/{id}", + "operation_id": "neutron_quota_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/qos/policies/{policy_id}/bandwidth_limit_rules", + "operation_id": "qos_bandwidth_limit_rule_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/qos/policies/{policy_id}/bandwidth_limit_rules/{id}", + "operation_id": "qos_bandwidth_limit_rule_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/qos/policies/{policy_id}/dscp_marking_rules", + "operation_id": "qos_dscp_marking_rule_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/qos/policies/{policy_id}/dscp_marking_rules/{id}", + "operation_id": "qos_dscp_marking_rule_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/qos/policies/{policy_id}/minimum_bandwidth_rules", + "operation_id": "qos_minimum_bandwidth_rule_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/qos/policies/{policy_id}/minimum_bandwidth_rules/{id}", + "operation_id": "qos_minimum_bandwidth_rule_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/trunks/{trunk_id}/add_subports", + "operation_id": "trunk_subport_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/trunks/{trunk_id}/add_subports/{id}", + "operation_id": "trunk_subport_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/floatingips/{floatingip_id}/port_forwardings", + "operation_id": "floatingip_port_forwarding_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/floatingips/{floatingip_id}/port_forwardings/{id}", + "operation_id": "floatingip_port_forwarding_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/local_ips/{local_ip_id}/port_associations", + "operation_id": "local_ip_association_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/local_ips/{local_ip_id}/port_associations/{id}", + "operation_id": "local_ip_association_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers", + "operation_id": "server_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers/{id}", + "operation_id": "server_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers/detail", + "operation_id": "server_list_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers/{server_id}/os-volume_attachments", + "operation_id": "volume_attachment_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers/{server_id}/os-volume_attachments/{id}", + "operation_id": "volume_attachment_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers/{server_id}/os-interface", + "operation_id": "interface_attachment_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers/{server_id}/os-interface/{id}", + "operation_id": "interface_attachment_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers/{server_id}/os-instance-actions", + "operation_id": "instance_action_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers/{server_id}/os-instance-actions/{id}", + "operation_id": "instance_action_show__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers/{server_id}/metadata", + "operation_id": "server_metadata_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers/{server_id}/metadata/{id}", + "operation_id": "server_metadata_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers/{server_id}/tags", + "operation_id": "server_tag_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers/{server_id}/tags/{id}", + "operation_id": "server_tag_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers/{server_id}/os-security-groups", + "operation_id": "server_security_group_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers/{server_id}/os-security-groups/{id}", + "operation_id": "server_security_group_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/flavors", + "operation_id": "flavor_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/flavors/{id}", + "operation_id": "flavor_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/flavors/detail", + "operation_id": "flavor_list_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-keypairs", + "operation_id": "keypair_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-keypairs/{id}", + "operation_id": "keypair_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-aggregates", + "operation_id": "aggregate_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-aggregates/{id}", + "operation_id": "aggregate_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-server-groups", + "operation_id": "server_group_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-server-groups/{id}", + "operation_id": "server_group_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1", + "operation_id": "nova_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-hypervisors", + "operation_id": "hypervisor_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-hypervisors/detail", + "operation_id": "hypervisor_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-hypervisors/{id}", + "operation_id": "hypervisor_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-availability-zone", + "operation_id": "az_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-availability-zone/detail", + "operation_id": "az_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-services", + "operation_id": "compute_services__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/limits", + "operation_id": "compute_limits__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-quota-sets/{id}", + "operation_id": "quota_set_show__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-quota-sets/{id}/detail", + "operation_id": "quota_set_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-migrations", + "operation_id": "migrations_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-networks", + "operation_id": "nova_networks__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-tenant-networks", + "operation_id": "nova_tenant_networks__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-security-groups", + "operation_id": "nova_security_groups__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-floating-ips", + "operation_id": "nova_floating_ips__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers/{server_id}/diagnostics", + "operation_id": "server_diagnostics__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers/{server_id}/os-instance-actions/{request_id}", + "operation_id": "instance_action_show__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/flavors/{id}/os-extra_specs", + "operation_id": "flavor_extra_specs__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-simple-tenant-usage", + "operation_id": "simple_tenant_usage__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/flavors/{flavor_id}/os-extra_specs", + "operation_id": "flavor_extra_spec_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/flavors/{flavor_id}/os-extra_specs/{id}", + "operation_id": "flavor_extra_spec_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers/{server_id}/os-server-password", + "operation_id": "server_password_show__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2", + "operation_id": "octavia_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/loadbalancers", + "operation_id": "loadbalancer_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/loadbalancers/{id}", + "operation_id": "loadbalancer_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/listeners", + "operation_id": "listener_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/listeners/{id}", + "operation_id": "listener_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/pools", + "operation_id": "pool_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/pools/{id}", + "operation_id": "pool_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/healthmonitors", + "operation_id": "healthmonitor_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/healthmonitors/{id}", + "operation_id": "healthmonitor_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/flavors", + "operation_id": "flavor_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/flavors/{id}", + "operation_id": "flavor_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/flavorprofiles", + "operation_id": "flavorprofile_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/flavorprofiles/{id}", + "operation_id": "flavorprofile_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/octavia/amphorae", + "operation_id": "amphora_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/octavia/amphorae/{id}", + "operation_id": "amphora_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/quotas", + "operation_id": "quota_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/quotas/{id}", + "operation_id": "quota_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/pools/{pool_id}/members", + "operation_id": "member_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/pools/{pool_id}/members/{id}", + "operation_id": "member_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "placement", + "method": "HEAD", + "path": "/", + "operation_id": "placement_root__head", + "status": 405, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "placement", + "method": "HEAD", + "path": "/resource_providers", + "operation_id": "resource_provider_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "placement", + "method": "HEAD", + "path": "/resource_providers/{id}", + "operation_id": "resource_provider_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "placement", + "method": "HEAD", + "path": "/resource_classes", + "operation_id": "resource_class_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "placement", + "method": "HEAD", + "path": "/resource_classes/{id}", + "operation_id": "resource_class_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "placement", + "method": "HEAD", + "path": "/traits", + "operation_id": "trait_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "placement", + "method": "HEAD", + "path": "/traits/{id}", + "operation_id": "trait_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "placement", + "method": "HEAD", + "path": "/allocations/{consumer_uuid}", + "operation_id": "allocation_show__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "placement", + "method": "HEAD", + "path": "/allocation_candidates", + "operation_id": "allocation_candidates__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "placement", + "method": "HEAD", + "path": "/usages", + "operation_id": "usages__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "placement", + "method": "HEAD", + "path": "/resource_providers/{id}/inventories", + "operation_id": "rp_inventories__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "placement", + "method": "HEAD", + "path": "/resource_providers/{id}/aggregates", + "operation_id": "rp_aggregates__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "placement", + "method": "HEAD", + "path": "/resource_providers/{id}/traits", + "operation_id": "rp_traits__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "placement", + "method": "HEAD", + "path": "/resource_providers/{id}/usages", + "operation_id": "rp_usages__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "placement", + "method": "HEAD", + "path": "/resource_providers/{id}/allocations", + "operation_id": "rp_allocations__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "swift", + "method": "HEAD", + "path": "/info", + "operation_id": "swift_info__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "swift", + "method": "HEAD", + "path": "/v1/{account}", + "operation_id": "swift_account_get__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "swift", + "method": "HEAD", + "path": "/v1/{account}/{container}", + "operation_id": "swift_container_get__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "swift", + "method": "HEAD", + "path": "/v1/{account}/{container}/{object}", + "operation_id": "swift_object_get__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "tacker", + "method": "HEAD", + "path": "/v1.0/vnfs", + "operation_id": "vnf_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "tacker", + "method": "HEAD", + "path": "/v1.0/vnfs/{id}", + "operation_id": "vnf_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "tacker", + "method": "HEAD", + "path": "/v1.0/vnfds", + "operation_id": "vnfd_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "tacker", + "method": "HEAD", + "path": "/v1.0/vnfds/{id}", + "operation_id": "vnfd_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "tacker", + "method": "HEAD", + "path": "/v1.0/vims", + "operation_id": "vim_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "tacker", + "method": "HEAD", + "path": "/v1.0/vims/{id}", + "operation_id": "vim_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "trove", + "method": "HEAD", + "path": "/v1.0", + "operation_id": "trove_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "trove", + "method": "HEAD", + "path": "/v1.0/instances", + "operation_id": "instance_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "trove", + "method": "HEAD", + "path": "/v1.0/instances/{id}", + "operation_id": "instance_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "trove", + "method": "HEAD", + "path": "/v1.0/datastores", + "operation_id": "datastore_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "trove", + "method": "HEAD", + "path": "/v1.0/datastores/{id}", + "operation_id": "datastore_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "trove", + "method": "HEAD", + "path": "/v1.0/backups", + "operation_id": "backup_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "trove", + "method": "HEAD", + "path": "/v1.0/backups/{id}", + "operation_id": "backup_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "trove", + "method": "HEAD", + "path": "/v1.0/configurations", + "operation_id": "configuration_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "trove", + "method": "HEAD", + "path": "/v1.0/configurations/{id}", + "operation_id": "configuration_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "trove", + "method": "HEAD", + "path": "/v1.0/clusters", + "operation_id": "cluster_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "trove", + "method": "HEAD", + "path": "/v1.0/clusters/{id}", + "operation_id": "cluster_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "vitrage", + "method": "HEAD", + "path": "/v1/topology", + "operation_id": "topology_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "vitrage", + "method": "HEAD", + "path": "/v1/topology/{id}", + "operation_id": "topology_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "vitrage", + "method": "HEAD", + "path": "/v1/alarm", + "operation_id": "alarm_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "vitrage", + "method": "HEAD", + "path": "/v1/alarm/{id}", + "operation_id": "alarm_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "vitrage", + "method": "HEAD", + "path": "/v1/resources", + "operation_id": "resource_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "vitrage", + "method": "HEAD", + "path": "/v1/resources/{id}", + "operation_id": "resource_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "vitrage", + "method": "HEAD", + "path": "/v1/template", + "operation_id": "template_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "vitrage", + "method": "HEAD", + "path": "/v1/template/{id}", + "operation_id": "template_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "vitrage", + "method": "HEAD", + "path": "/v1/event", + "operation_id": "event_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "vitrage", + "method": "HEAD", + "path": "/v1/event/{id}", + "operation_id": "event_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "watcher", + "method": "HEAD", + "path": "/v1", + "operation_id": "watcher_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "watcher", + "method": "HEAD", + "path": "/v1/actions", + "operation_id": "action_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "watcher", + "method": "HEAD", + "path": "/v1/actions/{id}", + "operation_id": "action_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "watcher", + "method": "HEAD", + "path": "/v1/goals", + "operation_id": "goal_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "watcher", + "method": "HEAD", + "path": "/v1/goals/{id}", + "operation_id": "goal_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "watcher", + "method": "HEAD", + "path": "/v1/strategies", + "operation_id": "strategy_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "watcher", + "method": "HEAD", + "path": "/v1/strategies/{id}", + "operation_id": "strategy_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "watcher", + "method": "HEAD", + "path": "/v1/services", + "operation_id": "service_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "watcher", + "method": "HEAD", + "path": "/v1/services/{id}", + "operation_id": "service_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "zaqar", + "method": "HEAD", + "path": "/v2", + "operation_id": "zaqar_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "zun", + "method": "HEAD", + "path": "/v1", + "operation_id": "zun_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "zun", + "method": "HEAD", + "path": "/v1/containers", + "operation_id": "container_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "zun", + "method": "HEAD", + "path": "/v1/containers/{id}", + "operation_id": "container_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "zun", + "method": "HEAD", + "path": "/v1/images", + "operation_id": "image_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "zun", + "method": "HEAD", + "path": "/v1/images/{id}", + "operation_id": "image_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "zun", + "method": "HEAD", + "path": "/v1/hosts", + "operation_id": "host_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "zun", + "method": "HEAD", + "path": "/v1/hosts/{id}", + "operation_id": "host_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "zun", + "method": "HEAD", + "path": "/v1/services", + "operation_id": "service_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "zun", + "method": "HEAD", + "path": "/v1/services/{id}", + "operation_id": "service_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false } ], "failures": [] diff --git a/pulumi-tests/reports/series-caracal.json b/pulumi-tests/reports/series-caracal.json index 61eb184..64ee2a7 100644 --- a/pulumi-tests/reports/series-caracal.json +++ b/pulumi-tests/reports/series-caracal.json @@ -2,35 +2,35 @@ "series": "caracal", "pulumi": { "series": "caracal", - "elapsed_s": 11.2, + "elapsed_s": 13.94, "error": null, "outputs": { "auth_project_id": "8924e279-51c7-582e-b6f5-8e41b33e7581", "auth_user_id": "b76edf4a-1452-5436-a411-a099ada1f7cb", - "created_project_id": "18f9d91e-fe5d-4016-a6e2-1cbac8846be6", - "created_user_id": "905cff09-aa46-4ec7-a305-7641fcec9028", + "created_project_id": "4ccc6157-9838-41ed-b609-6fad16c7485b", + "created_user_id": "eb2db72c-1204-40ed-8b34-e099a42a9ece", "demo_net_id": "a245268b-88ba-597a-b8db-017810782f98", "flavor_id": "1", "image_id": "c58b99c0-2d7b-5842-b260-b617db2f7803", "image_name": "cirros", - "interface_id": "b1b0e88b-bcfa-4997-87f8-24901e8bb2bb/7ede7fdb-44b2-4503-ab44-dc00621b30f5", - "keypair_name": "pu-caracal-b0a6af-kp", - "network_id": "f9c7dfb0-d068-40fe-91a8-58bd42a01db4", - "port_id": "7ede7fdb-44b2-4503-ab44-dc00621b30f5", + "interface_id": "ed7dacac-0d5c-42af-8dec-c9ddc3a3e66e/3a302d32-d14f-4a89-83a4-377b8400dd64", + "keypair_name": "pu-caracal-913e05-kp", + "network_id": "d87e3ba7-88fd-439e-a700-f8c904c5962c", + "port_id": "3a302d32-d14f-4a89-83a4-377b8400dd64", "project_name": "demo", - "router_id": "caa5c874-5447-4470-9e82-0e217b47e212", - "router_iface_id": "ea3d7ccb-cd9c-40b1-8931-256811027fb6", - "secgroup_id": "0b1d3e40-76e6-47f4-89a2-869fabc30504", - "secgroup_rule_id": "81c05307-6c3b-4a92-b149-de1ee885feb7", + "router_id": "dbd5921f-f7af-491d-8b6c-7a108e4dee02", + "router_iface_id": "6dc250c1-3718-4785-a020-eef0f89438cb", + "secgroup_id": "e84c344b-7f7a-4b30-bf40-6f6a176f288e", + "secgroup_rule_id": "ae2be8f8-1c5f-4ebf-81ae-1c78b79089d5", "series": "caracal", - "server_group_id": "6ed7aca8-f70f-4188-8ef3-acdf92f1b98f", - "server_id": "b1b0e88b-bcfa-4997-87f8-24901e8bb2bb", - "server_name": "pu-caracal-b0a6af-vm", - "subnet_id": "02a68e30-581c-40bf-9d75-9854ff70d399", - "tag": "pu-caracal-b0a6af", - "volume2_id": "7bed5a5b-b0a5-4981-8bbe-32fb48cd99c6", - "volume_attach_id": "b1b0e88b-bcfa-4997-87f8-24901e8bb2bb/1e7ddcfb-1cce-41f4-9bf2-ee8b39e93e8d", - "volume_id": "e6411969-fbb5-4874-86f3-f9a789f0f0b1" + "server_group_id": "6dc9fd5e-5ecf-4289-bd1a-f2a0937cb8e9", + "server_id": "ed7dacac-0d5c-42af-8dec-c9ddc3a3e66e", + "server_name": "pu-caracal-913e05-vm", + "subnet_id": "fe94e98e-febd-4348-8e23-b99a04733066", + "tag": "pu-caracal-913e05", + "volume2_id": "79e1cc1c-d0f0-4a63-ad0e-e8be2dc016c0", + "volume_attach_id": "ed7dacac-0d5c-42af-8dec-c9ddc3a3e66e/ef4b5b3d-6518-4959-922a-c717c54f57a9", + "volume_id": "1b947b41-3442-475c-817a-9be42362a2d5" }, "empty_exports": [], "ok": true @@ -39,19 +39,23 @@ "series": "caracal", "host": "http://api-gateway:5000", "mode": "lifecycle", - "total": 1196, - "expected_ops": 1196, + "total": 1649, + "expected_ops": 1649, + "declared_ops": 1196, + "head_ops": 453, "coverage_incomplete": false, "methods": { "GET": 453, "POST": 192, "PUT": 192, "PATCH": 176, - "DELETE": 183 + "DELETE": 183, + "HEAD": 453 }, - "ok_count": 1196, + "ok_count": 1649, "fail_count": 0, "nonempty_fail_count": 0, + "critical": 0, "results": [ { "service": "adjutant", @@ -13208,6 +13212,4989 @@ "mode": "lifecycle", "ok": true, "succeeded": true + }, + { + "service": "adjutant", + "method": "HEAD", + "path": "/v1/tasks", + "operation_id": "task_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "adjutant", + "method": "HEAD", + "path": "/v1/tasks/{id}", + "operation_id": "task_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "adjutant", + "method": "HEAD", + "path": "/v1/tokens", + "operation_id": "token_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "adjutant", + "method": "HEAD", + "path": "/v1/tokens/{id}", + "operation_id": "token_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "adjutant", + "method": "HEAD", + "path": "/v1/notifications", + "operation_id": "notification_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "adjutant", + "method": "HEAD", + "path": "/v1/notifications/{id}", + "operation_id": "notification_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "adjutant", + "method": "HEAD", + "path": "/v1/status", + "operation_id": "status_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "adjutant", + "method": "HEAD", + "path": "/v1/status/{id}", + "operation_id": "status_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "aodh", + "method": "HEAD", + "path": "/v2", + "operation_id": "aodh_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "aodh", + "method": "HEAD", + "path": "/v2/alarms", + "operation_id": "alarm_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "aodh", + "method": "HEAD", + "path": "/v2/alarms/{id}", + "operation_id": "alarm_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "aodh", + "method": "HEAD", + "path": "/v2/alarms/{alarm_id}/history", + "operation_id": "alarm_history_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "aodh", + "method": "HEAD", + "path": "/v2/alarms/{alarm_id}/history/{id}", + "operation_id": "alarm_history_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "aodh", + "method": "HEAD", + "path": "/v2/quotas", + "operation_id": "quota_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "aodh", + "method": "HEAD", + "path": "/v2/quotas/{id}", + "operation_id": "quota_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "barbican", + "method": "HEAD", + "path": "/v1", + "operation_id": "barbican_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "barbican", + "method": "HEAD", + "path": "/v1/secrets", + "operation_id": "secret_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "barbican", + "method": "HEAD", + "path": "/v1/secrets/{id}", + "operation_id": "secret_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "barbican", + "method": "HEAD", + "path": "/v1/containers", + "operation_id": "container_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "barbican", + "method": "HEAD", + "path": "/v1/containers/{id}", + "operation_id": "container_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "barbican", + "method": "HEAD", + "path": "/v1/orders", + "operation_id": "order_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "barbican", + "method": "HEAD", + "path": "/v1/orders/{id}", + "operation_id": "order_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "barbican", + "method": "HEAD", + "path": "/v1/secret-stores", + "operation_id": "secret_store_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "barbican", + "method": "HEAD", + "path": "/v1/secret-stores/{id}", + "operation_id": "secret_store_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "blazar", + "method": "HEAD", + "path": "/v1", + "operation_id": "blazar_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "blazar", + "method": "HEAD", + "path": "/leases", + "operation_id": "lease_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "blazar", + "method": "HEAD", + "path": "/leases/{id}", + "operation_id": "lease_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "blazar", + "method": "HEAD", + "path": "/os-hosts", + "operation_id": "host_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "blazar", + "method": "HEAD", + "path": "/os-hosts/{id}", + "operation_id": "host_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "blazar", + "method": "HEAD", + "path": "/floatingips", + "operation_id": "floatingip_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "blazar", + "method": "HEAD", + "path": "/floatingips/{id}", + "operation_id": "floatingip_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3", + "operation_id": "cinder_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/volumes", + "operation_id": "volume_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/volumes/{id}", + "operation_id": "volume_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/volumes/detail", + "operation_id": "volume_list_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/snapshots", + "operation_id": "snapshot_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/snapshots/{id}", + "operation_id": "snapshot_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/snapshots/detail", + "operation_id": "snapshot_list_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/backups", + "operation_id": "backup_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/backups/{id}", + "operation_id": "backup_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/backups/detail", + "operation_id": "backup_list_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/types", + "operation_id": "volume_type_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/types/{id}", + "operation_id": "volume_type_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/types/detail", + "operation_id": "volume_type_list_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/qos-specs", + "operation_id": "qos_spec_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/qos-specs/{id}", + "operation_id": "qos_spec_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/qos-specs/detail", + "operation_id": "qos_spec_list_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/groups", + "operation_id": "group_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/groups/{id}", + "operation_id": "group_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/groups/detail", + "operation_id": "group_list_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/group_snapshots", + "operation_id": "group_snapshot_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/group_snapshots/{id}", + "operation_id": "group_snapshot_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/group_snapshots/detail", + "operation_id": "group_snapshot_list_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/consistencygroups", + "operation_id": "consistencygroup_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/consistencygroups/{id}", + "operation_id": "consistencygroup_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/consistencygroups/detail", + "operation_id": "consistencygroup_list_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/attachments", + "operation_id": "attachment_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/attachments/{id}", + "operation_id": "attachment_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/attachments/detail", + "operation_id": "attachment_list_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/volume-transfers", + "operation_id": "transfer_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/volume-transfers/{id}", + "operation_id": "transfer_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/volume-transfers/detail", + "operation_id": "transfer_list_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/messages", + "operation_id": "message_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/messages/{id}", + "operation_id": "message_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/messages/detail", + "operation_id": "message_list_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/clusters", + "operation_id": "cluster_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/clusters/{id}", + "operation_id": "cluster_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/clusters/detail", + "operation_id": "cluster_list_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/{project_id}/volumes", + "operation_id": "volume_tenant_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/{project_id}/volumes/{id}", + "operation_id": "volume_tenant_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/{project_id}/volumes/detail", + "operation_id": "volume_tenant_list_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/os-services", + "operation_id": "cinder_services__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/limits", + "operation_id": "cinder_limits__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/os-quota-sets/{id}", + "operation_id": "cinder_quota_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/resource_filters", + "operation_id": "cinder_resource_filters__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/scheduler-stats/get_pools", + "operation_id": "cinder_pools__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cloudkitty", + "method": "HEAD", + "path": "/v1", + "operation_id": "cloudkitty_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cloudkitty", + "method": "HEAD", + "path": "/v1/rating/module_config/hashmap/services", + "operation_id": "hashmap_service_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cloudkitty", + "method": "HEAD", + "path": "/v1/rating/module_config/hashmap/services/{id}", + "operation_id": "hashmap_service_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cloudkitty", + "method": "HEAD", + "path": "/v1/rating/module_config/hashmap/fields", + "operation_id": "hashmap_field_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cloudkitty", + "method": "HEAD", + "path": "/v1/rating/module_config/hashmap/fields/{id}", + "operation_id": "hashmap_field_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cloudkitty", + "method": "HEAD", + "path": "/v1/report/summary", + "operation_id": "report_summary_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cloudkitty", + "method": "HEAD", + "path": "/v1/report/summary/{id}", + "operation_id": "report_summary_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cloudkitty", + "method": "HEAD", + "path": "/v1/storage/dataframes", + "operation_id": "dataframes_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cloudkitty", + "method": "HEAD", + "path": "/v1/storage/dataframes/{id}", + "operation_id": "dataframes_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "designate", + "method": "HEAD", + "path": "/v2", + "operation_id": "designate_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "designate", + "method": "HEAD", + "path": "/v2/zones", + "operation_id": "zone_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "designate", + "method": "HEAD", + "path": "/v2/zones/{id}", + "operation_id": "zone_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "designate", + "method": "HEAD", + "path": "/v2/zones/{zone_id}/recordsets", + "operation_id": "recordset_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "designate", + "method": "HEAD", + "path": "/v2/zones/{zone_id}/recordsets/{id}", + "operation_id": "recordset_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "designate", + "method": "HEAD", + "path": "/v2/tlds", + "operation_id": "tld_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "designate", + "method": "HEAD", + "path": "/v2/tlds/{id}", + "operation_id": "tld_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "designate", + "method": "HEAD", + "path": "/v2/blacklists", + "operation_id": "blacklist_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "designate", + "method": "HEAD", + "path": "/v2/blacklists/{id}", + "operation_id": "blacklist_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "designate", + "method": "HEAD", + "path": "/v2/pools", + "operation_id": "pool_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "designate", + "method": "HEAD", + "path": "/v2/pools/{id}", + "operation_id": "pool_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "designate", + "method": "HEAD", + "path": "/v2/service_statuses", + "operation_id": "service_status_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "designate", + "method": "HEAD", + "path": "/v2/service_statuses/{id}", + "operation_id": "service_status_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "freezer", + "method": "HEAD", + "path": "/v2", + "operation_id": "freezer_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "freezer", + "method": "HEAD", + "path": "/v2/jobs", + "operation_id": "job_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "freezer", + "method": "HEAD", + "path": "/v2/jobs/{id}", + "operation_id": "job_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "freezer", + "method": "HEAD", + "path": "/v2/clients", + "operation_id": "client_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "freezer", + "method": "HEAD", + "path": "/v2/clients/{id}", + "operation_id": "client_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "freezer", + "method": "HEAD", + "path": "/v2/backups", + "operation_id": "backup_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "freezer", + "method": "HEAD", + "path": "/v2/backups/{id}", + "operation_id": "backup_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "freezer", + "method": "HEAD", + "path": "/v2/sessions", + "operation_id": "session_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "freezer", + "method": "HEAD", + "path": "/v2/sessions/{id}", + "operation_id": "session_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "freezer", + "method": "HEAD", + "path": "/v2/actions", + "operation_id": "action_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "freezer", + "method": "HEAD", + "path": "/v2/actions/{id}", + "operation_id": "action_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "glance", + "method": "HEAD", + "path": "/v2", + "operation_id": "glance_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "glance", + "method": "HEAD", + "path": "/v2/images", + "operation_id": "image_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "glance", + "method": "HEAD", + "path": "/v2/images/{id}", + "operation_id": "image_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "glance", + "method": "HEAD", + "path": "/v2/images/{id}/file", + "operation_id": "image_download__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "glance", + "method": "HEAD", + "path": "/v2/metadefs/namespaces", + "operation_id": "metadef_namespace_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "glance", + "method": "HEAD", + "path": "/v2/metadefs/namespaces/{id}", + "operation_id": "metadef_namespace_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "glance", + "method": "HEAD", + "path": "/v2/tasks", + "operation_id": "task_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "glance", + "method": "HEAD", + "path": "/v2/tasks/{id}", + "operation_id": "task_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "glance", + "method": "HEAD", + "path": "/v2/schemas/image", + "operation_id": "glance_schema_image__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "glance", + "method": "HEAD", + "path": "/v2/schemas/images", + "operation_id": "glance_schema_images__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "glance", + "method": "HEAD", + "path": "/v2/images/{image_id}/members", + "operation_id": "image_member_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "glance", + "method": "HEAD", + "path": "/v2/images/{image_id}/members/{id}", + "operation_id": "image_member_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "glance", + "method": "HEAD", + "path": "/v2/images/{image_id}/tags", + "operation_id": "image_tag_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "glance", + "method": "HEAD", + "path": "/v2/images/{image_id}/tags/{id}", + "operation_id": "image_tag_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "heat", + "method": "HEAD", + "path": "/v1", + "operation_id": "heat_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "heat", + "method": "HEAD", + "path": "/v1/{tenant_id}/stacks", + "operation_id": "stack_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "heat", + "method": "HEAD", + "path": "/v1/{tenant_id}/stacks/{id}", + "operation_id": "stack_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "heat", + "method": "HEAD", + "path": "/v1/{tenant_id}/stacks/detail", + "operation_id": "stack_list_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "heat", + "method": "HEAD", + "path": "/v1/{tenant_id}/stacks/{stack_name}/{stack_id}", + "operation_id": "stack_show_by_name__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "heat", + "method": "HEAD", + "path": "/v1/{tenant_id}/stacks/{stack_name}/{stack_id}/resources", + "operation_id": "stack_resource_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "heat", + "method": "HEAD", + "path": "/v1/{tenant_id}/stacks/{stack_name}/{stack_id}/resources/{id}", + "operation_id": "stack_resource_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "heat", + "method": "HEAD", + "path": "/v1/{tenant_id}/stacks/{stack_name}/{stack_id}/events", + "operation_id": "stack_event_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "heat", + "method": "HEAD", + "path": "/v1/{tenant_id}/stacks/{stack_name}/{stack_id}/events/{id}", + "operation_id": "stack_event_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "heat", + "method": "HEAD", + "path": "/v1/{tenant_id}/software_configs", + "operation_id": "software_config_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "heat", + "method": "HEAD", + "path": "/v1/{tenant_id}/software_configs/{id}", + "operation_id": "software_config_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "heat", + "method": "HEAD", + "path": "/v1/{tenant_id}/software_deployments", + "operation_id": "software_deployment_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "heat", + "method": "HEAD", + "path": "/v1/{tenant_id}/software_deployments/{id}", + "operation_id": "software_deployment_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "heat", + "method": "HEAD", + "path": "/v1/{tenant_id}/resource_types", + "operation_id": "heat_resource_types__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "heat", + "method": "HEAD", + "path": "/v1/{tenant_id}/services", + "operation_id": "heat_services__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "heat-cfn", + "method": "HEAD", + "path": "/stacks", + "operation_id": "stack_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "heat-cfn", + "method": "HEAD", + "path": "/stacks/{id}", + "operation_id": "stack_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "heat-cfn", + "method": "HEAD", + "path": "/v1", + "operation_id": "heat_cfn_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1", + "operation_id": "ironic_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/nodes", + "operation_id": "node_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/nodes/{id}", + "operation_id": "node_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/ports", + "operation_id": "port_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/ports/{id}", + "operation_id": "port_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/portgroups", + "operation_id": "portgroup_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/portgroups/{id}", + "operation_id": "portgroup_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/chassis", + "operation_id": "chassis_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/chassis/{id}", + "operation_id": "chassis_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/allocations", + "operation_id": "allocation_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/allocations/{id}", + "operation_id": "allocation_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/deploy_templates", + "operation_id": "deploy_template_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/deploy_templates/{id}", + "operation_id": "deploy_template_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/volume/connectors", + "operation_id": "volume_connector_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/volume/connectors/{id}", + "operation_id": "volume_connector_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/volume/targets", + "operation_id": "volume_target_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/volume/targets/{id}", + "operation_id": "volume_target_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/drivers", + "operation_id": "ironic_drivers__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/drivers/{name}", + "operation_id": "ironic_driver_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/conductors", + "operation_id": "ironic_conductors__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/nodes/{id}/states", + "operation_id": "node_states__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/nodes/{id}/vendor_passthru", + "operation_id": "node_vendor_passthru__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3", + "operation_id": "keystone_v3_root__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/auth/tokens", + "operation_id": "keystone_validate_token__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/auth/catalog", + "operation_id": "keystone_catalog__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/domains", + "operation_id": "domain_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/domains/{id}", + "operation_id": "domain_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/projects", + "operation_id": "project_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/projects/{id}", + "operation_id": "project_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/users", + "operation_id": "user_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/users/{id}", + "operation_id": "user_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/groups", + "operation_id": "group_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/groups/{id}", + "operation_id": "group_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/roles", + "operation_id": "role_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/roles/{id}", + "operation_id": "role_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/regions", + "operation_id": "region_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/regions/{id}", + "operation_id": "region_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/services", + "operation_id": "service_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/services/{id}", + "operation_id": "service_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/endpoints", + "operation_id": "endpoint_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/endpoints/{id}", + "operation_id": "endpoint_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/credentials", + "operation_id": "credential_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/credentials/{id}", + "operation_id": "credential_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/policies", + "operation_id": "policy_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/policies/{id}", + "operation_id": "policy_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/users/{user_id}/application_credentials", + "operation_id": "application_credential_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/users/{user_id}/application_credentials/{id}", + "operation_id": "application_credential_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/role_assignments", + "operation_id": "keystone_role_assignments__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/projects/{project_id}/users/{user_id}/roles", + "operation_id": "keystone_list_project_user_roles__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/OS-INHERIT/domains/{domain_id}/users/{user_id}/roles", + "operation_id": "keystone_inherit_roles__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/limits", + "operation_id": "keystone_limits__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/registered_limits", + "operation_id": "keystone_registered_limits__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "magnum", + "method": "HEAD", + "path": "/v1", + "operation_id": "magnum_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "magnum", + "method": "HEAD", + "path": "/v1/clusters", + "operation_id": "cluster_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "magnum", + "method": "HEAD", + "path": "/v1/clusters/{id}", + "operation_id": "cluster_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "magnum", + "method": "HEAD", + "path": "/v1/clustertemplates", + "operation_id": "clustertemplate_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "magnum", + "method": "HEAD", + "path": "/v1/clustertemplates/{id}", + "operation_id": "clustertemplate_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "magnum", + "method": "HEAD", + "path": "/v1/certificates", + "operation_id": "certificate_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "magnum", + "method": "HEAD", + "path": "/v1/certificates/{id}", + "operation_id": "certificate_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "magnum", + "method": "HEAD", + "path": "/v1/clusters/{cluster_id}/nodegroups", + "operation_id": "nodegroup_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "magnum", + "method": "HEAD", + "path": "/v1/clusters/{cluster_id}/nodegroups/{id}", + "operation_id": "nodegroup_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "manila", + "method": "HEAD", + "path": "/v2", + "operation_id": "manila_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "manila", + "method": "HEAD", + "path": "/v2/shares", + "operation_id": "share_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "manila", + "method": "HEAD", + "path": "/v2/shares/{id}", + "operation_id": "share_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "manila", + "method": "HEAD", + "path": "/v2/snapshots", + "operation_id": "share_snapshot_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "manila", + "method": "HEAD", + "path": "/v2/snapshots/{id}", + "operation_id": "share_snapshot_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "manila", + "method": "HEAD", + "path": "/v2/share-networks", + "operation_id": "share_network_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "manila", + "method": "HEAD", + "path": "/v2/share-networks/{id}", + "operation_id": "share_network_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "manila", + "method": "HEAD", + "path": "/v2/types", + "operation_id": "share_type_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "manila", + "method": "HEAD", + "path": "/v2/types/{id}", + "operation_id": "share_type_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "manila", + "method": "HEAD", + "path": "/v2/share-servers", + "operation_id": "share_server_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "manila", + "method": "HEAD", + "path": "/v2/share-servers/{id}", + "operation_id": "share_server_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "manila", + "method": "HEAD", + "path": "/v2/security-services", + "operation_id": "security_service_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "manila", + "method": "HEAD", + "path": "/v2/security-services/{id}", + "operation_id": "security_service_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "manila", + "method": "HEAD", + "path": "/v2/share-groups", + "operation_id": "share_group_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "manila", + "method": "HEAD", + "path": "/v2/share-groups/{id}", + "operation_id": "share_group_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "masakari", + "method": "HEAD", + "path": "/v1", + "operation_id": "masakari_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "masakari", + "method": "HEAD", + "path": "/v1/segments", + "operation_id": "segment_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "masakari", + "method": "HEAD", + "path": "/v1/segments/{id}", + "operation_id": "segment_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "masakari", + "method": "HEAD", + "path": "/v1/segments/{segment_id}/hosts", + "operation_id": "host_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "masakari", + "method": "HEAD", + "path": "/v1/segments/{segment_id}/hosts/{id}", + "operation_id": "host_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "masakari", + "method": "HEAD", + "path": "/v1/notifications", + "operation_id": "notification_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "masakari", + "method": "HEAD", + "path": "/v1/notifications/{id}", + "operation_id": "notification_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "mistral", + "method": "HEAD", + "path": "/v2", + "operation_id": "mistral_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "mistral", + "method": "HEAD", + "path": "/v2/workflows", + "operation_id": "workflow_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "mistral", + "method": "HEAD", + "path": "/v2/workflows/{id}", + "operation_id": "workflow_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "mistral", + "method": "HEAD", + "path": "/v2/executions", + "operation_id": "execution_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "mistral", + "method": "HEAD", + "path": "/v2/executions/{id}", + "operation_id": "execution_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "mistral", + "method": "HEAD", + "path": "/v2/actions", + "operation_id": "action_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "mistral", + "method": "HEAD", + "path": "/v2/actions/{id}", + "operation_id": "action_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "mistral", + "method": "HEAD", + "path": "/v2/workbooks", + "operation_id": "workbook_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "mistral", + "method": "HEAD", + "path": "/v2/workbooks/{id}", + "operation_id": "workbook_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "mistral", + "method": "HEAD", + "path": "/v2/cron_triggers", + "operation_id": "cron_trigger_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "mistral", + "method": "HEAD", + "path": "/v2/cron_triggers/{id}", + "operation_id": "cron_trigger_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "mistral", + "method": "HEAD", + "path": "/v2/tasks", + "operation_id": "task_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "mistral", + "method": "HEAD", + "path": "/v2/tasks/{id}", + "operation_id": "task_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0", + "operation_id": "neutron_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/networks", + "operation_id": "network_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/networks/{id}", + "operation_id": "network_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/subnets", + "operation_id": "subnet_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/subnets/{id}", + "operation_id": "subnet_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/ports", + "operation_id": "port_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/ports/{id}", + "operation_id": "port_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/routers", + "operation_id": "router_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/routers/{id}", + "operation_id": "router_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/floatingips", + "operation_id": "floatingip_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/floatingips/{id}", + "operation_id": "floatingip_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/security-groups", + "operation_id": "security_group_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/security-groups/{id}", + "operation_id": "security_group_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/security-group-rules", + "operation_id": "security_group_rule_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/security-group-rules/{id}", + "operation_id": "security_group_rule_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/address-scopes", + "operation_id": "address_scope_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/address-scopes/{id}", + "operation_id": "address_scope_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/subnetpools", + "operation_id": "subnetpool_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/subnetpools/{id}", + "operation_id": "subnetpool_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/qos/policies", + "operation_id": "qos_policy_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/qos/policies/{id}", + "operation_id": "qos_policy_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/trunks", + "operation_id": "trunk_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/trunks/{id}", + "operation_id": "trunk_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/rbac-policies", + "operation_id": "rbac_policy_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/rbac-policies/{id}", + "operation_id": "rbac_policy_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/metering/metering-labels", + "operation_id": "metering_label_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/metering/metering-labels/{id}", + "operation_id": "metering_label_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/metering/metering-label-rules", + "operation_id": "metering_label_rule_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/metering/metering-label-rules/{id}", + "operation_id": "metering_label_rule_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/vpn/vpnservices", + "operation_id": "vpn_service_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/vpn/vpnservices/{id}", + "operation_id": "vpn_service_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/vpn/ipsec-site-connections", + "operation_id": "ipsec_site_connection_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/vpn/ipsec-site-connections/{id}", + "operation_id": "ipsec_site_connection_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/bgpvpn/bgpvpns", + "operation_id": "bgpvpn_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/bgpvpn/bgpvpns/{id}", + "operation_id": "bgpvpn_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/log/logs", + "operation_id": "log_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/log/logs/{id}", + "operation_id": "log_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/ndp_proxies", + "operation_id": "ndp_proxy_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/ndp_proxies/{id}", + "operation_id": "ndp_proxy_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/local_ips", + "operation_id": "local_ip_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/local_ips/{id}", + "operation_id": "local_ip_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/service_profiles", + "operation_id": "service_profile_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/service_profiles/{id}", + "operation_id": "service_profile_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/flavors", + "operation_id": "neutron_flavor_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/flavors/{id}", + "operation_id": "neutron_flavor_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/lbaas/loadbalancers", + "operation_id": "lbaas_loadbalancer_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/lbaas/loadbalancers/{id}", + "operation_id": "lbaas_loadbalancer_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/lbaas/listeners", + "operation_id": "lbaas_listener_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/lbaas/listeners/{id}", + "operation_id": "lbaas_listener_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/lbaas/pools", + "operation_id": "lbaas_pool_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/lbaas/pools/{id}", + "operation_id": "lbaas_pool_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/agents", + "operation_id": "neutron_agents__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/agents/{id}", + "operation_id": "neutron_agent_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/quotas", + "operation_id": "neutron_quota_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/quotas/{id}", + "operation_id": "neutron_quota_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/routers/{router_id}/conntrack_helpers", + "operation_id": "conntrack_helper_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/routers/{router_id}/conntrack_helpers/{id}", + "operation_id": "conntrack_helper_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/qos/policies/{policy_id}/bandwidth_limit_rules", + "operation_id": "qos_bandwidth_limit_rule_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/qos/policies/{policy_id}/bandwidth_limit_rules/{id}", + "operation_id": "qos_bandwidth_limit_rule_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/qos/policies/{policy_id}/dscp_marking_rules", + "operation_id": "qos_dscp_marking_rule_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/qos/policies/{policy_id}/dscp_marking_rules/{id}", + "operation_id": "qos_dscp_marking_rule_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/qos/policies/{policy_id}/minimum_bandwidth_rules", + "operation_id": "qos_minimum_bandwidth_rule_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/qos/policies/{policy_id}/minimum_bandwidth_rules/{id}", + "operation_id": "qos_minimum_bandwidth_rule_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/trunks/{trunk_id}/add_subports", + "operation_id": "trunk_subport_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/trunks/{trunk_id}/add_subports/{id}", + "operation_id": "trunk_subport_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/floatingips/{floatingip_id}/port_forwardings", + "operation_id": "floatingip_port_forwarding_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/floatingips/{floatingip_id}/port_forwardings/{id}", + "operation_id": "floatingip_port_forwarding_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/local_ips/{local_ip_id}/port_associations", + "operation_id": "local_ip_association_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/local_ips/{local_ip_id}/port_associations/{id}", + "operation_id": "local_ip_association_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/bgpvpn/bgpvpns/{bgpvpn_id}/network_associations", + "operation_id": "bgpvpn_network_association_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/bgpvpn/bgpvpns/{bgpvpn_id}/network_associations/{id}", + "operation_id": "bgpvpn_network_association_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/bgpvpn/bgpvpns/{bgpvpn_id}/router_associations", + "operation_id": "bgpvpn_router_association_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/bgpvpn/bgpvpns/{bgpvpn_id}/router_associations/{id}", + "operation_id": "bgpvpn_router_association_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers", + "operation_id": "server_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers/{id}", + "operation_id": "server_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers/detail", + "operation_id": "server_list_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers/{server_id}/os-volume_attachments", + "operation_id": "volume_attachment_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers/{server_id}/os-volume_attachments/{id}", + "operation_id": "volume_attachment_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers/{server_id}/os-interface", + "operation_id": "interface_attachment_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers/{server_id}/os-interface/{id}", + "operation_id": "interface_attachment_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers/{server_id}/os-instance-actions", + "operation_id": "instance_action_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers/{server_id}/os-instance-actions/{id}", + "operation_id": "instance_action_show__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers/{server_id}/metadata", + "operation_id": "server_metadata_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers/{server_id}/metadata/{id}", + "operation_id": "server_metadata_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers/{server_id}/tags", + "operation_id": "server_tag_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers/{server_id}/tags/{id}", + "operation_id": "server_tag_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers/{server_id}/os-security-groups", + "operation_id": "server_security_group_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers/{server_id}/os-security-groups/{id}", + "operation_id": "server_security_group_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/flavors", + "operation_id": "flavor_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/flavors/{id}", + "operation_id": "flavor_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/flavors/detail", + "operation_id": "flavor_list_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-keypairs", + "operation_id": "keypair_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-keypairs/{id}", + "operation_id": "keypair_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-aggregates", + "operation_id": "aggregate_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-aggregates/{id}", + "operation_id": "aggregate_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-server-groups", + "operation_id": "server_group_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-server-groups/{id}", + "operation_id": "server_group_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1", + "operation_id": "nova_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-hypervisors", + "operation_id": "hypervisor_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-hypervisors/detail", + "operation_id": "hypervisor_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-hypervisors/{id}", + "operation_id": "hypervisor_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-availability-zone", + "operation_id": "az_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-availability-zone/detail", + "operation_id": "az_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-services", + "operation_id": "compute_services__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/limits", + "operation_id": "compute_limits__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-quota-sets/{id}", + "operation_id": "quota_set_show__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-quota-sets/{id}/detail", + "operation_id": "quota_set_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-migrations", + "operation_id": "migrations_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-networks", + "operation_id": "nova_networks__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-tenant-networks", + "operation_id": "nova_tenant_networks__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-security-groups", + "operation_id": "nova_security_groups__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-floating-ips", + "operation_id": "nova_floating_ips__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-instance_usage_audit_log", + "operation_id": "instance_usage_audit__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-assisted-volume-snapshots", + "operation_id": "assisted_volume_snapshots__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers/{server_id}/diagnostics", + "operation_id": "server_diagnostics__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers/{server_id}/os-instance-actions/{request_id}", + "operation_id": "instance_action_show__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/flavors/{id}/os-extra_specs", + "operation_id": "flavor_extra_specs__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-simple-tenant-usage", + "operation_id": "simple_tenant_usage__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-hosts", + "operation_id": "os_hosts__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/flavors/{flavor_id}/os-extra_specs", + "operation_id": "flavor_extra_spec_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/flavors/{flavor_id}/os-extra_specs/{id}", + "operation_id": "flavor_extra_spec_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers/{server_id}/os-server-password", + "operation_id": "server_password_show__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2", + "operation_id": "octavia_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/loadbalancers", + "operation_id": "loadbalancer_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/loadbalancers/{id}", + "operation_id": "loadbalancer_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/listeners", + "operation_id": "listener_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/listeners/{id}", + "operation_id": "listener_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/pools", + "operation_id": "pool_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/pools/{id}", + "operation_id": "pool_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/healthmonitors", + "operation_id": "healthmonitor_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/healthmonitors/{id}", + "operation_id": "healthmonitor_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/l7policies", + "operation_id": "l7policy_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/l7policies/{id}", + "operation_id": "l7policy_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/flavors", + "operation_id": "flavor_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/flavors/{id}", + "operation_id": "flavor_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/flavorprofiles", + "operation_id": "flavorprofile_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/flavorprofiles/{id}", + "operation_id": "flavorprofile_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/octavia/amphorae", + "operation_id": "amphora_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/octavia/amphorae/{id}", + "operation_id": "amphora_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/quotas", + "operation_id": "quota_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/quotas/{id}", + "operation_id": "quota_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/providers", + "operation_id": "provider_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/providers/{id}", + "operation_id": "provider_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/pools/{pool_id}/members", + "operation_id": "member_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/pools/{pool_id}/members/{id}", + "operation_id": "member_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/l7policies/{l7policy_id}/rules", + "operation_id": "l7rule_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/l7policies/{l7policy_id}/rules/{id}", + "operation_id": "l7rule_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "placement", + "method": "HEAD", + "path": "/", + "operation_id": "placement_root__head", + "status": 405, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "placement", + "method": "HEAD", + "path": "/resource_providers", + "operation_id": "resource_provider_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "placement", + "method": "HEAD", + "path": "/resource_providers/{id}", + "operation_id": "resource_provider_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "placement", + "method": "HEAD", + "path": "/resource_classes", + "operation_id": "resource_class_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "placement", + "method": "HEAD", + "path": "/resource_classes/{id}", + "operation_id": "resource_class_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "placement", + "method": "HEAD", + "path": "/traits", + "operation_id": "trait_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "placement", + "method": "HEAD", + "path": "/traits/{id}", + "operation_id": "trait_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "placement", + "method": "HEAD", + "path": "/allocations/{consumer_uuid}", + "operation_id": "allocation_show__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "placement", + "method": "HEAD", + "path": "/allocation_candidates", + "operation_id": "allocation_candidates__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "placement", + "method": "HEAD", + "path": "/usages", + "operation_id": "usages__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "placement", + "method": "HEAD", + "path": "/resource_providers/{id}/inventories", + "operation_id": "rp_inventories__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "placement", + "method": "HEAD", + "path": "/resource_providers/{id}/aggregates", + "operation_id": "rp_aggregates__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "placement", + "method": "HEAD", + "path": "/resource_providers/{id}/traits", + "operation_id": "rp_traits__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "placement", + "method": "HEAD", + "path": "/resource_providers/{id}/usages", + "operation_id": "rp_usages__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "placement", + "method": "HEAD", + "path": "/resource_providers/{id}/allocations", + "operation_id": "rp_allocations__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "swift", + "method": "HEAD", + "path": "/info", + "operation_id": "swift_info__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "swift", + "method": "HEAD", + "path": "/v1/{account}", + "operation_id": "swift_account_get__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "swift", + "method": "HEAD", + "path": "/v1/{account}/{container}", + "operation_id": "swift_container_get__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "swift", + "method": "HEAD", + "path": "/v1/{account}/{container}/{object}", + "operation_id": "swift_object_get__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "tacker", + "method": "HEAD", + "path": "/v1.0/vnfs", + "operation_id": "vnf_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "tacker", + "method": "HEAD", + "path": "/v1.0/vnfs/{id}", + "operation_id": "vnf_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "tacker", + "method": "HEAD", + "path": "/v1.0/vnfds", + "operation_id": "vnfd_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "tacker", + "method": "HEAD", + "path": "/v1.0/vnfds/{id}", + "operation_id": "vnfd_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "tacker", + "method": "HEAD", + "path": "/v1.0/vims", + "operation_id": "vim_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "tacker", + "method": "HEAD", + "path": "/v1.0/vims/{id}", + "operation_id": "vim_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "tacker", + "method": "HEAD", + "path": "/vnfpkgm/v1/vnf_packages", + "operation_id": "vnf_package_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "tacker", + "method": "HEAD", + "path": "/vnfpkgm/v1/vnf_packages/{id}", + "operation_id": "vnf_package_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "tacker", + "method": "HEAD", + "path": "/vnflcm/v1/vnf_instances", + "operation_id": "vnf_instance_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "tacker", + "method": "HEAD", + "path": "/vnflcm/v1/vnf_instances/{id}", + "operation_id": "vnf_instance_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "trove", + "method": "HEAD", + "path": "/v1.0", + "operation_id": "trove_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "trove", + "method": "HEAD", + "path": "/v1.0/instances", + "operation_id": "instance_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "trove", + "method": "HEAD", + "path": "/v1.0/instances/{id}", + "operation_id": "instance_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "trove", + "method": "HEAD", + "path": "/v1.0/datastores", + "operation_id": "datastore_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "trove", + "method": "HEAD", + "path": "/v1.0/datastores/{id}", + "operation_id": "datastore_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "trove", + "method": "HEAD", + "path": "/v1.0/backups", + "operation_id": "backup_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "trove", + "method": "HEAD", + "path": "/v1.0/backups/{id}", + "operation_id": "backup_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "trove", + "method": "HEAD", + "path": "/v1.0/configurations", + "operation_id": "configuration_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "trove", + "method": "HEAD", + "path": "/v1.0/configurations/{id}", + "operation_id": "configuration_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "trove", + "method": "HEAD", + "path": "/v1.0/clusters", + "operation_id": "cluster_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "trove", + "method": "HEAD", + "path": "/v1.0/clusters/{id}", + "operation_id": "cluster_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "vitrage", + "method": "HEAD", + "path": "/v1/topology", + "operation_id": "topology_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "vitrage", + "method": "HEAD", + "path": "/v1/topology/{id}", + "operation_id": "topology_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "vitrage", + "method": "HEAD", + "path": "/v1/alarm", + "operation_id": "alarm_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "vitrage", + "method": "HEAD", + "path": "/v1/alarm/{id}", + "operation_id": "alarm_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "vitrage", + "method": "HEAD", + "path": "/v1/resources", + "operation_id": "resource_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "vitrage", + "method": "HEAD", + "path": "/v1/resources/{id}", + "operation_id": "resource_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "vitrage", + "method": "HEAD", + "path": "/v1/template", + "operation_id": "template_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "vitrage", + "method": "HEAD", + "path": "/v1/template/{id}", + "operation_id": "template_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "vitrage", + "method": "HEAD", + "path": "/v1/event", + "operation_id": "event_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "vitrage", + "method": "HEAD", + "path": "/v1/event/{id}", + "operation_id": "event_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "watcher", + "method": "HEAD", + "path": "/v1", + "operation_id": "watcher_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "watcher", + "method": "HEAD", + "path": "/v1/actions", + "operation_id": "action_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "watcher", + "method": "HEAD", + "path": "/v1/actions/{id}", + "operation_id": "action_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "watcher", + "method": "HEAD", + "path": "/v1/goals", + "operation_id": "goal_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "watcher", + "method": "HEAD", + "path": "/v1/goals/{id}", + "operation_id": "goal_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "watcher", + "method": "HEAD", + "path": "/v1/strategies", + "operation_id": "strategy_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "watcher", + "method": "HEAD", + "path": "/v1/strategies/{id}", + "operation_id": "strategy_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "watcher", + "method": "HEAD", + "path": "/v1/services", + "operation_id": "service_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "watcher", + "method": "HEAD", + "path": "/v1/services/{id}", + "operation_id": "service_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "zaqar", + "method": "HEAD", + "path": "/v2", + "operation_id": "zaqar_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "zun", + "method": "HEAD", + "path": "/v1", + "operation_id": "zun_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "zun", + "method": "HEAD", + "path": "/v1/containers", + "operation_id": "container_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "zun", + "method": "HEAD", + "path": "/v1/containers/{id}", + "operation_id": "container_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "zun", + "method": "HEAD", + "path": "/v1/images", + "operation_id": "image_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "zun", + "method": "HEAD", + "path": "/v1/images/{id}", + "operation_id": "image_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "zun", + "method": "HEAD", + "path": "/v1/hosts", + "operation_id": "host_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "zun", + "method": "HEAD", + "path": "/v1/hosts/{id}", + "operation_id": "host_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "zun", + "method": "HEAD", + "path": "/v1/services", + "operation_id": "service_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "zun", + "method": "HEAD", + "path": "/v1/services/{id}", + "operation_id": "service_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false } ], "failures": [] diff --git a/pulumi-tests/reports/series-dalmatian.json b/pulumi-tests/reports/series-dalmatian.json index 5daae69..f6de49a 100644 --- a/pulumi-tests/reports/series-dalmatian.json +++ b/pulumi-tests/reports/series-dalmatian.json @@ -2,35 +2,35 @@ "series": "dalmatian", "pulumi": { "series": "dalmatian", - "elapsed_s": 11.11, + "elapsed_s": 12.89, "error": null, "outputs": { "auth_project_id": "8924e279-51c7-582e-b6f5-8e41b33e7581", "auth_user_id": "b76edf4a-1452-5436-a411-a099ada1f7cb", - "created_project_id": "c4fbfb76-57ff-4f2f-9194-e6dabd8a6efb", - "created_user_id": "6504f50b-5aee-40eb-8161-5250b6c0bffe", + "created_project_id": "3703536d-efea-4bb1-866d-c76a3742e2b9", + "created_user_id": "97347426-e13c-4c1e-8d48-4b4f12d785ae", "demo_net_id": "a245268b-88ba-597a-b8db-017810782f98", "flavor_id": "1", "image_id": "c58b99c0-2d7b-5842-b260-b617db2f7803", "image_name": "cirros", - "interface_id": "4474066d-3d66-49e2-92ac-3506ee9adb30/e4c817fa-86d0-4ae9-9501-c5018bfaa0a4", - "keypair_name": "pu-dalmatian-643b8f-kp", - "network_id": "b2a50b9f-5e56-40c5-8ac8-d2c368d3f2c8", - "port_id": "e4c817fa-86d0-4ae9-9501-c5018bfaa0a4", + "interface_id": "21bffe97-64d0-4b27-9711-dc91a405426c/ae9a0ea7-8438-410d-be4e-19508d097277", + "keypair_name": "pu-dalmatian-70f98d-kp", + "network_id": "c618bb28-a49e-4276-9839-41cbbd5f50bd", + "port_id": "ae9a0ea7-8438-410d-be4e-19508d097277", "project_name": "demo", - "router_id": "6d6abe68-bb34-4df0-abc0-afcf6fd97ed0", - "router_iface_id": "5ad482b3-0758-4558-861e-26fd02e87258", - "secgroup_id": "ca88e98d-de2c-40ba-b22f-725f75919079", - "secgroup_rule_id": "8ac58c75-d65f-4f40-a8a1-fd11b236cf19", + "router_id": "7803044e-f510-4876-bc9f-20a9366b3251", + "router_iface_id": "b45e4712-be52-4621-be82-28ed23f8883c", + "secgroup_id": "329d3bd1-15b8-41ed-aeb4-06a88f5d90dd", + "secgroup_rule_id": "06d66321-c89a-4c2f-9323-d5508c8c7677", "series": "dalmatian", - "server_group_id": "84a147aa-cfbe-4c9d-9164-1be405ebfa3c", - "server_id": "4474066d-3d66-49e2-92ac-3506ee9adb30", - "server_name": "pu-dalmatian-643b8f-vm", - "subnet_id": "23f4116b-caa9-4d74-a5ce-0fb5700ad537", - "tag": "pu-dalmatian-643b8f", - "volume2_id": "3a89a739-eb25-4e7a-ae8b-6830129dc3eb", - "volume_attach_id": "4474066d-3d66-49e2-92ac-3506ee9adb30/5a3d539e-ba0c-47d0-ad83-3f4dac431902", - "volume_id": "c1213289-1b2e-4720-ba54-642dbd285ee2" + "server_group_id": "d4ae5792-335f-43ac-bdf0-2422541bace9", + "server_id": "21bffe97-64d0-4b27-9711-dc91a405426c", + "server_name": "pu-dalmatian-70f98d-vm", + "subnet_id": "f5b4fb63-f8a3-4309-861e-4d13b3863c19", + "tag": "pu-dalmatian-70f98d", + "volume2_id": "3adc3ced-c25c-46bd-8786-c00737cf9ac6", + "volume_attach_id": "21bffe97-64d0-4b27-9711-dc91a405426c/60b5be58-d7d8-4d46-8e04-351c19ee435d", + "volume_id": "22d3de1c-3f24-4bdc-bc79-cf4b1a47bd82" }, "empty_exports": [], "ok": true @@ -39,19 +39,23 @@ "series": "dalmatian", "host": "http://api-gateway:5000", "mode": "lifecycle", - "total": 1357, - "expected_ops": 1357, + "total": 1871, + "expected_ops": 1871, + "declared_ops": 1357, + "head_ops": 514, "coverage_incomplete": false, "methods": { "GET": 514, "POST": 217, "PUT": 217, "PATCH": 201, - "DELETE": 208 + "DELETE": 208, + "HEAD": 514 }, - "ok_count": 1357, + "ok_count": 1871, "fail_count": 0, "nonempty_fail_count": 0, + "critical": 0, "results": [ { "service": "adjutant", @@ -14979,6 +14983,5660 @@ "mode": "lifecycle", "ok": true, "succeeded": true + }, + { + "service": "adjutant", + "method": "HEAD", + "path": "/v1/tasks", + "operation_id": "task_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "adjutant", + "method": "HEAD", + "path": "/v1/tasks/{id}", + "operation_id": "task_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "adjutant", + "method": "HEAD", + "path": "/v1/tokens", + "operation_id": "token_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "adjutant", + "method": "HEAD", + "path": "/v1/tokens/{id}", + "operation_id": "token_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "adjutant", + "method": "HEAD", + "path": "/v1/notifications", + "operation_id": "notification_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "adjutant", + "method": "HEAD", + "path": "/v1/notifications/{id}", + "operation_id": "notification_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "adjutant", + "method": "HEAD", + "path": "/v1/status", + "operation_id": "status_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "adjutant", + "method": "HEAD", + "path": "/v1/status/{id}", + "operation_id": "status_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "aodh", + "method": "HEAD", + "path": "/v2", + "operation_id": "aodh_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "aodh", + "method": "HEAD", + "path": "/v2/alarms", + "operation_id": "alarm_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "aodh", + "method": "HEAD", + "path": "/v2/alarms/{id}", + "operation_id": "alarm_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "aodh", + "method": "HEAD", + "path": "/v2/alarms/{alarm_id}/history", + "operation_id": "alarm_history_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "aodh", + "method": "HEAD", + "path": "/v2/alarms/{alarm_id}/history/{id}", + "operation_id": "alarm_history_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "aodh", + "method": "HEAD", + "path": "/v2/quotas", + "operation_id": "quota_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "aodh", + "method": "HEAD", + "path": "/v2/quotas/{id}", + "operation_id": "quota_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "barbican", + "method": "HEAD", + "path": "/v1", + "operation_id": "barbican_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "barbican", + "method": "HEAD", + "path": "/v1/secrets", + "operation_id": "secret_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "barbican", + "method": "HEAD", + "path": "/v1/secrets/{id}", + "operation_id": "secret_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "barbican", + "method": "HEAD", + "path": "/v1/containers", + "operation_id": "container_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "barbican", + "method": "HEAD", + "path": "/v1/containers/{id}", + "operation_id": "container_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "barbican", + "method": "HEAD", + "path": "/v1/orders", + "operation_id": "order_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "barbican", + "method": "HEAD", + "path": "/v1/orders/{id}", + "operation_id": "order_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "barbican", + "method": "HEAD", + "path": "/v1/secret-stores", + "operation_id": "secret_store_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "barbican", + "method": "HEAD", + "path": "/v1/secret-stores/{id}", + "operation_id": "secret_store_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "blazar", + "method": "HEAD", + "path": "/v1", + "operation_id": "blazar_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "blazar", + "method": "HEAD", + "path": "/leases", + "operation_id": "lease_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "blazar", + "method": "HEAD", + "path": "/leases/{id}", + "operation_id": "lease_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "blazar", + "method": "HEAD", + "path": "/os-hosts", + "operation_id": "host_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "blazar", + "method": "HEAD", + "path": "/os-hosts/{id}", + "operation_id": "host_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "blazar", + "method": "HEAD", + "path": "/floatingips", + "operation_id": "floatingip_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "blazar", + "method": "HEAD", + "path": "/floatingips/{id}", + "operation_id": "floatingip_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3", + "operation_id": "cinder_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/volumes", + "operation_id": "volume_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/volumes/{id}", + "operation_id": "volume_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/volumes/detail", + "operation_id": "volume_list_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/snapshots", + "operation_id": "snapshot_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/snapshots/{id}", + "operation_id": "snapshot_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/snapshots/detail", + "operation_id": "snapshot_list_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/backups", + "operation_id": "backup_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/backups/{id}", + "operation_id": "backup_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/backups/detail", + "operation_id": "backup_list_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/types", + "operation_id": "volume_type_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/types/{id}", + "operation_id": "volume_type_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/types/detail", + "operation_id": "volume_type_list_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/qos-specs", + "operation_id": "qos_spec_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/qos-specs/{id}", + "operation_id": "qos_spec_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/qos-specs/detail", + "operation_id": "qos_spec_list_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/groups", + "operation_id": "group_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/groups/{id}", + "operation_id": "group_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/groups/detail", + "operation_id": "group_list_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/group_snapshots", + "operation_id": "group_snapshot_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/group_snapshots/{id}", + "operation_id": "group_snapshot_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/group_snapshots/detail", + "operation_id": "group_snapshot_list_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/consistencygroups", + "operation_id": "consistencygroup_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/consistencygroups/{id}", + "operation_id": "consistencygroup_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/consistencygroups/detail", + "operation_id": "consistencygroup_list_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/attachments", + "operation_id": "attachment_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/attachments/{id}", + "operation_id": "attachment_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/attachments/detail", + "operation_id": "attachment_list_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/volume-transfers", + "operation_id": "transfer_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/volume-transfers/{id}", + "operation_id": "transfer_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/volume-transfers/detail", + "operation_id": "transfer_list_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/messages", + "operation_id": "message_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/messages/{id}", + "operation_id": "message_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/messages/detail", + "operation_id": "message_list_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/clusters", + "operation_id": "cluster_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/clusters/{id}", + "operation_id": "cluster_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/clusters/detail", + "operation_id": "cluster_list_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/{project_id}/volumes", + "operation_id": "volume_tenant_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/{project_id}/volumes/{id}", + "operation_id": "volume_tenant_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/{project_id}/volumes/detail", + "operation_id": "volume_tenant_list_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/os-services", + "operation_id": "cinder_services__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/limits", + "operation_id": "cinder_limits__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/os-quota-sets/{id}", + "operation_id": "cinder_quota_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/resource_filters", + "operation_id": "cinder_resource_filters__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/scheduler-stats/get_pools", + "operation_id": "cinder_pools__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cloudkitty", + "method": "HEAD", + "path": "/v1", + "operation_id": "cloudkitty_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cloudkitty", + "method": "HEAD", + "path": "/v1/rating/module_config/hashmap/services", + "operation_id": "hashmap_service_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cloudkitty", + "method": "HEAD", + "path": "/v1/rating/module_config/hashmap/services/{id}", + "operation_id": "hashmap_service_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cloudkitty", + "method": "HEAD", + "path": "/v1/rating/module_config/hashmap/fields", + "operation_id": "hashmap_field_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cloudkitty", + "method": "HEAD", + "path": "/v1/rating/module_config/hashmap/fields/{id}", + "operation_id": "hashmap_field_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cloudkitty", + "method": "HEAD", + "path": "/v1/report/summary", + "operation_id": "report_summary_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cloudkitty", + "method": "HEAD", + "path": "/v1/report/summary/{id}", + "operation_id": "report_summary_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cloudkitty", + "method": "HEAD", + "path": "/v1/storage/dataframes", + "operation_id": "dataframes_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cloudkitty", + "method": "HEAD", + "path": "/v1/storage/dataframes/{id}", + "operation_id": "dataframes_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "designate", + "method": "HEAD", + "path": "/v2", + "operation_id": "designate_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "designate", + "method": "HEAD", + "path": "/v2/zones", + "operation_id": "zone_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "designate", + "method": "HEAD", + "path": "/v2/zones/{id}", + "operation_id": "zone_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "designate", + "method": "HEAD", + "path": "/v2/zones/{zone_id}/recordsets", + "operation_id": "recordset_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "designate", + "method": "HEAD", + "path": "/v2/zones/{zone_id}/recordsets/{id}", + "operation_id": "recordset_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "designate", + "method": "HEAD", + "path": "/v2/tlds", + "operation_id": "tld_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "designate", + "method": "HEAD", + "path": "/v2/tlds/{id}", + "operation_id": "tld_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "designate", + "method": "HEAD", + "path": "/v2/blacklists", + "operation_id": "blacklist_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "designate", + "method": "HEAD", + "path": "/v2/blacklists/{id}", + "operation_id": "blacklist_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "designate", + "method": "HEAD", + "path": "/v2/pools", + "operation_id": "pool_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "designate", + "method": "HEAD", + "path": "/v2/pools/{id}", + "operation_id": "pool_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "designate", + "method": "HEAD", + "path": "/v2/service_statuses", + "operation_id": "service_status_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "designate", + "method": "HEAD", + "path": "/v2/service_statuses/{id}", + "operation_id": "service_status_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "freezer", + "method": "HEAD", + "path": "/v2", + "operation_id": "freezer_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "freezer", + "method": "HEAD", + "path": "/v2/jobs", + "operation_id": "job_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "freezer", + "method": "HEAD", + "path": "/v2/jobs/{id}", + "operation_id": "job_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "freezer", + "method": "HEAD", + "path": "/v2/clients", + "operation_id": "client_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "freezer", + "method": "HEAD", + "path": "/v2/clients/{id}", + "operation_id": "client_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "freezer", + "method": "HEAD", + "path": "/v2/backups", + "operation_id": "backup_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "freezer", + "method": "HEAD", + "path": "/v2/backups/{id}", + "operation_id": "backup_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "freezer", + "method": "HEAD", + "path": "/v2/sessions", + "operation_id": "session_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "freezer", + "method": "HEAD", + "path": "/v2/sessions/{id}", + "operation_id": "session_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "freezer", + "method": "HEAD", + "path": "/v2/actions", + "operation_id": "action_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "freezer", + "method": "HEAD", + "path": "/v2/actions/{id}", + "operation_id": "action_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "glance", + "method": "HEAD", + "path": "/v2", + "operation_id": "glance_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "glance", + "method": "HEAD", + "path": "/v2/images", + "operation_id": "image_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "glance", + "method": "HEAD", + "path": "/v2/images/{id}", + "operation_id": "image_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "glance", + "method": "HEAD", + "path": "/v2/images/{id}/file", + "operation_id": "image_download__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "glance", + "method": "HEAD", + "path": "/v2/metadefs/namespaces", + "operation_id": "metadef_namespace_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "glance", + "method": "HEAD", + "path": "/v2/metadefs/namespaces/{id}", + "operation_id": "metadef_namespace_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "glance", + "method": "HEAD", + "path": "/v2/tasks", + "operation_id": "task_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "glance", + "method": "HEAD", + "path": "/v2/tasks/{id}", + "operation_id": "task_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "glance", + "method": "HEAD", + "path": "/v2/info/import", + "operation_id": "glance_import_info__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "glance", + "method": "HEAD", + "path": "/v2/info/stores", + "operation_id": "glance_stores__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "glance", + "method": "HEAD", + "path": "/v2/schemas/image", + "operation_id": "glance_schema_image__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "glance", + "method": "HEAD", + "path": "/v2/schemas/images", + "operation_id": "glance_schema_images__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "glance", + "method": "HEAD", + "path": "/v2/images/{image_id}/members", + "operation_id": "image_member_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "glance", + "method": "HEAD", + "path": "/v2/images/{image_id}/members/{id}", + "operation_id": "image_member_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "glance", + "method": "HEAD", + "path": "/v2/images/{image_id}/tags", + "operation_id": "image_tag_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "glance", + "method": "HEAD", + "path": "/v2/images/{image_id}/tags/{id}", + "operation_id": "image_tag_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "heat", + "method": "HEAD", + "path": "/v1", + "operation_id": "heat_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "heat", + "method": "HEAD", + "path": "/v1/{tenant_id}/stacks", + "operation_id": "stack_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "heat", + "method": "HEAD", + "path": "/v1/{tenant_id}/stacks/{id}", + "operation_id": "stack_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "heat", + "method": "HEAD", + "path": "/v1/{tenant_id}/stacks/detail", + "operation_id": "stack_list_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "heat", + "method": "HEAD", + "path": "/v1/{tenant_id}/stacks/{stack_name}/{stack_id}", + "operation_id": "stack_show_by_name__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "heat", + "method": "HEAD", + "path": "/v1/{tenant_id}/stacks/{stack_name}/{stack_id}/resources", + "operation_id": "stack_resource_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "heat", + "method": "HEAD", + "path": "/v1/{tenant_id}/stacks/{stack_name}/{stack_id}/resources/{id}", + "operation_id": "stack_resource_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "heat", + "method": "HEAD", + "path": "/v1/{tenant_id}/stacks/{stack_name}/{stack_id}/events", + "operation_id": "stack_event_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "heat", + "method": "HEAD", + "path": "/v1/{tenant_id}/stacks/{stack_name}/{stack_id}/events/{id}", + "operation_id": "stack_event_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "heat", + "method": "HEAD", + "path": "/v1/{tenant_id}/software_configs", + "operation_id": "software_config_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "heat", + "method": "HEAD", + "path": "/v1/{tenant_id}/software_configs/{id}", + "operation_id": "software_config_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "heat", + "method": "HEAD", + "path": "/v1/{tenant_id}/software_deployments", + "operation_id": "software_deployment_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "heat", + "method": "HEAD", + "path": "/v1/{tenant_id}/software_deployments/{id}", + "operation_id": "software_deployment_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "heat", + "method": "HEAD", + "path": "/v1/{tenant_id}/resource_types", + "operation_id": "heat_resource_types__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "heat", + "method": "HEAD", + "path": "/v1/{tenant_id}/services", + "operation_id": "heat_services__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "heat-cfn", + "method": "HEAD", + "path": "/stacks", + "operation_id": "stack_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "heat-cfn", + "method": "HEAD", + "path": "/stacks/{id}", + "operation_id": "stack_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "heat-cfn", + "method": "HEAD", + "path": "/v1", + "operation_id": "heat_cfn_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1", + "operation_id": "ironic_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/nodes", + "operation_id": "node_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/nodes/{id}", + "operation_id": "node_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/ports", + "operation_id": "port_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/ports/{id}", + "operation_id": "port_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/portgroups", + "operation_id": "portgroup_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/portgroups/{id}", + "operation_id": "portgroup_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/chassis", + "operation_id": "chassis_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/chassis/{id}", + "operation_id": "chassis_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/allocations", + "operation_id": "allocation_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/allocations/{id}", + "operation_id": "allocation_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/deploy_templates", + "operation_id": "deploy_template_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/deploy_templates/{id}", + "operation_id": "deploy_template_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/volume/connectors", + "operation_id": "volume_connector_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/volume/connectors/{id}", + "operation_id": "volume_connector_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/volume/targets", + "operation_id": "volume_target_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/volume/targets/{id}", + "operation_id": "volume_target_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/drivers", + "operation_id": "ironic_drivers__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/drivers/{name}", + "operation_id": "ironic_driver_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/conductors", + "operation_id": "ironic_conductors__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/nodes/{id}/states", + "operation_id": "node_states__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/nodes/{id}/vendor_passthru", + "operation_id": "node_vendor_passthru__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3", + "operation_id": "keystone_v3_root__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/auth/tokens", + "operation_id": "keystone_validate_token__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/auth/catalog", + "operation_id": "keystone_catalog__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/domains", + "operation_id": "domain_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/domains/{id}", + "operation_id": "domain_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/projects", + "operation_id": "project_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/projects/{id}", + "operation_id": "project_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/users", + "operation_id": "user_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/users/{id}", + "operation_id": "user_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/groups", + "operation_id": "group_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/groups/{id}", + "operation_id": "group_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/roles", + "operation_id": "role_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/roles/{id}", + "operation_id": "role_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/regions", + "operation_id": "region_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/regions/{id}", + "operation_id": "region_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/services", + "operation_id": "service_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/services/{id}", + "operation_id": "service_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/endpoints", + "operation_id": "endpoint_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/endpoints/{id}", + "operation_id": "endpoint_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/credentials", + "operation_id": "credential_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/credentials/{id}", + "operation_id": "credential_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/policies", + "operation_id": "policy_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/policies/{id}", + "operation_id": "policy_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/users/{user_id}/application_credentials", + "operation_id": "application_credential_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/users/{user_id}/application_credentials/{id}", + "operation_id": "application_credential_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/role_assignments", + "operation_id": "keystone_role_assignments__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/projects/{project_id}/users/{user_id}/roles", + "operation_id": "keystone_list_project_user_roles__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/OS-INHERIT/domains/{domain_id}/users/{user_id}/roles", + "operation_id": "keystone_inherit_roles__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/limits", + "operation_id": "keystone_limits__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/registered_limits", + "operation_id": "keystone_registered_limits__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "magnum", + "method": "HEAD", + "path": "/v1", + "operation_id": "magnum_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "magnum", + "method": "HEAD", + "path": "/v1/clusters", + "operation_id": "cluster_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "magnum", + "method": "HEAD", + "path": "/v1/clusters/{id}", + "operation_id": "cluster_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "magnum", + "method": "HEAD", + "path": "/v1/clustertemplates", + "operation_id": "clustertemplate_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "magnum", + "method": "HEAD", + "path": "/v1/clustertemplates/{id}", + "operation_id": "clustertemplate_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "magnum", + "method": "HEAD", + "path": "/v1/certificates", + "operation_id": "certificate_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "magnum", + "method": "HEAD", + "path": "/v1/certificates/{id}", + "operation_id": "certificate_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "magnum", + "method": "HEAD", + "path": "/v1/clusters/{cluster_id}/nodegroups", + "operation_id": "nodegroup_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "magnum", + "method": "HEAD", + "path": "/v1/clusters/{cluster_id}/nodegroups/{id}", + "operation_id": "nodegroup_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "manila", + "method": "HEAD", + "path": "/v2", + "operation_id": "manila_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "manila", + "method": "HEAD", + "path": "/v2/shares", + "operation_id": "share_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "manila", + "method": "HEAD", + "path": "/v2/shares/{id}", + "operation_id": "share_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "manila", + "method": "HEAD", + "path": "/v2/snapshots", + "operation_id": "share_snapshot_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "manila", + "method": "HEAD", + "path": "/v2/snapshots/{id}", + "operation_id": "share_snapshot_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "manila", + "method": "HEAD", + "path": "/v2/share-networks", + "operation_id": "share_network_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "manila", + "method": "HEAD", + "path": "/v2/share-networks/{id}", + "operation_id": "share_network_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "manila", + "method": "HEAD", + "path": "/v2/types", + "operation_id": "share_type_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "manila", + "method": "HEAD", + "path": "/v2/types/{id}", + "operation_id": "share_type_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "manila", + "method": "HEAD", + "path": "/v2/share-servers", + "operation_id": "share_server_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "manila", + "method": "HEAD", + "path": "/v2/share-servers/{id}", + "operation_id": "share_server_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "manila", + "method": "HEAD", + "path": "/v2/security-services", + "operation_id": "security_service_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "manila", + "method": "HEAD", + "path": "/v2/security-services/{id}", + "operation_id": "security_service_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "manila", + "method": "HEAD", + "path": "/v2/share-groups", + "operation_id": "share_group_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "manila", + "method": "HEAD", + "path": "/v2/share-groups/{id}", + "operation_id": "share_group_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "manila", + "method": "HEAD", + "path": "/v2/share-replicas", + "operation_id": "share_replica_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "manila", + "method": "HEAD", + "path": "/v2/share-replicas/{id}", + "operation_id": "share_replica_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "masakari", + "method": "HEAD", + "path": "/v1", + "operation_id": "masakari_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "masakari", + "method": "HEAD", + "path": "/v1/segments", + "operation_id": "segment_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "masakari", + "method": "HEAD", + "path": "/v1/segments/{id}", + "operation_id": "segment_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "masakari", + "method": "HEAD", + "path": "/v1/segments/{segment_id}/hosts", + "operation_id": "host_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "masakari", + "method": "HEAD", + "path": "/v1/segments/{segment_id}/hosts/{id}", + "operation_id": "host_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "masakari", + "method": "HEAD", + "path": "/v1/notifications", + "operation_id": "notification_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "masakari", + "method": "HEAD", + "path": "/v1/notifications/{id}", + "operation_id": "notification_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "mistral", + "method": "HEAD", + "path": "/v2", + "operation_id": "mistral_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "mistral", + "method": "HEAD", + "path": "/v2/workflows", + "operation_id": "workflow_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "mistral", + "method": "HEAD", + "path": "/v2/workflows/{id}", + "operation_id": "workflow_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "mistral", + "method": "HEAD", + "path": "/v2/executions", + "operation_id": "execution_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "mistral", + "method": "HEAD", + "path": "/v2/executions/{id}", + "operation_id": "execution_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "mistral", + "method": "HEAD", + "path": "/v2/actions", + "operation_id": "action_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "mistral", + "method": "HEAD", + "path": "/v2/actions/{id}", + "operation_id": "action_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "mistral", + "method": "HEAD", + "path": "/v2/workbooks", + "operation_id": "workbook_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "mistral", + "method": "HEAD", + "path": "/v2/workbooks/{id}", + "operation_id": "workbook_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "mistral", + "method": "HEAD", + "path": "/v2/cron_triggers", + "operation_id": "cron_trigger_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "mistral", + "method": "HEAD", + "path": "/v2/cron_triggers/{id}", + "operation_id": "cron_trigger_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "mistral", + "method": "HEAD", + "path": "/v2/tasks", + "operation_id": "task_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "mistral", + "method": "HEAD", + "path": "/v2/tasks/{id}", + "operation_id": "task_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0", + "operation_id": "neutron_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/networks", + "operation_id": "network_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/networks/{id}", + "operation_id": "network_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/subnets", + "operation_id": "subnet_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/subnets/{id}", + "operation_id": "subnet_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/ports", + "operation_id": "port_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/ports/{id}", + "operation_id": "port_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/routers", + "operation_id": "router_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/routers/{id}", + "operation_id": "router_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/floatingips", + "operation_id": "floatingip_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/floatingips/{id}", + "operation_id": "floatingip_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/security-groups", + "operation_id": "security_group_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/security-groups/{id}", + "operation_id": "security_group_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/security-group-rules", + "operation_id": "security_group_rule_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/security-group-rules/{id}", + "operation_id": "security_group_rule_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/address-scopes", + "operation_id": "address_scope_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/address-scopes/{id}", + "operation_id": "address_scope_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/address-groups", + "operation_id": "address_group_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/address-groups/{id}", + "operation_id": "address_group_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/subnetpools", + "operation_id": "subnetpool_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/subnetpools/{id}", + "operation_id": "subnetpool_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/qos/policies", + "operation_id": "qos_policy_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/qos/policies/{id}", + "operation_id": "qos_policy_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/trunks", + "operation_id": "trunk_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/trunks/{id}", + "operation_id": "trunk_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/rbac-policies", + "operation_id": "rbac_policy_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/rbac-policies/{id}", + "operation_id": "rbac_policy_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/metering/metering-labels", + "operation_id": "metering_label_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/metering/metering-labels/{id}", + "operation_id": "metering_label_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/metering/metering-label-rules", + "operation_id": "metering_label_rule_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/metering/metering-label-rules/{id}", + "operation_id": "metering_label_rule_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/fwaas/firewall_groups", + "operation_id": "firewall_group_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/fwaas/firewall_groups/{id}", + "operation_id": "firewall_group_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/fwaas/firewall_policies", + "operation_id": "firewall_policy_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/fwaas/firewall_policies/{id}", + "operation_id": "firewall_policy_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/fwaas/firewall_rules", + "operation_id": "firewall_rule_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/fwaas/firewall_rules/{id}", + "operation_id": "firewall_rule_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/vpn/vpnservices", + "operation_id": "vpn_service_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/vpn/vpnservices/{id}", + "operation_id": "vpn_service_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/vpn/ipsec-site-connections", + "operation_id": "ipsec_site_connection_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/vpn/ipsec-site-connections/{id}", + "operation_id": "ipsec_site_connection_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/vpn/ikepolicies", + "operation_id": "ike_policy_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/vpn/ikepolicies/{id}", + "operation_id": "ike_policy_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/vpn/ipsecpolicies", + "operation_id": "ipsec_policy_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/vpn/ipsecpolicies/{id}", + "operation_id": "ipsec_policy_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/vpn/endpoint-groups", + "operation_id": "vpn_endpoint_group_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/vpn/endpoint-groups/{id}", + "operation_id": "vpn_endpoint_group_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/bgpvpn/bgpvpns", + "operation_id": "bgpvpn_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/bgpvpn/bgpvpns/{id}", + "operation_id": "bgpvpn_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/bgp-speakers", + "operation_id": "bgp_speaker_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/bgp-speakers/{id}", + "operation_id": "bgp_speaker_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/bgp-peers", + "operation_id": "bgp_peer_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/bgp-peers/{id}", + "operation_id": "bgp_peer_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/log/logs", + "operation_id": "log_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/log/logs/{id}", + "operation_id": "log_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/ndp_proxies", + "operation_id": "ndp_proxy_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/ndp_proxies/{id}", + "operation_id": "ndp_proxy_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/local_ips", + "operation_id": "local_ip_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/local_ips/{id}", + "operation_id": "local_ip_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/segments", + "operation_id": "segment_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/segments/{id}", + "operation_id": "segment_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/network_segment_ranges", + "operation_id": "network_segment_range_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/network_segment_ranges/{id}", + "operation_id": "network_segment_range_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/service_profiles", + "operation_id": "service_profile_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/service_profiles/{id}", + "operation_id": "service_profile_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/flavors", + "operation_id": "neutron_flavor_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/flavors/{id}", + "operation_id": "neutron_flavor_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/default-security-group-rules", + "operation_id": "default_security_group_rule_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/default-security-group-rules/{id}", + "operation_id": "default_security_group_rule_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/lbaas/loadbalancers", + "operation_id": "lbaas_loadbalancer_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/lbaas/loadbalancers/{id}", + "operation_id": "lbaas_loadbalancer_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/lbaas/listeners", + "operation_id": "lbaas_listener_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/lbaas/listeners/{id}", + "operation_id": "lbaas_listener_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/lbaas/pools", + "operation_id": "lbaas_pool_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/lbaas/pools/{id}", + "operation_id": "lbaas_pool_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/agents", + "operation_id": "neutron_agents__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/agents/{id}", + "operation_id": "neutron_agent_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/qos/rule-types", + "operation_id": "qos_rule_types__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/network-ip-availabilities", + "operation_id": "network_ip_availabilities__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/auto-allocated-topology", + "operation_id": "auto_allocated_topology__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/quotas", + "operation_id": "neutron_quota_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/quotas/{id}", + "operation_id": "neutron_quota_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/routers/{router_id}/conntrack_helpers", + "operation_id": "conntrack_helper_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/routers/{router_id}/conntrack_helpers/{id}", + "operation_id": "conntrack_helper_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/qos/policies/{policy_id}/bandwidth_limit_rules", + "operation_id": "qos_bandwidth_limit_rule_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/qos/policies/{policy_id}/bandwidth_limit_rules/{id}", + "operation_id": "qos_bandwidth_limit_rule_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/qos/policies/{policy_id}/dscp_marking_rules", + "operation_id": "qos_dscp_marking_rule_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/qos/policies/{policy_id}/dscp_marking_rules/{id}", + "operation_id": "qos_dscp_marking_rule_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/qos/policies/{policy_id}/minimum_bandwidth_rules", + "operation_id": "qos_minimum_bandwidth_rule_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/qos/policies/{policy_id}/minimum_bandwidth_rules/{id}", + "operation_id": "qos_minimum_bandwidth_rule_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/trunks/{trunk_id}/add_subports", + "operation_id": "trunk_subport_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/trunks/{trunk_id}/add_subports/{id}", + "operation_id": "trunk_subport_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/floatingips/{floatingip_id}/port_forwardings", + "operation_id": "floatingip_port_forwarding_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/floatingips/{floatingip_id}/port_forwardings/{id}", + "operation_id": "floatingip_port_forwarding_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/local_ips/{local_ip_id}/port_associations", + "operation_id": "local_ip_association_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/local_ips/{local_ip_id}/port_associations/{id}", + "operation_id": "local_ip_association_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/bgpvpn/bgpvpns/{bgpvpn_id}/network_associations", + "operation_id": "bgpvpn_network_association_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/bgpvpn/bgpvpns/{bgpvpn_id}/network_associations/{id}", + "operation_id": "bgpvpn_network_association_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/bgpvpn/bgpvpns/{bgpvpn_id}/router_associations", + "operation_id": "bgpvpn_router_association_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/bgpvpn/bgpvpns/{bgpvpn_id}/router_associations/{id}", + "operation_id": "bgpvpn_router_association_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers", + "operation_id": "server_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers/{id}", + "operation_id": "server_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers/detail", + "operation_id": "server_list_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers/{server_id}/os-volume_attachments", + "operation_id": "volume_attachment_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers/{server_id}/os-volume_attachments/{id}", + "operation_id": "volume_attachment_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers/{server_id}/os-interface", + "operation_id": "interface_attachment_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers/{server_id}/os-interface/{id}", + "operation_id": "interface_attachment_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers/{server_id}/os-instance-actions", + "operation_id": "instance_action_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers/{server_id}/os-instance-actions/{id}", + "operation_id": "instance_action_show__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers/{server_id}/metadata", + "operation_id": "server_metadata_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers/{server_id}/metadata/{id}", + "operation_id": "server_metadata_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers/{server_id}/tags", + "operation_id": "server_tag_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers/{server_id}/tags/{id}", + "operation_id": "server_tag_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers/{server_id}/os-security-groups", + "operation_id": "server_security_group_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers/{server_id}/os-security-groups/{id}", + "operation_id": "server_security_group_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/flavors", + "operation_id": "flavor_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/flavors/{id}", + "operation_id": "flavor_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/flavors/detail", + "operation_id": "flavor_list_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-keypairs", + "operation_id": "keypair_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-keypairs/{id}", + "operation_id": "keypair_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-aggregates", + "operation_id": "aggregate_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-aggregates/{id}", + "operation_id": "aggregate_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-server-groups", + "operation_id": "server_group_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-server-groups/{id}", + "operation_id": "server_group_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1", + "operation_id": "nova_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-hypervisors", + "operation_id": "hypervisor_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-hypervisors/detail", + "operation_id": "hypervisor_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-hypervisors/{id}", + "operation_id": "hypervisor_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-availability-zone", + "operation_id": "az_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-availability-zone/detail", + "operation_id": "az_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-services", + "operation_id": "compute_services__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/limits", + "operation_id": "compute_limits__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-quota-sets/{id}", + "operation_id": "quota_set_show__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-quota-sets/{id}/detail", + "operation_id": "quota_set_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-migrations", + "operation_id": "migrations_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-networks", + "operation_id": "nova_networks__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-tenant-networks", + "operation_id": "nova_tenant_networks__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-security-groups", + "operation_id": "nova_security_groups__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-floating-ips", + "operation_id": "nova_floating_ips__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-instance_usage_audit_log", + "operation_id": "instance_usage_audit__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-assisted-volume-snapshots", + "operation_id": "assisted_volume_snapshots__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers/{server_id}/diagnostics", + "operation_id": "server_diagnostics__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers/{server_id}/os-instance-actions/{request_id}", + "operation_id": "instance_action_show__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/flavors/{id}/os-extra_specs", + "operation_id": "flavor_extra_specs__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-simple-tenant-usage", + "operation_id": "simple_tenant_usage__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-hosts", + "operation_id": "os_hosts__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/extensions", + "operation_id": "nova_extensions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/extensions/{id}", + "operation_id": "nova_extension_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-agents", + "operation_id": "agent_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-agents/{id}", + "operation_id": "agent_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/flavors/{flavor_id}/os-extra_specs", + "operation_id": "flavor_extra_spec_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/flavors/{flavor_id}/os-extra_specs/{id}", + "operation_id": "flavor_extra_spec_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers/{server_id}/migrations", + "operation_id": "server_migration_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers/{server_id}/migrations/{id}", + "operation_id": "server_migration_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers/{server_id}/consoles", + "operation_id": "console_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers/{server_id}/consoles/{id}", + "operation_id": "console_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-console-auth-tokens/{id}", + "operation_id": "console_auth_token_show__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers/{server_id}/topology", + "operation_id": "server_topology__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers/{server_id}/os-server-password", + "operation_id": "server_password_show__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2", + "operation_id": "octavia_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/loadbalancers", + "operation_id": "loadbalancer_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/loadbalancers/{id}", + "operation_id": "loadbalancer_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/listeners", + "operation_id": "listener_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/listeners/{id}", + "operation_id": "listener_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/pools", + "operation_id": "pool_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/pools/{id}", + "operation_id": "pool_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/healthmonitors", + "operation_id": "healthmonitor_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/healthmonitors/{id}", + "operation_id": "healthmonitor_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/l7policies", + "operation_id": "l7policy_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/l7policies/{id}", + "operation_id": "l7policy_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/flavors", + "operation_id": "flavor_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/flavors/{id}", + "operation_id": "flavor_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/flavorprofiles", + "operation_id": "flavorprofile_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/flavorprofiles/{id}", + "operation_id": "flavorprofile_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/octavia/amphorae", + "operation_id": "amphora_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/octavia/amphorae/{id}", + "operation_id": "amphora_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/quotas", + "operation_id": "quota_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/quotas/{id}", + "operation_id": "quota_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/providers", + "operation_id": "provider_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/providers/{id}", + "operation_id": "provider_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/pools/{pool_id}/members", + "operation_id": "member_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/pools/{pool_id}/members/{id}", + "operation_id": "member_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/l7policies/{l7policy_id}/rules", + "operation_id": "l7rule_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/l7policies/{l7policy_id}/rules/{id}", + "operation_id": "l7rule_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "placement", + "method": "HEAD", + "path": "/", + "operation_id": "placement_root__head", + "status": 405, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "placement", + "method": "HEAD", + "path": "/resource_providers", + "operation_id": "resource_provider_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "placement", + "method": "HEAD", + "path": "/resource_providers/{id}", + "operation_id": "resource_provider_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "placement", + "method": "HEAD", + "path": "/resource_classes", + "operation_id": "resource_class_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "placement", + "method": "HEAD", + "path": "/resource_classes/{id}", + "operation_id": "resource_class_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "placement", + "method": "HEAD", + "path": "/traits", + "operation_id": "trait_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "placement", + "method": "HEAD", + "path": "/traits/{id}", + "operation_id": "trait_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "placement", + "method": "HEAD", + "path": "/allocations/{consumer_uuid}", + "operation_id": "allocation_show__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "placement", + "method": "HEAD", + "path": "/allocation_candidates", + "operation_id": "allocation_candidates__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "placement", + "method": "HEAD", + "path": "/usages", + "operation_id": "usages__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "placement", + "method": "HEAD", + "path": "/resource_providers/{id}/inventories", + "operation_id": "rp_inventories__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "placement", + "method": "HEAD", + "path": "/resource_providers/{id}/aggregates", + "operation_id": "rp_aggregates__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "placement", + "method": "HEAD", + "path": "/resource_providers/{id}/traits", + "operation_id": "rp_traits__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "placement", + "method": "HEAD", + "path": "/resource_providers/{id}/usages", + "operation_id": "rp_usages__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "placement", + "method": "HEAD", + "path": "/resource_providers/{id}/allocations", + "operation_id": "rp_allocations__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "swift", + "method": "HEAD", + "path": "/info", + "operation_id": "swift_info__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "swift", + "method": "HEAD", + "path": "/v1/{account}", + "operation_id": "swift_account_get__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "swift", + "method": "HEAD", + "path": "/v1/{account}/{container}", + "operation_id": "swift_container_get__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "swift", + "method": "HEAD", + "path": "/v1/{account}/{container}/{object}", + "operation_id": "swift_object_get__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "tacker", + "method": "HEAD", + "path": "/v1.0/vnfs", + "operation_id": "vnf_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "tacker", + "method": "HEAD", + "path": "/v1.0/vnfs/{id}", + "operation_id": "vnf_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "tacker", + "method": "HEAD", + "path": "/v1.0/vnfds", + "operation_id": "vnfd_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "tacker", + "method": "HEAD", + "path": "/v1.0/vnfds/{id}", + "operation_id": "vnfd_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "tacker", + "method": "HEAD", + "path": "/v1.0/vims", + "operation_id": "vim_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "tacker", + "method": "HEAD", + "path": "/v1.0/vims/{id}", + "operation_id": "vim_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "tacker", + "method": "HEAD", + "path": "/vnfpkgm/v1/vnf_packages", + "operation_id": "vnf_package_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "tacker", + "method": "HEAD", + "path": "/vnfpkgm/v1/vnf_packages/{id}", + "operation_id": "vnf_package_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "tacker", + "method": "HEAD", + "path": "/vnflcm/v1/vnf_instances", + "operation_id": "vnf_instance_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "tacker", + "method": "HEAD", + "path": "/vnflcm/v1/vnf_instances/{id}", + "operation_id": "vnf_instance_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "trove", + "method": "HEAD", + "path": "/v1.0", + "operation_id": "trove_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "trove", + "method": "HEAD", + "path": "/v1.0/instances", + "operation_id": "instance_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "trove", + "method": "HEAD", + "path": "/v1.0/instances/{id}", + "operation_id": "instance_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "trove", + "method": "HEAD", + "path": "/v1.0/datastores", + "operation_id": "datastore_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "trove", + "method": "HEAD", + "path": "/v1.0/datastores/{id}", + "operation_id": "datastore_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "trove", + "method": "HEAD", + "path": "/v1.0/backups", + "operation_id": "backup_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "trove", + "method": "HEAD", + "path": "/v1.0/backups/{id}", + "operation_id": "backup_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "trove", + "method": "HEAD", + "path": "/v1.0/configurations", + "operation_id": "configuration_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "trove", + "method": "HEAD", + "path": "/v1.0/configurations/{id}", + "operation_id": "configuration_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "trove", + "method": "HEAD", + "path": "/v1.0/clusters", + "operation_id": "cluster_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "trove", + "method": "HEAD", + "path": "/v1.0/clusters/{id}", + "operation_id": "cluster_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "vitrage", + "method": "HEAD", + "path": "/v1/topology", + "operation_id": "topology_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "vitrage", + "method": "HEAD", + "path": "/v1/topology/{id}", + "operation_id": "topology_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "vitrage", + "method": "HEAD", + "path": "/v1/alarm", + "operation_id": "alarm_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "vitrage", + "method": "HEAD", + "path": "/v1/alarm/{id}", + "operation_id": "alarm_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "vitrage", + "method": "HEAD", + "path": "/v1/resources", + "operation_id": "resource_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "vitrage", + "method": "HEAD", + "path": "/v1/resources/{id}", + "operation_id": "resource_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "vitrage", + "method": "HEAD", + "path": "/v1/template", + "operation_id": "template_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "vitrage", + "method": "HEAD", + "path": "/v1/template/{id}", + "operation_id": "template_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "vitrage", + "method": "HEAD", + "path": "/v1/event", + "operation_id": "event_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "vitrage", + "method": "HEAD", + "path": "/v1/event/{id}", + "operation_id": "event_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "watcher", + "method": "HEAD", + "path": "/v1", + "operation_id": "watcher_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "watcher", + "method": "HEAD", + "path": "/v1/audit_templates", + "operation_id": "audit_template_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "watcher", + "method": "HEAD", + "path": "/v1/audit_templates/{id}", + "operation_id": "audit_template_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "watcher", + "method": "HEAD", + "path": "/v1/audits", + "operation_id": "audit_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "watcher", + "method": "HEAD", + "path": "/v1/audits/{id}", + "operation_id": "audit_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "watcher", + "method": "HEAD", + "path": "/v1/action_plans", + "operation_id": "action_plan_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "watcher", + "method": "HEAD", + "path": "/v1/action_plans/{id}", + "operation_id": "action_plan_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "watcher", + "method": "HEAD", + "path": "/v1/actions", + "operation_id": "action_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "watcher", + "method": "HEAD", + "path": "/v1/actions/{id}", + "operation_id": "action_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "watcher", + "method": "HEAD", + "path": "/v1/goals", + "operation_id": "goal_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "watcher", + "method": "HEAD", + "path": "/v1/goals/{id}", + "operation_id": "goal_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "watcher", + "method": "HEAD", + "path": "/v1/strategies", + "operation_id": "strategy_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "watcher", + "method": "HEAD", + "path": "/v1/strategies/{id}", + "operation_id": "strategy_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "watcher", + "method": "HEAD", + "path": "/v1/scoring_engines", + "operation_id": "scoring_engine_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "watcher", + "method": "HEAD", + "path": "/v1/scoring_engines/{id}", + "operation_id": "scoring_engine_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "watcher", + "method": "HEAD", + "path": "/v1/services", + "operation_id": "service_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "watcher", + "method": "HEAD", + "path": "/v1/services/{id}", + "operation_id": "service_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "zaqar", + "method": "HEAD", + "path": "/v2", + "operation_id": "zaqar_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "zaqar", + "method": "HEAD", + "path": "/v2/queues", + "operation_id": "queue_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "zaqar", + "method": "HEAD", + "path": "/v2/queues/{id}", + "operation_id": "queue_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "zaqar", + "method": "HEAD", + "path": "/v2/queues/{queue_name}/subscriptions", + "operation_id": "subscription_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "zaqar", + "method": "HEAD", + "path": "/v2/queues/{queue_name}/subscriptions/{id}", + "operation_id": "subscription_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "zaqar", + "method": "HEAD", + "path": "/v2/queues/{queue_name}/claims", + "operation_id": "claim_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "zaqar", + "method": "HEAD", + "path": "/v2/queues/{queue_name}/claims/{id}", + "operation_id": "claim_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "zaqar", + "method": "HEAD", + "path": "/v2/queues/{queue_name}/messages", + "operation_id": "message_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "zaqar", + "method": "HEAD", + "path": "/v2/queues/{queue_name}/messages/{id}", + "operation_id": "message_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "zaqar", + "method": "HEAD", + "path": "/v2/health", + "operation_id": "zaqar_health__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "zaqar", + "method": "HEAD", + "path": "/v2/ping", + "operation_id": "zaqar_ping__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "zun", + "method": "HEAD", + "path": "/v1", + "operation_id": "zun_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "zun", + "method": "HEAD", + "path": "/v1/containers", + "operation_id": "container_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "zun", + "method": "HEAD", + "path": "/v1/containers/{id}", + "operation_id": "container_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "zun", + "method": "HEAD", + "path": "/v1/images", + "operation_id": "image_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "zun", + "method": "HEAD", + "path": "/v1/images/{id}", + "operation_id": "image_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "zun", + "method": "HEAD", + "path": "/v1/capsules", + "operation_id": "capsule_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "zun", + "method": "HEAD", + "path": "/v1/capsules/{id}", + "operation_id": "capsule_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "zun", + "method": "HEAD", + "path": "/v1/hosts", + "operation_id": "host_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "zun", + "method": "HEAD", + "path": "/v1/hosts/{id}", + "operation_id": "host_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "zun", + "method": "HEAD", + "path": "/v1/services", + "operation_id": "service_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "zun", + "method": "HEAD", + "path": "/v1/services/{id}", + "operation_id": "service_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false } ], "failures": [] diff --git a/pulumi-tests/reports/series-yoga.json b/pulumi-tests/reports/series-yoga.json index f1115fc..3a9b065 100644 --- a/pulumi-tests/reports/series-yoga.json +++ b/pulumi-tests/reports/series-yoga.json @@ -2,35 +2,35 @@ "series": "yoga", "pulumi": { "series": "yoga", - "elapsed_s": 35.66, + "elapsed_s": 21.05, "error": null, "outputs": { "auth_project_id": "8924e279-51c7-582e-b6f5-8e41b33e7581", "auth_user_id": "b76edf4a-1452-5436-a411-a099ada1f7cb", - "created_project_id": "33240bb8-c463-4b92-8c12-7302ed5eba04", - "created_user_id": "9ac92b4f-b7bb-4712-8c15-987a2ac6783d", + "created_project_id": "a719f057-c4e2-4e22-9959-d236923a8ede", + "created_user_id": "32a0fb8d-4a4a-4dd4-b146-c145ffb19715", "demo_net_id": "a245268b-88ba-597a-b8db-017810782f98", "flavor_id": "1", "image_id": "c58b99c0-2d7b-5842-b260-b617db2f7803", "image_name": "cirros", - "interface_id": "6f13e789-060f-460e-83a9-94ba151142c2/8d03cae2-a8b2-4d1a-949f-4f19a11b40ed", - "keypair_name": "pu-yoga-69eb5f-kp", - "network_id": "c28c44dc-a9b6-4e67-85cd-36c046737f9a", - "port_id": "8d03cae2-a8b2-4d1a-949f-4f19a11b40ed", + "interface_id": "6997d545-7aed-4b1f-b83f-01746593bd83/65b607b4-13bb-4635-9510-041b2d9db881", + "keypair_name": "pu-yoga-f8ae3f-kp", + "network_id": "5e2a0c44-766b-4154-8a80-0bcee1d3b73e", + "port_id": "65b607b4-13bb-4635-9510-041b2d9db881", "project_name": "demo", - "router_id": "6c68611b-6ba6-44c8-9ef2-146d6723b9c3", - "router_iface_id": "0810febd-3979-48fc-bfb2-fc24da6a4683", - "secgroup_id": "c479c4e4-f15f-45ba-b0bb-fc3e7fb9b72d", - "secgroup_rule_id": "249b7523-f84a-44a9-a328-7a2f53984ea4", + "router_id": "7a57a2dd-7e47-40af-9966-f199dd114fc0", + "router_iface_id": "2a600c25-898c-4444-92f3-698d9faabc86", + "secgroup_id": "59a4612f-754e-4dd4-ad82-cafc05dd8d1a", + "secgroup_rule_id": "cb4a9464-d9f8-4b96-a7f3-00c0a463586d", "series": "yoga", - "server_group_id": "fd714033-2511-4a27-bcb7-1b173e879a82", - "server_id": "6f13e789-060f-460e-83a9-94ba151142c2", - "server_name": "pu-yoga-69eb5f-vm", - "subnet_id": "d5925e75-d128-4f52-a88a-4aa7833c5a23", - "tag": "pu-yoga-69eb5f", - "volume2_id": "e5ed6970-d4eb-4085-978c-eac7235e4ddb", - "volume_attach_id": "6f13e789-060f-460e-83a9-94ba151142c2/1091ab33-3904-4c97-8916-8cb98ec053b1", - "volume_id": "e4df763f-5a74-45a8-8b6e-798d3cec7b5e" + "server_group_id": "d2b1cd50-ba00-4b6e-b2dc-dae7d32eac18", + "server_id": "6997d545-7aed-4b1f-b83f-01746593bd83", + "server_name": "pu-yoga-f8ae3f-vm", + "subnet_id": "ecab7de1-6c80-4904-9676-f95eb84c84ca", + "tag": "pu-yoga-f8ae3f", + "volume2_id": "ebe99f6c-9148-4079-b6cd-30cda1337731", + "volume_attach_id": "6997d545-7aed-4b1f-b83f-01746593bd83/95982862-b32d-4f22-b29c-b01d8c7d93ad", + "volume_id": "0cdaed66-20e7-4191-8410-b865caffce81" }, "empty_exports": [], "ok": true @@ -39,19 +39,23 @@ "series": "yoga", "host": "http://api-gateway:5000", "mode": "lifecycle", - "total": 1060, - "expected_ops": 1060, + "total": 1464, + "expected_ops": 1464, + "declared_ops": 1060, + "head_ops": 404, "coverage_incomplete": false, "methods": { "GET": 404, "POST": 168, "PUT": 171, "PATCH": 155, - "DELETE": 162 + "DELETE": 162, + "HEAD": 404 }, - "ok_count": 1060, + "ok_count": 1464, "fail_count": 0, "nonempty_fail_count": 0, + "critical": 0, "results": [ { "service": "adjutant", @@ -11712,6 +11716,4450 @@ "mode": "lifecycle", "ok": true, "succeeded": true + }, + { + "service": "adjutant", + "method": "HEAD", + "path": "/v1/tasks", + "operation_id": "task_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "adjutant", + "method": "HEAD", + "path": "/v1/tasks/{id}", + "operation_id": "task_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "adjutant", + "method": "HEAD", + "path": "/v1/tokens", + "operation_id": "token_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "adjutant", + "method": "HEAD", + "path": "/v1/tokens/{id}", + "operation_id": "token_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "adjutant", + "method": "HEAD", + "path": "/v1/notifications", + "operation_id": "notification_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "adjutant", + "method": "HEAD", + "path": "/v1/notifications/{id}", + "operation_id": "notification_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "adjutant", + "method": "HEAD", + "path": "/v1/status", + "operation_id": "status_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "adjutant", + "method": "HEAD", + "path": "/v1/status/{id}", + "operation_id": "status_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "aodh", + "method": "HEAD", + "path": "/v2", + "operation_id": "aodh_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "aodh", + "method": "HEAD", + "path": "/v2/alarms", + "operation_id": "alarm_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "aodh", + "method": "HEAD", + "path": "/v2/alarms/{id}", + "operation_id": "alarm_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "aodh", + "method": "HEAD", + "path": "/v2/alarms/{alarm_id}/history", + "operation_id": "alarm_history_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "aodh", + "method": "HEAD", + "path": "/v2/alarms/{alarm_id}/history/{id}", + "operation_id": "alarm_history_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "aodh", + "method": "HEAD", + "path": "/v2/quotas", + "operation_id": "quota_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "aodh", + "method": "HEAD", + "path": "/v2/quotas/{id}", + "operation_id": "quota_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "barbican", + "method": "HEAD", + "path": "/v1", + "operation_id": "barbican_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "barbican", + "method": "HEAD", + "path": "/v1/secrets", + "operation_id": "secret_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "barbican", + "method": "HEAD", + "path": "/v1/secrets/{id}", + "operation_id": "secret_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "barbican", + "method": "HEAD", + "path": "/v1/containers", + "operation_id": "container_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "barbican", + "method": "HEAD", + "path": "/v1/containers/{id}", + "operation_id": "container_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "barbican", + "method": "HEAD", + "path": "/v1/orders", + "operation_id": "order_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "barbican", + "method": "HEAD", + "path": "/v1/orders/{id}", + "operation_id": "order_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "barbican", + "method": "HEAD", + "path": "/v1/secret-stores", + "operation_id": "secret_store_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "barbican", + "method": "HEAD", + "path": "/v1/secret-stores/{id}", + "operation_id": "secret_store_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "blazar", + "method": "HEAD", + "path": "/v1", + "operation_id": "blazar_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "blazar", + "method": "HEAD", + "path": "/leases", + "operation_id": "lease_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "blazar", + "method": "HEAD", + "path": "/leases/{id}", + "operation_id": "lease_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "blazar", + "method": "HEAD", + "path": "/os-hosts", + "operation_id": "host_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "blazar", + "method": "HEAD", + "path": "/os-hosts/{id}", + "operation_id": "host_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "blazar", + "method": "HEAD", + "path": "/floatingips", + "operation_id": "floatingip_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "blazar", + "method": "HEAD", + "path": "/floatingips/{id}", + "operation_id": "floatingip_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3", + "operation_id": "cinder_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/volumes", + "operation_id": "volume_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/volumes/{id}", + "operation_id": "volume_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/volumes/detail", + "operation_id": "volume_list_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/snapshots", + "operation_id": "snapshot_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/snapshots/{id}", + "operation_id": "snapshot_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/snapshots/detail", + "operation_id": "snapshot_list_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/backups", + "operation_id": "backup_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/backups/{id}", + "operation_id": "backup_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/backups/detail", + "operation_id": "backup_list_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/types", + "operation_id": "volume_type_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/types/{id}", + "operation_id": "volume_type_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/types/detail", + "operation_id": "volume_type_list_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/qos-specs", + "operation_id": "qos_spec_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/qos-specs/{id}", + "operation_id": "qos_spec_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/qos-specs/detail", + "operation_id": "qos_spec_list_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/groups", + "operation_id": "group_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/groups/{id}", + "operation_id": "group_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/groups/detail", + "operation_id": "group_list_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/group_snapshots", + "operation_id": "group_snapshot_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/group_snapshots/{id}", + "operation_id": "group_snapshot_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/group_snapshots/detail", + "operation_id": "group_snapshot_list_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/consistencygroups", + "operation_id": "consistencygroup_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/consistencygroups/{id}", + "operation_id": "consistencygroup_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/consistencygroups/detail", + "operation_id": "consistencygroup_list_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/attachments", + "operation_id": "attachment_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/attachments/{id}", + "operation_id": "attachment_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/attachments/detail", + "operation_id": "attachment_list_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/volume-transfers", + "operation_id": "transfer_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/volume-transfers/{id}", + "operation_id": "transfer_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/volume-transfers/detail", + "operation_id": "transfer_list_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/messages", + "operation_id": "message_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/messages/{id}", + "operation_id": "message_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/messages/detail", + "operation_id": "message_list_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/clusters", + "operation_id": "cluster_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/clusters/{id}", + "operation_id": "cluster_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/clusters/detail", + "operation_id": "cluster_list_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/{project_id}/volumes", + "operation_id": "volume_tenant_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/{project_id}/volumes/{id}", + "operation_id": "volume_tenant_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/{project_id}/volumes/detail", + "operation_id": "volume_tenant_list_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/os-services", + "operation_id": "cinder_services__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/limits", + "operation_id": "cinder_limits__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/os-quota-sets/{id}", + "operation_id": "cinder_quota_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/resource_filters", + "operation_id": "cinder_resource_filters__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cinder", + "method": "HEAD", + "path": "/v3/scheduler-stats/get_pools", + "operation_id": "cinder_pools__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cloudkitty", + "method": "HEAD", + "path": "/v1", + "operation_id": "cloudkitty_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cloudkitty", + "method": "HEAD", + "path": "/v1/rating/module_config/hashmap/services", + "operation_id": "hashmap_service_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cloudkitty", + "method": "HEAD", + "path": "/v1/rating/module_config/hashmap/services/{id}", + "operation_id": "hashmap_service_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cloudkitty", + "method": "HEAD", + "path": "/v1/rating/module_config/hashmap/fields", + "operation_id": "hashmap_field_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cloudkitty", + "method": "HEAD", + "path": "/v1/rating/module_config/hashmap/fields/{id}", + "operation_id": "hashmap_field_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cloudkitty", + "method": "HEAD", + "path": "/v1/report/summary", + "operation_id": "report_summary_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cloudkitty", + "method": "HEAD", + "path": "/v1/report/summary/{id}", + "operation_id": "report_summary_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "cloudkitty", + "method": "HEAD", + "path": "/v1/storage/dataframes", + "operation_id": "dataframes_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "cloudkitty", + "method": "HEAD", + "path": "/v1/storage/dataframes/{id}", + "operation_id": "dataframes_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "designate", + "method": "HEAD", + "path": "/v2", + "operation_id": "designate_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "designate", + "method": "HEAD", + "path": "/v2/zones", + "operation_id": "zone_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "designate", + "method": "HEAD", + "path": "/v2/zones/{id}", + "operation_id": "zone_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "designate", + "method": "HEAD", + "path": "/v2/pools", + "operation_id": "pool_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "designate", + "method": "HEAD", + "path": "/v2/pools/{id}", + "operation_id": "pool_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "designate", + "method": "HEAD", + "path": "/v2/service_statuses", + "operation_id": "service_status_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "designate", + "method": "HEAD", + "path": "/v2/service_statuses/{id}", + "operation_id": "service_status_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "freezer", + "method": "HEAD", + "path": "/v2", + "operation_id": "freezer_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "freezer", + "method": "HEAD", + "path": "/v2/jobs", + "operation_id": "job_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "freezer", + "method": "HEAD", + "path": "/v2/jobs/{id}", + "operation_id": "job_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "freezer", + "method": "HEAD", + "path": "/v2/clients", + "operation_id": "client_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "freezer", + "method": "HEAD", + "path": "/v2/clients/{id}", + "operation_id": "client_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "freezer", + "method": "HEAD", + "path": "/v2/backups", + "operation_id": "backup_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "freezer", + "method": "HEAD", + "path": "/v2/backups/{id}", + "operation_id": "backup_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "freezer", + "method": "HEAD", + "path": "/v2/sessions", + "operation_id": "session_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "freezer", + "method": "HEAD", + "path": "/v2/sessions/{id}", + "operation_id": "session_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "freezer", + "method": "HEAD", + "path": "/v2/actions", + "operation_id": "action_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "freezer", + "method": "HEAD", + "path": "/v2/actions/{id}", + "operation_id": "action_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "glance", + "method": "HEAD", + "path": "/v2", + "operation_id": "glance_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "glance", + "method": "HEAD", + "path": "/v2/images", + "operation_id": "image_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "glance", + "method": "HEAD", + "path": "/v2/images/{id}", + "operation_id": "image_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "glance", + "method": "HEAD", + "path": "/v2/images/{id}/file", + "operation_id": "image_download__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "glance", + "method": "HEAD", + "path": "/v2/metadefs/namespaces", + "operation_id": "metadef_namespace_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "glance", + "method": "HEAD", + "path": "/v2/metadefs/namespaces/{id}", + "operation_id": "metadef_namespace_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "glance", + "method": "HEAD", + "path": "/v2/tasks", + "operation_id": "task_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "glance", + "method": "HEAD", + "path": "/v2/tasks/{id}", + "operation_id": "task_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "glance", + "method": "HEAD", + "path": "/v2/schemas/image", + "operation_id": "glance_schema_image__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "glance", + "method": "HEAD", + "path": "/v2/schemas/images", + "operation_id": "glance_schema_images__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "glance", + "method": "HEAD", + "path": "/v2/images/{image_id}/members", + "operation_id": "image_member_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "glance", + "method": "HEAD", + "path": "/v2/images/{image_id}/members/{id}", + "operation_id": "image_member_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "glance", + "method": "HEAD", + "path": "/v2/images/{image_id}/tags", + "operation_id": "image_tag_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "glance", + "method": "HEAD", + "path": "/v2/images/{image_id}/tags/{id}", + "operation_id": "image_tag_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "heat", + "method": "HEAD", + "path": "/v1", + "operation_id": "heat_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "heat", + "method": "HEAD", + "path": "/v1/{tenant_id}/stacks", + "operation_id": "stack_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "heat", + "method": "HEAD", + "path": "/v1/{tenant_id}/stacks/{id}", + "operation_id": "stack_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "heat", + "method": "HEAD", + "path": "/v1/{tenant_id}/stacks/detail", + "operation_id": "stack_list_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "heat", + "method": "HEAD", + "path": "/v1/{tenant_id}/stacks/{stack_name}/{stack_id}", + "operation_id": "stack_show_by_name__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "heat", + "method": "HEAD", + "path": "/v1/{tenant_id}/stacks/{stack_name}/{stack_id}/resources", + "operation_id": "stack_resource_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "heat", + "method": "HEAD", + "path": "/v1/{tenant_id}/stacks/{stack_name}/{stack_id}/resources/{id}", + "operation_id": "stack_resource_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "heat", + "method": "HEAD", + "path": "/v1/{tenant_id}/stacks/{stack_name}/{stack_id}/events", + "operation_id": "stack_event_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "heat", + "method": "HEAD", + "path": "/v1/{tenant_id}/stacks/{stack_name}/{stack_id}/events/{id}", + "operation_id": "stack_event_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "heat", + "method": "HEAD", + "path": "/v1/{tenant_id}/software_configs", + "operation_id": "software_config_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "heat", + "method": "HEAD", + "path": "/v1/{tenant_id}/software_configs/{id}", + "operation_id": "software_config_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "heat", + "method": "HEAD", + "path": "/v1/{tenant_id}/software_deployments", + "operation_id": "software_deployment_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "heat", + "method": "HEAD", + "path": "/v1/{tenant_id}/software_deployments/{id}", + "operation_id": "software_deployment_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "heat", + "method": "HEAD", + "path": "/v1/{tenant_id}/resource_types", + "operation_id": "heat_resource_types__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "heat", + "method": "HEAD", + "path": "/v1/{tenant_id}/services", + "operation_id": "heat_services__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "heat-cfn", + "method": "HEAD", + "path": "/stacks", + "operation_id": "stack_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "heat-cfn", + "method": "HEAD", + "path": "/stacks/{id}", + "operation_id": "stack_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "heat-cfn", + "method": "HEAD", + "path": "/v1", + "operation_id": "heat_cfn_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1", + "operation_id": "ironic_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/nodes", + "operation_id": "node_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/nodes/{id}", + "operation_id": "node_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/ports", + "operation_id": "port_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/ports/{id}", + "operation_id": "port_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/portgroups", + "operation_id": "portgroup_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/portgroups/{id}", + "operation_id": "portgroup_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/chassis", + "operation_id": "chassis_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/chassis/{id}", + "operation_id": "chassis_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/allocations", + "operation_id": "allocation_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/allocations/{id}", + "operation_id": "allocation_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/deploy_templates", + "operation_id": "deploy_template_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/deploy_templates/{id}", + "operation_id": "deploy_template_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/volume/connectors", + "operation_id": "volume_connector_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/volume/connectors/{id}", + "operation_id": "volume_connector_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/volume/targets", + "operation_id": "volume_target_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/volume/targets/{id}", + "operation_id": "volume_target_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/drivers", + "operation_id": "ironic_drivers__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/drivers/{name}", + "operation_id": "ironic_driver_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/conductors", + "operation_id": "ironic_conductors__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/nodes/{id}/states", + "operation_id": "node_states__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "ironic", + "method": "HEAD", + "path": "/v1/nodes/{id}/vendor_passthru", + "operation_id": "node_vendor_passthru__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3", + "operation_id": "keystone_v3_root__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/auth/tokens", + "operation_id": "keystone_validate_token__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/auth/catalog", + "operation_id": "keystone_catalog__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/domains", + "operation_id": "domain_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/domains/{id}", + "operation_id": "domain_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/projects", + "operation_id": "project_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/projects/{id}", + "operation_id": "project_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/users", + "operation_id": "user_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/users/{id}", + "operation_id": "user_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/groups", + "operation_id": "group_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/groups/{id}", + "operation_id": "group_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/roles", + "operation_id": "role_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/roles/{id}", + "operation_id": "role_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/regions", + "operation_id": "region_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/regions/{id}", + "operation_id": "region_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/services", + "operation_id": "service_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/services/{id}", + "operation_id": "service_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/endpoints", + "operation_id": "endpoint_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/endpoints/{id}", + "operation_id": "endpoint_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/credentials", + "operation_id": "credential_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/credentials/{id}", + "operation_id": "credential_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/policies", + "operation_id": "policy_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/policies/{id}", + "operation_id": "policy_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/users/{user_id}/application_credentials", + "operation_id": "application_credential_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/users/{user_id}/application_credentials/{id}", + "operation_id": "application_credential_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/role_assignments", + "operation_id": "keystone_role_assignments__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/projects/{project_id}/users/{user_id}/roles", + "operation_id": "keystone_list_project_user_roles__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/OS-INHERIT/domains/{domain_id}/users/{user_id}/roles", + "operation_id": "keystone_inherit_roles__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/limits", + "operation_id": "keystone_limits__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "keystone", + "method": "HEAD", + "path": "/v3/registered_limits", + "operation_id": "keystone_registered_limits__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "magnum", + "method": "HEAD", + "path": "/v1", + "operation_id": "magnum_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "magnum", + "method": "HEAD", + "path": "/v1/clusters", + "operation_id": "cluster_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "magnum", + "method": "HEAD", + "path": "/v1/clusters/{id}", + "operation_id": "cluster_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "magnum", + "method": "HEAD", + "path": "/v1/clustertemplates", + "operation_id": "clustertemplate_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "magnum", + "method": "HEAD", + "path": "/v1/clustertemplates/{id}", + "operation_id": "clustertemplate_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "magnum", + "method": "HEAD", + "path": "/v1/certificates", + "operation_id": "certificate_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "magnum", + "method": "HEAD", + "path": "/v1/certificates/{id}", + "operation_id": "certificate_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "magnum", + "method": "HEAD", + "path": "/v1/clusters/{cluster_id}/nodegroups", + "operation_id": "nodegroup_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "magnum", + "method": "HEAD", + "path": "/v1/clusters/{cluster_id}/nodegroups/{id}", + "operation_id": "nodegroup_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "manila", + "method": "HEAD", + "path": "/v2", + "operation_id": "manila_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "manila", + "method": "HEAD", + "path": "/v2/shares", + "operation_id": "share_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "manila", + "method": "HEAD", + "path": "/v2/shares/{id}", + "operation_id": "share_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "manila", + "method": "HEAD", + "path": "/v2/snapshots", + "operation_id": "share_snapshot_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "manila", + "method": "HEAD", + "path": "/v2/snapshots/{id}", + "operation_id": "share_snapshot_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "manila", + "method": "HEAD", + "path": "/v2/share-networks", + "operation_id": "share_network_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "manila", + "method": "HEAD", + "path": "/v2/share-networks/{id}", + "operation_id": "share_network_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "manila", + "method": "HEAD", + "path": "/v2/types", + "operation_id": "share_type_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "manila", + "method": "HEAD", + "path": "/v2/types/{id}", + "operation_id": "share_type_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "manila", + "method": "HEAD", + "path": "/v2/share-servers", + "operation_id": "share_server_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "manila", + "method": "HEAD", + "path": "/v2/share-servers/{id}", + "operation_id": "share_server_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "manila", + "method": "HEAD", + "path": "/v2/security-services", + "operation_id": "security_service_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "manila", + "method": "HEAD", + "path": "/v2/security-services/{id}", + "operation_id": "security_service_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "masakari", + "method": "HEAD", + "path": "/v1", + "operation_id": "masakari_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "masakari", + "method": "HEAD", + "path": "/v1/segments", + "operation_id": "segment_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "masakari", + "method": "HEAD", + "path": "/v1/segments/{id}", + "operation_id": "segment_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "masakari", + "method": "HEAD", + "path": "/v1/segments/{segment_id}/hosts", + "operation_id": "host_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "masakari", + "method": "HEAD", + "path": "/v1/segments/{segment_id}/hosts/{id}", + "operation_id": "host_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "masakari", + "method": "HEAD", + "path": "/v1/notifications", + "operation_id": "notification_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "masakari", + "method": "HEAD", + "path": "/v1/notifications/{id}", + "operation_id": "notification_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "mistral", + "method": "HEAD", + "path": "/v2", + "operation_id": "mistral_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "mistral", + "method": "HEAD", + "path": "/v2/workflows", + "operation_id": "workflow_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "mistral", + "method": "HEAD", + "path": "/v2/workflows/{id}", + "operation_id": "workflow_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "mistral", + "method": "HEAD", + "path": "/v2/executions", + "operation_id": "execution_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "mistral", + "method": "HEAD", + "path": "/v2/executions/{id}", + "operation_id": "execution_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "mistral", + "method": "HEAD", + "path": "/v2/actions", + "operation_id": "action_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "mistral", + "method": "HEAD", + "path": "/v2/actions/{id}", + "operation_id": "action_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "mistral", + "method": "HEAD", + "path": "/v2/workbooks", + "operation_id": "workbook_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "mistral", + "method": "HEAD", + "path": "/v2/workbooks/{id}", + "operation_id": "workbook_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "mistral", + "method": "HEAD", + "path": "/v2/cron_triggers", + "operation_id": "cron_trigger_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "mistral", + "method": "HEAD", + "path": "/v2/cron_triggers/{id}", + "operation_id": "cron_trigger_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "mistral", + "method": "HEAD", + "path": "/v2/tasks", + "operation_id": "task_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "mistral", + "method": "HEAD", + "path": "/v2/tasks/{id}", + "operation_id": "task_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0", + "operation_id": "neutron_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/networks", + "operation_id": "network_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/networks/{id}", + "operation_id": "network_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/subnets", + "operation_id": "subnet_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/subnets/{id}", + "operation_id": "subnet_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/ports", + "operation_id": "port_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/ports/{id}", + "operation_id": "port_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/routers", + "operation_id": "router_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/routers/{id}", + "operation_id": "router_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/floatingips", + "operation_id": "floatingip_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/floatingips/{id}", + "operation_id": "floatingip_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/security-groups", + "operation_id": "security_group_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/security-groups/{id}", + "operation_id": "security_group_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/security-group-rules", + "operation_id": "security_group_rule_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/security-group-rules/{id}", + "operation_id": "security_group_rule_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/address-scopes", + "operation_id": "address_scope_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/address-scopes/{id}", + "operation_id": "address_scope_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/subnetpools", + "operation_id": "subnetpool_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/subnetpools/{id}", + "operation_id": "subnetpool_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/qos/policies", + "operation_id": "qos_policy_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/qos/policies/{id}", + "operation_id": "qos_policy_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/trunks", + "operation_id": "trunk_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/trunks/{id}", + "operation_id": "trunk_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/rbac-policies", + "operation_id": "rbac_policy_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/rbac-policies/{id}", + "operation_id": "rbac_policy_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/metering/metering-labels", + "operation_id": "metering_label_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/metering/metering-labels/{id}", + "operation_id": "metering_label_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/metering/metering-label-rules", + "operation_id": "metering_label_rule_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/metering/metering-label-rules/{id}", + "operation_id": "metering_label_rule_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/service_profiles", + "operation_id": "service_profile_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/service_profiles/{id}", + "operation_id": "service_profile_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/flavors", + "operation_id": "neutron_flavor_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/flavors/{id}", + "operation_id": "neutron_flavor_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/lbaas/loadbalancers", + "operation_id": "lbaas_loadbalancer_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/lbaas/loadbalancers/{id}", + "operation_id": "lbaas_loadbalancer_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/lbaas/listeners", + "operation_id": "lbaas_listener_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/lbaas/listeners/{id}", + "operation_id": "lbaas_listener_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/lbaas/pools", + "operation_id": "lbaas_pool_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/lbaas/pools/{id}", + "operation_id": "lbaas_pool_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/agents", + "operation_id": "neutron_agents__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/agents/{id}", + "operation_id": "neutron_agent_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/quotas", + "operation_id": "neutron_quota_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/quotas/{id}", + "operation_id": "neutron_quota_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/qos/policies/{policy_id}/bandwidth_limit_rules", + "operation_id": "qos_bandwidth_limit_rule_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/qos/policies/{policy_id}/bandwidth_limit_rules/{id}", + "operation_id": "qos_bandwidth_limit_rule_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/qos/policies/{policy_id}/dscp_marking_rules", + "operation_id": "qos_dscp_marking_rule_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/qos/policies/{policy_id}/dscp_marking_rules/{id}", + "operation_id": "qos_dscp_marking_rule_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/qos/policies/{policy_id}/minimum_bandwidth_rules", + "operation_id": "qos_minimum_bandwidth_rule_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/qos/policies/{policy_id}/minimum_bandwidth_rules/{id}", + "operation_id": "qos_minimum_bandwidth_rule_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/trunks/{trunk_id}/add_subports", + "operation_id": "trunk_subport_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/trunks/{trunk_id}/add_subports/{id}", + "operation_id": "trunk_subport_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/floatingips/{floatingip_id}/port_forwardings", + "operation_id": "floatingip_port_forwarding_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "neutron", + "method": "HEAD", + "path": "/v2.0/floatingips/{floatingip_id}/port_forwardings/{id}", + "operation_id": "floatingip_port_forwarding_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers", + "operation_id": "server_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers/{id}", + "operation_id": "server_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers/detail", + "operation_id": "server_list_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers/{server_id}/os-volume_attachments", + "operation_id": "volume_attachment_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers/{server_id}/os-volume_attachments/{id}", + "operation_id": "volume_attachment_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers/{server_id}/os-interface", + "operation_id": "interface_attachment_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers/{server_id}/os-interface/{id}", + "operation_id": "interface_attachment_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers/{server_id}/os-instance-actions", + "operation_id": "instance_action_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers/{server_id}/os-instance-actions/{id}", + "operation_id": "instance_action_show__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers/{server_id}/metadata", + "operation_id": "server_metadata_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers/{server_id}/metadata/{id}", + "operation_id": "server_metadata_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers/{server_id}/tags", + "operation_id": "server_tag_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers/{server_id}/tags/{id}", + "operation_id": "server_tag_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers/{server_id}/os-security-groups", + "operation_id": "server_security_group_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers/{server_id}/os-security-groups/{id}", + "operation_id": "server_security_group_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/flavors", + "operation_id": "flavor_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/flavors/{id}", + "operation_id": "flavor_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/flavors/detail", + "operation_id": "flavor_list_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-keypairs", + "operation_id": "keypair_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-keypairs/{id}", + "operation_id": "keypair_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-aggregates", + "operation_id": "aggregate_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-aggregates/{id}", + "operation_id": "aggregate_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-server-groups", + "operation_id": "server_group_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-server-groups/{id}", + "operation_id": "server_group_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1", + "operation_id": "nova_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-hypervisors", + "operation_id": "hypervisor_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-hypervisors/detail", + "operation_id": "hypervisor_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-hypervisors/{id}", + "operation_id": "hypervisor_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-availability-zone", + "operation_id": "az_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-availability-zone/detail", + "operation_id": "az_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-services", + "operation_id": "compute_services__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/limits", + "operation_id": "compute_limits__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-quota-sets/{id}", + "operation_id": "quota_set_show__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-quota-sets/{id}/detail", + "operation_id": "quota_set_detail__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-migrations", + "operation_id": "migrations_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-networks", + "operation_id": "nova_networks__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-tenant-networks", + "operation_id": "nova_tenant_networks__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-security-groups", + "operation_id": "nova_security_groups__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/os-floating-ips", + "operation_id": "nova_floating_ips__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/flavors/{flavor_id}/os-extra_specs", + "operation_id": "flavor_extra_spec_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/flavors/{flavor_id}/os-extra_specs/{id}", + "operation_id": "flavor_extra_spec_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "nova", + "method": "HEAD", + "path": "/v2.1/servers/{server_id}/os-server-password", + "operation_id": "server_password_show__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2", + "operation_id": "octavia_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/loadbalancers", + "operation_id": "loadbalancer_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/loadbalancers/{id}", + "operation_id": "loadbalancer_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/listeners", + "operation_id": "listener_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/listeners/{id}", + "operation_id": "listener_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/pools", + "operation_id": "pool_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/pools/{id}", + "operation_id": "pool_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/healthmonitors", + "operation_id": "healthmonitor_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/healthmonitors/{id}", + "operation_id": "healthmonitor_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/flavors", + "operation_id": "flavor_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/flavors/{id}", + "operation_id": "flavor_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/quotas", + "operation_id": "quota_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/quotas/{id}", + "operation_id": "quota_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/pools/{pool_id}/members", + "operation_id": "member_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "octavia", + "method": "HEAD", + "path": "/v2/lbaas/pools/{pool_id}/members/{id}", + "operation_id": "member_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "placement", + "method": "HEAD", + "path": "/", + "operation_id": "placement_root__head", + "status": 405, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "placement", + "method": "HEAD", + "path": "/resource_providers", + "operation_id": "resource_provider_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "placement", + "method": "HEAD", + "path": "/resource_providers/{id}", + "operation_id": "resource_provider_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "placement", + "method": "HEAD", + "path": "/resource_classes", + "operation_id": "resource_class_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "placement", + "method": "HEAD", + "path": "/resource_classes/{id}", + "operation_id": "resource_class_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "placement", + "method": "HEAD", + "path": "/traits", + "operation_id": "trait_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "placement", + "method": "HEAD", + "path": "/traits/{id}", + "operation_id": "trait_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "placement", + "method": "HEAD", + "path": "/allocations/{consumer_uuid}", + "operation_id": "allocation_show__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "placement", + "method": "HEAD", + "path": "/allocation_candidates", + "operation_id": "allocation_candidates__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "placement", + "method": "HEAD", + "path": "/usages", + "operation_id": "usages__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "placement", + "method": "HEAD", + "path": "/resource_providers/{id}/inventories", + "operation_id": "rp_inventories__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "placement", + "method": "HEAD", + "path": "/resource_providers/{id}/aggregates", + "operation_id": "rp_aggregates__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "placement", + "method": "HEAD", + "path": "/resource_providers/{id}/traits", + "operation_id": "rp_traits__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "placement", + "method": "HEAD", + "path": "/resource_providers/{id}/usages", + "operation_id": "rp_usages__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "placement", + "method": "HEAD", + "path": "/resource_providers/{id}/allocations", + "operation_id": "rp_allocations__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "swift", + "method": "HEAD", + "path": "/info", + "operation_id": "swift_info__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "swift", + "method": "HEAD", + "path": "/v1/{account}", + "operation_id": "swift_account_get__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "swift", + "method": "HEAD", + "path": "/v1/{account}/{container}", + "operation_id": "swift_container_get__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "swift", + "method": "HEAD", + "path": "/v1/{account}/{container}/{object}", + "operation_id": "swift_object_get__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "tacker", + "method": "HEAD", + "path": "/v1.0/vnfs", + "operation_id": "vnf_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "tacker", + "method": "HEAD", + "path": "/v1.0/vnfs/{id}", + "operation_id": "vnf_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "tacker", + "method": "HEAD", + "path": "/v1.0/vnfds", + "operation_id": "vnfd_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "tacker", + "method": "HEAD", + "path": "/v1.0/vnfds/{id}", + "operation_id": "vnfd_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "tacker", + "method": "HEAD", + "path": "/v1.0/vims", + "operation_id": "vim_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "tacker", + "method": "HEAD", + "path": "/v1.0/vims/{id}", + "operation_id": "vim_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "trove", + "method": "HEAD", + "path": "/v1.0", + "operation_id": "trove_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "trove", + "method": "HEAD", + "path": "/v1.0/instances", + "operation_id": "instance_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "trove", + "method": "HEAD", + "path": "/v1.0/instances/{id}", + "operation_id": "instance_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "trove", + "method": "HEAD", + "path": "/v1.0/datastores", + "operation_id": "datastore_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "trove", + "method": "HEAD", + "path": "/v1.0/datastores/{id}", + "operation_id": "datastore_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "trove", + "method": "HEAD", + "path": "/v1.0/backups", + "operation_id": "backup_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "trove", + "method": "HEAD", + "path": "/v1.0/backups/{id}", + "operation_id": "backup_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "trove", + "method": "HEAD", + "path": "/v1.0/configurations", + "operation_id": "configuration_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "trove", + "method": "HEAD", + "path": "/v1.0/configurations/{id}", + "operation_id": "configuration_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "trove", + "method": "HEAD", + "path": "/v1.0/clusters", + "operation_id": "cluster_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "trove", + "method": "HEAD", + "path": "/v1.0/clusters/{id}", + "operation_id": "cluster_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "vitrage", + "method": "HEAD", + "path": "/v1/topology", + "operation_id": "topology_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "vitrage", + "method": "HEAD", + "path": "/v1/topology/{id}", + "operation_id": "topology_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "vitrage", + "method": "HEAD", + "path": "/v1/alarm", + "operation_id": "alarm_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "vitrage", + "method": "HEAD", + "path": "/v1/alarm/{id}", + "operation_id": "alarm_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "vitrage", + "method": "HEAD", + "path": "/v1/resources", + "operation_id": "resource_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "vitrage", + "method": "HEAD", + "path": "/v1/resources/{id}", + "operation_id": "resource_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "vitrage", + "method": "HEAD", + "path": "/v1/template", + "operation_id": "template_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "vitrage", + "method": "HEAD", + "path": "/v1/template/{id}", + "operation_id": "template_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "vitrage", + "method": "HEAD", + "path": "/v1/event", + "operation_id": "event_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "vitrage", + "method": "HEAD", + "path": "/v1/event/{id}", + "operation_id": "event_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "watcher", + "method": "HEAD", + "path": "/v1", + "operation_id": "watcher_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "watcher", + "method": "HEAD", + "path": "/v1/actions", + "operation_id": "action_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "watcher", + "method": "HEAD", + "path": "/v1/actions/{id}", + "operation_id": "action_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "watcher", + "method": "HEAD", + "path": "/v1/goals", + "operation_id": "goal_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "watcher", + "method": "HEAD", + "path": "/v1/goals/{id}", + "operation_id": "goal_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "watcher", + "method": "HEAD", + "path": "/v1/strategies", + "operation_id": "strategy_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "watcher", + "method": "HEAD", + "path": "/v1/strategies/{id}", + "operation_id": "strategy_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "watcher", + "method": "HEAD", + "path": "/v1/services", + "operation_id": "service_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "watcher", + "method": "HEAD", + "path": "/v1/services/{id}", + "operation_id": "service_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "zaqar", + "method": "HEAD", + "path": "/v2", + "operation_id": "zaqar_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "zun", + "method": "HEAD", + "path": "/v1", + "operation_id": "zun_versions__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "zun", + "method": "HEAD", + "path": "/v1/containers", + "operation_id": "container_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "zun", + "method": "HEAD", + "path": "/v1/containers/{id}", + "operation_id": "container_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "zun", + "method": "HEAD", + "path": "/v1/images", + "operation_id": "image_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "zun", + "method": "HEAD", + "path": "/v1/images/{id}", + "operation_id": "image_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "zun", + "method": "HEAD", + "path": "/v1/hosts", + "operation_id": "host_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "zun", + "method": "HEAD", + "path": "/v1/hosts/{id}", + "operation_id": "host_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false + }, + { + "service": "zun", + "method": "HEAD", + "path": "/v1/services", + "operation_id": "service_list__head", + "status": 200, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": true + }, + { + "service": "zun", + "method": "HEAD", + "path": "/v1/services/{id}", + "operation_id": "service_show__head", + "status": 404, + "detail": "", + "mode": "head", + "ok": true, + "succeeded": false } ], "failures": [] diff --git a/pulumi-tests/reports/summary.json b/pulumi-tests/reports/summary.json index 780d25c..9f7dc5c 100644 --- a/pulumi-tests/reports/summary.json +++ b/pulumi-tests/reports/summary.json @@ -2,8 +2,14 @@ "series_count": 4, "pulumi_ok": 4, "pulumi_fail": 0, - "http_ok": 4721, + "http_ok": 6514, "http_fail": 0, + "http_critical": 0, + "http_declared": 4721, + "http_head": 1793, + "http_total": 6514, + "http_expected": 6514, "coverage_incomplete": 0, - "collections_only": false + "collections_only": false, + "definition": "100% = HTTP contract matrix (pack ops + synthetic HEAD), not pulumi_openstack resource count" } diff --git a/pyproject.toml b/pyproject.toml index cf8852f..842639a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -49,6 +49,8 @@ select = ["E", "F", "I", "UP", "B", "ASYNC", "S", "RUF"] [tool.ruff.lint.per-file-ignores] "tests/**/*.py" = ["S101", "S105"] +"tools/os_api_inventory/request_body_catalog.py" = ["E501"] +"tools/os_api_inventory/import_openapi_bodies.py" = ["S310"] [tool.mypy] python_version = "3.13" diff --git a/tests/openstack/conformance/test_specialized_lifecycle.py b/tests/openstack/conformance/test_specialized_lifecycle.py new file mode 100644 index 0000000..756e8af --- /dev/null +++ b/tests/openstack/conformance/test_specialized_lifecycle.py @@ -0,0 +1,562 @@ +"""Specialized IaaS handlers: auth, CRUD read-after-write, Nova actions. + +Runs against a live api-gateway after minimal/demo seed. Prefers real service +ports when reachable; falls back to Keystone gateway + X-OpenStack-Route-Service. +""" + +from __future__ import annotations + +import json +import os +import urllib.error +import urllib.request +import uuid +from typing import Any + +import pytest + +pytestmark = pytest.mark.integration + + +def _probe(url: str, timeout: float = 2.0) -> bool: + try: + with urllib.request.urlopen(url, timeout=timeout) as res: + return res.status == 200 + except Exception: + return False + + +def _pick_keystone() -> str: + candidates = [ + os.environ.get("OS_PROBE_HOST"), + os.environ.get("OS_HOST"), + "http://127.0.0.1:15000", + "http://127.0.0.1:5000", + "http://api-gateway:5000", + "http://localhost:5000", + ] + for host in candidates: + if not host: + continue + base = host.rstrip("/") + if _probe(f"{base}/health/live") or _probe(f"{base}/v3"): + return base + return "" + + +KEYSTONE = _pick_keystone() + +# Real OpenStack default ports (compose publishes 1:1; local override keeps them). +_PORTS = { + "keystone": 5000, + "nova": 8774, + "neutron": 9696, + "glance": 9292, + "cinder": 8776, + "placement": 8003, + "heat": 8004, + "swift": 8080, + "ironic": 6385, + "octavia": 9876, +} + + +def _service_base(service: str) -> tuple[str, str | None]: + """Return (base_url, route_service_header_or_None).""" + + if service == "keystone": + return KEYSTONE, None + port = _PORTS[service] + candidates = [port] + if service == "swift": + # Local override often maps Swift to host 18080. + candidates = [18080, 8080] + for p in candidates: + base = f"http://127.0.0.1:{p}" + # Any HTTP response (incl. 401/404) means the port is published. + try: + urllib.request.urlopen(base + "/", timeout=1) + return base, None + except urllib.error.HTTPError: + return base, None + except Exception: + continue + return KEYSTONE, service + + +@pytest.fixture(scope="module", autouse=True) +def _require_gateway(): + if not KEYSTONE: + pytest.skip("OpenStack gateway unreachable") + + +def _request( + method: str, + service: str, + path: str, + *, + token: str | None = None, + data: dict[str, Any] | None = None, + headers: dict[str, str] | None = None, + raw_body: bytes | None = None, +) -> tuple[int, dict[str, str], Any]: + base, route_svc = _service_base(service) + body = raw_body + hdrs = {"Accept": "application/json"} + if data is not None: + hdrs["Content-Type"] = "application/json" + body = json.dumps(data).encode() + if token: + hdrs["X-Auth-Token"] = token + if route_svc: + hdrs["X-OpenStack-Route-Service"] = route_svc + if headers: + hdrs.update(headers) + req = urllib.request.Request(f"{base}{path}", data=body, headers=hdrs, method=method) + try: + with urllib.request.urlopen(req, timeout=30) as res: + raw = res.read().decode() + try: + parsed: Any = json.loads(raw) if raw else None + except json.JSONDecodeError: + parsed = raw + return res.status, {k: v for k, v in res.headers.items()}, parsed + except urllib.error.HTTPError as exc: + raw = exc.read().decode() + try: + parsed = json.loads(raw) if raw else None + except json.JSONDecodeError: + parsed = raw + return exc.code, {k: v for k, v in exc.headers.items()}, parsed + + +def _auth( + *, + user: str = "demo", + project: str = "demo", + password: str = "secret", +) -> tuple[str, str, dict[str, Any]]: + status, headers, body = _request( + "POST", + "keystone", + "/v3/auth/tokens", + data={ + "auth": { + "identity": { + "methods": ["password"], + "password": { + "user": { + "name": user, + "domain": {"name": "Default"}, + "password": password, + } + }, + }, + "scope": {"project": {"name": project, "domain": {"name": "Default"}}}, + } + }, + ) + token = headers.get("X-Subject-Token") or headers.get("x-subject-token") + assert status == 201, (status, body) + assert token + project = ((body or {}).get("token") or {}).get("project") or {} + project_id = str(project.get("id") or "") + assert project_id + return token, project_id, body or {} + + +@pytest.fixture(scope="module") +def auth_ctx() -> tuple[str, str, dict[str, Any]]: + return _auth() + + +def test_keystone_token_catalog_ports(auth_ctx: tuple[str, str, dict[str, Any]]) -> None: + _token, _pid, body = auth_ctx + catalog = (body.get("token") or {}).get("catalog") or [] + by_type = {e.get("type"): e for e in catalog if isinstance(e, dict)} + expected = { + "identity": ":5000", + "compute": ":8774", + "network": ":9696", + "image": ":9292", + "volumev3": ":8776", + "placement": ":8003", + "orchestration": ":8004", + "object-store": ":8080", + "baremetal": ":6385", + "load-balancer": ":9876", + } + for typ, port_frag in expected.items(): + entry = by_type.get(typ) + assert entry, f"missing catalog type {typ}" + urls = [ + ep.get("url") or "" + for ep in entry.get("endpoints") or [] + if ep.get("interface") == "public" + ] + assert any(port_frag in u for u in urls), (typ, urls) + + +def test_specialized_lists_nonempty_after_seed(auth_ctx: tuple[str, str, dict[str, Any]]) -> None: + token, pid, _ = auth_ctx + checks = [ + ("nova", "/v2.1/servers/detail", "servers", {"OpenStack-API-Version": "compute 2.79"}), + ("nova", "/v2.1/flavors", "flavors", None), + ("neutron", "/v2.0/networks", "networks", None), + ("neutron", "/v2.0/subnets", "subnets", None), + ("neutron", "/v2.0/floatingips", "floatingips", None), + ("glance", "/v2/images", "images", None), + ("cinder", "/v3/volumes/detail", "volumes", None), + ( + "placement", + "/resource_providers", + "resource_providers", + {"OpenStack-API-Version": "placement 1.39"}, + ), + ("heat", f"/v1/{pid}/stacks", "stacks", None), + ("octavia", "/v2/lbaas/loadbalancers", "loadbalancers", None), + ("ironic", "/v1/nodes", "nodes", {"OpenStack-API-Version": "baremetal 1.90"}), + ] + for service, path, key, hdrs in checks: + status, _, body = _request("GET", service, path, token=token, headers=hdrs) + assert status == 200, (service, path, status, body) + items = (body or {}).get(key) + assert isinstance(items, list) and len(items) >= 1, (service, path, key, body) + + status, _, body = _request("GET", "swift", f"/v1/AUTH_{pid}", token=token) + assert status == 200 + assert isinstance(body, list) and len(body) >= 1 + + +def test_nova_server_crud_and_actions(auth_ctx: tuple[str, str, dict[str, Any]]) -> None: + token, _pid, _ = auth_ctx + mv = {"OpenStack-API-Version": "compute 2.79"} + st, _, flavors = _request("GET", "nova", "/v2.1/flavors", token=token) + st, _, images = _request("GET", "glance", "/v2/images", token=token) + st, _, nets = _request("GET", "neutron", "/v2.0/networks", token=token) + flavor = (flavors or {}).get("flavors") or [{}] + image = (images or {}).get("images") or [{}] + networks = (nets or {}).get("networks") or [{}] + # Prefer tenant demo-net over shared public for boot. + net = next((n for n in networks if n.get("name") == "demo-net"), networks[0]) + name = f"lc-{uuid.uuid4().hex[:8]}" + st, _, created = _request( + "POST", + "nova", + "/v2.1/servers", + token=token, + headers=mv, + data={ + "server": { + "name": name, + "flavorRef": flavor[0]["id"], + "imageRef": image[0]["id"], + "networks": [{"uuid": net["id"]}], + } + }, + ) + assert st == 202, created + sid = (created or {}).get("server", {}).get("id") + assert sid + st, _, shown = _request("GET", "nova", f"/v2.1/servers/{sid}", token=token, headers=mv) + assert st == 200 + assert shown["server"]["name"] == name + + st, _, _ = _request( + "PUT", + "nova", + f"/v2.1/servers/{sid}", + token=token, + headers=mv, + data={"server": {"name": f"{name}-ren"}}, + ) + assert st == 200 + + for action, expect in ( + ({"os-stop": None}, "SHUTOFF"), + ({"os-start": None}, "ACTIVE"), + ({"reboot": {"type": "SOFT"}}, "ACTIVE"), + ({"suspend": None}, "SUSPENDED"), + ({"resume": None}, "ACTIVE"), + ({"pause": None}, "PAUSED"), + ({"unpause": None}, "ACTIVE"), + ({"shelve": None}, "SHELVED"), + ({"shelveOffload": None}, "SHELVED_OFFLOADED"), + ({"unshelve": None}, "ACTIVE"), + ): + st, _, _ = _request( + "POST", + "nova", + f"/v2.1/servers/{sid}/action", + token=token, + headers=mv, + data=action, + ) + assert st == 202, action + st, _, shown = _request("GET", "nova", f"/v2.1/servers/{sid}", token=token, headers=mv) + assert shown["server"]["status"] == expect, (action, shown["server"]["status"]) + + st, _, _ = _request("DELETE", "nova", f"/v2.1/servers/{sid}", token=token, headers=mv) + assert st == 204 + st, _, _ = _request("GET", "nova", f"/v2.1/servers/{sid}", token=token, headers=mv) + assert st == 404 + + +def test_neutron_network_subnet_port_fip_crud( + auth_ctx: tuple[str, str, dict[str, Any]], +) -> None: + token, _pid, _ = auth_ctx + tag = uuid.uuid4().hex[:8] + st, _, created = _request( + "POST", + "neutron", + "/v2.0/networks", + token=token, + data={"network": {"name": f"n-{tag}", "admin_state_up": True}}, + ) + assert st == 201 + nid = created["network"]["id"] + st, _, sub = _request( + "POST", + "neutron", + "/v2.0/subnets", + token=token, + data={ + "subnet": { + "name": f"s-{tag}", + "network_id": nid, + "cidr": "10.210.0.0/24", + "ip_version": 4, + } + }, + ) + assert st == 201 + sid = sub["subnet"]["id"] + st, _, port = _request( + "POST", + "neutron", + "/v2.0/ports", + token=token, + data={"port": {"name": f"p-{tag}", "network_id": nid}}, + ) + assert st == 201 + pid = port["port"]["id"] + + st, _, nets = _request("GET", "neutron", "/v2.0/networks", token=token) + assert any(n.get("id") == nid for n in nets.get("networks") or []) + public = next(n for n in nets["networks"] if n.get("name") == "public") + assert public.get("router:external") is True + + st, _, fip = _request( + "POST", + "neutron", + "/v2.0/floatingips", + token=token, + data={"floatingip": {"floating_network_id": public["id"]}}, + ) + assert st == 201 + fid = fip["floatingip"]["id"] + st, _, shown = _request("GET", "neutron", f"/v2.0/floatingips/{fid}", token=token) + assert st == 200 + assert shown["floatingip"]["id"] == fid + + st, _, _ = _request("DELETE", "neutron", f"/v2.0/floatingips/{fid}", token=token) + assert st == 204 + st, _, _ = _request("DELETE", "neutron", f"/v2.0/ports/{pid}", token=token) + assert st == 204 + st, _, _ = _request("DELETE", "neutron", f"/v2.0/subnets/{sid}", token=token) + assert st == 204 + st, _, _ = _request("DELETE", "neutron", f"/v2.0/networks/{nid}", token=token) + assert st == 204 + st, _, _ = _request("GET", "neutron", f"/v2.0/networks/{nid}", token=token) + assert st == 404 + + +def test_glance_cinder_heat_octavia_ironic_swift_crud( + auth_ctx: tuple[str, str, dict[str, Any]], +) -> None: + token, project_id, _ = auth_ctx + tag = uuid.uuid4().hex[:8] + + st, _, img = _request( + "POST", + "glance", + "/v2/images", + token=token, + data={"name": f"img-{tag}", "container_format": "bare", "disk_format": "qcow2"}, + ) + assert st == 201 + iid = img["id"] + st, _, shown = _request("GET", "glance", f"/v2/images/{iid}", token=token) + assert st == 200 and shown["id"] == iid + st, _, _ = _request("DELETE", "glance", f"/v2/images/{iid}", token=token) + assert st == 204 + + st, _, vol = _request( + "POST", + "cinder", + "/v3/volumes", + token=token, + data={"volume": {"size": 1, "name": f"vol-{tag}"}}, + ) + assert st == 202 + vid = vol["volume"]["id"] + st, _, shown = _request("GET", "cinder", f"/v3/volumes/{vid}", token=token) + assert st == 200 and shown["volume"]["id"] == vid + st, _, _ = _request( + "PUT", + "cinder", + f"/v3/volumes/{vid}", + token=token, + data={"volume": {"name": f"vol-{tag}-ren", "description": "lc"}}, + ) + assert st == 200 + st, _, _ = _request("DELETE", "cinder", f"/v3/volumes/{vid}", token=token) + assert st == 202 + st, _, _ = _request("GET", "cinder", f"/v3/volumes/{vid}", token=token) + assert st == 404 + + st, _, stack = _request( + "POST", + "heat", + f"/v1/{project_id}/stacks", + token=token, + data={ + "stack_name": f"stk-{tag}", + "template": {"heat_template_version": "2015-04-30", "resources": {}}, + }, + ) + assert st == 201 + sid = stack["stack"]["id"] + sname = stack["stack"]["stack_name"] + st, _, _ = _request( + "PUT", + "heat", + f"/v1/{project_id}/stacks/{sname}/{sid}", + token=token, + data={ + "template": { + "heat_template_version": "2015-04-30", + "description": "upd", + "resources": {}, + }, + "description": "updated", + }, + ) + assert st == 200 + st, _, shown = _request("GET", "heat", f"/v1/{project_id}/stacks/{sname}/{sid}", token=token) + assert st == 200 + assert shown["stack"]["stack_status"] == "UPDATE_COMPLETE" + st, _, _ = _request("DELETE", "heat", f"/v1/{project_id}/stacks/{sname}/{sid}", token=token) + assert st == 204 + + st, _, subs = _request("GET", "neutron", "/v2.0/subnets", token=token) + sub_id = (subs.get("subnets") or [{}])[0].get("id") + assert sub_id + st, _, lb = _request( + "POST", + "octavia", + "/v2/lbaas/loadbalancers", + token=token, + data={"loadbalancer": {"name": f"lb-{tag}", "vip_subnet_id": sub_id}}, + ) + assert st == 201 + lbid = lb["loadbalancer"]["id"] + st, _, _ = _request( + "PUT", + "octavia", + f"/v2/lbaas/loadbalancers/{lbid}", + token=token, + data={"loadbalancer": {"name": f"lb-{tag}-ren"}}, + ) + assert st == 200 + st, _, _ = _request("DELETE", "octavia", f"/v2/lbaas/loadbalancers/{lbid}", token=token) + assert st == 204 + st, _, _ = _request("GET", "octavia", f"/v2/lbaas/loadbalancers/{lbid}", token=token) + assert st == 404 + + st, _, node = _request( + "POST", + "ironic", + "/v1/nodes", + token=token, + headers={"OpenStack-API-Version": "baremetal 1.90"}, + data={"name": f"node-{tag}", "driver": "ipmi"}, + ) + assert st == 201 + nuid = node["uuid"] + st, _, _ = _request( + "PUT", + "ironic", + f"/v1/nodes/{nuid}/states/power", + token=token, + headers={"OpenStack-API-Version": "baremetal 1.90"}, + data={"target": "power on"}, + ) + assert st == 202 + st, _, shown = _request( + "GET", + "ironic", + f"/v1/nodes/{nuid}", + token=token, + headers={"OpenStack-API-Version": "baremetal 1.90"}, + ) + assert shown.get("power_state") == "power on" + st, _, _ = _request( + "DELETE", + "ironic", + f"/v1/nodes/{nuid}", + token=token, + headers={"OpenStack-API-Version": "baremetal 1.90"}, + ) + assert st == 204 + + acct = f"AUTH_{project_id}" + cname = f"c-{tag}" + st, _, _ = _request("PUT", "swift", f"/v1/{acct}/{cname}", token=token) + assert st == 201 + st, _, _ = _request( + "PUT", + "swift", + f"/v1/{acct}/{cname}/hello.txt", + token=token, + headers={"Content-Type": "text/plain"}, + raw_body=b"hello", + ) + assert st == 201 + st, _, obj = _request("GET", "swift", f"/v1/{acct}/{cname}/hello.txt", token=token) + assert st == 200 + st, _, _ = _request("DELETE", "swift", f"/v1/{acct}/{cname}/hello.txt", token=token) + assert st == 204 + st, _, _ = _request("DELETE", "swift", f"/v1/{acct}/{cname}", token=token) + assert st == 204 + st, _, containers = _request("GET", "swift", f"/v1/{acct}", token=token) + assert st == 200 + assert not any(c.get("name") == cname for c in containers or []) + + +def test_project_scoped_token_required_for_nova() -> None: + status, headers, body = _request( + "POST", + "keystone", + "/v3/auth/tokens", + data={ + "auth": { + "identity": { + "methods": ["password"], + "password": { + "user": { + "name": "demo", + "domain": {"name": "Default"}, + "password": "secret", + } + }, + } + } + }, + ) + token = headers.get("X-Subject-Token") or headers.get("x-subject-token") + assert status == 201 and token + st, _, err = _request("GET", "nova", "/v2.1/servers", token=token) + assert st in {401, 403} + assert isinstance(err, dict) diff --git a/tests/openstack/test_demo_cloud.py b/tests/openstack/test_demo_cloud.py index 1a87e54..f64aeea 100644 --- a/tests/openstack/test_demo_cloud.py +++ b/tests/openstack/test_demo_cloud.py @@ -8,10 +8,13 @@ import asyncpg import pytest from app.openstack.demo_cloud import ( + DEMO_CLUSTER_SIZES, DEMO_PROFILE, - DEMO_SERVER_COUNT, clear_openstack_state, + demo_profile_name, + is_demo_profile, openstack_demo_summary, + resolve_demo_size, seed_openstack_demo, ) from app.openstack.seed import seed_openstack @@ -41,15 +44,35 @@ async def conn(): await connection.close() +def test_resolve_demo_sizes() -> None: + small = resolve_demo_size("small") + large = resolve_demo_size("demo") + big = resolve_demo_size("big") + assert small.hypervisors == 3 and small.servers == 50 + assert large.hypervisors == 10 and large.servers == 1000 + assert big.hypervisors == 20 and big.servers == 2000 + assert big.volumes == large.volumes * 2 + assert small.extra_networks < large.extra_networks < big.extra_networks + assert small.keypairs_per_user < large.keypairs_per_user < big.keypairs_per_user + assert is_demo_profile(demo_profile_name("large")) + assert is_demo_profile(DEMO_PROFILE) + assert not is_demo_profile("minimal") + assert {cfg.name for cfg in DEMO_CLUSTER_SIZES.values()} == {"small", "large", "big"} + + async def test_demo_seed_roundtrip(conn: asyncpg.Connection) -> None: - await seed_openstack_demo(conn) + # Prefer small for CI speed; still exercises full topology. + await seed_openstack_demo(conn, size="small") summary = await openstack_demo_summary(conn) + small = DEMO_CLUSTER_SIZES["small"] assert summary["loaded"] is True - assert summary["servers"] == DEMO_SERVER_COUNT - assert summary["hypervisors"] == 16 + assert summary["servers"] == small.servers + assert summary["hypervisors"] == small.hypervisors + assert summary["volumes"] == small.volumes + assert summary["size"] == "small" + assert summary["profile"] == demo_profile_name("small") assert summary["projects"] == 5 - assert summary["volumes"] == 600 - assert summary["profile"] == DEMO_PROFILE + assert len(summary["sizes"]) == 3 await clear_openstack_state(conn) result = await seed_openstack(conn) @@ -59,8 +82,10 @@ async def test_demo_seed_roundtrip(conn: asyncpg.Connection) -> None: assert summary["servers"] == 1 assert summary["profile"] == "minimal" - # Restore demo so a shared lab DB stays usable after the test. - await seed_openstack_demo(conn) + # Restore large so a shared lab DB stays usable after the test. + await seed_openstack_demo(conn, size="large") summary = await openstack_demo_summary(conn) + large = DEMO_CLUSTER_SIZES["large"] assert summary["loaded"] is True - assert summary["servers"] == DEMO_SERVER_COUNT + assert summary["servers"] == large.servers + assert summary["hypervisors"] == large.hypervisors diff --git a/tests/unit/test_request_bodies.py b/tests/unit/test_request_bodies.py new file mode 100644 index 0000000..1fd8454 --- /dev/null +++ b/tests/unit/test_request_bodies.py @@ -0,0 +1,136 @@ +"""Request-body schema store and coverage tests.""" + +from __future__ import annotations + +from app.openstack.contract_loader import load_series_pack +from app.openstack.request_bodies import clear_request_body_cache, missing_write_schemas +from app.openstack.request_examples import ( + body_fields_from_example, + flatten_schema_fields, + schema_example, + unflatten_body, +) +from app.openstack.singular import singular +from app.web.openstack_catalog import openstack_method_payload + + +def test_singular_status_not_statu() -> None: + assert singular("status") == "status" + assert singular("statuses") == "status" + assert singular("networks") == "network" + assert singular("addresses") == "address" + + +def test_all_series_write_ops_have_request_schemas() -> None: + clear_request_body_cache() + for series in ("yoga", "antelope", "caracal", "dalmatian"): + packs = load_series_pack(series) + missing = missing_write_schemas(packs) + assert missing == [], f"{series} missing schemas: {missing[:10]}" + + +def test_vim_create_catalog_has_api_ref_fields() -> None: + clear_request_body_cache() + payload = openstack_method_payload( + major=9, + path="/v1.0/vims", + verb="POST", + runtime_version="openstack-dalmatian", + ) + names = {field["name"] for field in payload["body_fields"]} + assert "vim.type" in names + assert "vim.auth_url" in names + assert "vim.auth_cred.username" in names + assert "vim.vim_project.name" in names + example = payload["body_example"] + assert example["vim"]["type"] == "openstack" + assert "auth_cred" in example["vim"] + assert example["vim"]["name"] == "example" + + +def test_status_create_uses_status_envelope() -> None: + clear_request_body_cache() + payload = openstack_method_payload( + major=9, + path="/v1/status", + verb="POST", + runtime_version="openstack-dalmatian", + ) + assert "status" in payload["body_example"] + assert "statu" not in payload["body_example"] + names = {field["name"] for field in payload["body_fields"]} + assert "status.service" in names or "status.status" in names + + +def test_server_create_expands_nested_network_fields() -> None: + clear_request_body_cache() + payload = openstack_method_payload( + major=9, + path="/v2.1/servers", + verb="POST", + runtime_version="openstack-dalmatian", + ) + example = payload["body_example"] + assert "server" in example + assert "flavorRef" in example["server"] + names = {field["name"] for field in payload["body_fields"]} + assert "server.flavorRef" in names + # Nested array object leaves from body_example (not a single JSON blob). + assert "server.networks.0.uuid" in names or "server.networks" in names + + +def test_body_fields_from_example_walks_nested_leaves() -> None: + fields = body_fields_from_example( + { + "vim": { + "name": "example", + "auth_cred": {"username": "admin", "password": "secret"}, + "tags": ["a", "b"], + } + } + ) + names = {f["name"] for f in fields} + assert "vim.name" in names + assert "vim.auth_cred.username" in names + assert "vim.auth_cred.password" in names + assert "vim.tags.0" in names + assert "vim.tags.1" in names + + +def test_flatten_and_unflatten_roundtrip() -> None: + schema = { + "type": "object", + "required": ["vim"], + "properties": { + "vim": { + "type": "object", + "required": ["name", "type"], + "properties": { + "name": {"type": "string", "example": "example"}, + "type": {"type": "string", "example": "openstack"}, + "auth_cred": { + "type": "object", + "properties": { + "username": {"type": "string", "example": "admin"}, + }, + }, + }, + } + }, + } + fields = flatten_schema_fields(schema) + names = [f["name"] for f in fields] + assert "vim.name" in names + assert "vim.auth_cred.username" in names + example = schema_example(schema) + assert example["vim"]["name"] == "example" + nested = unflatten_body( + { + "vim.name": "example", + "vim.type": "openstack", + "vim.auth_cred.username": "admin", + } + ) + assert nested == { + "vim": {"name": "example", "type": "openstack", "auth_cred": {"username": "admin"}} + } diff --git a/tests/unit/test_web_openstack_catalog.py b/tests/unit/test_web_openstack_catalog.py new file mode 100644 index 0000000..a6d83bb --- /dev/null +++ b/tests/unit/test_web_openstack_catalog.py @@ -0,0 +1,34 @@ +"""OpenStack UI catalog payload tests.""" + +from app.openstack.request_bodies import clear_request_body_cache +from app.web.openstack_catalog import openstack_method_payload + + +def test_collection_create_body_uses_request_schema() -> None: + clear_request_body_cache() + payload = openstack_method_payload( + major=9, + path="/v1/status", + verb="POST", + runtime_version="openstack-dalmatian", + ) + assert payload["service"] == "adjutant" + assert payload["body_fields"] + assert payload["body_example"] + # Must not be the old stub-only envelope. + assert payload["body_example"] != {"statu": {"name": "example"}} + assert "status" in payload["body_example"] + + +def test_action_body_example_uses_action_name() -> None: + clear_request_body_cache() + payload = openstack_method_payload( + major=9, + path="/v2.1/servers/{id}/action", + verb="POST", + runtime_version="openstack-dalmatian", + ) + assert payload["body_fields"] + assert payload["body_example"] + # Wildcard server actions default to os-start in the schema catalog. + assert "os-start" in payload["body_example"] diff --git a/tools/os_api_inventory/catalog.py b/tools/os_api_inventory/catalog.py index a5dac72..9a8adf6 100644 --- a/tools/os_api_inventory/catalog.py +++ b/tools/os_api_inventory/catalog.py @@ -60,9 +60,9 @@ def _crud( ) -> list[dict[str, Any]]: """Expand a resource into list/detail/create/show/update/delete + actions/nested.""" - singular = key[:-1] if key.endswith("s") and not key.endswith("ss") else key - if key.endswith("ies"): - singular = key[:-3] + "y" + from app.openstack.singular import singular as _singularize + + singular = _singularize(key) ops: list[dict[str, Any]] = [ { "operation_id": f"{resource}_list", diff --git a/tools/os_api_inventory/generate_request_bodies.py b/tools/os_api_inventory/generate_request_bodies.py new file mode 100644 index 0000000..2e5e26d --- /dev/null +++ b/tools/os_api_inventory/generate_request_bodies.py @@ -0,0 +1,113 @@ +#!/usr/bin/env python3 +"""Generate contracts/openstack/request_bodies/*.json for all pack write ops.""" + +from __future__ import annotations + +import argparse +import json +import sys +from collections import defaultdict +from pathlib import Path + +ROOT = Path(__file__).resolve().parents[2] +sys.path.insert(0, str(ROOT)) +sys.path.insert(0, str(ROOT / "tools")) + +from os_api_inventory.request_body_catalog import schema_for_operation # noqa: E402 + +SERIES_DEFAULT = "dalmatian" +OUT_DIR = ROOT / "contracts" / "openstack" / "request_bodies" + + +def _load_ops(series: str) -> dict[str, list[dict]]: + series_dir = ROOT / "contracts" / "openstack" / series + by_service: dict[str, list[dict]] = {} + for api in sorted(series_dir.glob("*/api.json")): + data = json.loads(api.read_text()) + service = str(data["service"]) + writes = [ + op + for op in data.get("operations") or [] + if op.get("method") in {"POST", "PUT", "PATCH"} + ] + by_service[service] = writes + return by_service + + +def generate(series: str, out_dir: Path) -> dict[str, int]: + out_dir.mkdir(parents=True, exist_ok=True) + counts: dict[str, int] = {} + # Merge ops across series for max coverage of operation_ids. + merged: dict[str, dict[str, dict]] = defaultdict(dict) + for series_name in ("yoga", "antelope", "caracal", "dalmatian"): + if series and series != "all" and series_name != series: + continue + for service, ops in _load_ops(series_name).items(): + for op in ops: + oid = op["operation_id"] + path_key = f"{op['method']} {op['path']}" + merged[service][oid] = op + # also keep path index later + _ = path_key + + for service, by_oid in sorted(merged.items()): + operations: dict[str, dict] = {} + by_path: dict[str, dict] = {} + for oid, op in sorted(by_oid.items()): + schema = schema_for_operation(op) + operations[oid] = schema + by_path[f"{op['method']} {op['path']}"] = schema + payload = { + "service": service, + "source": "generated-from-api-ref-catalog", + "operations": operations, + "by_path": by_path, + } + path = out_dir / f"{service}.json" + path.write_text(json.dumps(payload, indent=2, sort_keys=True) + "\n") + counts[service] = len(operations) + return counts + + +def coverage_report(series: str) -> int: + from app.openstack.contract_loader import load_series_pack + from app.openstack.request_bodies import clear_request_body_cache, missing_write_schemas + + clear_request_body_cache() + packs = load_series_pack(series) + missing = missing_write_schemas(packs) + print(f"series={series} missing={len(missing)}") + for service, method, path, oid in missing[:50]: + print(f" {service} {method} {path} ({oid})") + if len(missing) > 50: + print(f" ... and {len(missing) - 50} more") + return len(missing) + + +def main() -> int: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--series", default="all", help="Series to scan or 'all'") + parser.add_argument("--coverage", action="store_true", help="Report missing schemas only") + parser.add_argument( + "--coverage-series", + default=SERIES_DEFAULT, + help="Series for coverage check (default: dalmatian)", + ) + args = parser.parse_args() + if args.coverage: + missing = coverage_report(args.coverage_series) + return 1 if missing else 0 + series = None if args.series == "all" else args.series + counts = generate(series or "all", OUT_DIR) + total = sum(counts.values()) + print(f"Wrote {len(counts)} services, {total} operation schemas → {OUT_DIR}") + for name, count in sorted(counts.items()): + print(f" {name}: {count}") + if args.series == "all": + # Coverage check requires the project venv (Python 3.13 dataclasses). + print("Run coverage with: python tools/os_api_inventory/generate_request_bodies.py --coverage") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/tools/os_api_inventory/import_openapi_bodies.py b/tools/os_api_inventory/import_openapi_bodies.py new file mode 100644 index 0000000..6bf0a88 --- /dev/null +++ b/tools/os_api_inventory/import_openapi_bodies.py @@ -0,0 +1,208 @@ +#!/usr/bin/env python3 +"""Import requestBody schemas from gtema/openstack-openapi into request_bodies/. + +Discovers versioned OpenAPI YAML under ``specs//`` and merges request +schemas into ``contracts/openstack/request_bodies/.json``. +""" + +from __future__ import annotations + +import argparse +import json +import re +import urllib.request +from pathlib import Path +from typing import Any + +ROOT = Path(__file__).resolve().parents[2] +OUT_DIR = ROOT / "contracts" / "openstack" / "request_bodies" + +SERVICE_MAP = { + "compute": "nova", + "network": "neutron", + "identity": "keystone", + "image": "glance", + "block-storage": "cinder", + "load-balancing": "octavia", + "object-store": "swift", + "placement": "placement", +} + +API_CONTENTS = ( + "https://api.github.com/repos/gtema/openstack-openapi/contents/specs/{svc}?ref=main" +) + + +def _load_yaml(text: str) -> dict[str, Any]: + try: + import yaml # type: ignore + except ImportError as exc: # pragma: no cover + raise SystemExit("PyYAML is required: pip install pyyaml") from exc + data = yaml.safe_load(text) + if not isinstance(data, dict): + raise ValueError("OpenAPI root must be a mapping") + return data + + +def _http_json(url: str) -> Any: + req = urllib.request.Request(url, headers={"Accept": "application/vnd.github+json"}) + with urllib.request.urlopen(req, timeout=60) as resp: + return json.loads(resp.read().decode()) + + +def _http_text(url: str, *, attempts: int = 3) -> str: + last_error: Exception | None = None + for attempt in range(1, attempts + 1): + try: + with urllib.request.urlopen(url, timeout=180) as resp: + chunks: list[bytes] = [] + while True: + block = resp.read(1024 * 1024) + if not block: + break + chunks.append(block) + return b"".join(chunks).decode() + except Exception as exc: + last_error = exc + print(f" download attempt {attempt}/{attempts} failed: {exc}") + if last_error is None: + raise RuntimeError("download failed without error") + raise last_error + + +def _pick_spec_url(openapi_name: str) -> str: + entries = _http_json(API_CONTENTS.format(svc=openapi_name)) + yaml_files = [ + item + for item in entries + if item.get("type") == "file" and str(item.get("name", "")).endswith(".yaml") + ] + if not yaml_files: + raise FileNotFoundError(f"No OpenAPI YAML under specs/{openapi_name}") + + def sort_key(item: dict[str, Any]) -> tuple[int, ...]: + name = str(item["name"]) + nums = [int(x) for x in re.findall(r"\d+", name)] + return tuple(nums) if nums else (0,) + + # Prefer the highest versioned file (e.g. v2.96.yaml over v2.yaml). + best = sorted(yaml_files, key=sort_key)[-1] + url = best.get("download_url") + if not url: + raise FileNotFoundError(best) + return str(url) + + +def _resolve_ref(doc: dict[str, Any], node: Any) -> Any: + if not isinstance(node, dict): + return node + ref = node.get("$ref") + if not isinstance(ref, str) or not ref.startswith("#/"): + return {k: _resolve_ref(doc, v) for k, v in node.items() if k != "$ref"} + cursor: Any = doc + for part in ref[2:].split("/"): + part = part.replace("~1", "/").replace("~0", "~") + cursor = cursor[part] + return _resolve_ref(doc, cursor) + + +def _request_schema(doc: dict[str, Any], operation: dict[str, Any]) -> dict[str, Any] | None: + body = operation.get("requestBody") + if not body: + return None + body = _resolve_ref(doc, body) + content = body.get("content") or {} + for key in ("application/json", "application/openstack-images-v2.1-json-patch"): + if key in content: + media = _resolve_ref(doc, content[key]) + schema = media.get("schema") + if schema: + return _resolve_ref(doc, schema) + for media in content.values(): + media = _resolve_ref(doc, media) + schema = media.get("schema") + if schema: + return _resolve_ref(doc, schema) + return None + + +def _normalize_path(path: str) -> str: + parts = [p for p in path.split("/") if p not in {"{project_id}", "{tenant_id}"}] + normalized = "/" + "/".join(p for p in parts if p) + return normalized.replace("//", "/") + + +def import_service(openapi_name: str, pack_name: str) -> int: + url = _pick_spec_url(openapi_name) + print(f"Fetching {url}") + doc = _load_yaml(_http_text(url)) + paths = doc.get("paths") or {} + by_path: dict[str, dict[str, Any]] = {} + for path, item in paths.items(): + if not isinstance(item, dict): + continue + norm = _normalize_path(str(path)) + for method, operation in item.items(): + if method.upper() not in {"POST", "PUT", "PATCH"}: + continue + if not isinstance(operation, dict): + continue + schema = _request_schema(doc, operation) + if not schema: + continue + by_path[f"{method.upper()} {norm}"] = schema + + out_path = OUT_DIR / f"{pack_name}.json" + existing: dict[str, Any] = {"service": pack_name, "operations": {}, "by_path": {}} + if out_path.is_file(): + existing = json.loads(out_path.read_text()) + operations = dict(existing.get("operations") or {}) + existing_by_path = dict(existing.get("by_path") or {}) + # OpenAPI schemas override generated stubs for matching paths. + existing_by_path.update(by_path) + + matched = 0 + pack_api = ROOT / "contracts" / "openstack" / "dalmatian" / pack_name / "api.json" + if pack_api.is_file(): + pack = json.loads(pack_api.read_text()) + for op in pack.get("operations") or []: + if op.get("method") not in {"POST", "PUT", "PATCH"}: + continue + key = f"{op['method']} {op['path']}" + schema = existing_by_path.get(key) + if schema is None: + continue + operations[op["operation_id"]] = schema + matched += 1 + + payload = { + "service": pack_name, + "source": f"openstack-openapi:{openapi_name}", + "operations": operations, + "by_path": existing_by_path, + } + out_path.write_text(json.dumps(payload, indent=2, sort_keys=True) + "\n") + print(f" {pack_name}: openapi_paths={len(by_path)} matched_ops={matched} → {out_path}") + return matched + + +def main() -> int: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument( + "--service", + action="append", + choices=sorted(SERVICE_MAP), + help="OpenAPI service dir (repeatable). Default: all Tier-1", + ) + args = parser.parse_args() + selected = args.service or list(SERVICE_MAP) + OUT_DIR.mkdir(parents=True, exist_ok=True) + total = 0 + for openapi_name in selected: + total += import_service(openapi_name, SERVICE_MAP[openapi_name]) + print(f"Done. matched operation schemas: {total}") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/tools/os_api_inventory/request_body_catalog.py b/tools/os_api_inventory/request_body_catalog.py new file mode 100644 index 0000000..a8391f1 --- /dev/null +++ b/tools/os_api_inventory/request_body_catalog.py @@ -0,0 +1,1345 @@ +"""JSON Schema fragments for OpenStack request bodies (api-ref style). + +Used by ``generate_request_bodies.py`` to emit +``contracts/openstack/request_bodies/.json`` for every write op. +""" + +from __future__ import annotations + +from copy import deepcopy +from typing import Any + +from app.openstack.singular import singular + +Str = dict[str, Any] + + +def _s( + description: str = "", + *, + enum: list[Any] | None = None, + fmt: str | None = None, + example: Any = None, + default: Any = None, +) -> Str: + out: Str = {"type": "string", "description": description} + if enum is not None: + out["enum"] = enum + if fmt: + out["format"] = fmt + if example is not None: + out["example"] = example + if default is not None: + out["default"] = default + return out + + +def _i(description: str = "", *, minimum: int | None = None, example: int | None = None) -> Str: + out: Str = {"type": "integer", "description": description} + if minimum is not None: + out["minimum"] = minimum + if example is not None: + out["example"] = example + return out + + +def _b(description: str = "", *, default: bool | None = None) -> Str: + out: Str = {"type": "boolean", "description": description} + if default is not None: + out["default"] = default + return out + + +def _o(properties: dict[str, Str], required: list[str] | None = None, description: str = "") -> Str: + out: Str = {"type": "object", "description": description, "properties": properties} + if required: + out["required"] = required + return out + + +def _a(items: Str, description: str = "") -> Str: + return {"type": "array", "description": description, "items": items} + + +def _envelope(key: str, inner: Str, *, required_inner: bool = True) -> Str: + return _o({key: inner}, required=[key] if required_inner else None) + + +# --- Resource property libraries (api-ref style) --- + +def _name_desc() -> dict[str, Str]: + return { + "name": _s("Human-readable name", example="example"), + "description": _s("Optional description", example=""), + } + + +def props_server() -> Str: + return _o( + { + **_name_desc(), + "flavorRef": _s("Flavor UUID or id", example="1"), + "imageRef": _s("Image UUID", fmt="uuid"), + "networks": _a( + _o( + { + "uuid": _s("Network UUID", fmt="uuid"), + "port": _s("Port UUID", fmt="uuid"), + "fixed_ip": _s("Fixed IP address"), + } + ), + "NICs", + ), + "adminPass": _s("Admin password"), + "key_name": _s("Keypair name"), + "metadata": _o({}, description="Arbitrary key/value metadata"), + "security_groups": _a(_o({"name": _s("Security group name")})), + "availability_zone": _s("AZ name"), + "user_data": _s("Base64 user data"), + "config_drive": _b("Attach config drive"), + "min_count": _i("Minimum instances", minimum=1, example=1), + "max_count": _i("Maximum instances", minimum=1, example=1), + "block_device_mapping_v2": _a(_o({}, description="BDM v2 entry")), + }, + required=["name", "flavorRef", "networks"], + ) + + +def props_network() -> Str: + return _o( + { + **_name_desc(), + "admin_state_up": _b("Administrative state", default=True), + "shared": _b("Shared across projects", default=False), + "external": _b("External network", default=False), + "provider:network_type": _s("Provider network type", enum=["local", "flat", "vlan", "vxlan", "gre"]), + "provider:physical_network": _s("Physical network label"), + "provider:segmentation_id": _i("Segmentation id"), + "mtu": _i("MTU", minimum=68, example=1500), + "port_security_enabled": _b("Port security", default=True), + "router:external": _b("Router external alias", default=False), + }, + required=["name"], + ) + + +def props_subnet() -> Str: + return _o( + { + **_name_desc(), + "network_id": _s("Parent network UUID", fmt="uuid"), + "cidr": _s("CIDR", example="10.0.0.0/24"), + "ip_version": _i("IP version", example=4), + "gateway_ip": _s("Gateway IP"), + "enable_dhcp": _b("DHCP enabled", default=True), + "dns_nameservers": _a(_s("DNS server"), "DNS nameservers"), + "allocation_pools": _a( + _o({"start": _s("Start IP"), "end": _s("End IP")}), + "Allocation pools", + ), + "host_routes": _a(_o({"destination": _s(), "nexthop": _s()}), "Host routes"), + "ipv6_address_mode": _s("IPv6 address mode"), + "ipv6_ra_mode": _s("IPv6 RA mode"), + }, + required=["network_id", "cidr", "ip_version"], + ) + + +def props_port() -> Str: + return _o( + { + **_name_desc(), + "network_id": _s("Network UUID", fmt="uuid"), + "admin_state_up": _b("Administrative state", default=True), + "mac_address": _s("MAC address"), + "fixed_ips": _a( + _o({"subnet_id": _s(fmt="uuid"), "ip_address": _s()}), + "Fixed IPs", + ), + "device_id": _s("Device UUID", fmt="uuid"), + "device_owner": _s("Device owner"), + "security_groups": _a(_s("Security group UUID", fmt="uuid")), + "binding:vnic_type": _s("VNIC type", enum=["normal", "direct", "macvtap", "baremetal"]), + "port_security_enabled": _b("Port security"), + "allowed_address_pairs": _a(_o({"ip_address": _s(), "mac_address": _s()})), + }, + required=["network_id"], + ) + + +def props_router() -> Str: + return _o( + { + **_name_desc(), + "admin_state_up": _b("Administrative state", default=True), + "external_gateway_info": _o( + { + "network_id": _s("External network UUID", fmt="uuid"), + "enable_snat": _b("SNAT", default=True), + "external_fixed_ips": _a(_o({"subnet_id": _s(fmt="uuid"), "ip_address": _s()})), + } + ), + "distributed": _b("DVR router"), + "ha": _b("Highly available"), + "routes": _a(_o({"destination": _s(), "nexthop": _s()})), + }, + required=["name"], + ) + + +def props_floatingip() -> Str: + return _o( + { + "floating_network_id": _s("External network UUID", fmt="uuid"), + "port_id": _s("Port UUID", fmt="uuid"), + "fixed_ip_address": _s("Fixed IP"), + "floating_ip_address": _s("Floating IP"), + "description": _s(), + "subnet_id": _s("Subnet UUID", fmt="uuid"), + "dns_name": _s(), + "dns_domain": _s(), + }, + required=["floating_network_id"], + ) + + +def props_security_group() -> Str: + return _o({**_name_desc()}, required=["name"]) + + +def props_security_group_rule() -> Str: + return _o( + { + "security_group_id": _s("Security group UUID", fmt="uuid"), + "direction": _s("Direction", enum=["ingress", "egress"], example="ingress"), + "ethertype": _s("Ethertype", enum=["IPv4", "IPv6"], example="IPv4"), + "protocol": _s("Protocol", example="tcp"), + "port_range_min": _i("Min port", example=22), + "port_range_max": _i("Max port", example=22), + "remote_ip_prefix": _s("CIDR", example="0.0.0.0/0"), + "remote_group_id": _s("Remote SG UUID", fmt="uuid"), + "description": _s(), + }, + required=["security_group_id", "direction"], + ) + + +def props_volume() -> Str: + return _o( + { + **_name_desc(), + "size": _i("Size in GiB", minimum=1, example=1), + "volume_type": _s("Volume type name"), + "availability_zone": _s("AZ"), + "snapshot_id": _s("Snapshot UUID", fmt="uuid"), + "source_volid": _s("Source volume UUID", fmt="uuid"), + "imageRef": _s("Image UUID", fmt="uuid"), + "metadata": _o({}), + "consistencygroup_id": _s(fmt="uuid"), + "multiattach": _b("Multi-attach"), + }, + required=["size"], + ) + + +def props_snapshot() -> Str: + return _o( + { + **_name_desc(), + "volume_id": _s("Volume UUID", fmt="uuid"), + "force": _b("Force snapshot"), + "metadata": _o({}), + }, + required=["volume_id"], + ) + + +def props_image() -> Str: + return _o( + { + **_name_desc(), + "container_format": _s( + "Container format", + enum=["bare", "ovf", "aki", "ari", "ami", "ova", "docker"], + example="bare", + ), + "disk_format": _s( + "Disk format", + enum=["raw", "qcow2", "vmdk", "vdi", "iso", "aki", "ari", "ami"], + example="qcow2", + ), + "visibility": _s("Visibility", enum=["public", "private", "shared", "community"], example="private"), + "protected": _b("Protected"), + "tags": _a(_s()), + "min_disk": _i("Min disk GiB", minimum=0, example=0), + "min_ram": _i("Min RAM MiB", minimum=0, example=0), + "os_type": _s("OS type"), + "architecture": _s("CPU architecture"), + }, + required=["name", "container_format", "disk_format"], + ) + + +def props_vim() -> Str: + return _o( + { + "type": _s("VIM type", enum=["openstack", "kubernetes"], example="openstack"), + "auth_url": _s("Identity endpoint", fmt="uri", example="http://127.0.0.1:5000/v3"), + "auth_cred": _o( + { + "username": _s("Username", example="admin"), + "password": _s("Password", example="secret"), + "user_domain_name": _s("User domain", example="Default"), + "cert_verify": _s("TLS verify", example="True"), + }, + required=["username", "password", "user_domain_name"], + ), + "vim_project": _o( + { + "name": _s("Project name", example="admin"), + "project_domain_name": _s("Project domain", example="Default"), + }, + required=["name", "project_domain_name"], + ), + "name": _s("VIM name", example="example"), + "description": _s(), + "is_default": _b("Default VIM", default=False), + }, + required=["type", "auth_url", "auth_cred", "vim_project", "name"], + ) + + +def props_stack() -> Str: + return _o( + { + "stack_name": _s("Stack name", example="example"), + "template": _o( + { + "heat_template_version": _s(example="2015-04-30"), + "description": _s(), + "resources": _o({}), + "parameters": _o({}), + }, + required=["heat_template_version"], + ), + "template_url": _s("Template URL", fmt="uri"), + "parameters": _o({}, description="Stack parameters"), + "timeout_mins": _i("Timeout minutes", example=60), + "disable_rollback": _b("Disable rollback", default=True), + "environment": _o({}), + "files": _o({}), + "tags": _a(_s()), + }, + required=["stack_name", "template"], + ) + + +def props_secret() -> Str: + return _o( + { + "name": _s("Secret name", example="example"), + "payload": _s("Secret payload", example="c2VjcmV0"), + "payload_content_type": _s("Content type", example="text/plain"), + "payload_content_encoding": _s("Encoding", enum=["base64"], example="base64"), + "algorithm": _s("Algorithm"), + "bit_length": _i("Bit length"), + "mode": _s("Mode"), + "secret_type": _s( + "Secret type", + enum=["opaque", "symmetric", "public", "private", "certificate", "passphrase"], + example="opaque", + ), + "expiration": _s("Expiration timestamp"), + }, + required=["payload"], + ) + + +def props_alarm() -> Str: + return _o( + { + **_name_desc(), + "type": _s("Alarm type", enum=["threshold", "event", "gnocchi_resources_threshold"], example="threshold"), + "enabled": _b("Enabled", default=True), + "alarm_actions": _a(_s("Webhook URL", fmt="uri")), + "ok_actions": _a(_s(fmt="uri")), + "insufficient_data_actions": _a(_s(fmt="uri")), + "repeat_actions": _b("Repeat actions", default=True), + "threshold_rule": _o( + { + "meter_name": _s(example="cpu_util"), + "threshold": _i(example=80), + "comparison_operator": _s(enum=["gt", "lt", "ge", "le", "eq", "ne"], example="gt"), + "evaluation_periods": _i(example=1), + "period": _i(example=60), + "statistic": _s(enum=["avg", "max", "min", "sum", "count"], example="avg"), + "query": _a(_o({"field": _s(), "op": _s(), "value": _s()})), + } + ), + }, + required=["name", "type"], + ) + + +def props_zone() -> Str: + return _o( + { + "name": _s("Zone name FQDN", example="example.com."), + "email": _s("SOA email", fmt="email", example="hostmaster@example.com"), + "ttl": _i("TTL seconds", example=3600), + "description": _s(), + "type": _s("Zone type", enum=["PRIMARY", "SECONDARY"], example="PRIMARY"), + "masters": _a(_s("Master server")), + "attributes": _o({}), + }, + required=["name", "email"], + ) + + +def props_recordset() -> Str: + return _o( + { + "name": _s("Recordset name", example="www.example.com."), + "type": _s("RR type", enum=["A", "AAAA", "CNAME", "MX", "TXT", "SRV", "NS", "PTR"], example="A"), + "records": _a(_s("Record data"), "Records"), + "ttl": _i("TTL", example=3600), + "description": _s(), + }, + required=["name", "type", "records"], + ) + + +def props_loadbalancer() -> Str: + return _o( + { + **_name_desc(), + "vip_subnet_id": _s("VIP subnet UUID", fmt="uuid"), + "vip_network_id": _s("VIP network UUID", fmt="uuid"), + "vip_address": _s("VIP address"), + "provider": _s("Provider", example="amphora"), + "flavor_id": _s(fmt="uuid"), + "admin_state_up": _b(default=True), + "listeners": _a(_o({})), + "pools": _a(_o({})), + "project_id": _s(fmt="uuid"), + }, + required=["vip_subnet_id"], + ) + + +def props_listener() -> Str: + return _o( + { + **_name_desc(), + "loadbalancer_id": _s(fmt="uuid"), + "protocol": _s(enum=["HTTP", "HTTPS", "TCP", "UDP", "TERMINATED_HTTPS"], example="HTTP"), + "protocol_port": _i(example=80), + "connection_limit": _i(example=-1), + "admin_state_up": _b(default=True), + "default_pool_id": _s(fmt="uuid"), + "insert_headers": _o({}), + }, + required=["loadbalancer_id", "protocol", "protocol_port"], + ) + + +def props_pool() -> Str: + return _o( + { + **_name_desc(), + "lb_algorithm": _s( + enum=["ROUND_ROBIN", "LEAST_CONNECTIONS", "SOURCE_IP"], + example="ROUND_ROBIN", + ), + "protocol": _s(enum=["HTTP", "HTTPS", "TCP", "UDP", "PROXY"], example="HTTP"), + "listener_id": _s(fmt="uuid"), + "loadbalancer_id": _s(fmt="uuid"), + "admin_state_up": _b(default=True), + "session_persistence": _o({"type": _s(), "cookie_name": _s()}), + }, + required=["lb_algorithm", "protocol"], + ) + + +def props_member() -> Str: + return _o( + { + **_name_desc(), + "address": _s("Member IP", example="10.0.0.10"), + "protocol_port": _i(example=80), + "subnet_id": _s(fmt="uuid"), + "weight": _i(example=1), + "admin_state_up": _b(default=True), + "monitor_address": _s(), + "monitor_port": _i(), + "backup": _b(default=False), + }, + required=["address", "protocol_port"], + ) + + +def props_cluster() -> Str: + return _o( + { + **_name_desc(), + "cluster_template_id": _s(fmt="uuid"), + "node_count": _i(example=1), + "master_count": _i(example=1), + "keypair": _s("Keypair name"), + "labels": _o({}), + "flavor_id": _s(), + "master_flavor_id": _s(), + "docker_volume_size": _i(example=5), + }, + required=["name", "cluster_template_id"], + ) + + +def props_cluster_template() -> Str: + return _o( + { + **_name_desc(), + "image_id": _s(fmt="uuid"), + "coe": _s(enum=["kubernetes", "swarm", "mesos"], example="kubernetes"), + "keypair_id": _s(), + "external_network_id": _s(fmt="uuid"), + "dns_nameserver": _s(example="8.8.8.8"), + "flavor_id": _s(), + "master_flavor_id": _s(), + "docker_volume_size": _i(example=5), + "network_driver": _s(example="flannel"), + "volume_driver": _s(), + "public": _b(default=False), + "registry_enabled": _b(default=False), + "tls_disabled": _b(default=False), + }, + required=["name", "image_id", "coe"], + ) + + +def props_share() -> Str: + return _o( + { + **_name_desc(), + "size": _i("Size GiB", minimum=1, example=1), + "share_proto": _s(enum=["NFS", "CIFS", "GlusterFS", "HDFS", "CephFS"], example="NFS"), + "share_type": _s(), + "share_network_id": _s(fmt="uuid"), + "availability_zone": _s(), + "metadata": _o({}), + "is_public": _b(default=False), + "snapshot_id": _s(fmt="uuid"), + }, + required=["size", "share_proto"], + ) + + +def props_instance() -> Str: # trove / zun style + return _o( + { + **_name_desc(), + "flavorRef": _s(example="1"), + "volume_size": _i(example=1), + "datastore": _o( + {"type": _s(example="mysql"), "version": _s(example="8.0")}, + required=["type", "version"], + ), + "nics": _a(_o({"net-id": _s(fmt="uuid")})), + "databases": _a(_o({"name": _s()})), + "users": _a(_o({"name": _s(), "password": _s(), "databases": _a(_o({"name": _s()}))})), + "availability_zone": _s(), + }, + required=["name", "flavorRef"], + ) + + +def props_container() -> Str: + return _o( + { + **_name_desc(), + "image": _s("Container image", example="cirros"), + "command": _s("Command"), + "cpu": _i(example=1), + "memory": _i("Memory MiB", example=512), + "workdir": _s(), + "environment": _o({}), + "nets": _a(_o({"network": _s(fmt="uuid")})), + "restart_policy": _o({"Name": _s(example="no"), "MaximumRetryCount": _i(example=0)}), + "interactive": _b(default=False), + "tty": _b(default=False), + }, + required=["image"], + ) + + +def props_node() -> Str: # ironic + return _o( + { + **_name_desc(), + "driver": _s(example="ipmi"), + "driver_info": _o( + { + "ipmi_address": _s(), + "ipmi_username": _s(), + "ipmi_password": _s(), + } + ), + "properties": _o({"cpus": _i(example=4), "memory_mb": _i(example=8192), "local_gb": _i(example=100)}), + "resource_class": _s(example="baremetal"), + "conductor_group": _s(), + "network_interface": _s(example="flat"), + "storage_interface": _s(), + "boot_interface": _s(), + "deploy_interface": _s(), + }, + required=["driver"], + ) + + +def props_workflow() -> Str: + return _o( + { + **_name_desc(), + "definition": _s("Workflow DSL", example="version: '2.0'\nexample:\n tasks: {}"), + "scope": _s(enum=["private", "public"], example="private"), + "namespace": _s(), + "input": _s(), + "tags": _a(_s()), + }, + required=["definition"], + ) + + +def props_execution() -> Str: + return _o( + { + "workflow_name": _s(example="example"), + "workflow_id": _s(fmt="uuid"), + "input": _o({}), + "params": _o({}), + "description": _s(), + }, + required=["workflow_name"], + ) + + +def props_host() -> Str: # blazar + return _o( + { + "name": _s(example="example"), + "reservable": _b(default=True), + "extra_capabilities": _o({}), + }, + required=["name"], + ) + + +def props_lease() -> Str: + return _o( + { + "name": _s(example="example"), + "start_date": _s(example="2026-01-01 00:00"), + "end_date": _s(example="2026-01-02 00:00"), + "reservations": _a( + _o( + { + "resource_type": _s(example="physical:host"), + "min": _i(example=1), + "max": _i(example=1), + "hypervisor_properties": _s(), + "resource_properties": _s(), + } + ) + ), + "events": _a(_o({})), + }, + required=["name", "start_date", "end_date", "reservations"], + ) + + +def props_segment() -> Str: # masakari + return _o( + { + **_name_desc(), + "recovery_method": _s(enum=["auto", "reserved_host", "auto_priority", "rh_priority"], example="auto"), + "service_type": _s(enum=["compute"], example="compute"), + }, + required=["name", "recovery_method", "service_type"], + ) + + +def props_notification() -> Str: + return _o( + { + "type": _s(enum=["VM", "PROCESS", "COMPUTE_HOST"], example="VM"), + "hostname": _s(example="compute-1"), + "generated_time": _s(example="2026-01-01T00:00:00Z"), + "payload": _o( + { + "instance_uuid": _s(fmt="uuid"), + "vir_domain_event": _s(), + "event": _s(), + } + ), + "source_host_uuid": _s(fmt="uuid"), + }, + required=["type", "hostname", "generated_time", "payload"], + ) + + +def props_status() -> Str: # adjutant + return _o( + { + "service": _s(example="identity"), + "status": _s(enum=["UP", "DOWN", "UNKNOWN"], example="UP"), + "state": _s(example="up"), + "description": _s(), + "name": _s(example="example"), + }, + required=["service", "status"], + ) + + +def props_auth_token() -> Str: + return _o( + { + "auth": _o( + { + "identity": _o( + { + "methods": _a(_s(example="password")), + "password": _o( + { + "user": _o( + { + "name": _s(example="admin"), + "domain": _o({"name": _s(example="Default")}, required=["name"]), + "password": _s(example="secret"), + "id": _s(fmt="uuid"), + }, + required=["password"], + ) + } + ), + "token": _o({"id": _s()}), + }, + required=["methods"], + ), + "scope": _o( + { + "project": _o( + { + "name": _s(example="admin"), + "domain": _o({"name": _s(example="Default")}), + "id": _s(fmt="uuid"), + } + ), + "domain": _o({"name": _s(example="Default"), "id": _s(fmt="uuid")}), + "system": _o({"all": _b(default=True)}), + } + ), + }, + required=["identity"], + ) + }, + required=["auth"], + ) + + +def props_user() -> Str: + return _o( + { + **_name_desc(), + "domain_id": _s(fmt="uuid", example="default"), + "enabled": _b(default=True), + "password": _s(example="secret"), + "email": _s(fmt="email"), + "options": _o({}), + "default_project_id": _s(fmt="uuid"), + }, + required=["name"], + ) + + +def props_project() -> Str: + return _o( + { + **_name_desc(), + "domain_id": _s(fmt="uuid", example="default"), + "enabled": _b(default=True), + "is_domain": _b(default=False), + "parent_id": _s(fmt="uuid"), + "tags": _a(_s()), + "options": _o({}), + }, + required=["name"], + ) + + +def props_role() -> Str: + return _o( + { + **_name_desc(), + "domain_id": _s(fmt="uuid"), + "options": _o({}), + }, + required=["name"], + ) + + +def props_group() -> Str: + return _o({**_name_desc(), "domain_id": _s(fmt="uuid", example="default")}, required=["name"]) + + +def props_region() -> Str: + return _o( + {"id": _s(example="RegionOne"), "description": _s(), "parent_region_id": _s()}, + required=["id"], + ) + + +def props_service() -> Str: + return _o( + { + **_name_desc(), + "type": _s(example="compute"), + "enabled": _b(default=True), + }, + required=["name", "type"], + ) + + +def props_endpoint() -> Str: + return _o( + { + "interface": _s(enum=["public", "internal", "admin"], example="public"), + "region_id": _s(example="RegionOne"), + "url": _s(fmt="uri", example="http://127.0.0.1:8774/v2.1"), + "service_id": _s(fmt="uuid"), + "enabled": _b(default=True), + }, + required=["interface", "url", "service_id"], + ) + + +def props_flavor() -> Str: + return _o( + { + "name": _s(example="example"), + "ram": _i("RAM MiB", example=512), + "vcpus": _i(example=1), + "disk": _i("Root disk GiB", example=1), + "id": _s(example="auto"), + "OS-FLV-EXT-DATA:ephemeral": _i(example=0), + "swap": _i(example=0), + "rxtx_factor": {"type": "number", "example": 1.0}, + "os-flavor-access:is_public": _b(default=True), + }, + required=["name", "ram", "vcpus", "disk"], + ) + + +def props_keypair() -> Str: + return _o( + { + "name": _s(example="example"), + "public_key": _s("SSH public key"), + "type": _s(enum=["ssh", "x509"], example="ssh"), + "user_id": _s(fmt="uuid"), + }, + required=["name"], + ) + + +def props_aggregate() -> Str: + return _o( + { + "name": _s(example="example"), + "availability_zone": _s(example="nova"), + "metadata": _o({}), + }, + required=["name"], + ) + + +def props_server_group() -> Str: + return _o( + { + "name": _s(example="example"), + "policies": _a(_s(enum=["affinity", "anti-affinity", "soft-affinity", "soft-anti-affinity"])), + "policy": _s(enum=["affinity", "anti-affinity", "soft-affinity", "soft-anti-affinity"]), + "rules": _o({"max_server_per_host": _i(example=1)}), + }, + required=["name"], + ) + + +def props_quota_set() -> Str: + return _o( + { + "instances": _i(example=10), + "cores": _i(example=20), + "ram": _i(example=51200), + "floating_ips": _i(example=10), + "fixed_ips": _i(example=-1), + "metadata_items": _i(example=128), + "injected_files": _i(example=5), + "injected_file_content_bytes": _i(example=10240), + "security_groups": _i(example=10), + "security_group_rules": _i(example=20), + "key_pairs": _i(example=100), + "volumes": _i(example=10), + "snapshots": _i(example=10), + "gigabytes": _i(example=1000), + "networks": _i(example=100), + "subnets": _i(example=100), + "ports": _i(example=500), + "routers": _i(example=10), + "force": _b(default=False), + } + ) + + +def props_allocation() -> Str: # placement + return _o( + { + "allocations": _o( + {}, + description="Map of resource provider UUID to resources", + ), + "project_id": _s(fmt="uuid"), + "user_id": _s(fmt="uuid"), + "consumer_generation": _i("Consumer generation", example=0), + }, + required=["allocations", "project_id", "user_id"], + ) + + +def props_resource_provider() -> Str: + return _o( + { + "name": _s(example="example"), + "uuid": _s(fmt="uuid"), + "parent_provider_uuid": _s(fmt="uuid"), + }, + required=["name"], + ) + + +def props_inventory() -> Str: + return _o( + { + "resource_class": _s(example="VCPU"), + "total": _i(example=8), + "reserved": _i(example=0), + "min_unit": _i(example=1), + "max_unit": _i(example=8), + "step_size": _i(example=1), + "allocation_ratio": {"type": "number", "example": 16.0}, + }, + required=["resource_class", "total"], + ) + + +def props_trait() -> Str: + return _o({"name": _s(example="CUSTOM_EXAMPLE"), "traits": _a(_s())}, required=["name"]) + + +def props_queue() -> Str: # zaqar + return _o( + { + "queue_name": _s(example="example"), + "_metadata": _o({}), + }, + required=["queue_name"], + ) + + +def props_message() -> Str: + return _o( + { + "messages": _a( + _o( + { + "body": _o({"event": _s(example="example")}), + "ttl": _i(example=3600), + }, + required=["body"], + ) + ) + }, + required=["messages"], + ) + + +def props_subscription() -> Str: + return _o( + { + "subscriber": _s(fmt="uri", example="http://example.com/hook"), + "ttl": _i(example=3600), + "options": _o({}), + }, + required=["subscriber"], + ) + + +def props_job() -> Str: # freezer + return _o( + { + "description": _s(example="example"), + "job_actions": _a( + _o( + { + "freezer_action": _o( + { + "action": _s(enum=["backup", "restore"], example="backup"), + "mode": _s(example="fs"), + "storage": _s(example="swift"), + "container": _s(example="freezer_backup"), + "path_to_backup": _s(example="/home"), + } + ), + "max_retries": _i(example=3), + "max_retries_interval": _i(example=60), + } + ) + ), + "client_id": _s(example="example-client"), + "job_schedule": _o( + { + "schedule_start_date": _s(), + "schedule_interval": _s(example="1 day"), + "status": _s(example="scheduled"), + } + ), + }, + required=["job_actions", "client_id"], + ) + + +def props_backup() -> Str: + return _o( + { + **_name_desc(), + "volume_id": _s(fmt="uuid"), + "container": _s(), + "force": _b(default=False), + "incremental": _b(default=False), + "snapshot_id": _s(fmt="uuid"), + "metadata": _o({}), + }, + required=["volume_id"], + ) + + +def props_trunk() -> Str: + return _o( + { + **_name_desc(), + "port_id": _s(fmt="uuid"), + "admin_state_up": _b(default=True), + "sub_ports": _a( + _o( + { + "port_id": _s(fmt="uuid"), + "segmentation_type": _s(example="vlan"), + "segmentation_id": _i(example=100), + }, + required=["port_id", "segmentation_type", "segmentation_id"], + ) + ), + }, + required=["port_id"], + ) + + +def props_qos_policy() -> Str: + return _o({**_name_desc(), "shared": _b(default=False), "is_default": _b(default=False)}, required=["name"]) + + +def props_rbac_policy() -> Str: + return _o( + { + "object_type": _s(example="network"), + "object_id": _s(fmt="uuid"), + "target_tenant": _s(fmt="uuid"), + "action": _s(enum=["access_as_shared", "access_as_external"], example="access_as_shared"), + }, + required=["object_type", "object_id", "target_tenant", "action"], + ) + + +def props_metering_label() -> Str: + return _o({**_name_desc(), "shared": _b(default=False)}, required=["name"]) + + +def props_firewall_group() -> Str: + return _o( + { + **_name_desc(), + "ingress_firewall_policy_id": _s(fmt="uuid"), + "egress_firewall_policy_id": _s(fmt="uuid"), + "ports": _a(_s(fmt="uuid")), + "admin_state_up": _b(default=True), + "shared": _b(default=False), + }, + required=["name"], + ) + + +def props_l7policy() -> Str: + return _o( + { + **_name_desc(), + "listener_id": _s(fmt="uuid"), + "action": _s( + enum=["REJECT", "REDIRECT_TO_URL", "REDIRECT_TO_POOL", "REDIRECT_PREFIX"], + example="REJECT", + ), + "redirect_pool_id": _s(fmt="uuid"), + "redirect_url": _s(fmt="uri"), + "position": _i(example=1), + "admin_state_up": _b(default=True), + }, + required=["listener_id", "action"], + ) + + +def props_healthmonitor() -> Str: + return _o( + { + **_name_desc(), + "type": _s(enum=["HTTP", "HTTPS", "PING", "TCP", "TLS-HELLO", "UDP-CONNECT"], example="HTTP"), + "delay": _i(example=5), + "timeout": _i(example=3), + "max_retries": _i(example=3), + "pool_id": _s(fmt="uuid"), + "http_method": _s(example="GET"), + "url_path": _s(example="/"), + "expected_codes": _s(example="200"), + "admin_state_up": _b(default=True), + }, + required=["type", "delay", "timeout", "max_retries", "pool_id"], + ) + + +def props_generic(resource_type: str) -> Str: + """Fallback full-ish object for lesser-known resources.""" + + return _o( + { + **_name_desc(), + "id": _s(fmt="uuid"), + "project_id": _s(fmt="uuid"), + "tenant_id": _s(fmt="uuid"), + "status": _s(example="ACTIVE"), + "enabled": _b(default=True), + "shared": _b(default=False), + "admin_state_up": _b(default=True), + "metadata": _o({}), + "tags": _a(_s()), + "type": _s(example=resource_type), + "configuration": _o({}), + "properties": _o({}), + "spec": _o({}), + "data": _o({}), + "value": _s(), + "size": _i(example=1), + "version": _s(example="1"), + "url": _s(fmt="uri"), + "address": _s(), + "protocol": _s(), + "port": _i(example=80), + "extra": _o({}), + }, + required=["name"], + ) + + +_RESOURCE_PROPS: dict[str, Any] = { + "server": props_server, + "network": props_network, + "subnet": props_subnet, + "port": props_port, + "router": props_router, + "floatingip": props_floatingip, + "security_group": props_security_group, + "security_group_rule": props_security_group_rule, + "volume": props_volume, + "snapshot": props_snapshot, + "backup": props_backup, + "image": props_image, + "vim": props_vim, + "stack": props_stack, + "secret": props_secret, + "alarm": props_alarm, + "zone": props_zone, + "recordset": props_recordset, + "loadbalancer": props_loadbalancer, + "listener": props_listener, + "pool": props_pool, + "member": props_member, + "cluster": props_cluster, + "cluster_template": props_cluster_template, + "share": props_share, + "instance": props_instance, + "container": props_container, + "node": props_node, + "workflow": props_workflow, + "execution": props_execution, + "host": props_host, + "lease": props_lease, + "segment": props_segment, + "notification": props_notification, + "status": props_status, + "user": props_user, + "project": props_project, + "role": props_role, + "group": props_group, + "region": props_region, + "service": props_service, + "endpoint": props_endpoint, + "flavor": props_flavor, + "keypair": props_keypair, + "aggregate": props_aggregate, + "server_group": props_server_group, + "quota_set": props_quota_set, + "quota": props_quota_set, + "allocation": props_allocation, + "resource_provider": props_resource_provider, + "inventory": props_inventory, + "trait": props_trait, + "queue": props_queue, + "message": props_message, + "subscription": props_subscription, + "job": props_job, + "trunk": props_trunk, + "qos_policy": props_qos_policy, + "rbac_policy": props_rbac_policy, + "metering_label": props_metering_label, + "firewall_group": props_firewall_group, + "l7policy": props_l7policy, + "healthmonitor": props_healthmonitor, + "volume_type": lambda: _o({**_name_desc(), "extra_specs": _o({}), "os-volume-type-access:is_public": _b(default=True)}, required=["name"]), + "consistencygroup": lambda: _o({**_name_desc(), "volume_types": _a(_s())}, required=["name", "volume_types"]), + "attachment": lambda: _o({"instance_uuid": _s(fmt="uuid"), "volume_uuid": _s(fmt="uuid"), "mode": _s(example="rw")}, required=["instance_uuid", "volume_uuid"]), + "share_network": lambda: _o({**_name_desc(), "neutron_net_id": _s(fmt="uuid"), "neutron_subnet_id": _s(fmt="uuid")}, required=["name"]), + "share_type": lambda: _o({**_name_desc(), "extra_specs": _o({"driver_handles_share_servers": _b(default=False)}), "is_public": _b(default=True)}, required=["name", "extra_specs"]), + "template": lambda: props_stack(), + "vnf": lambda: _o({**_name_desc(), "vnfd_id": _s(fmt="uuid"), "vim_id": _s(fmt="uuid")}, required=["name", "vnfd_id"]), + "vnfd": lambda: _o({**_name_desc(), "attributes": _o({"vnfd": _s()}), "service_types": _a(_o({"service_type": _s(example="vnfd")}))}, required=["name"]), + "ns": lambda: _o({**_name_desc(), "nsd_id": _s(fmt="uuid"), "vim_id": _s(fmt="uuid")}, required=["name", "nsd_id"]), + "nsd": lambda: _o({**_name_desc(), "attributes": _o({"nsd": _s()})}, required=["name"]), + "action": lambda: _o({"action": _s(example="os-start"), "name": _s()}, required=["action"]), + "rating_module": lambda: _o({**_name_desc(), "enabled": _b(default=True), "priority": _i(example=1)}, required=["name"]), + "hashmap_service": lambda: _o({**_name_desc()}, required=["name"]), + "collector": lambda: _o({**_name_desc(), "url": _s(fmt="uri")}, required=["name", "url"]), + "template_definition": lambda: _o({**_name_desc(), "template": _s(), "type": _s()}, required=["name", "template"]), + "webhook": lambda: _o({**_name_desc(), "url": _s(fmt="uri"), "headers": _o({})}, required=["name", "url"]), + "topology": lambda: _o({**_name_desc(), "graph": _o({})}, required=["name"]), + "template_version": lambda: _o({"id": _s(example="2021-04-16"), "type": _s(example="heat")}, required=["id"]), +} + + +def inner_for_resource(resource_type: str) -> Str: + factory = _RESOURCE_PROPS.get(resource_type) + if factory is None: + # Try singular of resource_type + factory = _RESOURCE_PROPS.get(singular(resource_type)) + if factory is None: + return props_generic(resource_type) + return deepcopy(factory() if callable(factory) else factory) + + +def action_schema(action_name: str | None) -> Str: + action = action_name if action_name and action_name != "*" else "os-start" + bodies: dict[str, Str] = { + "os-getConsoleOutput": _o({action: _o({"length": _i(example=20)})}, required=[action]), + "reboot": _o({action: _o({"type": _s(enum=["SOFT", "HARD"], example="SOFT")}, required=["type"])}, required=[action]), + "resize": _o({action: _o({"flavorRef": _s(example="2")}, required=["flavorRef"])}, required=[action]), + "rebuild": _o( + {action: _o({"imageRef": _s(fmt="uuid"), "name": _s(), "adminPass": _s()}, required=["imageRef"])}, + required=[action], + ), + "createImage": _o({action: _o({"name": _s(example="example"), "metadata": _o({})}, required=["name"])}, required=[action]), + } + if action in bodies: + return bodies[action] + return _o({action: {"type": "null", "description": f"Action {action} body (null object)"}}, required=[action]) + + +def schema_for_operation(op: dict[str, Any]) -> Str: + """Build a full request JSON Schema for one pack operation dict.""" + + method = op["method"] + kind = op.get("kind") or "collection" + path = op.get("path") or "" + resource_type = op.get("resource_type") or "object" + item_key = op.get("item_key") or ( + singular(op["collection_key"]) if op.get("collection_key") else singular(resource_type) + ) + + if path == "/v3/auth/tokens" and method == "POST": + return props_auth_token() + + if kind == "action": + return action_schema(op.get("action_name")) + + if "add_router_interface" in path or "remove_router_interface" in path: + return _o( + { + "subnet_id": _s(fmt="uuid"), + "port_id": _s(fmt="uuid"), + } + ) + + if path.rstrip("/").endswith("/os-interface") and method == "POST": + return _envelope( + "interfaceAttachment", + _o( + { + "port_id": _s(fmt="uuid"), + "net_id": _s(fmt="uuid"), + "fixed_ips": _a(_o({"ip_address": _s()})), + } + ), + ) + + if resource_type == "server_tag" and path.rstrip("/").endswith("/tags"): + return _o({"tags": _a(_s(example="demo"))}, required=["tags"]) + + if op.get("collection_key") == "Stacks": + return _o( + { + "StackName": _s(example="example"), + "TemplateBody": _s(example='{"AWSTemplateFormatVersion":"2010-09-09"}'), + "Parameters": _s(), + "TimeoutInMinutes": _i(example=60), + }, + required=["StackName", "TemplateBody"], + ) + + # Heat stack create uses top-level keys sometimes without envelope in CFN; + # OpenStack native uses stack envelope. + if resource_type == "stack" and method == "POST" and "/stacks" in path: + return _envelope("stack", inner_for_resource("stack")) + + # Queue create in Zaqar often uses path name; still document metadata body. + if resource_type in {"queue"} and method == "PUT": + return _o({"_metadata": _o({})}) + + # Empty body endpoints (some PUT enable/disable) — still expose optional object. + if kind == "custom" and method in {"POST", "PUT", "PATCH"}: + inner = inner_for_resource(resource_type) + if item_key: + return _envelope(item_key, inner, required_inner=False) + return inner + + inner = inner_for_resource(resource_type) + # PATCH/PUT item updates: same fields but nothing strictly required except identity in path. + if kind == "item" and method in {"PUT", "PATCH"}: + relaxed = deepcopy(inner) + relaxed.pop("required", None) + return _envelope(item_key, relaxed) + + return _envelope(item_key, inner)