{"openapi":"3.1.0","info":{"title":"Rogue Arena External Deployments API","version":"1.0.0","description":"Customer deployments API. Authenticated by an ra_training_live_ Bearer key created in Team Hub, acting with its creator's current permissions."},"components":{"securitySchemes":{"ApiKey":{"type":"http","scheme":"bearer","bearerFormat":"ra_training_live_…","description":"Personal key created in Team Hub. Acts with its creator's current permissions."}}},"paths":{"/api/v1/openapi/deployments.json":{"get":{"operationId":"GetExternalDeploymentsOpenApi","description":"The machine-readable OpenAPI document for this API. Unauthenticated.","parameters":[],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"openapi":{"type":"string","const":"3.1.0"}},"required":["openapi"],"additionalProperties":{}}}}}},"security":[],"x-required-scope":null}},"/api/v1/deployable-scenarios":{"get":{"operationId":"ListExternalDeployableScenarios","description":"Scenarios and courses this key's creator can currently deploy.","parameters":[],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"scenarios":{"type":"array","items":{"type":"object","properties":{"scenarioId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"shortDescription":{"type":["string","null"]},"environmentType":{"type":"string"},"latestVersionNumber":{"type":"integer","minimum":0,"maximum":9007199254740991},"versions":{"minItems":1,"type":"array","items":{"type":"object","properties":{"versionNumber":{"type":"integer","minimum":0,"maximum":9007199254740991},"releasedAt":{"type":"string"},"changeLog":{"type":"string"}},"required":["versionNumber","releasedAt","changeLog"],"additionalProperties":false}}},"required":["scenarioId","name","shortDescription","environmentType","latestVersionNumber","versions"],"additionalProperties":false}}},"required":["scenarios"],"additionalProperties":false}}}},"400":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"401":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"409":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"429":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"500":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"503":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}},"security":[{"ApiKey":[]}],"x-required-scope":"deployments:read"}},"/api/v1/deployments":{"get":{"operationId":"ListExternalDeployments","description":"Deployments visible to this key's creator, filtered by relationship.","parameters":[{"name":"relationship","in":"query","required":false,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","default":"owned","type":"string","enum":["owned","shared","team"]}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"deployments":{"type":"array","items":{"type":"object","properties":{"deploymentId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"scenarioName":{"type":"string"},"status":{"type":"string","description":"The deployment's lifecycle status, currently one of: undeployed, running, starting, paused, locked, remove, shuttingdown, turnedoff, removewait. Use readiness to decide whether it is deployed."},"environmentType":{"type":"string"},"createdAt":{"type":"string"},"isPrimary":{"type":"boolean"},"versionNumber":{"type":"integer","minimum":0,"maximum":9007199254740991},"relationship":{"type":"string","enum":["owned","shared","team"]},"ownerUsername":{"type":["string","null"]}},"required":["deploymentId","scenarioName","status","environmentType","createdAt","isPrimary","versionNumber","relationship","ownerUsername"],"additionalProperties":false}}},"required":["deployments"],"additionalProperties":false}}}},"400":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"401":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"409":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"429":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"500":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"503":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}},"security":[{"ApiKey":[]}],"x-required-scope":"deployments:read"},"post":{"operationId":"CreateExternalDeployment","description":"Self-deploy sets the new deployment as the creator's primary deployment.","parameters":[{"name":"idempotency-key","in":"header","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"scenarioId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"versionNumber":{"type":"integer","minimum":0,"maximum":9007199254740991},"ownerUserId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"eraseUserProgress":{"default":false,"type":"boolean"},"fundingPreference":{"default":{"kind":"automatic"},"type":"object","properties":{"kind":{"type":"string","const":"automatic"}},"required":["kind"],"additionalProperties":false},"replacementDeploymentIds":{"default":[],"maxItems":20,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}},"required":["scenarioId"],"additionalProperties":false}}}},"responses":{"202":{"description":"Successful response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"deploymentId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["deploymentId"],"additionalProperties":false}}}},"400":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"401":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"409":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","anyOf":[{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false},"admission":{"type":"object","properties":{"verdict":{"type":"string","enum":["allow","deny","requires_action","defer"]},"lane":{"type":"string","enum":["deployment","support"]},"fundedBy":{"anyOf":[{"type":"string","enum":["event_booking","cmi5_launch","showcase_pool","certification_exam","staff_sponsored","staff_override","team_pool","personal_included","lab_plan","hour_lot","legacy_cutover"]},{"type":"null"}]},"reasonCode":{"type":"string","enum":["funded_by_source","activation_continues","support_vm_admitted","spending_authority_denied","replacement_not_permitted","deployment_not_found","environment_not_permitted","account_inactive","self_deploy_blocked","internet_vpn_not_permitted","cooldown_active","activation_funding_immutable","pool_closed","hardware_cap_exceeded","plugin_recipient_not_permitted","declaration_unverified","identity_restricted","canvas_edit_denied","no_funding_source","team_storage_full","pool_full","lab_hours_exhausted","facts_unavailable","transaction_unavailable","funding_verdict_stale"]},"validUntil":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},{"type":"null"}]},"validityBoundary":{"type":"object","properties":{"kind":{"type":"string","enum":["none","boundary","quote_expiry","lease","preview_ttl"]},"at":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},{"type":"null"}]}},"required":["kind","at"],"additionalProperties":false},"remediation":{"anyOf":[{"type":"object","properties":{"action":{"type":"string","enum":["stop_or_replace","buy_lab_plan","buy_hours","redeem_points","retry_later","contact_admin"]},"seats":{"type":"array","items":{"type":"object","properties":{"deploymentId":{"type":"string","minLength":1},"poolId":{"type":"string","minLength":1},"ownerMainId":{"type":"string","minLength":1},"environmentName":{"type":"string"},"workloadKind":{"type":"string","enum":["deployment","architectBuild"]},"deploymentStatus":{"type":"string","enum":["undeployed","running","starting","paused","locked","remove","shuttingdown","turnedoff","removewait"]},"claimedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"}},"required":["deploymentId","poolId","ownerMainId","environmentName","workloadKind","deploymentStatus","claimedAt"],"additionalProperties":false}}},"required":["action","seats"],"additionalProperties":false},{"type":"null"}]},"retryAfterSeconds":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]}},"required":["verdict","lane","fundedBy","reasonCode","validUntil","validityBoundary","remediation","retryAfterSeconds"],"additionalProperties":false}},"required":["error","admission"],"additionalProperties":false},{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}]}}}},"429":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"500":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"503":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}},"security":[{"ApiKey":[]}],"x-required-scope":"deployments:lifecycle"}},"/api/v1/deployments/{deploymentId}":{"get":{"operationId":"GetExternalDeployment","description":"Summary details for one deployment. readiness says whether its current lifecycle action (deploy, start, revert) finished: ready once it is running with no task left, deploying while tasks remain, failed when one failed, stopped, or removing. Poll until readiness is ready before requesting a VPN config.","parameters":[{"name":"deploymentId","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"deploymentId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"scenarioName":{"type":"string"},"ownerUsername":{"type":"string"},"environmentType":{"type":"string"},"status":{"type":"string","description":"The deployment's lifecycle status, currently one of: undeployed, running, starting, paused, locked, remove, shuttingdown, turnedoff, removewait. Use readiness to decide whether it is deployed."},"readiness":{"default":"deploying","description":"ready once the deployment is running with no task left; poll until ready before requesting a VPN config","type":"string","enum":["deploying","ready","failed","stopped","removing"]},"createdAt":{"type":"string"},"uptime":{"type":"number","minimum":0},"runningVmCount":{"type":"integer","minimum":0,"maximum":9007199254740991},"totalVmCount":{"type":"integer","minimum":0,"maximum":9007199254740991},"sharedUserCount":{"type":"integer","minimum":0,"maximum":9007199254740991},"snapshotCount":{"type":"integer","minimum":0,"maximum":9007199254740991},"pendingTaskCount":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Tasks of the current lifecycle action still to finish"}},"required":["deploymentId","scenarioName","ownerUsername","environmentType","status","readiness","createdAt","uptime","runningVmCount","totalVmCount","sharedUserCount","snapshotCount","pendingTaskCount"],"additionalProperties":false}}}},"400":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"401":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"409":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"429":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"500":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"503":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}},"security":[{"ApiKey":[]}],"x-required-scope":"deployments:read"},"delete":{"operationId":"DeleteExternalDeployment","description":"Removes a deployment and its virtual machines.","parameters":[{"name":"deploymentId","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"responses":{"202":{"description":"Successful response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"accepted":{"type":"boolean","const":true}},"required":["accepted"],"additionalProperties":false}}}},"400":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"401":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"409":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"429":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"500":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"503":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}},"security":[{"ApiKey":[]}],"x-required-scope":"deployments:lifecycle"}},"/api/v1/deployments/{deploymentId}/progress":{"get":{"operationId":"GetExternalDeploymentProgress","description":"The deployment's in-flight tasks, their count, and its readiness (ready once no task is left). Counts cover the tasks still to finish; completed and total counts are not reported yet.","parameters":[{"name":"deploymentId","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"deploymentId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"readiness":{"default":"deploying","description":"ready once the deployment is running with no task left","type":"string","enum":["deploying","ready","failed","stopped","removing"]},"pendingTaskCount":{"default":0,"description":"The number of pendingTasks","type":"integer","minimum":0,"maximum":9007199254740991},"pendingTasks":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"status":{"type":"string"}},"required":["name","status"],"additionalProperties":false}}},"required":["deploymentId","readiness","pendingTaskCount","pendingTasks"],"additionalProperties":false}}}},"400":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"401":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"409":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"429":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"500":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"503":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}},"security":[{"ApiKey":[]}],"x-required-scope":"deployments:read"}},"/api/v1/deployments/{deploymentId}/power":{"post":{"operationId":"SetExternalDeploymentPower","description":"Powers every virtual machine in the deployment on or off.","parameters":[{"name":"deploymentId","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"state":{"type":"string","enum":["on","off"]},"fundingPreference":{"default":{"kind":"automatic"},"type":"object","properties":{"kind":{"type":"string","const":"automatic"}},"required":["kind"],"additionalProperties":false}},"required":["state"],"additionalProperties":false}}}},"responses":{"202":{"description":"Successful response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"accepted":{"type":"boolean","const":true}},"required":["accepted"],"additionalProperties":false}}}},"400":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"401":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"409":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","anyOf":[{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false},"admission":{"type":"object","properties":{"verdict":{"type":"string","enum":["allow","deny","requires_action","defer"]},"lane":{"type":"string","enum":["deployment","support"]},"fundedBy":{"anyOf":[{"type":"string","enum":["event_booking","cmi5_launch","showcase_pool","certification_exam","staff_sponsored","staff_override","team_pool","personal_included","lab_plan","hour_lot","legacy_cutover"]},{"type":"null"}]},"reasonCode":{"type":"string","enum":["funded_by_source","activation_continues","support_vm_admitted","spending_authority_denied","replacement_not_permitted","deployment_not_found","environment_not_permitted","account_inactive","self_deploy_blocked","internet_vpn_not_permitted","cooldown_active","activation_funding_immutable","pool_closed","hardware_cap_exceeded","plugin_recipient_not_permitted","declaration_unverified","identity_restricted","canvas_edit_denied","no_funding_source","team_storage_full","pool_full","lab_hours_exhausted","facts_unavailable","transaction_unavailable","funding_verdict_stale"]},"validUntil":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},{"type":"null"}]},"validityBoundary":{"type":"object","properties":{"kind":{"type":"string","enum":["none","boundary","quote_expiry","lease","preview_ttl"]},"at":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},{"type":"null"}]}},"required":["kind","at"],"additionalProperties":false},"remediation":{"anyOf":[{"type":"object","properties":{"action":{"type":"string","enum":["stop_or_replace","buy_lab_plan","buy_hours","redeem_points","retry_later","contact_admin"]},"seats":{"type":"array","items":{"type":"object","properties":{"deploymentId":{"type":"string","minLength":1},"poolId":{"type":"string","minLength":1},"ownerMainId":{"type":"string","minLength":1},"environmentName":{"type":"string"},"workloadKind":{"type":"string","enum":["deployment","architectBuild"]},"deploymentStatus":{"type":"string","enum":["undeployed","running","starting","paused","locked","remove","shuttingdown","turnedoff","removewait"]},"claimedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"}},"required":["deploymentId","poolId","ownerMainId","environmentName","workloadKind","deploymentStatus","claimedAt"],"additionalProperties":false}}},"required":["action","seats"],"additionalProperties":false},{"type":"null"}]},"retryAfterSeconds":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]}},"required":["verdict","lane","fundedBy","reasonCode","validUntil","validityBoundary","remediation","retryAfterSeconds"],"additionalProperties":false}},"required":["error","admission"],"additionalProperties":false},{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}]}}}},"429":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"500":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"503":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}},"security":[{"ApiKey":[]}],"x-required-scope":"deployments:lifecycle"}},"/api/v1/deployments/{deploymentId}/snapshots":{"get":{"operationId":"ListExternalDeploymentSnapshots","description":"Environment-level snapshots captured for this deployment.","parameters":[{"name":"deploymentId","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"snapshots":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"createdAt":{"type":"string"},"note":{"type":"string"}},"required":["name","createdAt","note"],"additionalProperties":false}}},"required":["snapshots"],"additionalProperties":false}}}},"400":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"401":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"409":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"429":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"500":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"503":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}},"security":[{"ApiKey":[]}],"x-required-scope":"deployments:read"}},"/api/v1/deployments/{deploymentId}/revert":{"post":{"operationId":"RevertExternalDeployment","description":"Reverts the deployment to a previously captured environment snapshot.","parameters":[{"name":"deploymentId","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"name":"idempotency-key","in":"header","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"snapshotName":{"type":"string","minLength":1,"maxLength":200},"resetUserProgress":{"default":false,"type":"boolean"}},"required":["snapshotName"],"additionalProperties":false}}}},"responses":{"202":{"description":"Successful response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"accepted":{"type":"boolean","const":true}},"required":["accepted"],"additionalProperties":false}}}},"400":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"401":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"409":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","anyOf":[{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false},"admission":{"type":"object","properties":{"verdict":{"type":"string","enum":["allow","deny","requires_action","defer"]},"lane":{"type":"string","enum":["deployment","support"]},"fundedBy":{"anyOf":[{"type":"string","enum":["event_booking","cmi5_launch","showcase_pool","certification_exam","staff_sponsored","staff_override","team_pool","personal_included","lab_plan","hour_lot","legacy_cutover"]},{"type":"null"}]},"reasonCode":{"type":"string","enum":["funded_by_source","activation_continues","support_vm_admitted","spending_authority_denied","replacement_not_permitted","deployment_not_found","environment_not_permitted","account_inactive","self_deploy_blocked","internet_vpn_not_permitted","cooldown_active","activation_funding_immutable","pool_closed","hardware_cap_exceeded","plugin_recipient_not_permitted","declaration_unverified","identity_restricted","canvas_edit_denied","no_funding_source","team_storage_full","pool_full","lab_hours_exhausted","facts_unavailable","transaction_unavailable","funding_verdict_stale"]},"validUntil":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},{"type":"null"}]},"validityBoundary":{"type":"object","properties":{"kind":{"type":"string","enum":["none","boundary","quote_expiry","lease","preview_ttl"]},"at":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},{"type":"null"}]}},"required":["kind","at"],"additionalProperties":false},"remediation":{"anyOf":[{"type":"object","properties":{"action":{"type":"string","enum":["stop_or_replace","buy_lab_plan","buy_hours","redeem_points","retry_later","contact_admin"]},"seats":{"type":"array","items":{"type":"object","properties":{"deploymentId":{"type":"string","minLength":1},"poolId":{"type":"string","minLength":1},"ownerMainId":{"type":"string","minLength":1},"environmentName":{"type":"string"},"workloadKind":{"type":"string","enum":["deployment","architectBuild"]},"deploymentStatus":{"type":"string","enum":["undeployed","running","starting","paused","locked","remove","shuttingdown","turnedoff","removewait"]},"claimedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"}},"required":["deploymentId","poolId","ownerMainId","environmentName","workloadKind","deploymentStatus","claimedAt"],"additionalProperties":false}}},"required":["action","seats"],"additionalProperties":false},{"type":"null"}]},"retryAfterSeconds":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]}},"required":["verdict","lane","fundedBy","reasonCode","validUntil","validityBoundary","remediation","retryAfterSeconds"],"additionalProperties":false}},"required":["error","admission"],"additionalProperties":false},{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}]}}}},"429":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"500":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"503":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}},"security":[{"ApiKey":[]}],"x-required-scope":"deployments:lifecycle"}},"/api/v1/deployments/{deploymentId}/vms":{"get":{"operationId":"ListExternalDeploymentVms","description":"The virtual machines that make up this deployment.","parameters":[{"name":"deploymentId","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"deploymentId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"deploymentStatus":{"type":"string"},"vms":{"type":"array","items":{"type":"object","properties":{"vmId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":["string","null"]},"operatingSystem":{"type":"string"},"powerState":{"type":"string"},"guiType":{"type":"string"},"snapshots":{"type":"array","items":{"type":"object","properties":{"snapshotId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"status":{"type":"string"},"isActive":{"type":"boolean"},"capturedAt":{"type":"string"},"note":{"type":["string","null"]}},"required":["snapshotId","name","status","isActive","capturedAt","note"],"additionalProperties":false}}},"required":["vmId","name","operatingSystem","powerState","guiType","snapshots"],"additionalProperties":false}}},"required":["deploymentId","deploymentStatus","vms"],"additionalProperties":false}}}},"400":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"401":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"409":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"429":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"500":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"503":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}},"security":[{"ApiKey":[]}],"x-required-scope":"deployments:read"}},"/api/v1/deployments/{deploymentId}/vms/{vmId}/access":{"get":{"operationId":"GetExternalVmAccess","description":"Connection details for one virtual machine. username and password are the pair the scenario author published in Architect; both are null when none was set.","parameters":[{"name":"deploymentId","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"name":"vmId","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"vmId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"ipAddress":{"type":["string","null"]},"username":{"type":["string","null"]},"password":{"type":["string","null"]}},"required":["vmId","ipAddress","username","password"],"additionalProperties":false}}}},"400":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"401":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"409":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"429":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"500":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"503":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}},"security":[{"ApiKey":[]}],"x-required-scope":"deployments:vms"}},"/api/v1/deployments/{deploymentId}/vms/{vmId}/power":{"post":{"operationId":"SetExternalVmPower","description":"Powers one virtual machine on or off.","parameters":[{"name":"deploymentId","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"name":"vmId","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"state":{"type":"string","enum":["on","off"]}},"required":["state"],"additionalProperties":false}}}},"responses":{"202":{"description":"Successful response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"accepted":{"type":"boolean","const":true}},"required":["accepted"],"additionalProperties":false}}}},"400":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"401":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"409":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"429":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"500":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"503":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}},"security":[{"ApiKey":[]}],"x-required-scope":"deployments:vms"}},"/api/v1/deployments/{deploymentId}/vms/{vmId}/scripts":{"post":{"operationId":"RunExternalVmScript","description":"Runs a script on one virtual machine and returns its output.","parameters":[{"name":"deploymentId","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"name":"vmId","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"script":{"type":"string","minLength":1,"maxLength":1000000},"shell":{"type":"string","enum":["bash","powershell","sh","python3"]},"timeoutSeconds":{"type":"integer","minimum":1,"maximum":600},"maxOutputChars":{"type":"integer","minimum":1000,"maximum":100000}},"required":["script"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"output":{"type":"string"},"exitCode":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"executionTimeMs":{"type":"number","minimum":0},"shell":{"type":"string"},"truncated":{"type":"boolean"}},"required":["output","exitCode","executionTimeMs","shell","truncated"],"additionalProperties":false}}}},"400":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"401":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"409":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"429":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"500":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"503":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}},"security":[{"ApiKey":[]}],"x-required-scope":"deployments:vms"}},"/api/v1/deployments/{deploymentId}/vms/{vmId}/directory":{"get":{"operationId":"ListExternalVmDirectory","description":"Lists a directory on one virtual machine.","parameters":[{"name":"deploymentId","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"name":"vmId","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"name":"path","in":"query","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1,"maxLength":4096}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"path":{"type":"string"},"folders":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"}},"required":["name"],"additionalProperties":false}},"files":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"sizeBytes":{"type":"string"},"modifiedAt":{"type":"string"}},"required":["name","sizeBytes","modifiedAt"],"additionalProperties":false}}},"required":["path","folders","files"],"additionalProperties":false}}}},"400":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"401":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"409":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"429":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"500":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"503":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}},"security":[{"ApiKey":[]}],"x-required-scope":"deployments:vms"}},"/api/v1/deployments/{deploymentId}/vms/{vmId}/file":{"get":{"operationId":"ReadExternalVmFile","description":"Reads a file, or a slice of one, from a virtual machine.","parameters":[{"name":"deploymentId","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"name":"vmId","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"name":"path","in":"query","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1,"maxLength":4096}},{"name":"mode","in":"query","required":false,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","enum":["head","tail","range"]}},{"name":"lineCount","in":"query","required":false,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"integer","minimum":1,"maximum":500}},{"name":"startLine","in":"query","required":false,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"integer","minimum":0,"maximum":9007199254740991}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"path":{"type":"string"},"content":{"type":"string"},"startOffset":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["path","content","startOffset"],"additionalProperties":false}}}},"400":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"401":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"409":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"429":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"500":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"503":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}},"security":[{"ApiKey":[]}],"x-required-scope":"deployments:vms"}},"/api/v1/deployments/{deploymentId}/vms/{vmId}/file/grep":{"post":{"operationId":"GrepExternalVmFile","description":"Searches a file on a virtual machine for a pattern.","parameters":[{"name":"deploymentId","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"name":"vmId","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"path":{"type":"string","minLength":1,"maxLength":4096},"pattern":{"type":"string","minLength":1,"maxLength":1000},"regex":{"type":"boolean"},"caseInsensitive":{"type":"boolean"},"contextBefore":{"type":"integer","minimum":0,"maximum":10},"contextAfter":{"type":"integer","minimum":0,"maximum":10},"maxMatches":{"type":"integer","minimum":1,"maximum":200}},"required":["path","pattern"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"path":{"type":"string"},"matchCount":{"type":"integer","minimum":0,"maximum":9007199254740991},"output":{"type":"string"}},"required":["path","matchCount","output"],"additionalProperties":false}}}},"400":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"401":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"409":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"429":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"500":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"503":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}},"security":[{"ApiKey":[]}],"x-required-scope":"deployments:vms"}},"/api/v1/deployments/{deploymentId}/vms/{vmId}/processes":{"get":{"operationId":"ListExternalVmProcesses","description":"The running processes on a virtual machine.","parameters":[{"name":"deploymentId","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"name":"vmId","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"name":"name","in":"query","required":false,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1,"maxLength":200}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"totalCount":{"type":"integer","minimum":0,"maximum":9007199254740991},"processes":{"type":"array","items":{"type":"object","properties":{"pid":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"user":{"type":"string"},"name":{"type":"string"},"commandLine":{"type":"string"}},"required":["pid","user","name","commandLine"],"additionalProperties":false}}},"required":["totalCount","processes"],"additionalProperties":false}}}},"400":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"401":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"409":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"429":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"500":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"503":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}},"security":[{"ApiKey":[]}],"x-required-scope":"deployments:vms"}},"/api/v1/deployments/{deploymentId}/vms/{vmId}/screenshot":{"get":{"operationId":"CaptureExternalVmScreenshot","description":"Captures the current framebuffer of a virtual machine.","parameters":[{"name":"deploymentId","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"name":"vmId","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"vmId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"imageBase64":{"type":"string"},"width":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"height":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["vmId","imageBase64","width","height"],"additionalProperties":false}}}},"400":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"401":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"409":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"429":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"500":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"503":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}},"security":[{"ApiKey":[]}],"x-required-scope":"deployments:vms"}},"/api/v1/deployments/{deploymentId}/vms/{vmId}/input":{"post":{"operationId":"SendExternalVmInput","description":"Sends mouse, keyboard, or wait actions to a virtual machine.","parameters":[{"name":"deploymentId","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"name":"vmId","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"actions":{"minItems":1,"maxItems":100,"type":"array","items":{"anyOf":[{"type":"object","properties":{"click":{"type":"object","properties":{"x":{"type":"integer","minimum":0,"maximum":7680},"y":{"type":"integer","minimum":0,"maximum":4320},"button":{"type":"string","enum":["left","middle","right"]}},"required":["x","y"],"additionalProperties":false}},"required":["click"],"additionalProperties":false},{"type":"object","properties":{"drag":{"type":"object","properties":{"startX":{"type":"integer","minimum":0,"maximum":7680},"startY":{"type":"integer","minimum":0,"maximum":4320},"endX":{"type":"integer","minimum":0,"maximum":7680},"endY":{"type":"integer","minimum":0,"maximum":4320},"button":{"type":"string","enum":["left","middle","right"]},"steps":{"type":"integer","minimum":1,"maximum":100}},"required":["startX","startY","endX","endY"],"additionalProperties":false}},"required":["drag"],"additionalProperties":false},{"type":"object","properties":{"key":{"type":"string","maxLength":50,"pattern":"^[a-zA-Z0-9_+]+$"}},"required":["key"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","minLength":1,"maxLength":10000}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"wait":{"type":"integer","minimum":0,"maximum":5000}},"required":["wait"],"additionalProperties":false}]}},"screenWidth":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"screenHeight":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["actions"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"actionsExecuted":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["actionsExecuted"],"additionalProperties":false}}}},"400":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"401":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"409":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"429":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"500":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"503":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}},"security":[{"ApiKey":[]}],"x-required-scope":"deployments:vms"}},"/api/v1/deployments/{deploymentId}/vms/{vmId}/snapshots":{"post":{"operationId":"CreateExternalVmSnapshot","description":"Captures a snapshot of one virtual machine.","parameters":[{"name":"deploymentId","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"name":"vmId","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"note":{"type":"string","maxLength":1000}},"required":["name"],"additionalProperties":false}}}},"responses":{"202":{"description":"Successful response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"snapshotName":{"type":"string"}},"required":["snapshotName"],"additionalProperties":false}}}},"400":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"401":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"409":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"429":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"500":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"503":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}},"security":[{"ApiKey":[]}],"x-required-scope":"deployments:vms"}},"/api/v1/deployments/{deploymentId}/vms/{vmId}/snapshots/{snapshotId}/revert":{"post":{"operationId":"RevertExternalVmSnapshot","description":"Reverts one virtual machine to a previously captured snapshot.","parameters":[{"name":"deploymentId","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"name":"vmId","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"name":"snapshotId","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"responses":{"202":{"description":"Successful response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"accepted":{"type":"boolean","const":true}},"required":["accepted"],"additionalProperties":false}}}},"400":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"401":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"409":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"429":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"500":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"503":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}},"security":[{"ApiKey":[]}],"x-required-scope":"deployments:vms"}},"/api/v1/deployments/{deploymentId}/vms/{vmId}/snapshots/{snapshotId}":{"delete":{"operationId":"DeleteExternalVmSnapshot","description":"Deletes a virtual machine snapshot.","parameters":[{"name":"deploymentId","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"name":"vmId","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"name":"snapshotId","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"responses":{"202":{"description":"Successful response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"accepted":{"type":"boolean","const":true}},"required":["accepted"],"additionalProperties":false}}}},"400":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"401":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"409":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"429":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"500":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"503":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}},"security":[{"ApiKey":[]}],"x-required-scope":"deployments:vms"}},"/api/v1/deployments/{deploymentId}/file-copies":{"post":{"operationId":"CopyExternalVmFiles","description":"Copies files between two virtual machines in the same deployment.","parameters":[{"name":"deploymentId","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"sourceVmId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"destinationVmId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"paths":{"minItems":1,"maxItems":100,"type":"array","items":{"type":"string","minLength":1,"maxLength":4096}},"destinationFolder":{"type":"string","minLength":1,"maxLength":4096},"destinationFileName":{"type":"string","minLength":1,"maxLength":255}},"required":["sourceVmId","destinationVmId","paths","destinationFolder"],"additionalProperties":false}}}},"responses":{"202":{"description":"Successful response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"transferId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["transferId"],"additionalProperties":false}}}},"400":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"401":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"409":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"429":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"500":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"503":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}},"security":[{"ApiKey":[]}],"x-required-scope":"deployments:vms"}},"/api/v1/deployments/{deploymentId}/file-copies/{transferId}":{"get":{"operationId":"GetExternalFileCopy","description":"The status of a file-copy transfer started with CopyExternalVmFiles.","parameters":[{"name":"deploymentId","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"name":"transferId","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"transferId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"status":{"type":"string","enum":["queued","running","succeeded","failed","cancelled"]},"terminal":{"type":"boolean"},"progressPercent":{"type":"number","minimum":0,"maximum":100},"totalFiles":{"type":"integer","minimum":0,"maximum":9007199254740991},"completedFiles":{"type":"integer","minimum":0,"maximum":9007199254740991},"failedFiles":{"type":"integer","minimum":0,"maximum":9007199254740991},"failureCode":{"type":["string","null"]}},"required":["transferId","status","terminal","progressPercent","totalFiles","completedFiles","failedFiles","failureCode"],"additionalProperties":false}}}},"400":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"401":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"409":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"429":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"500":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"503":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}},"security":[{"ApiKey":[]}],"x-required-scope":"deployments:vms"}},"/api/v1/deployments/{deploymentId}/guest-links":{"get":{"operationId":"ListExternalGuestLinks","description":"Timed guest links minted for this deployment. Each active link carries its 6-digit accessCode; a guest needs the link, a name and the code to join.","parameters":[{"name":"deploymentId","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"name":"cursor","in":"query","required":false,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1,"maxLength":512}},{"name":"limit","in":"query","required":false,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"integer","minimum":1,"maximum":100}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"serverTime":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"canMintGuestLink":{"type":"boolean"},"canManageGuestLinks":{"type":"boolean"},"mintUnavailableReason":{"anyOf":[{"type":"string","enum":["DEPLOYMENT_NOT_RUNNING","CERTIFICATION_DEPLOYMENT","PROTECTED_DEPLOYMENT","PERMISSION_REQUIRED","MODEL_EVAL_COPY","EVENT_DEPLOYMENT"]},{"type":"null"}]},"hasActiveGuestLinks":{"type":"boolean"},"activeLinkCount":{"type":"integer","minimum":0,"maximum":9007199254740991},"activeSessionCount":{"type":"integer","minimum":0,"maximum":9007199254740991},"links":{"maxItems":100,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"clientRequestId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"revision":{"type":"integer","minimum":0,"maximum":9007199254740991},"name":{"type":["string","null"]},"createdDate":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"expiresAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"durationMinutes":{"type":"integer","minimum":5,"maximum":10080},"capabilities":{"type":"object","properties":{"fileUpload":{"type":"boolean"},"fileDownload":{"type":"boolean"}},"required":["fileUpload","fileDownload"],"additionalProperties":false},"activeSessionCount":{"type":"integer","minimum":0,"maximum":9007199254740991},"state":{"type":"string","enum":["ACTIVE","REVOKED","EXPIRED","DEPLOYMENT_ENDED","POLICY"]},"copyAvailable":{"type":"boolean"},"copyUnavailableReason":{"anyOf":[{"type":"string","enum":["LINK_REVOKED","LINK_EXPIRED","DEPLOYMENT_ENDED","POLICY"]},{"type":"null"}]},"url":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]},"accessCode":{"anyOf":[{"type":"string","pattern":"^\\d{6}$"},{"type":"null"}]},"accessCodeLockedUntil":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},{"type":"null"}]}},"required":["id","clientRequestId","name","createdDate","expiresAt","durationMinutes","capabilities","activeSessionCount","state","copyAvailable","copyUnavailableReason","url","accessCode","accessCodeLockedUntil"],"additionalProperties":false}},"nextCursor":{"anyOf":[{"type":"string","minLength":1,"maxLength":512},{"type":"null"}]},"inventoryGeneration":{"type":"string","pattern":"^v1\\.[A-Za-z0-9_-]{43}$"}},"required":["serverTime","canMintGuestLink","canManageGuestLinks","mintUnavailableReason","hasActiveGuestLinks","links","nextCursor","inventoryGeneration"],"additionalProperties":false}}}},"400":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"401":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"409":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"429":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"500":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"503":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}},"security":[{"ApiKey":[]}],"x-required-scope":"deployments:guest-links"},"post":{"operationId":"MintExternalGuestLink","description":"Mints a new timed guest link for this deployment and returns its 6-digit accessCode. A guest needs the link, a name and the code to join.","parameters":[{"name":"deploymentId","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"name":"idempotency-key","in":"header","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"durationMinutes":{"type":"integer","minimum":5,"maximum":10080},"allowFileUpload":{"default":false,"type":"boolean"},"allowFileDownload":{"default":false,"type":"boolean"},"name":{"type":"string","minLength":1,"maxLength":60}},"required":["durationMinutes","name"],"additionalProperties":false}}}},"responses":{"201":{"description":"Successful response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"clientRequestId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"revision":{"type":"integer","minimum":0,"maximum":9007199254740991},"name":{"type":["string","null"]},"createdDate":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"expiresAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"durationMinutes":{"type":"integer","minimum":5,"maximum":10080},"capabilities":{"type":"object","properties":{"fileUpload":{"type":"boolean"},"fileDownload":{"type":"boolean"}},"required":["fileUpload","fileDownload"],"additionalProperties":false},"activeSessionCount":{"type":"integer","minimum":0,"maximum":9007199254740991},"state":{"type":"string","enum":["ACTIVE","REVOKED","EXPIRED","DEPLOYMENT_ENDED","POLICY"]},"copyAvailable":{"type":"boolean"},"copyUnavailableReason":{"anyOf":[{"type":"string","enum":["LINK_REVOKED","LINK_EXPIRED","DEPLOYMENT_ENDED","POLICY"]},{"type":"null"}]},"url":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]},"accessCode":{"anyOf":[{"type":"string","pattern":"^\\d{6}$"},{"type":"null"}]},"accessCodeLockedUntil":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},{"type":"null"}]}},"required":["id","clientRequestId","name","createdDate","expiresAt","durationMinutes","capabilities","activeSessionCount","state","copyAvailable","copyUnavailableReason","url","accessCode","accessCodeLockedUntil"],"additionalProperties":false}}}},"400":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"401":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"409":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"429":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"500":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"503":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}},"security":[{"ApiKey":[]}],"x-required-scope":"deployments:guest-links"}},"/api/v1/deployments/{deploymentId}/guest-links/{linkId}":{"delete":{"operationId":"RevokeExternalGuestLink","description":"Revokes one timed guest link.","parameters":[{"name":"deploymentId","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"name":"linkId","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"revoked":{"type":"boolean"},"acceptedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"}},"required":["revoked","acceptedAt"],"additionalProperties":false}}}},"400":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"401":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"409":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"429":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"500":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"503":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}},"security":[{"ApiKey":[]}],"x-required-scope":"deployments:guest-links"}},"/api/v1/deployments/{deploymentId}/guest-links/revoke-all":{"post":{"operationId":"RevokeAllExternalGuestLinks","description":"Revokes every active timed guest link for this deployment.","parameters":[{"name":"deploymentId","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"accepted":{"type":"boolean","const":true}},"required":["accepted"],"additionalProperties":false}}}},"400":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"401":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"409":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"429":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"500":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"503":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}},"security":[{"ApiKey":[]}],"x-required-scope":"deployments:guest-links"}},"/api/v1/deployments/{deploymentId}/vpn-configs":{"get":{"operationId":"ListExternalVpnConfigs","description":"VPN client configs for this deployment, each with its state (creating, ready or failed, with the failure), and the deployment's VPN gateway state: ready means a new config is signed at once.","parameters":[{"name":"deploymentId","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"gateway":{"default":{"state":"not_prepared","failure":null},"type":"object","properties":{"state":{"type":"string","enum":["not_prepared","preparing","ready","failed","removing"],"description":"ready: VPN configs are signed at once; failed: see failure; a new config request, a start or a revert tries again"},"failure":{"anyOf":[{"type":"object","properties":{"code":{"type":"string","enum":["GATEWAY_UNREACHABLE","GATEWAY_APPLY_FAILED","GATEWAY_NOT_FOUND","DEPLOYMENT_REMOVED","ISSUE_FAILED"]},"message":{"type":"string"},"failedAt":{"type":"string"},"detail":{"type":"string"}},"required":["code","message","failedAt"],"additionalProperties":false},{"type":"null"}]}},"required":["state","failure"],"additionalProperties":false},"configs":{"type":"array","items":{"type":"object","properties":{"configId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"state":{"default":"ready","description":"creating: waiting for the deployment's VPN gateway; ready: downloadable; failed: see failure","type":"string","enum":["creating","ready","failed"]},"failure":{"default":null,"anyOf":[{"type":"object","properties":{"code":{"type":"string","enum":["GATEWAY_UNREACHABLE","GATEWAY_APPLY_FAILED","GATEWAY_NOT_FOUND","DEPLOYMENT_REMOVED","ISSUE_FAILED"]},"message":{"type":"string"},"failedAt":{"type":"string"},"detail":{"type":"string"}},"required":["code","message","failedAt"],"additionalProperties":false},{"type":"null"}]},"nickname":{"type":["string","null"]},"createdAt":{"type":"string"},"lastUsedAt":{"type":["string","null"]},"dataUpBytes":{"type":"string"},"dataDownBytes":{"type":"string"}},"required":["configId","state","failure","nickname","createdAt","lastUsedAt","dataUpBytes","dataDownBytes"],"additionalProperties":false}}},"required":["gateway","configs"],"additionalProperties":false}}}},"400":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"401":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"409":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"429":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"500":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"503":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}},"security":[{"ApiKey":[]}],"x-required-scope":"deployments:vpn"},"post":{"operationId":"CreateExternalVpnConfig","description":"Issues a new VPN client config. 201 (state ready): signed at once, download it now; the deployment's VPN gateway is prepared while it deploys, and a prepared gateway signs even while the deployment is stopped. 202 (state creating): the request is retrying a gateway that was not prepared; poll the config list until the config is ready. 409 DEPLOYMENT_NOT_READY: the deployment is still deploying; poll its readiness. 409 VPN_GATEWAY_FAILED: the gateway could not be prepared (the message says why); request again once the deployment is ready, or start or revert it, to retry.","parameters":[{"name":"deploymentId","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"nickname":{"type":"string","minLength":1,"maxLength":100}},"additionalProperties":false}}}},"responses":{"201":{"description":"Successful response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"configId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"state":{"default":"ready","description":"ready (201): signed, download it now; creating (202): poll the config list until ready","type":"string","enum":["creating","ready","failed"]}},"required":["configId","state"],"additionalProperties":false}}}},"202":{"description":"Successful response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"configId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"state":{"default":"ready","description":"ready (201): signed, download it now; creating (202): poll the config list until ready","type":"string","enum":["creating","ready","failed"]}},"required":["configId","state"],"additionalProperties":false}}}},"400":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"401":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"409":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"429":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"500":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"503":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}},"security":[{"ApiKey":[]}],"x-required-scope":"deployments:vpn"}},"/api/v1/deployments/{deploymentId}/vpn-configs/{configId}/download":{"post":{"operationId":"DownloadExternalVpnConfig","description":"Download issues a fresh client certificate and ends this config's active sessions. 409 VPN_CONFIG_NOT_READY: the config is still being created, or its creation failed.","parameters":[{"name":"deploymentId","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"name":"configId","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"filename":{"type":"string"},"config":{"type":"string"}},"required":["filename","config"],"additionalProperties":false}}}},"400":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"401":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"409":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"429":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"500":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"503":{"description":"Error response.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","INVALID_CURSOR","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","RATE_LIMITED","UPSTREAM_UNAVAILABLE","INTERNAL_ERROR","DEPLOYMENT_NOT_READY","VPN_GATEWAY_FAILED","VPN_CONFIG_NOT_READY","INSTANT_CAPACITY_BUSY"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}},"security":[{"ApiKey":[]}],"x-required-scope":"deployments:vpn"}}}}