{"files":{"SKILL.md":"---\nname: vsonline\ndescription: \"VSOnline API skill. Use when working with VSOnline for api, health, internal. Covers 61 endpoints.\"\nversion: 1.0.0\ngenerator: lapsh\n---\n\n# VSOnline\nAPI version: v1\n\n## Auth\nBearer bearer\n\n## Base URL\nhttps://online.visualstudio.com\n\n## Setup\n1. Set Authorization header with Bearer token\n2. GET /api/v1/Billing -- verify access\n3. POST /api/v1/AgentTelemetry -- create first AgentTelemetry\n\n## Endpoints\n61 endpoints across 5 groups. See references/api-spec.lap for full details.\n\n### Api\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /api/v1/Agents/{family} |  |\n| POST | /api/v1/AgentTelemetry |  |\n| POST | /api/v1/AgentTelemetry/standalone |  |\n| PUT | /api/v1/Billing/ensure_plan |  |\n| GET | /api/v1/Billing |  |\n| GET | /api/v1/GenevaActions/Billing/{environmentId} |  |\n| POST | /api/v1/GenevaActions/Billing/resend |  |\n| POST | /api/v1/GenevaActions/Billing/{environmentId}/state-changes |  |\n| GET | /api/v1/GenevaActions/Billing/{environmentId}/state-changes |  |\n| GET | /api/v1/GenevaActions/Configuration/{key} |  |\n| DELETE | /api/v1/GenevaActions/Configuration/{key} |  |\n| POST | /api/v1/GenevaActions/Configuration |  |\n| GET | /api/v1/Environments/{environmentId} |  |\n| DELETE | /api/v1/Environments/{environmentId} |  |\n| PATCH | /api/v1/Environments/{environmentId} |  |\n| GET | /api/v1/Environments |  |\n| POST | /api/v1/Environments |  |\n| POST | /api/v1/Environments/{environmentId}/shutdown |  |\n| POST | /api/v1/Environments/{environmentId}/start |  |\n| POST | /api/v1/Environments/{environmentId}/archive |  |\n| GET | /api/v1/Environments/{environmentId}/archive |  |\n| POST | /api/v1/Environments/{environmentId}/export |  |\n| PATCH | /api/v1/Environments/{environmentId}/restore |  |\n| PATCH | /api/v1/Environments/{environmentId}/folder |  |\n| PUT | /api/v1/Environments/{environmentId}/secrets |  |\n| POST | /api/v1/Environments/{environmentId}/notify |  |\n| GET | /api/v1/GenevaActions/Environments/{environmentId} |  |\n| DELETE | /api/v1/GenevaActions/Environments/{environmentId} |  |\n| PUT | /api/v1/GenevaActions/Environments/{environmentId}/shutdown |  |\n| PUT | /api/v1/GenevaActions/Environments/{environmentId}/archive |  |\n| GET | /api/v1/GenevaActions/Environments/storage/{environmentIdOrFriendlyName}/{targetBlob} |  |\n| POST | /api/v1/GenevaActions/Environments/{environmentId}/upload/running/vm/logs |  |\n| GET | /api/v1/Environments/{environmentId}/state |  |\n| POST | /api/v1/GenevaActions/Failover/start/{region} |  |\n| POST | /api/v1/HeartBeat |  |\n| GET | /api/v1/Locations |  |\n| GET | /api/v1/Locations/{location} |  |\n| GET | /api/v1/pools/default |  |\n| POST | /api/v1/GenevaActions/Pools/rotate-pools |  |\n| POST | /api/v1/GenevaActions/Pools |  |\n| POST | /api/v1/GenevaActions/Pools/change-resource-deletion-setting |  |\n| POST | /api/v2/prebuilds/templates |  |\n| POST | /api/v2/prebuilds/templates/{templateId}/updatestatus |  |\n| GET | /api/v2/prebuilds/templates/skus/repo/{repoId}/branch/{branchName}/hash/{prebuildHash}/location/{location}/devcontainerpath/{devContainerPath} |  |\n| POST | /api/v2/prebuilds/delete |  |\n| POST | /api/v2/prebuilds/templates/updatemaxversions |  |\n| PUT | /api/v2/prebuilds/pools/{poolId}/instances |  |\n| POST | /api/v2/prebuilds/pools/{poolId}/instances |  |\n| GET | /api/v2/prebuilds/template/{environmentId} |  |\n| POST | /api/v1/GenevaActions/Prebuilds/pools/delete |  |\n| POST | /api/v1/GenevaActions/Prebuilds/pools/createorupdatesettings |  |\n| POST | /api/v1/GenevaActions/Resources/{resourceId}/under-investigation |  |\n| POST | /api/v1/GenevaActions/Resources/{resourceId}/storage-credentials |  |\n| GET | /api/v1/Tunnel/{environmentId}/portInfo |  |\n| POST | /api/v1/GenevaActions/VnetPoolDefinitions |  |\n| DELETE | /api/v1/GenevaActions/VnetPoolDefinitions |  |\n\n### Health\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /health |  |\n\n### Internal\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /internal/Netmon/correlation |  |\n\n### .well-known\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /.well-known/jwks |  |\n| GET | /.well-known/openid-configuration |  |\n\n### Warmup\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /warmup |  |\n\n## Common Questions\nMatch user requests to endpoints in references/api-spec.lap. Key patterns:\n- \"Get Agent details?\" -> GET /api/v1/Agents/{family}\n- \"Create a AgentTelemetry?\" -> POST /api/v1/AgentTelemetry\n- \"Create a standalone?\" -> POST /api/v1/AgentTelemetry/standalone\n- \"List all Billing?\" -> GET /api/v1/Billing\n- \"Get Billing details?\" -> GET /api/v1/GenevaActions/Billing/{environmentId}\n- \"Create a resend?\" -> POST /api/v1/GenevaActions/Billing/resend\n- \"Create a state-change?\" -> POST /api/v1/GenevaActions/Billing/{environmentId}/state-changes\n- \"List all state-changes?\" -> GET /api/v1/GenevaActions/Billing/{environmentId}/state-changes\n- \"Get Configuration details?\" -> GET /api/v1/GenevaActions/Configuration/{key}\n- \"Delete a Configuration?\" -> DELETE /api/v1/GenevaActions/Configuration/{key}\n- \"Create a Configuration?\" -> POST /api/v1/GenevaActions/Configuration\n- \"Get Environment details?\" -> GET /api/v1/Environments/{environmentId}\n- \"Delete a Environment?\" -> DELETE /api/v1/Environments/{environmentId}\n- \"Partially update a Environment?\" -> PATCH /api/v1/Environments/{environmentId}\n- \"List all Environments?\" -> GET /api/v1/Environments\n- \"Create a Environment?\" -> POST /api/v1/Environments\n- \"Create a shutdown?\" -> POST /api/v1/Environments/{environmentId}/shutdown\n- \"Create a start?\" -> POST /api/v1/Environments/{environmentId}/start\n- \"Create a archive?\" -> POST /api/v1/Environments/{environmentId}/archive\n- \"List all archive?\" -> GET /api/v1/Environments/{environmentId}/archive\n- \"Create a export?\" -> POST /api/v1/Environments/{environmentId}/export\n- \"Create a notify?\" -> POST /api/v1/Environments/{environmentId}/notify\n- \"Get storage details?\" -> GET /api/v1/GenevaActions/Environments/storage/{environmentIdOrFriendlyName}/{targetBlob}\n- \"Create a log?\" -> POST /api/v1/GenevaActions/Environments/{environmentId}/upload/running/vm/logs\n- \"List all state?\" -> GET /api/v1/Environments/{environmentId}/state\n- \"List all health?\" -> GET /health\n- \"Create a HeartBeat?\" -> POST /api/v1/HeartBeat\n- \"List all Locations?\" -> GET /api/v1/Locations\n- \"Get Location details?\" -> GET /api/v1/Locations/{location}\n- \"List all correlation?\" -> GET /internal/Netmon/correlation\n- \"List all jwks?\" -> GET /.well-known/jwks\n- \"List all openid-configuration?\" -> GET /.well-known/openid-configuration\n- \"List all default?\" -> GET /api/v1/pools/default\n- \"Create a rotate-pool?\" -> POST /api/v1/GenevaActions/Pools/rotate-pools\n- \"Create a Pool?\" -> POST /api/v1/GenevaActions/Pools\n- \"Create a change-resource-deletion-setting?\" -> POST /api/v1/GenevaActions/Pools/change-resource-deletion-setting\n- \"Create a template?\" -> POST /api/v2/prebuilds/templates\n- \"Create a updatestatus?\" -> POST /api/v2/prebuilds/templates/{templateId}/updatestatus\n- \"Get devcontainerpath details?\" -> GET /api/v2/prebuilds/templates/skus/repo/{repoId}/branch/{branchName}/hash/{prebuildHash}/location/{location}/devcontainerpath/{devContainerPath}\n- \"Create a delete?\" -> POST /api/v2/prebuilds/delete\n- \"Create a updatemaxversion?\" -> POST /api/v2/prebuilds/templates/updatemaxversions\n- \"Create a instance?\" -> POST /api/v2/prebuilds/pools/{poolId}/instances\n- \"Get template details?\" -> GET /api/v2/prebuilds/template/{environmentId}\n- \"Create a createorupdatesetting?\" -> POST /api/v1/GenevaActions/Prebuilds/pools/createorupdatesettings\n- \"Create a under-investigation?\" -> POST /api/v1/GenevaActions/Resources/{resourceId}/under-investigation\n- \"Create a storage-credential?\" -> POST /api/v1/GenevaActions/Resources/{resourceId}/storage-credentials\n- \"List all portInfo?\" -> GET /api/v1/Tunnel/{environmentId}/portInfo\n- \"Create a VnetPoolDefinition?\" -> POST /api/v1/GenevaActions/VnetPoolDefinitions\n- \"List all warmup?\" -> GET /warmup\n- \"How to authenticate?\" -> See Auth section above\n\n## Response Tips\n- Check response schemas in references/api-spec.lap for field details\n- Create/update endpoints return the modified resource on success\n- Error responses include status codes and descriptions in the spec\n\n## References\n- Full spec: See references/api-spec.lap for complete endpoint details, parameter tables, and response schemas\n\n> Generated from the official API spec by [LAP](https://lap.sh)\n","references/api-spec.lap":"@lap v0.3\n# Machine-readable API spec. Each @endpoint block is one API call.\n@api VSOnline\n@base https://online.visualstudio.com\n@version v1\n@auth Bearer bearer\n@endpoints 61\n@hint download_for_search\n@toc api(56), health(1), internal(1), .well-known(2), warmup(1)\n\n@group api\n@endpoint GET /api/v1/Agents/{family}\n@required {family: str}\n@returns(200) {name: str?, assetUri: str?, family: str?} # Success\n@errors {404: Not Found}\n\n@endpoint POST /api/v1/AgentTelemetry\n@returns(204) No Content\n@errors {401: Unauthorized}\n\n@endpoint POST /api/v1/AgentTelemetry/standalone\n@returns(204) No Content\n@errors {401: Unauthorized}\n\n@endpoint PUT /api/v1/Billing/ensure_plan\n@required {name: str}\n@optional {location: int(int32)(0 (None)/101 (EastAsia)/102 (SouthEastAsia)/201 (AustraliaCentral)/202 (AustraliaCentral2)/203 (AustraliaEast)/205 (AustraliaSouthEast)/301 (BrazilSouth)/401 (CanadaCentral)/402 (CanadaEast)/501 (NorthEurope)/502 (WestEurope)/601 (FranceCentral)/602 (FranceSouth)/701 (CentralIndia)/702 (SouthIndia)/703 (WestIndia)/801 (JapanEast)/802 (JapanWest)/901 (KoreaCentral)/902 (KoreaSouth)/1001 (SouthAfricaNorth)/1002 (SouthAfricaWest)/1201 (UaeCentral)/1202 (UaeNorth)/1401 (UkSouth)/1402 (UkWest)/1501 (CentralUs)/1502 (EastUs)/1503 (EastUs2)/1504 (NorthCentralUs)/1505 (SouthCentralUs)/1506 (WestCentralUs)/1507 (WestUs)/1508 (WestUs2)/1509 (WestUs3)/1601 (CentralUsEuap)/1602 (EastUs2Euap)/1701 (SwitzerlandNorth)/1702 (SwitzerlandWest)/1801 (GermanyNorth)/1802 (GermanyWestCentral)/1901 (NorwayWest)/1902 (NorwayEast))}\n@returns(201) Created\n@returns(204) No Content\n@errors {400: Bad Request, 401: Unauthorized, 403: Forbidden, 500: Server Error}\n\n@endpoint GET /api/v1/Billing\n@returns(200) Success\n@errors {400: Bad Request, 401: Unauthorized, 403: Forbidden}\n\n@endpoint GET /api/v1/GenevaActions/Billing/{environmentId}\n@required {environmentId: str(uuid)}\n@optional {startTime: str, endTime: str}\n@returns(200) {id: str?, sessionToken: str?, partitionKey: str?, environmentId: str?, billGenerationTime: str(date-time), plan: map{subscription: str?, resourceGroup: str?, providerNamespace: str?, name: str?, location: int(int32), resourceId: str?}, periodStart: str(date-time), periodEnd: str(date-time), usage: map?, usageDetail: [map]?, location: int(int32)} # Success\n@errors {404: Not Found}\n\n@endpoint POST /api/v1/GenevaActions/Billing/resend\n@optional {startTime: str(date-time), endTime: str(date-time)}\n@returns(200) {id: str?, sessionToken: str?, partitionKey: str?, environmentId: str?, billGenerationTime: str(date-time), plan: map{subscription: str?, resourceGroup: str?, providerNamespace: str?, name: str?, location: int(int32), resourceId: str?}, periodStart: str(date-time), periodEnd: str(date-time), usage: map?, usageDetail: [map]?, location: int(int32)} # Success\n@errors {404: Not Found}\n\n@endpoint POST /api/v1/GenevaActions/Billing/{environmentId}/state-changes\n@required {environmentId: str(uuid)}\n@optional {time: str(date-time), oldValue: int(int32)(0 (None)/1 (Created)/2 (Queued)/3 (Provisioning)/4 (Available)/5 (Awaiting)/6 (Unavailable)/7 (Deleted)/8 (Moved)/9 (Shutdown)/10 (Archived)/11 (Starting)/12 (ShuttingDown)/13 (Failed)/14 (Exporting)/15 (Updating)/16 (Rebuilding)), newValue: int(int32)(0 (None)/1 (Created)/2 (Queued)/3 (Provisioning)/4 (Available)/5 (Awaiting)/6 (Unavailable)/7 (Deleted)/8 (Moved)/9 (Shutdown)/10 (Archived)/11 (Starting)/12 (ShuttingDown)/13 (Failed)/14 (Exporting)/15 (Updating)/16 (Rebuilding))}\n@returns(200) {id: str?, sessionToken: str?, partitionKey: str?, time: str(date-time), environment: map{id: str?, name: str?, userId: str?, sku: map{name: str?, tier: str?}}, oldValue: int(int32), newValue: int(int32)} # Success\n@errors {404: Not Found}\n\n@endpoint GET /api/v1/GenevaActions/Billing/{environmentId}/state-changes\n@required {environmentId: str(uuid)}\n@returns(200) {id: str?, sessionToken: str?, partitionKey: str?, time: str(date-time), environment: map{id: str?, name: str?, userId: str?, sku: map{name: str?, tier: str?}}, oldValue: int(int32), newValue: int(int32)} # Success\n@errors {404: Not Found}\n\n@endpoint GET /api/v1/GenevaActions/Configuration/{key}\n@required {key: str}\n@returns(200) {key: str?, value: str?, comment: str?} # Success\n@errors {404: Not Found}\n\n@endpoint DELETE /api/v1/GenevaActions/Configuration/{key}\n@required {key: str}\n@returns(200) Success\n@errors {404: Not Found}\n\n@endpoint POST /api/v1/GenevaActions/Configuration\n@optional {key: str, value: str, comment: str}\n@returns(200) {key: str?, value: str?, comment: str?} # Success\n@errors {400: Bad Request}\n\n@endpoint GET /api/v1/Environments/{environmentId}\n@required {environmentId: str(uuid)}\n@optional {deleted: bool=false}\n@returns(200) {id: str?, type: str?, friendlyName: str?, created: str(date-time), updated: str(date-time), ownerId: str?, state: str?, containerImage: str?, seed: map{seedType: str?, seedMoniker: str?, gitConfig: map{userName: str?, userEmail: str?}, recurseClone: bool, repository: map{repoId: int(int64), name: str?, url: str?, branchName: str?, owner: str?, commitId: str?, prebuildHash: str?, createType: str?, diskUsage: str?}, cloneUrl: str?}, connection: map{connectionSessionId: str?, connectionSessionPath: str?, connectionServiceUri: str?, hostPublicKeys: [str]?, tunnelProperties: map{tunnelId: str?, tunnelName: str?, clusterId: str?, domain: str?, connectTokenExpiration: int(int64)?, connectAccessToken: str?, managePortsTokenExpiration: int(int64)?, managePortsAccessToken: str?, serviceUri: str?}}, portForwardingConnection: map{connectionSessionId: str?, connectionSessionPath: str?, connectionServiceUri: str?, hostPublicKeys: [str]?, tunnelProperties: map{tunnelId: str?, tunnelName: str?, clusterId: str?, domain: str?, connectTokenExpiration: int(int64)?, connectAccessToken: str?, managePortsTokenExpiration: int(int64)?, managePortsAccessToken: str?, serviceUri: str?}}, container: map{id: str?, schemaVersion: str?}, recentFolders: [str]?, active: str(date-time), platform: str?, location: str?, planId: str?, autoShutdownDelayMinutes: int(int32), skuName: str?, skuDisplayName: str?, lastStateUpdateReason: str?, lastUsed: str(date-time)?, features: map?, gitStatus: map{commit: str?, branch: str?, hasUnpushedChanges: bool, hasUncommittedChanges: bool, ahead: int(int32), behind: int(int32), noGitRepo: bool, autoPush: bool}, subscriptionData: map{subscriptionId: str?, subscriptionState: str?, computeQuota: int(int32), computeUsage: int(int32)}, exportedBlobUrl: str?, accessToken: str?, createFromPrebuild: bool, templateStatus: str?, billableOwnerType: int(int32), runtimeConstraints: map{allowedPortPrivacySettings: [int(int32)]?, imageAllowList: [str]?, hostSetupConfig: map{cloneUrl: str?, branch: str?, path: str?, token: str?}}, organizationId: str?, prebuildType: str?, storageUtilizationInKb: int(int64)?, displayStorageUtilizationInKb: bool, clientUsage: map{sessionId: str?, usageData: map?}, resourceTier: int(int32), failoverDetails: map{failoverEnabled: bool, failoverRegion: int(int32)}, enableAutoPushOnStop: bool, userControlledFailureReason: int(int32), usingCopilotWorkspaceConfig: bool, isStorageV2: bool?, isAllocatedFromPool: bool} # Success\n@errors {401: Unauthorized, 403: Forbidden, 404: Not Found}\n\n@endpoint DELETE /api/v1/Environments/{environmentId}\n@required {environmentId: str(uuid)}\n@returns(204) No Content\n@errors {401: Unauthorized, 403: Forbidden, 404: Not Found}\n\n@endpoint PATCH /api/v1/Environments/{environmentId}\n@required {environmentId: str}\n@optional {skuName: str, autoShutdownDelayMinutes: int(int32), friendlyName: str, planId: str, planAccessToken: str, failoverDetails: map{failoverEnabled: bool, failoverRegion: int(int32)}}\n@returns(200) {id: str?, type: str?, friendlyName: str?, created: str(date-time), updated: str(date-time), ownerId: str?, state: str?, containerImage: str?, seed: map{seedType: str?, seedMoniker: str?, gitConfig: map{userName: str?, userEmail: str?}, recurseClone: bool, repository: map{repoId: int(int64), name: str?, url: str?, branchName: str?, owner: str?, commitId: str?, prebuildHash: str?, createType: str?, diskUsage: str?}, cloneUrl: str?}, connection: map{connectionSessionId: str?, connectionSessionPath: str?, connectionServiceUri: str?, hostPublicKeys: [str]?, tunnelProperties: map{tunnelId: str?, tunnelName: str?, clusterId: str?, domain: str?, connectTokenExpiration: int(int64)?, connectAccessToken: str?, managePortsTokenExpiration: int(int64)?, managePortsAccessToken: str?, serviceUri: str?}}, portForwardingConnection: map{connectionSessionId: str?, connectionSessionPath: str?, connectionServiceUri: str?, hostPublicKeys: [str]?, tunnelProperties: map{tunnelId: str?, tunnelName: str?, clusterId: str?, domain: str?, connectTokenExpiration: int(int64)?, connectAccessToken: str?, managePortsTokenExpiration: int(int64)?, managePortsAccessToken: str?, serviceUri: str?}}, container: map{id: str?, schemaVersion: str?}, recentFolders: [str]?, active: str(date-time), platform: str?, location: str?, planId: str?, autoShutdownDelayMinutes: int(int32), skuName: str?, skuDisplayName: str?, lastStateUpdateReason: str?, lastUsed: str(date-time)?, features: map?, gitStatus: map{commit: str?, branch: str?, hasUnpushedChanges: bool, hasUncommittedChanges: bool, ahead: int(int32), behind: int(int32), noGitRepo: bool, autoPush: bool}, subscriptionData: map{subscriptionId: str?, subscriptionState: str?, computeQuota: int(int32), computeUsage: int(int32)}, exportedBlobUrl: str?, accessToken: str?, createFromPrebuild: bool, templateStatus: str?, billableOwnerType: int(int32), runtimeConstraints: map{allowedPortPrivacySettings: [int(int32)]?, imageAllowList: [str]?, hostSetupConfig: map{cloneUrl: str?, branch: str?, path: str?, token: str?}}, organizationId: str?, prebuildType: str?, storageUtilizationInKb: int(int64)?, displayStorageUtilizationInKb: bool, clientUsage: map{sessionId: str?, usageData: map?}, resourceTier: int(int32), failoverDetails: map{failoverEnabled: bool, failoverRegion: int(int32)}, enableAutoPushOnStop: bool, userControlledFailureReason: int(int32), usingCopilotWorkspaceConfig: bool, isStorageV2: bool?, isAllocatedFromPool: bool} # Success\n@errors {400: Bad Request, 401: Unauthorized, 403: Forbidden, 404: Not Found, 409: Conflict}\n\n@endpoint GET /api/v1/Environments\n@optional {name: str, planId: str, deleted: bool=false}\n@returns(200) Success\n@errors {401: Unauthorized}\n\n@endpoint POST /api/v1/Environments\n@required {type: str, friendlyName: str}\n@optional {experimentalFeatures: map{queueResourceAllocation: bool, enableDynamicHttpsDetection: bool, usePrebuiltImages: bool, usePrebuildFastPathIfAvailable: bool, useStorageV2: bool, useRawFuse: bool, copilotWorkspace: bool, systemOnContainerCommandParams: map, fileSyncerWithBridge: bool, sparkCloudspace: bool, sessionHardLimit: num(double), useGpsCompute: bool}, features: map, seed: map{seedType: str, seedMoniker: str, gitConfig: map, recurseClone: bool, repository: map, cloneUrl: str}, personalization: map{dotfilesRepository: str, dotfilesTargetPath: str, dotfilesInstallCommand: str}, containerImage: str, connection: map{connectionSessionId: str, connectionSessionPath: str, connectionServiceUri: str, hostPublicKeys: [str], tunnelProperties: map}, platform: str, location: str, skuName: str, planId: str, autoShutdownDelayMinutes: int(int32), secrets: [map{type: int(int32), name: str, value: str}], devContainerJson: str, devContainerPath: str, workingDirectory: str, label: str, hasDevcontainerJson: bool, identity: map{id: str, userName: str, displayName: str}, githubEnvironmentEndpoint: str, gitHubAppUrl: str, gitHubApiUrl: str, createAsPrebuild: bool, billableOwner: map{type: int(int32), id: str, login: str}, runtimeConstraints: map{allowedPortPrivacySettings: [int(int32)], imageAllowList: [str], hostSetupConfig: map}, testAccount: bool, netmonCorrelationData: map{billableOwnerGlobalRelayId: str, billableOwnerDatabaseId: str, billableOwnerCreatedAt: str, billableOwnerPlan: str, ownerGlobalRelayId: str, ownerDatabaseId: str, ownerCreatedAt: str, ownerPlan: str, repositoryGlobalRelayId: str, repositoryDatabaseId: str, repositoryCreatedAt: str, repositoryPrivate: bool}, gitHubPfsAuthEndpoint: str, userTier: str, analyticsTrackingId: str, enableAutoPushOnStop: bool, preferredComputeImageChannel: int(int32)(0 (Stable)/1 (Beta)), vnetInjectionSubnetId: str}\n@returns(201) {id: str?, type: str?, friendlyName: str?, created: str(date-time), updated: str(date-time), ownerId: str?, state: str?, containerImage: str?, seed: map{seedType: str?, seedMoniker: str?, gitConfig: map{userName: str?, userEmail: str?}, recurseClone: bool, repository: map{repoId: int(int64), name: str?, url: str?, branchName: str?, owner: str?, commitId: str?, prebuildHash: str?, createType: str?, diskUsage: str?}, cloneUrl: str?}, connection: map{connectionSessionId: str?, connectionSessionPath: str?, connectionServiceUri: str?, hostPublicKeys: [str]?, tunnelProperties: map{tunnelId: str?, tunnelName: str?, clusterId: str?, domain: str?, connectTokenExpiration: int(int64)?, connectAccessToken: str?, managePortsTokenExpiration: int(int64)?, managePortsAccessToken: str?, serviceUri: str?}}, portForwardingConnection: map{connectionSessionId: str?, connectionSessionPath: str?, connectionServiceUri: str?, hostPublicKeys: [str]?, tunnelProperties: map{tunnelId: str?, tunnelName: str?, clusterId: str?, domain: str?, connectTokenExpiration: int(int64)?, connectAccessToken: str?, managePortsTokenExpiration: int(int64)?, managePortsAccessToken: str?, serviceUri: str?}}, container: map{id: str?, schemaVersion: str?}, recentFolders: [str]?, active: str(date-time), platform: str?, location: str?, planId: str?, autoShutdownDelayMinutes: int(int32), skuName: str?, skuDisplayName: str?, lastStateUpdateReason: str?, lastUsed: str(date-time)?, features: map?, gitStatus: map{commit: str?, branch: str?, hasUnpushedChanges: bool, hasUncommittedChanges: bool, ahead: int(int32), behind: int(int32), noGitRepo: bool, autoPush: bool}, subscriptionData: map{subscriptionId: str?, subscriptionState: str?, computeQuota: int(int32), computeUsage: int(int32)}, exportedBlobUrl: str?, accessToken: str?, createFromPrebuild: bool, templateStatus: str?, billableOwnerType: int(int32), runtimeConstraints: map{allowedPortPrivacySettings: [int(int32)]?, imageAllowList: [str]?, hostSetupConfig: map{cloneUrl: str?, branch: str?, path: str?, token: str?}}, organizationId: str?, prebuildType: str?, storageUtilizationInKb: int(int64)?, displayStorageUtilizationInKb: bool, clientUsage: map{sessionId: str?, usageData: map?}, resourceTier: int(int32), failoverDetails: map{failoverEnabled: bool, failoverRegion: int(int32)}, enableAutoPushOnStop: bool, userControlledFailureReason: int(int32), usingCopilotWorkspaceConfig: bool, isStorageV2: bool?, isAllocatedFromPool: bool} # Created\n@errors {307: Redirect, 400: Bad Request, 401: Unauthorized, 403: Forbidden, 409: Conflict, 503: Server Error}\n\n@endpoint POST /api/v1/Environments/{environmentId}/shutdown\n@required {environmentId: str(uuid)}\n@returns(200) {id: str?, type: str?, friendlyName: str?, created: str(date-time), updated: str(date-time), ownerId: str?, state: str?, containerImage: str?, seed: map{seedType: str?, seedMoniker: str?, gitConfig: map{userName: str?, userEmail: str?}, recurseClone: bool, repository: map{repoId: int(int64), name: str?, url: str?, branchName: str?, owner: str?, commitId: str?, prebuildHash: str?, createType: str?, diskUsage: str?}, cloneUrl: str?}, connection: map{connectionSessionId: str?, connectionSessionPath: str?, connectionServiceUri: str?, hostPublicKeys: [str]?, tunnelProperties: map{tunnelId: str?, tunnelName: str?, clusterId: str?, domain: str?, connectTokenExpiration: int(int64)?, connectAccessToken: str?, managePortsTokenExpiration: int(int64)?, managePortsAccessToken: str?, serviceUri: str?}}, portForwardingConnection: map{connectionSessionId: str?, connectionSessionPath: str?, connectionServiceUri: str?, hostPublicKeys: [str]?, tunnelProperties: map{tunnelId: str?, tunnelName: str?, clusterId: str?, domain: str?, connectTokenExpiration: int(int64)?, connectAccessToken: str?, managePortsTokenExpiration: int(int64)?, managePortsAccessToken: str?, serviceUri: str?}}, container: map{id: str?, schemaVersion: str?}, recentFolders: [str]?, active: str(date-time), platform: str?, location: str?, planId: str?, autoShutdownDelayMinutes: int(int32), skuName: str?, skuDisplayName: str?, lastStateUpdateReason: str?, lastUsed: str(date-time)?, features: map?, gitStatus: map{commit: str?, branch: str?, hasUnpushedChanges: bool, hasUncommittedChanges: bool, ahead: int(int32), behind: int(int32), noGitRepo: bool, autoPush: bool}, subscriptionData: map{subscriptionId: str?, subscriptionState: str?, computeQuota: int(int32), computeUsage: int(int32)}, exportedBlobUrl: str?, accessToken: str?, createFromPrebuild: bool, templateStatus: str?, billableOwnerType: int(int32), runtimeConstraints: map{allowedPortPrivacySettings: [int(int32)]?, imageAllowList: [str]?, hostSetupConfig: map{cloneUrl: str?, branch: str?, path: str?, token: str?}}, organizationId: str?, prebuildType: str?, storageUtilizationInKb: int(int64)?, displayStorageUtilizationInKb: bool, clientUsage: map{sessionId: str?, usageData: map?}, resourceTier: int(int32), failoverDetails: map{failoverEnabled: bool, failoverRegion: int(int32)}, enableAutoPushOnStop: bool, userControlledFailureReason: int(int32), usingCopilotWorkspaceConfig: bool, isStorageV2: bool?, isAllocatedFromPool: bool} # Success\n@errors {400: Bad Request, 401: Unauthorized, 404: Not Found}\n\n@endpoint POST /api/v1/Environments/{environmentId}/start\n@required {environmentId: str(uuid)}\n@returns(200) {id: str?, type: str?, friendlyName: str?, created: str(date-time), updated: str(date-time), ownerId: str?, state: str?, containerImage: str?, seed: map{seedType: str?, seedMoniker: str?, gitConfig: map{userName: str?, userEmail: str?}, recurseClone: bool, repository: map{repoId: int(int64), name: str?, url: str?, branchName: str?, owner: str?, commitId: str?, prebuildHash: str?, createType: str?, diskUsage: str?}, cloneUrl: str?}, connection: map{connectionSessionId: str?, connectionSessionPath: str?, connectionServiceUri: str?, hostPublicKeys: [str]?, tunnelProperties: map{tunnelId: str?, tunnelName: str?, clusterId: str?, domain: str?, connectTokenExpiration: int(int64)?, connectAccessToken: str?, managePortsTokenExpiration: int(int64)?, managePortsAccessToken: str?, serviceUri: str?}}, portForwardingConnection: map{connectionSessionId: str?, connectionSessionPath: str?, connectionServiceUri: str?, hostPublicKeys: [str]?, tunnelProperties: map{tunnelId: str?, tunnelName: str?, clusterId: str?, domain: str?, connectTokenExpiration: int(int64)?, connectAccessToken: str?, managePortsTokenExpiration: int(int64)?, managePortsAccessToken: str?, serviceUri: str?}}, container: map{id: str?, schemaVersion: str?}, recentFolders: [str]?, active: str(date-time), platform: str?, location: str?, planId: str?, autoShutdownDelayMinutes: int(int32), skuName: str?, skuDisplayName: str?, lastStateUpdateReason: str?, lastUsed: str(date-time)?, features: map?, gitStatus: map{commit: str?, branch: str?, hasUnpushedChanges: bool, hasUncommittedChanges: bool, ahead: int(int32), behind: int(int32), noGitRepo: bool, autoPush: bool}, subscriptionData: map{subscriptionId: str?, subscriptionState: str?, computeQuota: int(int32), computeUsage: int(int32)}, exportedBlobUrl: str?, accessToken: str?, createFromPrebuild: bool, templateStatus: str?, billableOwnerType: int(int32), runtimeConstraints: map{allowedPortPrivacySettings: [int(int32)]?, imageAllowList: [str]?, hostSetupConfig: map{cloneUrl: str?, branch: str?, path: str?, token: str?}}, organizationId: str?, prebuildType: str?, storageUtilizationInKb: int(int64)?, displayStorageUtilizationInKb: bool, clientUsage: map{sessionId: str?, usageData: map?}, resourceTier: int(int32), failoverDetails: map{failoverEnabled: bool, failoverRegion: int(int32)}, enableAutoPushOnStop: bool, userControlledFailureReason: int(int32), usingCopilotWorkspaceConfig: bool, isStorageV2: bool?, isAllocatedFromPool: bool} # Success\n@errors {400: Bad Request, 401: Unauthorized, 404: Not Found, 503: Server Error}\n\n@endpoint POST /api/v1/Environments/{environmentId}/archive\n@required {environmentId: str(uuid)}\n@returns(200) {id: str?, type: str?, friendlyName: str?, created: str(date-time), updated: str(date-time), ownerId: str?, state: str?, containerImage: str?, seed: map{seedType: str?, seedMoniker: str?, gitConfig: map{userName: str?, userEmail: str?}, recurseClone: bool, repository: map{repoId: int(int64), name: str?, url: str?, branchName: str?, owner: str?, commitId: str?, prebuildHash: str?, createType: str?, diskUsage: str?}, cloneUrl: str?}, connection: map{connectionSessionId: str?, connectionSessionPath: str?, connectionServiceUri: str?, hostPublicKeys: [str]?, tunnelProperties: map{tunnelId: str?, tunnelName: str?, clusterId: str?, domain: str?, connectTokenExpiration: int(int64)?, connectAccessToken: str?, managePortsTokenExpiration: int(int64)?, managePortsAccessToken: str?, serviceUri: str?}}, portForwardingConnection: map{connectionSessionId: str?, connectionSessionPath: str?, connectionServiceUri: str?, hostPublicKeys: [str]?, tunnelProperties: map{tunnelId: str?, tunnelName: str?, clusterId: str?, domain: str?, connectTokenExpiration: int(int64)?, connectAccessToken: str?, managePortsTokenExpiration: int(int64)?, managePortsAccessToken: str?, serviceUri: str?}}, container: map{id: str?, schemaVersion: str?}, recentFolders: [str]?, active: str(date-time), platform: str?, location: str?, planId: str?, autoShutdownDelayMinutes: int(int32), skuName: str?, skuDisplayName: str?, lastStateUpdateReason: str?, lastUsed: str(date-time)?, features: map?, gitStatus: map{commit: str?, branch: str?, hasUnpushedChanges: bool, hasUncommittedChanges: bool, ahead: int(int32), behind: int(int32), noGitRepo: bool, autoPush: bool}, subscriptionData: map{subscriptionId: str?, subscriptionState: str?, computeQuota: int(int32), computeUsage: int(int32)}, exportedBlobUrl: str?, accessToken: str?, createFromPrebuild: bool, templateStatus: str?, billableOwnerType: int(int32), runtimeConstraints: map{allowedPortPrivacySettings: [int(int32)]?, imageAllowList: [str]?, hostSetupConfig: map{cloneUrl: str?, branch: str?, path: str?, token: str?}}, organizationId: str?, prebuildType: str?, storageUtilizationInKb: int(int64)?, displayStorageUtilizationInKb: bool, clientUsage: map{sessionId: str?, usageData: map?}, resourceTier: int(int32), failoverDetails: map{failoverEnabled: bool, failoverRegion: int(int32)}, enableAutoPushOnStop: bool, userControlledFailureReason: int(int32), usingCopilotWorkspaceConfig: bool, isStorageV2: bool?, isAllocatedFromPool: bool} # Success\n@errors {400: Bad Request, 401: Unauthorized, 404: Not Found, 503: Server Error}\n\n@endpoint GET /api/v1/Environments/{environmentId}/archive\n@required {environmentId: str(uuid)}\n@returns(200) {id: str?, type: str?, friendlyName: str?, created: str(date-time), updated: str(date-time), ownerId: str?, containerImage: str?, seed: map{seedType: str?, seedMoniker: str?, gitConfig: map{userName: str?, userEmail: str?}, recurseClone: bool, repository: map{repoId: int(int64), name: str?, url: str?, branchName: str?, owner: str?, commitId: str?, prebuildHash: str?, createType: str?, diskUsage: str?}, cloneUrl: str?}, connection: map{connectionSessionId: str?, connectionSessionPath: str?, connectionServiceUri: str?, hostPublicKeys: [str]?, tunnelProperties: map{tunnelId: str?, tunnelName: str?, clusterId: str?, domain: str?, connectTokenExpiration: int(int64)?, connectAccessToken: str?, managePortsTokenExpiration: int(int64)?, managePortsAccessToken: str?, serviceUri: str?}}, portForwardingConnection: map{connectionSessionId: str?, connectionSessionPath: str?, connectionServiceUri: str?, hostPublicKeys: [str]?, tunnelProperties: map{tunnelId: str?, tunnelName: str?, clusterId: str?, domain: str?, connectTokenExpiration: int(int64)?, connectAccessToken: str?, managePortsTokenExpiration: int(int64)?, managePortsAccessToken: str?, serviceUri: str?}}, container: map{id: str?, schemaVersion: str?}, recentFolders: [str]?, active: str(date-time), platform: str?, location: str?, planId: str?, autoShutdownDelayMinutes: int(int32), skuName: str?, skuDisplayName: str?, lastStateUpdateReason: str?, lastUsed: str(date-time)?, features: map?, gitStatus: map{commit: str?, branch: str?, hasUnpushedChanges: bool, hasUncommittedChanges: bool, ahead: int(int32), behind: int(int32), noGitRepo: bool, autoPush: bool}, subscriptionData: map{subscriptionId: str?, subscriptionState: str?, computeQuota: int(int32), computeUsage: int(int32)}, exportedBlobUrl: str?, accessToken: str?, createFromPrebuild: bool, templateStatus: str?, billableOwnerType: int(int32), runtimeConstraints: map{allowedPortPrivacySettings: [int(int32)]?, imageAllowList: [str]?, hostSetupConfig: map{cloneUrl: str?, branch: str?, path: str?, token: str?}}, organizationId: str?, prebuildType: str?, storageUtilizationInKb: int(int64)?, displayStorageUtilizationInKb: bool, clientUsage: map{sessionId: str?, usageData: map?}, resourceTier: int(int32), failoverDetails: map{failoverEnabled: bool, failoverRegion: int(int32)}, enableAutoPushOnStop: bool, userControlledFailureReason: int(int32), usingCopilotWorkspaceConfig: bool, isStorageV2: bool?, isAllocatedFromPool: bool, state: str?} # Success\n@errors {400: Bad Request, 401: Unauthorized, 404: Not Found, 503: Server Error}\n\n@endpoint POST /api/v1/Environments/{environmentId}/export\n@required {environmentId: str(uuid)}\n@returns(200) {id: str?, type: str?, friendlyName: str?, created: str(date-time), updated: str(date-time), ownerId: str?, state: str?, containerImage: str?, seed: map{seedType: str?, seedMoniker: str?, gitConfig: map{userName: str?, userEmail: str?}, recurseClone: bool, repository: map{repoId: int(int64), name: str?, url: str?, branchName: str?, owner: str?, commitId: str?, prebuildHash: str?, createType: str?, diskUsage: str?}, cloneUrl: str?}, connection: map{connectionSessionId: str?, connectionSessionPath: str?, connectionServiceUri: str?, hostPublicKeys: [str]?, tunnelProperties: map{tunnelId: str?, tunnelName: str?, clusterId: str?, domain: str?, connectTokenExpiration: int(int64)?, connectAccessToken: str?, managePortsTokenExpiration: int(int64)?, managePortsAccessToken: str?, serviceUri: str?}}, portForwardingConnection: map{connectionSessionId: str?, connectionSessionPath: str?, connectionServiceUri: str?, hostPublicKeys: [str]?, tunnelProperties: map{tunnelId: str?, tunnelName: str?, clusterId: str?, domain: str?, connectTokenExpiration: int(int64)?, connectAccessToken: str?, managePortsTokenExpiration: int(int64)?, managePortsAccessToken: str?, serviceUri: str?}}, container: map{id: str?, schemaVersion: str?}, recentFolders: [str]?, active: str(date-time), platform: str?, location: str?, planId: str?, autoShutdownDelayMinutes: int(int32), skuName: str?, skuDisplayName: str?, lastStateUpdateReason: str?, lastUsed: str(date-time)?, features: map?, gitStatus: map{commit: str?, branch: str?, hasUnpushedChanges: bool, hasUncommittedChanges: bool, ahead: int(int32), behind: int(int32), noGitRepo: bool, autoPush: bool}, subscriptionData: map{subscriptionId: str?, subscriptionState: str?, computeQuota: int(int32), computeUsage: int(int32)}, exportedBlobUrl: str?, accessToken: str?, createFromPrebuild: bool, templateStatus: str?, billableOwnerType: int(int32), runtimeConstraints: map{allowedPortPrivacySettings: [int(int32)]?, imageAllowList: [str]?, hostSetupConfig: map{cloneUrl: str?, branch: str?, path: str?, token: str?}}, organizationId: str?, prebuildType: str?, storageUtilizationInKb: int(int64)?, displayStorageUtilizationInKb: bool, clientUsage: map{sessionId: str?, usageData: map?}, resourceTier: int(int32), failoverDetails: map{failoverEnabled: bool, failoverRegion: int(int32)}, enableAutoPushOnStop: bool, userControlledFailureReason: int(int32), usingCopilotWorkspaceConfig: bool, isStorageV2: bool?, isAllocatedFromPool: bool} # Success\n@errors {400: Bad Request, 401: Unauthorized, 404: Not Found, 503: Server Error}\n\n@endpoint PATCH /api/v1/Environments/{environmentId}/restore\n@required {environmentId: str(uuid)}\n@returns(200) Success\n@errors {400: Bad Request, 401: Unauthorized, 403: Forbidden}\n\n@endpoint PATCH /api/v1/Environments/{environmentId}/folder\n@required {environmentId: str}\n@optional {recentFolderPaths: [str]}\n@returns(200) {id: str?, type: str?, friendlyName: str?, created: str(date-time), updated: str(date-time), ownerId: str?, state: str?, containerImage: str?, seed: map{seedType: str?, seedMoniker: str?, gitConfig: map{userName: str?, userEmail: str?}, recurseClone: bool, repository: map{repoId: int(int64), name: str?, url: str?, branchName: str?, owner: str?, commitId: str?, prebuildHash: str?, createType: str?, diskUsage: str?}, cloneUrl: str?}, connection: map{connectionSessionId: str?, connectionSessionPath: str?, connectionServiceUri: str?, hostPublicKeys: [str]?, tunnelProperties: map{tunnelId: str?, tunnelName: str?, clusterId: str?, domain: str?, connectTokenExpiration: int(int64)?, connectAccessToken: str?, managePortsTokenExpiration: int(int64)?, managePortsAccessToken: str?, serviceUri: str?}}, portForwardingConnection: map{connectionSessionId: str?, connectionSessionPath: str?, connectionServiceUri: str?, hostPublicKeys: [str]?, tunnelProperties: map{tunnelId: str?, tunnelName: str?, clusterId: str?, domain: str?, connectTokenExpiration: int(int64)?, connectAccessToken: str?, managePortsTokenExpiration: int(int64)?, managePortsAccessToken: str?, serviceUri: str?}}, container: map{id: str?, schemaVersion: str?}, recentFolders: [str]?, active: str(date-time), platform: str?, location: str?, planId: str?, autoShutdownDelayMinutes: int(int32), skuName: str?, skuDisplayName: str?, lastStateUpdateReason: str?, lastUsed: str(date-time)?, features: map?, gitStatus: map{commit: str?, branch: str?, hasUnpushedChanges: bool, hasUncommittedChanges: bool, ahead: int(int32), behind: int(int32), noGitRepo: bool, autoPush: bool}, subscriptionData: map{subscriptionId: str?, subscriptionState: str?, computeQuota: int(int32), computeUsage: int(int32)}, exportedBlobUrl: str?, accessToken: str?, createFromPrebuild: bool, templateStatus: str?, billableOwnerType: int(int32), runtimeConstraints: map{allowedPortPrivacySettings: [int(int32)]?, imageAllowList: [str]?, hostSetupConfig: map{cloneUrl: str?, branch: str?, path: str?, token: str?}}, organizationId: str?, prebuildType: str?, storageUtilizationInKb: int(int64)?, displayStorageUtilizationInKb: bool, clientUsage: map{sessionId: str?, usageData: map?}, resourceTier: int(int32), failoverDetails: map{failoverEnabled: bool, failoverRegion: int(int32)}, enableAutoPushOnStop: bool, userControlledFailureReason: int(int32), usingCopilotWorkspaceConfig: bool, isStorageV2: bool?, isAllocatedFromPool: bool} # Success\n@errors {400: Bad Request, 401: Unauthorized, 403: Forbidden, 404: Not Found}\n\n@endpoint PUT /api/v1/Environments/{environmentId}/secrets\n@required {environmentId: str(uuid)}\n@optional {secrets: [map{type: int(int32), name: str, value: str}]}\n@returns(204) {id: str?, type: str?, friendlyName: str?, created: str(date-time), updated: str(date-time), ownerId: str?, state: str?, containerImage: str?, seed: map{seedType: str?, seedMoniker: str?, gitConfig: map{userName: str?, userEmail: str?}, recurseClone: bool, repository: map{repoId: int(int64), name: str?, url: str?, branchName: str?, owner: str?, commitId: str?, prebuildHash: str?, createType: str?, diskUsage: str?}, cloneUrl: str?}, connection: map{connectionSessionId: str?, connectionSessionPath: str?, connectionServiceUri: str?, hostPublicKeys: [str]?, tunnelProperties: map{tunnelId: str?, tunnelName: str?, clusterId: str?, domain: str?, connectTokenExpiration: int(int64)?, connectAccessToken: str?, managePortsTokenExpiration: int(int64)?, managePortsAccessToken: str?, serviceUri: str?}}, portForwardingConnection: map{connectionSessionId: str?, connectionSessionPath: str?, connectionServiceUri: str?, hostPublicKeys: [str]?, tunnelProperties: map{tunnelId: str?, tunnelName: str?, clusterId: str?, domain: str?, connectTokenExpiration: int(int64)?, connectAccessToken: str?, managePortsTokenExpiration: int(int64)?, managePortsAccessToken: str?, serviceUri: str?}}, container: map{id: str?, schemaVersion: str?}, recentFolders: [str]?, active: str(date-time), platform: str?, location: str?, planId: str?, autoShutdownDelayMinutes: int(int32), skuName: str?, skuDisplayName: str?, lastStateUpdateReason: str?, lastUsed: str(date-time)?, features: map?, gitStatus: map{commit: str?, branch: str?, hasUnpushedChanges: bool, hasUncommittedChanges: bool, ahead: int(int32), behind: int(int32), noGitRepo: bool, autoPush: bool}, subscriptionData: map{subscriptionId: str?, subscriptionState: str?, computeQuota: int(int32), computeUsage: int(int32)}, exportedBlobUrl: str?, accessToken: str?, createFromPrebuild: bool, templateStatus: str?, billableOwnerType: int(int32), runtimeConstraints: map{allowedPortPrivacySettings: [int(int32)]?, imageAllowList: [str]?, hostSetupConfig: map{cloneUrl: str?, branch: str?, path: str?, token: str?}}, organizationId: str?, prebuildType: str?, storageUtilizationInKb: int(int64)?, displayStorageUtilizationInKb: bool, clientUsage: map{sessionId: str?, usageData: map?}, resourceTier: int(int32), failoverDetails: map{failoverEnabled: bool, failoverRegion: int(int32)}, enableAutoPushOnStop: bool, userControlledFailureReason: int(int32), usingCopilotWorkspaceConfig: bool, isStorageV2: bool?, isAllocatedFromPool: bool} # No Content\n@errors {307: Redirect, 400: Bad Request, 401: Unauthorized, 403: Forbidden, 503: Server Error}\n\n@endpoint POST /api/v1/Environments/{environmentId}/notify\n@required {environmentId: str(uuid)}\n@optional {message: str, details: str, displayMode: str, modal: bool}\n@returns(200) Success\n@errors {400: Bad Request, 401: Unauthorized, 404: Not Found}\n\n@endpoint GET /api/v1/GenevaActions/Environments/{environmentId}\n@required {environmentId: str}\n@returns(200) {id: str?, type: str?, friendlyName: str?, created: str(date-time), updated: str(date-time), ownerId: str?, state: str?, containerImage: str?, seed: map{seedType: str?, seedMoniker: str?, gitConfig: map{userName: str?, userEmail: str?}, recurseClone: bool, repository: map{repoId: int(int64), name: str?, url: str?, branchName: str?, owner: str?, commitId: str?, prebuildHash: str?, createType: str?, diskUsage: str?}, cloneUrl: str?}, connection: map{connectionSessionId: str?, connectionSessionPath: str?, connectionServiceUri: str?, hostPublicKeys: [str]?, tunnelProperties: map{tunnelId: str?, tunnelName: str?, clusterId: str?, domain: str?, connectTokenExpiration: int(int64)?, connectAccessToken: str?, managePortsTokenExpiration: int(int64)?, managePortsAccessToken: str?, serviceUri: str?}}, portForwardingConnection: map{connectionSessionId: str?, connectionSessionPath: str?, connectionServiceUri: str?, hostPublicKeys: [str]?, tunnelProperties: map{tunnelId: str?, tunnelName: str?, clusterId: str?, domain: str?, connectTokenExpiration: int(int64)?, connectAccessToken: str?, managePortsTokenExpiration: int(int64)?, managePortsAccessToken: str?, serviceUri: str?}}, container: map{id: str?, schemaVersion: str?}, recentFolders: [str]?, active: str(date-time), platform: str?, location: str?, planId: str?, autoShutdownDelayMinutes: int(int32), skuName: str?, skuDisplayName: str?, lastStateUpdateReason: str?, lastUsed: str(date-time)?, features: map?, gitStatus: map{commit: str?, branch: str?, hasUnpushedChanges: bool, hasUncommittedChanges: bool, ahead: int(int32), behind: int(int32), noGitRepo: bool, autoPush: bool}, subscriptionData: map{subscriptionId: str?, subscriptionState: str?, computeQuota: int(int32), computeUsage: int(int32)}, exportedBlobUrl: str?, accessToken: str?, createFromPrebuild: bool, templateStatus: str?, billableOwnerType: int(int32), runtimeConstraints: map{allowedPortPrivacySettings: [int(int32)]?, imageAllowList: [str]?, hostSetupConfig: map{cloneUrl: str?, branch: str?, path: str?, token: str?}}, organizationId: str?, prebuildType: str?, storageUtilizationInKb: int(int64)?, displayStorageUtilizationInKb: bool, clientUsage: map{sessionId: str?, usageData: map?}, resourceTier: int(int32), failoverDetails: map{failoverEnabled: bool, failoverRegion: int(int32)}, enableAutoPushOnStop: bool, userControlledFailureReason: int(int32), usingCopilotWorkspaceConfig: bool, isStorageV2: bool?, isAllocatedFromPool: bool} # Success\n@errors {404: Not Found}\n\n@endpoint DELETE /api/v1/GenevaActions/Environments/{environmentId}\n@required {environmentId: str(uuid)}\n@optional {deletionType: str}\n@returns(204) No Content\n@errors {404: Not Found}\n\n@endpoint PUT /api/v1/GenevaActions/Environments/{environmentId}/shutdown\n@required {environmentId: str(uuid)}\n@returns(200) {id: str?, type: str?, friendlyName: str?, created: str(date-time), updated: str(date-time), ownerId: str?, state: str?, containerImage: str?, seed: map{seedType: str?, seedMoniker: str?, gitConfig: map{userName: str?, userEmail: str?}, recurseClone: bool, repository: map{repoId: int(int64), name: str?, url: str?, branchName: str?, owner: str?, commitId: str?, prebuildHash: str?, createType: str?, diskUsage: str?}, cloneUrl: str?}, connection: map{connectionSessionId: str?, connectionSessionPath: str?, connectionServiceUri: str?, hostPublicKeys: [str]?, tunnelProperties: map{tunnelId: str?, tunnelName: str?, clusterId: str?, domain: str?, connectTokenExpiration: int(int64)?, connectAccessToken: str?, managePortsTokenExpiration: int(int64)?, managePortsAccessToken: str?, serviceUri: str?}}, portForwardingConnection: map{connectionSessionId: str?, connectionSessionPath: str?, connectionServiceUri: str?, hostPublicKeys: [str]?, tunnelProperties: map{tunnelId: str?, tunnelName: str?, clusterId: str?, domain: str?, connectTokenExpiration: int(int64)?, connectAccessToken: str?, managePortsTokenExpiration: int(int64)?, managePortsAccessToken: str?, serviceUri: str?}}, container: map{id: str?, schemaVersion: str?}, recentFolders: [str]?, active: str(date-time), platform: str?, location: str?, planId: str?, autoShutdownDelayMinutes: int(int32), skuName: str?, skuDisplayName: str?, lastStateUpdateReason: str?, lastUsed: str(date-time)?, features: map?, gitStatus: map{commit: str?, branch: str?, hasUnpushedChanges: bool, hasUncommittedChanges: bool, ahead: int(int32), behind: int(int32), noGitRepo: bool, autoPush: bool}, subscriptionData: map{subscriptionId: str?, subscriptionState: str?, computeQuota: int(int32), computeUsage: int(int32)}, exportedBlobUrl: str?, accessToken: str?, createFromPrebuild: bool, templateStatus: str?, billableOwnerType: int(int32), runtimeConstraints: map{allowedPortPrivacySettings: [int(int32)]?, imageAllowList: [str]?, hostSetupConfig: map{cloneUrl: str?, branch: str?, path: str?, token: str?}}, organizationId: str?, prebuildType: str?, storageUtilizationInKb: int(int64)?, displayStorageUtilizationInKb: bool, clientUsage: map{sessionId: str?, usageData: map?}, resourceTier: int(int32), failoverDetails: map{failoverEnabled: bool, failoverRegion: int(int32)}, enableAutoPushOnStop: bool, userControlledFailureReason: int(int32), usingCopilotWorkspaceConfig: bool, isStorageV2: bool?, isAllocatedFromPool: bool} # Success\n@errors {404: Not Found}\n\n@endpoint PUT /api/v1/GenevaActions/Environments/{environmentId}/archive\n@required {environmentId: str(uuid)}\n@returns(200) {id: str?, type: str?, friendlyName: str?, created: str(date-time), updated: str(date-time), ownerId: str?, state: str?, containerImage: str?, seed: map{seedType: str?, seedMoniker: str?, gitConfig: map{userName: str?, userEmail: str?}, recurseClone: bool, repository: map{repoId: int(int64), name: str?, url: str?, branchName: str?, owner: str?, commitId: str?, prebuildHash: str?, createType: str?, diskUsage: str?}, cloneUrl: str?}, connection: map{connectionSessionId: str?, connectionSessionPath: str?, connectionServiceUri: str?, hostPublicKeys: [str]?, tunnelProperties: map{tunnelId: str?, tunnelName: str?, clusterId: str?, domain: str?, connectTokenExpiration: int(int64)?, connectAccessToken: str?, managePortsTokenExpiration: int(int64)?, managePortsAccessToken: str?, serviceUri: str?}}, portForwardingConnection: map{connectionSessionId: str?, connectionSessionPath: str?, connectionServiceUri: str?, hostPublicKeys: [str]?, tunnelProperties: map{tunnelId: str?, tunnelName: str?, clusterId: str?, domain: str?, connectTokenExpiration: int(int64)?, connectAccessToken: str?, managePortsTokenExpiration: int(int64)?, managePortsAccessToken: str?, serviceUri: str?}}, container: map{id: str?, schemaVersion: str?}, recentFolders: [str]?, active: str(date-time), platform: str?, location: str?, planId: str?, autoShutdownDelayMinutes: int(int32), skuName: str?, skuDisplayName: str?, lastStateUpdateReason: str?, lastUsed: str(date-time)?, features: map?, gitStatus: map{commit: str?, branch: str?, hasUnpushedChanges: bool, hasUncommittedChanges: bool, ahead: int(int32), behind: int(int32), noGitRepo: bool, autoPush: bool}, subscriptionData: map{subscriptionId: str?, subscriptionState: str?, computeQuota: int(int32), computeUsage: int(int32)}, exportedBlobUrl: str?, accessToken: str?, createFromPrebuild: bool, templateStatus: str?, billableOwnerType: int(int32), runtimeConstraints: map{allowedPortPrivacySettings: [int(int32)]?, imageAllowList: [str]?, hostSetupConfig: map{cloneUrl: str?, branch: str?, path: str?, token: str?}}, organizationId: str?, prebuildType: str?, storageUtilizationInKb: int(int64)?, displayStorageUtilizationInKb: bool, clientUsage: map{sessionId: str?, usageData: map?}, resourceTier: int(int32), failoverDetails: map{failoverEnabled: bool, failoverRegion: int(int32)}, enableAutoPushOnStop: bool, userControlledFailureReason: int(int32), usingCopilotWorkspaceConfig: bool, isStorageV2: bool?, isAllocatedFromPool: bool} # Success\n@errors {404: Not Found}\n\n@endpoint GET /api/v1/GenevaActions/Environments/storage/{environmentIdOrFriendlyName}/{targetBlob}\n@required {environmentIdOrFriendlyName: str, targetBlob: str=None}\n@returns(200) Success\n@errors {404: Not Found}\n\n@endpoint POST /api/v1/GenevaActions/Environments/{environmentId}/upload/running/vm/logs\n@required {environmentId: str}\n@returns(200) {containerName: str?, storageUri: str?, vmResourceId: str?, pathInContainer: str?, message: str?} # Success\n@errors {404: Not Found}\n\n@endpoint GET /api/v1/Environments/{environmentId}/state\n@required {environmentId: str(uuid)}\n@returns(200) Success\n@errors {404: Not Found}\n\n@endpoint POST /api/v1/GenevaActions/Failover/start/{region}\n@required {region: str}\n@returns(200) Success\n@errors {400: Bad Request}\n\n@endgroup\n\n@group health\n@endpoint GET /health\n@returns(200) Success\n@errors {500: Server Error}\n\n@endgroup\n\n@group api\n@endpoint POST /api/v1/HeartBeat\n@optional {timeStamp: str(date-time), agentVersion: str, resourceId: str(uuid), environmentId: str, collectedDataList: [map{timestamp: str(date-time), name: str, environmentId: str, parentActivityId: str}]}\n@returns(204) No Content\n@errors {422: Client Error}\n\n@endpoint GET /api/v1/Locations\n@returns(200) {current: int(int32), available: [int(int32)]?, hostnames: map?} # Success\n\n@endpoint GET /api/v1/Locations/{location}\n@required {location: str}\n@optional {planId: str}\n@returns(200) {skus: [map]?} # Success\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found}\n\n@endgroup\n\n@group internal\n@endpoint GET /internal/Netmon/correlation\n@optional {macAddress: str, correlationKey: str}\n@returns(200) Success\n@errors {404: Not Found}\n\n@endgroup\n\n@group .well-known\n@endpoint GET /.well-known/jwks\n@returns(200) Success\n\n@endpoint GET /.well-known/openid-configuration\n@returns(200) Success\n\n@endgroup\n\n@group api\n@endpoint GET /api/v1/pools/default\n@optional {skuName: [str]}\n@returns(200) Success\n@errors {400: Bad Request}\n\n@endpoint POST /api/v1/GenevaActions/Pools/rotate-pools\n@optional {poolType: str, poolSubtype: str, poolCode: str}\n@returns(200) Success\n@errors {400: Bad Request}\n\n@endpoint POST /api/v1/GenevaActions/Pools\n@optional {poolCode: str, poolType: str, region: str, maxTargetCount: str, minTargetCount: str, targetCount: str, comment: str}\n@returns(200) {key: str?, value: str?, comment: str?} # Success\n@errors {400: Bad Request}\n\n@endpoint POST /api/v1/GenevaActions/Pools/change-resource-deletion-setting\n@optional {poolCode: str, poolType: str, region: str, enabled: bool, comment: str}\n@returns(200) {key: str?, value: str?, comment: str?} # Success\n@errors {400: Bad Request}\n\n@endpoint POST /api/v2/prebuilds/templates\n@required {friendlyName: str}\n@optional {planId: str, storageType: int(int32)(0 (V1)/1 (V2)), seed: map{seedType: str, seedMoniker: str, gitConfig: map, recurseClone: bool, repository: map, cloneUrl: str}, experimentalFeatures: map{queueResourceAllocation: bool, enableDynamicHttpsDetection: bool, usePrebuiltImages: bool, usePrebuildFastPathIfAvailable: bool, useStorageV2: bool, useRawFuse: bool, copilotWorkspace: bool, systemOnContainerCommandParams: map, fileSyncerWithBridge: bool, sparkCloudspace: bool, sessionHardLimit: num(double), useGpsCompute: bool}, features: map, templateInfo: map{totalTimeSavingsInSeconds: str, templateSizeInGB: num(double), container: map, workFlowRunId: str, prebuildConfigurationId: str, storageImageVersion: int(int32)}, devContainerPath: str, gitHubPrebuildInstanceEndpoint: str, gitHubPrebuildTemplateEndpoint: str}\n@returns(201) {templateId: str?, sasUrl: str?, properties: map?} # Created\n@errors {400: Bad Request, 401: Unauthorized}\n\n@endpoint POST /api/v2/prebuilds/templates/{templateId}/updatestatus\n@required {templateId: str(uuid), isSuccess: bool}\n@returns(200) Success\n@errors {401: Unauthorized, 403: Forbidden, 404: Not Found}\n\n@endpoint GET /api/v2/prebuilds/templates/skus/repo/{repoId}/branch/{branchName}/hash/{prebuildHash}/location/{location}/devcontainerpath/{devContainerPath}\n@required {repoId: str, branchName: str, prebuildHash: str, location: str, devContainerPath: str}\n@optional {storageType: int(int32), fastPathEnabled: bool}\n@returns(200) {repoId: str?, branchName: str?, prebuildHash: str?, devContainerPath: str?, location: int(int32), templateSkus: [str]?, poolSkus: [str]?, supportedSkus: [str]?} # Success\n@errors {400: Bad Request, 401: Unauthorized, 403: Forbidden, 404: Not Found}\n\n@endpoint POST /api/v2/prebuilds/delete\n@required {repoId: int(int64), branchName: str}\n@optional {devContainerPath: str, prebuildConfigurationId: int(int64)}\n@returns(200) Success\n@errors {400: Bad Request, 401: Unauthorized, 404: Not Found, 503: Server Error}\n\n@endpoint POST /api/v2/prebuilds/templates/updatemaxversions\n@required {repoId: int(int64), branchName: str, maxPrebuildTemplateVersions: int(int32)}\n@optional {devContainerPath: str}\n@returns(200) Success\n@errors {400: Bad Request, 401: Unauthorized, 404: Not Found, 503: Server Error}\n\n@endpoint PUT /api/v2/prebuilds/pools/{poolId}/instances\n@required {poolId: str}\n@optional {secrets: [map{type: int(int32), name: str, value: str}], environmentOptions: map{correlationId: str}}\n@returns(201) Created\n@errors {401: Unauthorized, 404: Not Found}\n\n@endpoint POST /api/v2/prebuilds/pools/{poolId}/instances\n@required {poolId: str}\n@optional {secrets: [map{type: int(int32), name: str, value: str}], environmentOptions: map{correlationId: str}}\n@returns(201) Created\n@errors {401: Unauthorized, 404: Not Found}\n\n@endpoint GET /api/v2/prebuilds/template/{environmentId}\n@required {environmentId: str(uuid)}\n@returns(200) {id: str?, isPrebuild: bool?, prebuildHash: str?, repoId: int(int64), branchName: str?, commitId: str?, templateStatus: str?, logicalSkus: [str]?, lastUsedTime: str(date-time)?, devcontainerPath: str?, prebuildConfigurationId: str?} # Success\n@errors {401: Unauthorized, 403: Forbidden, 404: Not Found}\n\n@endpoint POST /api/v1/GenevaActions/Prebuilds/pools/delete\n@optional {subscription: str, repoId: str, branchName: str, devContainerPath: str, pools: [map{skuName: str, targetCount: int(int64), poolType: int(int32)}], storageType: int(int32)(0 (V1)/1 (V2))}\n@returns(201) Created\n@errors {401: Unauthorized, 404: Not Found}\n\n@endpoint POST /api/v1/GenevaActions/Prebuilds/pools/createorupdatesettings\n@optional {subscription: str, repoId: str, branchName: str, devContainerPath: str, pools: [map{skuName: str, targetCount: int(int64), poolType: int(int32)}], storageType: int(int32)(0 (V1)/1 (V2))}\n@returns(201) Created\n@errors {400: Bad Request, 401: Unauthorized, 404: Not Found}\n\n@endpoint POST /api/v1/GenevaActions/Resources/{resourceId}/under-investigation\n@required {resourceId: str}\n@returns(200) {resourceId: str?, underInvestigation: bool, updated: bool, investigationStarted: str(date-time)?} # Success\n@errors {400: Bad Request}\n\n@endpoint POST /api/v1/GenevaActions/Resources/{resourceId}/storage-credentials\n@required {resourceId: str}\n@returns(200) {codespaceBaseSasUri: str?, userNextSasUri: str?, userBaseSasUri: str?} # Success\n@errors {400: Bad Request}\n\n@endpoint GET /api/v1/Tunnel/{environmentId}/portInfo\n@required {environmentId: str(uuid)}\n@optional {portNumber: int(int32)}\n@returns(200) {tunnelToken: str?, portVisibility: str?} # Success\n@errors {400: Bad Request, 401: Unauthorized, 403: Forbidden, 404: Not Found}\n\n@endpoint POST /api/v1/GenevaActions/VnetPoolDefinitions\n@required {location: int(int32)(0 (None)/101 (EastAsia)/102 (SouthEastAsia)/201 (AustraliaCentral)/202 (AustraliaCentral2)/203 (AustraliaEast)/205 (AustraliaSouthEast)/301 (BrazilSouth)/401 (CanadaCentral)/402 (CanadaEast)/501 (NorthEurope)/502 (WestEurope)/601 (FranceCentral)/602 (FranceSouth)/701 (CentralIndia)/702 (SouthIndia)/703 (WestIndia)/801 (JapanEast)/802 (JapanWest)/901 (KoreaCentral)/902 (KoreaSouth)/1001 (SouthAfricaNorth)/1002 (SouthAfricaWest)/1201 (UaeCentral)/1202 (UaeNorth)/1401 (UkSouth)/1402 (UkWest)/1501 (CentralUs)/1502 (EastUs)/1503 (EastUs2)/1504 (NorthCentralUs)/1505 (SouthCentralUs)/1506 (WestCentralUs)/1507 (WestUs)/1508 (WestUs2)/1509 (WestUs3)/1601 (CentralUsEuap)/1602 (EastUs2Euap)/1701 (SwitzerlandNorth)/1702 (SwitzerlandWest)/1801 (GermanyNorth)/1802 (GermanyWestCentral)/1901 (NorwayWest)/1902 (NorwayEast)), type: int(int32)(0 (None)/1 (ComputeVM)/2 (StorageFileShare)/3 (StorageArchive)/5 (OSDisk)/6 (NetworkInterface)/7 (InputQueue)/8 (Snapshot)/9 (PoolQueue)/10 (VirtualNetwork)/11 (NetworkSecurityGroup)/13 (BasisTunnel)/14 (StorageBlockBlob)/15 (DataDisk)/17 (StorageAccount)), subtype: int(int32)(0 (Default)/2 (ShrunkBlob)/3 (FullBlob)/4 (UserParametersBlob)/6 (VnetInjected)/7 (UseManagedDisk)/8 (UseSharedSubnet)), isEnabled: bool, targetCount: int(int32), dimensions: map}\n@optional {logicalSkus: [str]}\n@returns(200) Success\n@errors {400: Bad Request, 404: Not Found, 503: Server Error}\n\n@endpoint DELETE /api/v1/GenevaActions/VnetPoolDefinitions\n@required {location: int(int32)(0 (None)/101 (EastAsia)/102 (SouthEastAsia)/201 (AustraliaCentral)/202 (AustraliaCentral2)/203 (AustraliaEast)/205 (AustraliaSouthEast)/301 (BrazilSouth)/401 (CanadaCentral)/402 (CanadaEast)/501 (NorthEurope)/502 (WestEurope)/601 (FranceCentral)/602 (FranceSouth)/701 (CentralIndia)/702 (SouthIndia)/703 (WestIndia)/801 (JapanEast)/802 (JapanWest)/901 (KoreaCentral)/902 (KoreaSouth)/1001 (SouthAfricaNorth)/1002 (SouthAfricaWest)/1201 (UaeCentral)/1202 (UaeNorth)/1401 (UkSouth)/1402 (UkWest)/1501 (CentralUs)/1502 (EastUs)/1503 (EastUs2)/1504 (NorthCentralUs)/1505 (SouthCentralUs)/1506 (WestCentralUs)/1507 (WestUs)/1508 (WestUs2)/1509 (WestUs3)/1601 (CentralUsEuap)/1602 (EastUs2Euap)/1701 (SwitzerlandNorth)/1702 (SwitzerlandWest)/1801 (GermanyNorth)/1802 (GermanyWestCentral)/1901 (NorwayWest)/1902 (NorwayEast)), type: int(int32)(0 (None)/1 (ComputeVM)/2 (StorageFileShare)/3 (StorageArchive)/5 (OSDisk)/6 (NetworkInterface)/7 (InputQueue)/8 (Snapshot)/9 (PoolQueue)/10 (VirtualNetwork)/11 (NetworkSecurityGroup)/13 (BasisTunnel)/14 (StorageBlockBlob)/15 (DataDisk)/17 (StorageAccount)), subtype: int(int32)(0 (Default)/2 (ShrunkBlob)/3 (FullBlob)/4 (UserParametersBlob)/6 (VnetInjected)/7 (UseManagedDisk)/8 (UseSharedSubnet)), isEnabled: bool, targetCount: int(int32), dimensions: map}\n@optional {logicalSkus: [str]}\n@returns(200) Success\n@errors {400: Bad Request, 404: Not Found, 503: Server Error}\n\n@endgroup\n\n@group warmup\n@endpoint GET /warmup\n@returns(200) Success\n@errors {503: Server Error}\n\n@endgroup\n\n@end\n"}}