{"openapi":"3.1.0","info":{"title":"Zephyr","version":"2.0","description":"Zephyr API","contact":{"name":"Zephyr Cloud","url":"https://zephyr-cloud.io/"}},"externalDocs":{"description":"Zephyr Cloud","url":"https://zephyr-cloud.io/"},"servers":[{"url":"https://api.zephyr-cloud.io","description":"Production API"}],"tags":[{"name":"System","description":"Health checks and system status endpoints"},{"name":"Auth","description":"Authentication and authorization endpoints"},{"name":"Organizations","description":"Organization management endpoints"},{"name":"Projects","description":"Project management endpoints"},{"name":"Applications","description":"Application management endpoints"},{"name":"Builds","description":"Build and deployment endpoints"},{"name":"User Auth Token","description":"User authentication token management endpoints"},{"name":"Server Auth Token","description":"Server authentication token management endpoints"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Enter a bearer token or a user auth token."}},"schemas":{"DashboardEvent":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"schemaVersion":{"type":"number","enum":[1]},"occurredAt":{"type":"string","format":"date-time"},"organizationId":{"type":"string","format":"uuid"},"projectId":{"type":"string","format":"uuid"},"applicationId":{"type":"string","format":"uuid"},"organization":{"type":"string"},"project":{"type":"string"},"application":{"type":"string"},"type":{"type":"string","enum":["build.created"]},"versionId":{"type":"string","format":"uuid"},"buildNumber":{"type":"number"},"branch":{"type":"string"},"authorId":{"type":"string","format":"uuid"}},"required":["id","schemaVersion","occurredAt","organizationId","projectId","applicationId","organization","project","application","type","versionId","buildNumber","branch","authorId"]},{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"schemaVersion":{"type":"number","enum":[1]},"occurredAt":{"type":"string","format":"date-time"},"organizationId":{"type":"string","format":"uuid"},"projectId":{"type":"string","format":"uuid"},"applicationId":{"type":"string","format":"uuid"},"organization":{"type":"string"},"project":{"type":"string"},"application":{"type":"string"},"type":{"type":"string","enum":["build.failed"]},"versionId":{"type":"string","format":"uuid"}},"required":["id","schemaVersion","occurredAt","organizationId","projectId","applicationId","organization","project","application","type","versionId"]},{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"schemaVersion":{"type":"number","enum":[1]},"occurredAt":{"type":"string","format":"date-time"},"organizationId":{"type":"string","format":"uuid"},"projectId":{"type":"string","format":"uuid"},"applicationId":{"type":"string","format":"uuid"},"organization":{"type":"string"},"project":{"type":"string"},"application":{"type":"string"},"type":{"type":"string","enum":["build.published"]},"versionId":{"type":"string","format":"uuid"}},"required":["id","schemaVersion","occurredAt","organizationId","projectId","applicationId","organization","project","application","type","versionId"]},{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"schemaVersion":{"type":"number","enum":[1]},"occurredAt":{"type":"string","format":"date-time"},"organizationId":{"type":"string","format":"uuid"},"projectId":{"type":"string","format":"uuid"},"applicationId":{"type":"string","format":"uuid"},"organization":{"type":"string"},"project":{"type":"string"},"application":{"type":"string"},"type":{"type":"string","enum":["pointer.moved"]},"targetType":{"type":"string","enum":["tag","environment"]},"targetId":{"type":"string","format":"uuid"},"previousVersionId":{"type":"string","nullable":true,"format":"uuid"},"versionId":{"type":"string","format":"uuid"},"actorId":{"type":"string","format":"uuid"},"trigger":{"type":"string","enum":["rule_match","release","rollback","api","config_update"]}},"required":["id","schemaVersion","occurredAt","organizationId","projectId","applicationId","organization","project","application","type","targetType","targetId","previousVersionId","versionId","actorId","trigger"]},{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"schemaVersion":{"type":"number","enum":[1]},"occurredAt":{"type":"string","format":"date-time"},"organizationId":{"type":"string","format":"uuid"},"projectId":{"type":"string","format":"uuid"},"applicationId":{"type":"string","format":"uuid"},"organization":{"type":"string"},"project":{"type":"string"},"application":{"type":"string"},"type":{"type":"string","enum":["activity.updated"]},"environmentId":{"type":"string","format":"uuid"}},"required":["id","schemaVersion","occurredAt","organizationId","projectId","applicationId","organization","project","application","type"]}]},"LiveReloadSubscription":{"type":"object","properties":{"applicationUid":{"type":"string","minLength":1,"maxLength":512},"expiresAt":{"type":"string","format":"date-time"},"token":{"type":"string","minLength":1}},"required":["applicationUid","expiresAt","token"]},"ApplicationOverview":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"isPrivate":{"type":"boolean"},"latestVersion":{"$ref":"#/components/schemas/ApplicationOverviewLatestVersion"}},"required":["id","name","description","isPrivate","latestVersion"]},"ApplicationOverviewLatestVersion":{"type":"object","nullable":true,"properties":{"id":{"type":"string"},"dependencyVersion":{"type":"object","nullable":true,"properties":{"name":{"type":"string"}},"required":["name"]},"modules":{"type":"array","items":{"$ref":"#/components/schemas/ApplicationOverviewModule"}},"consumes":{"type":"array","items":{"$ref":"#/components/schemas/ApplicationConsumeEntry"}}},"required":["id","dependencyVersion","modules","consumes"]},"ApplicationOverviewModule":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"file":{"type":"string"},"requires":{"type":"array","items":{"type":"string"}},"metadata":{"nullable":true}},"required":["id","name","file","requires"]},"ApplicationConsumeEntry":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"applicationID":{"type":"string"},"consumingApplicationID":{"type":"string"},"applicationVersionID":{"type":"string"},"usedIn":{"type":"array","items":{"type":"object","properties":{"file":{"type":"string"},"url":{"type":"string"}},"required":["file","url"]}},"deletedAt":{"type":"string","nullable":true}},"required":["id","name","applicationID","consumingApplicationID","applicationVersionID","usedIn","deletedAt"]},"ApplicationConsumersResponse":{"type":"object","properties":{"entities":{"type":"array","items":{"$ref":"#/components/schemas/ApplicationConsumerItem"}},"pageMetadata":{"$ref":"#/components/schemas/ApplicationConsumersPageMetadata"}},"required":["entities","pageMetadata"]},"ApplicationConsumerItem":{"type":"object","properties":{"application_uid":{"type":"string"},"name":{"type":"string"}},"required":["application_uid","name"]},"ApplicationConsumersPageMetadata":{"type":"object","properties":{"limit":{"type":"integer"},"hasMore":{"type":"boolean"},"total":{"type":"integer"}},"required":["limit","hasMore","total"]},"ApplicationUmlSidebar":{"type":"object","properties":{"name":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"metadata":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"value":{"type":"string"},"baseUrl":{"type":"string"},"remote":{"type":"string"},"source":{"type":"object","properties":{"url":{"type":"string"}}}},"required":["name","value"]}},"consumes":{"type":"array","items":{"$ref":"#/components/schemas/ApplicationConsumeEntry"}},"consumedBy":{"type":"array","items":{"$ref":"#/components/schemas/ApplicationUmlConsumedByItem"}}},"required":["name","tags","metadata","consumes","consumedBy"]},"ApplicationUmlConsumedByItem":{"type":"object","properties":{"name":{"type":"string"},"versions":{"type":"array","items":{"$ref":"#/components/schemas/ApplicationUmlConsumedByVersion"}}},"required":["name","versions"]},"ApplicationUmlConsumedByVersion":{"type":"object","properties":{"id":{"type":"string"},"modules":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]}}},"required":["id","modules"]},"ApplicationListByProjectItem":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"isPrivate":{"type":"boolean"},"deletedAt":{"type":"string","nullable":true},"updatedAt":{"type":"string"},"updatedBy":{"$ref":"#/components/schemas/Author"}},"required":["id","name","description","isPrivate","updatedAt"],"description":"Application list item","example":{"id":"app-123","name":"web-dashboard","description":"Main dashboard","isPrivate":false,"contributors":[],"organization":{"id":"org-123","name":"zephyr-cloud","displayName":"Zephyr Cloud"},"project":{"id":"proj-123","name":"main-app","displayName":"Main App","visibility":"public"},"tags":[],"deletedAt":null,"updatedAt":"2025-12-17T00:00:00.000Z","counters":{"remotes":3}}},"Author":{"type":"object","nullable":true,"properties":{"id":{"type":"string"},"name":{"type":"string"},"email":{"type":"string","format":"email"},"portrait":{"type":"string","nullable":true},"username":{"type":"string"},"avatarColor":{"type":"string"}},"required":["id","name","email","username","avatarColor"],"description":"Author information","example":{"id":"user-123","name":"Jane Smith","email":"jane@example.com","portrait":"https://avatars.example.com/jane.jpg","username":"janesmith","avatarColor":"#e74c3c"}},"ApplicationSettings":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"isPrivate":{"type":"boolean"}},"required":["id","name","description","isPrivate"]},"UpdateApplicationSettingsBody":{"type":"object","properties":{"description":{"type":"string","description":"Application description","example":"Main dashboard application"},"isPrivate":{"type":"boolean","description":"Whether the application is private","example":false}}},"ApplicationMetadataItem":{"type":"object","properties":{"name":{"type":"string"},"value":{"type":"string"},"baseUrl":{"type":"string"},"remote":{"type":"string"},"source":{"type":"object","properties":{"url":{"type":"string"}}}},"required":["name","value"],"description":"Application metadata entry","example":{"name":"environment","value":"production"}},"ApplicationFullVersion":{"type":"object","properties":{"id":{"type":"string"},"applicationId":{"type":"string"},"application_uid":{"type":"string"},"dependencyVersion":{"type":"object","properties":{"name":{"type":"string"}},"required":["name"]},"remote_host":{"type":"string"},"remote_entry_url":{"type":"string","nullable":true},"remote_file_name":{"type":"string","nullable":true},"createdAt":{"anyOf":[{"type":"string"},{"type":"string","format":"date-time"}]},"updatedAt":{"anyOf":[{"type":"string"},{"type":"string","format":"date-time"},{"nullable":true}]},"deletedAt":{"anyOf":[{"type":"string"},{"type":"string","format":"date-time"},{"nullable":true}]},"metadata":{"nullable":true},"overrides":{"type":"array","items":{"$ref":"#/components/schemas/ApplicationOverride"}},"dependencies":{"type":"array","items":{"$ref":"#/components/schemas/ApplicationDependency"}},"remotes":{"type":"array","items":{"$ref":"#/components/schemas/ApplicationVersionRemote"}},"modules":{"type":"array","items":{"$ref":"#/components/schemas/ApplicationFullVersionModule"}},"consumes":{"type":"array","items":{"$ref":"#/components/schemas/ApplicationFullVersionConsume"}}},"required":["id","applicationId","remote_host","createdAt"],"additionalProperties":{"nullable":true},"description":"Application version with modules, consumes, and dependencies"},"ApplicationOverride":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"version":{"type":"string"},"location":{"type":"string"},"applicationID":{"type":"string"}},"required":["id","name","version","location","applicationID"],"description":"Application override"},"ApplicationDependency":{"type":"object","properties":{"name":{"type":"string"},"version":{"type":"string"},"license":{"type":"string"},"size":{"type":"number"},"type":{"type":"string"}},"required":["name","version"],"description":"Application dependency"},"ApplicationVersionRemote":{"type":"object","properties":{"internalName":{"type":"string"},"name":{"type":"string"},"version":{"type":"string"}},"required":["name","version"],"description":"Application version remote"},"ApplicationFullVersionModule":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"applicationVersionId":{"type":"string"},"requires":{"type":"array","items":{"type":"string"}},"file":{"type":"string"},"metadata":{"nullable":true},"tags":{"type":"array","items":{"type":"string"}},"deletedAt":{"anyOf":[{"type":"string"},{"type":"string","format":"date-time"},{"nullable":true}]}},"required":["id","name","applicationVersionId","requires","file"],"description":"Module within an application version"},"ApplicationFullVersionConsume":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"usedIn":{"type":"array","items":{"$ref":"#/components/schemas/UsedIn"}},"applicationID":{"type":"string"},"applicationVersionID":{"type":"string"},"consumingApplicationID":{"type":"string"},"createdAt":{"anyOf":[{"type":"string"},{"type":"string","format":"date-time"}]},"updatedAt":{"anyOf":[{"type":"string"},{"type":"string","format":"date-time"}]},"deletedAt":{"anyOf":[{"type":"string"},{"type":"string","format":"date-time"},{"nullable":true}]}},"required":["id","name","applicationID","consumingApplicationID"],"description":"Consumed remote module within an application version"},"UsedIn":{"type":"object","properties":{"file":{"type":"string"},"url":{"type":"string"}},"required":["file","url"],"description":"Module usage location","example":{"file":"src/index.ts","url":"/path/to/module"}},"ApplicationRemote":{"type":"object","properties":{"id":{"type":"string"},"application_uid":{"type":"string"},"remote_application_uid":{"type":"string"},"versionId":{"type":"string"},"version":{"type":"string"}},"required":["id","application_uid","remote_application_uid","versionId","version"],"description":"Application remote reference"},"ContributorWithType":{"type":"object","properties":{"userIds":{"type":"array","items":{"type":"string"}},"type":{"type":"string","enum":["team","member"]}},"required":["userIds","type"],"additionalProperties":{"nullable":true},"description":"Contributor with type information"},"Consume":{"type":"object","properties":{"applicationID":{"type":"string"},"name":{"type":"string"},"usedIn":{"type":"array","items":{"$ref":"#/components/schemas/ConsumeUsedIn"}},"consumingApplicationID":{"type":"string"}},"required":["applicationID","name","usedIn","consumingApplicationID"],"description":"Module consumption details"},"ConsumeUsedIn":{"type":"object","properties":{"file":{"type":"string"},"url":{"type":"string"}},"required":["file","url"],"description":"Location where a module is consumed"},"ApplicationActivityDataPoint":{"type":"object","properties":{"month":{"type":"string","description":"Month in YYYY-MM format","example":"2024-03"},"versionsCreated":{"type":"integer","minimum":0,"description":"Number of versions created in this month"},"activeContributors":{"type":"integer","minimum":0,"description":"Number of distinct contributors active in this month"}},"required":["month","versionsCreated","activeContributors"]},"CreateApplicationRequest":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name (slug)","example":"web-dashboard"},"displayName":{"type":"string","minLength":1,"maxLength":100,"description":"Display name for the application","example":"Web Dashboard"},"description":{"type":"string","maxLength":500,"description":"Application description","example":"Main web dashboard application"},"isPrivate":{"type":"boolean","description":"Whether the application is private","example":false}},"required":["name"]},"UpdateApplicationRequest":{"type":"object","properties":{"displayName":{"type":"string","minLength":1,"maxLength":100,"description":"Display name for the application","example":"Web Dashboard"},"description":{"type":"string","maxLength":500,"description":"Application description","example":"Main web dashboard application"},"isPrivate":{"type":"boolean","description":"Whether the application is private","example":false}}},"UpdateApplicationNameBody":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":255,"description":"New application name (slug)","example":"new-app-name"}},"required":["name"]},"ApplicationAuditLogAuthorsResponse":{"type":"object","properties":{"entities":{"type":"array","items":{"$ref":"#/components/schemas/ApplicationAuditLogAuthor"}}},"required":["entities"]},"ApplicationAuditLogAuthor":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"portrait":{"type":"string"},"username":{"type":"string"},"avatarColor":{"type":"string"}},"required":["id","name","username","avatarColor"]},"ApplicationAuditLogResponse":{"type":"object","properties":{"logs":{"type":"array","items":{"$ref":"#/components/schemas/ApplicationAuditLogEntry"}},"pageMetadata":{"$ref":"#/components/schemas/ApplicationAuditLogPageMetadata"}},"required":["logs","pageMetadata"]},"ApplicationAuditLogEntry":{"type":"object","properties":{"id":{"type":"string"},"type":{"$ref":"#/components/schemas/ApplicationAuditLogType"},"action":{"$ref":"#/components/schemas/ApplicationAuditLogAction"},"result":{"$ref":"#/components/schemas/ApplicationAuditLogResult"},"message":{"type":"string"},"oldData":{"type":"object","nullable":true,"additionalProperties":{"nullable":true}},"newData":{"type":"object","nullable":true,"additionalProperties":{"nullable":true}},"author":{"$ref":"#/components/schemas/ApplicationAuditLogAuthor"},"tokenName":{"type":"string"},"tokenType":{"type":"string"},"deploymentAttribution":{"$ref":"#/components/schemas/CiDeploymentAttribution"},"deploymentAuthorization":{"$ref":"#/components/schemas/DeploymentAuthorization"},"createdAt":{"type":"string","format":"date-time"}},"required":["id","type","action","result","message","author","createdAt"]},"ApplicationAuditLogType":{"type":"string","enum":["environment","deployment","variables","dependencies","tag","tag-condition","version","integration","environment-members","settings"]},"ApplicationAuditLogAction":{"type":"string","enum":["create","update","delete"]},"ApplicationAuditLogResult":{"type":"string","enum":["success","failure"]},"CiDeploymentAttribution":{"type":"object","properties":{"actor":{"$ref":"#/components/schemas/CiActor"},"authorization":{"type":"object","properties":{"type":{"type":"string","enum":["ci-token"]},"tokenName":{"type":"string","minLength":1}},"required":["type","tokenName"]}},"required":["actor","authorization"]},"CiActor":{"type":"object","properties":{"type":{"type":"string","enum":["bot"]},"provider":{"type":"string","minLength":1},"issuer":{"type":"string","minLength":1},"providerSubject":{"type":"string","minLength":1},"username":{"type":"string","minLength":1}},"required":["type","provider","issuer","providerSubject"]},"DeploymentAuthorization":{"type":"object","properties":{"type":{"type":"string","enum":["ci-token","api-token","authn-token"]},"tokenName":{"type":"string","minLength":1}},"required":["type","tokenName"]},"ApplicationAuditLogPageMetadata":{"type":"object","properties":{"total":{"type":"integer"},"page":{"type":"integer"},"perPage":{"type":"integer"},"totalPages":{"type":"integer"}},"required":["total","page","perPage","totalPages"]},"ApplicationVersion":{"type":"object","properties":{"id":{"type":"string"},"version":{"type":"string"},"published":{"type":"string"},"remote_host":{"type":"string"},"snapshot_id":{"type":"string"},"status":{"$ref":"#/components/schemas/ApplicationVersionStatus"},"statusMessage":{"type":"string"},"downloads":{"type":"number"},"author":{"$ref":"#/components/schemas/Author"},"branch":{"type":"string"},"context":{"$ref":"#/components/schemas/Context"},"deploymentAttribution":{"$ref":"#/components/schemas/CiDeploymentAttribution"},"environments":{"type":"array","items":{"$ref":"#/components/schemas/ApplicationVersionEnvironmentItem"}},"tags":{"type":"array","items":{"$ref":"#/components/schemas/ApplicationVersionTagItem"}}},"required":["id","version","published","remote_host","snapshot_id","status","downloads","author","branch","context","environments","tags"],"description":"Application version details","example":{"id":"ver-123","version":"1.0.0","published":"2025-12-17T00:00:00.000Z","remote_host":"https://app.zephyr-cloud.io","snapshot_id":"snap-abc123","status":"available","downloads":1000,"author":{"id":"user-123","name":"Jane Smith","email":"jane@example.com","portrait":null,"username":"janesmith","avatarColor":"#e74c3c"},"branch":"main","context":{"isCI":true},"environments":[{"name":"production","remote_host":"https://prod.example.com","updatedAt":"2025-12-17T00:00:00.000Z"}],"tags":[{"name":"latest","remote_host":"https://latest.example.com","updatedAt":"2025-12-17T00:00:00.000Z"}]}},"ApplicationVersionStatus":{"type":"string","enum":["available","deprecated","failed","rolled_back","unavailable"]},"Context":{"type":"object","properties":{"username":{"type":"string"},"isCI":{"type":"boolean"}},"description":"Deployment context information","example":{"username":"deploy-bot","isCI":true}},"ApplicationVersionEnvironmentItem":{"type":"object","properties":{"name":{"type":"string"},"remote_host":{"type":"string"},"updatedAt":{"type":"string"}},"required":["name","remote_host","updatedAt"]},"ApplicationVersionTagItem":{"type":"object","properties":{"name":{"type":"string"},"remote_host":{"type":"string"},"updatedAt":{"type":"string"}},"required":["name","remote_host","updatedAt"]},"VersionSortField":{"type":"string","enum":["user","buildVersion","published"],"description":"Sort field"},"VersionDetail":{"type":"object","properties":{"id":{"type":"string"},"application_uid":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"snapshot_id":{"type":"string"},"applicationId":{"type":"string"},"remote_host":{"type":"string"},"remote_entry_url":{"type":"string","nullable":true},"remote_file_name":{"type":"string","nullable":true},"remotes":{"$ref":"#/components/schemas/ApplicationVersionRemotes"},"dependencies":{"$ref":"#/components/schemas/ApplicationVersionDependencies"},"metadata":{"$ref":"#/components/schemas/ApplicationVersionMetadata"},"deploymentAttribution":{"$ref":"#/components/schemas/CiDeploymentAttribution"},"zephyrDependencies":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"id":{"type":"string"},"key":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"source":{"type":"string"},"application_uid":{"type":"string"},"remote_entry_url":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"applicationVersionId":{"type":"string","nullable":true},"default_url":{"type":"string"},"library_type":{"type":"string"},"original_version":{"type":"string","nullable":true},"original_app_uid":{"type":"string","nullable":true},"original_registry":{"type":"string","nullable":true},"original_url":{"type":"string","nullable":true},"resolved_version":{"type":"string"},"resolved_at":{"type":"string","format":"date-time"},"applicationTagId":{"type":"string","nullable":true},"applicationEnvironmentId":{"type":"string","nullable":true},"remoteApplicationVersionId":{"type":"string","nullable":true},"remoteApplicationTagId":{"type":"string","nullable":true},"remoteApplicationEnvironmentId":{"type":"string","nullable":true}},"required":["name","id","key","createdAt","source","application_uid","remote_entry_url","updatedAt","applicationVersionId","default_url","library_type","original_version","original_app_uid","original_registry","original_url","resolved_version","resolved_at","applicationTagId","applicationEnvironmentId","remoteApplicationVersionId","remoteApplicationTagId","remoteApplicationEnvironmentId"]}},"user":{"type":"object","properties":{"name":{"type":"string"},"email":{"type":"string"},"username":{"type":"string"},"avatarColor":{"type":"string"},"portrait":{"type":"string","nullable":true}},"required":["name","email","username","avatarColor","portrait"]},"status":{"$ref":"#/components/schemas/ApplicationVersionStatus"},"statusMessage":{"type":"string","nullable":true},"environments":{"type":"array","items":{"$ref":"#/components/schemas/VersionDetailEnvironmentItem"}},"appTags":{"type":"array","items":{"$ref":"#/components/schemas/VersionDetailAppTagItem"}},"dependencyVersion":{"type":"object","nullable":true,"properties":{"name":{"type":"string"},"branch":{"type":"string"},"commitHash":{"type":"string","nullable":true},"major":{"type":"number"},"minor":{"type":"number"},"patch":{"type":"number"},"username":{"type":"string"},"increment":{"type":"number"},"isCI":{"type":"boolean"},"platform":{"type":"string","nullable":true},"builder":{"type":"string","nullable":true},"pluginVersion":{"type":"string","nullable":true},"workerVersion":{"type":"string","nullable":true}},"required":["name","branch","major","minor","patch","username","increment","isCI","platform"]},"envVarSet":{"type":"object","nullable":true,"properties":{"application_uid":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"hash":{"type":"string"},"variables":{"type":"object","nullable":true,"additionalProperties":{"type":"string"}}},"required":["application_uid","createdAt","hash","variables"]}},"required":["id","application_uid","createdAt","snapshot_id","applicationId","remote_host","remote_entry_url","remote_file_name","remotes","dependencies","metadata","zephyrDependencies","user","status","statusMessage","environments","appTags","dependencyVersion","envVarSet"]},"ApplicationVersionRemotes":{"type":"array","items":{"type":"object","properties":{"application_uid":{"type":"string"}},"required":["application_uid"]}},"ApplicationVersionDependencies":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"version":{"type":"string"},"type":{"type":"string","enum":["dependency","devDependency","peerDependency","optionalDependency"]},"license":{"type":"string"},"size":{"type":"number"}},"required":["name","version","type"]}},"ApplicationVersionMetadata":{"type":"object","properties":{"context":{"type":"object","properties":{"isCI":{"type":"boolean"}},"required":["isCI"]}}},"VersionDetailEnvironmentItem":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"remote_host":{"type":"string"},"remote_entry_url":{"type":"string"},"description":{"type":"string","nullable":true},"customDnsNames":{"type":"array","items":{"type":"string"}},"updatedAt":{"type":"string","nullable":true,"format":"date-time"}},"required":["id","name","remote_host","remote_entry_url","customDnsNames"]},"VersionDetailAppTagItem":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"remote_host":{"type":"string"},"remote_entry_url":{"type":"string"},"conditions":{"nullable":true},"updatedAt":{"type":"string","nullable":true,"format":"date-time"}},"required":["id","name","remote_host","remote_entry_url"]},"ApplicationEntityCounts":{"type":"object","properties":{"versions":{"type":"integer","minimum":0,"description":"Number of active application versions","example":142},"tags":{"type":"integer","minimum":0,"description":"Number of active application tags","example":12},"environments":{"type":"integer","minimum":0,"description":"Number of active application environments","example":4}},"required":["versions","tags","environments"]},"DeployTargetsResponse":{"type":"object","properties":{"envs":{"type":"array","items":{"$ref":"#/components/schemas/DeployTargetItem"}},"tags":{"type":"array","items":{"$ref":"#/components/schemas/DeployTargetItem"}}},"required":["envs","tags"]},"DeployTargetItem":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"deployTarget":{"$ref":"#/components/schemas/DeployTarget"}},"required":["id","name","deployTarget"]},"DeployTarget":{"type":"string","enum":["environment","tag"]},"DeployedVersion":{"type":"object","properties":{"id":{"type":"string"},"versionName":{"type":"string"},"deployTarget":{"type":"string","enum":["environment","tag"]},"deployTargetName":{"type":"string"},"deployedAt":{"type":"string","nullable":true,"format":"date-time"},"deployedById":{"type":"string"},"deployedByName":{"type":"string"},"deployedByUserName":{"type":"string"},"trigger":{"type":"string","enum":["api","release","rollback","rule_match","config_update"]},"deployedBySource":{"type":"string","enum":["recorded","audit_log","inferred_build_author"]},"deploymentAttribution":{"$ref":"#/components/schemas/CiDeploymentAttribution"},"deploymentAuthorization":{"$ref":"#/components/schemas/DeploymentAuthorization"},"beforeReleaseTracking":{"type":"boolean"},"buildAuthorName":{"type":"string"},"buildAuthorUserName":{"type":"string"},"authorName":{"type":"string"},"authorUserName":{"type":"string"},"hostUrl":{"type":"string"},"snapshot_id":{"type":"string"},"previousVersion":{"type":"object","properties":{"versionName":{"type":"string"},"id":{"type":"string"},"deployTarget":{"type":"string","enum":["environment","tag"]},"deployTargetId":{"type":"string"},"snapshot_id":{"type":"string"},"hostUrl":{"type":"string"},"available":{"type":"boolean"}},"required":["versionName","id","deployTarget","deployTargetId","snapshot_id","hostUrl","available"]},"deploymentHistory":{"type":"array","items":{"$ref":"#/components/schemas/DeploymentHistoryItem"}}},"required":["id","versionName","deployTarget","deployTargetName","deployedAt","authorName","authorUserName","hostUrl","snapshot_id"]},"DeploymentHistoryItem":{"type":"object","properties":{"versionName":{"type":"string"},"id":{"type":"string"},"snapshot_id":{"type":"string"},"hostUrl":{"type":"string"},"deployedAt":{"type":"string","format":"date-time"},"deployedById":{"type":"string"},"deployedByName":{"type":"string"},"deployedByUserName":{"type":"string"},"trigger":{"type":"string","enum":["api","release","rollback","rule_match","config_update"]},"deployedBySource":{"type":"string","enum":["recorded","audit_log","inferred_build_author"]},"deploymentAttribution":{"$ref":"#/components/schemas/CiDeploymentAttribution"},"deploymentAuthorization":{"$ref":"#/components/schemas/DeploymentAuthorization"},"beforeReleaseTracking":{"type":"boolean"},"buildAuthorName":{"type":"string"},"buildAuthorUserName":{"type":"string"},"authorName":{"type":"string"},"authorUserName":{"type":"string"},"available":{"type":"boolean"}},"required":["versionName","id","snapshot_id","hostUrl","deployedAt","available"]},"DeployVersionBody":{"type":"object","properties":{"id":{"type":"string","description":"Version ID"},"deployTarget":{"allOf":[{"$ref":"#/components/schemas/DeployTarget"},{"description":"Target type for deployment"}]},"deployTargetId":{"type":"string","description":"Target ID (environment or tag ID)"},"snapshot_id":{"type":"string","description":"Snapshot ID of the version to deploy"},"lockTag":{"type":"boolean","description":"Lock the tag after deployment (only applies when deployTarget is \"tag\")"},"lockEnvironment":{"type":"boolean","description":"Lock the environment after deployment (only applies when deployTarget is \"environment\")"}},"required":["id","deployTarget","deployTargetId","snapshot_id"]},"PrepareDeployVersionResponse":{"type":"object","properties":{"deploymentToken":{"type":"string"},"publishRequest":{"$ref":"#/components/schemas/DeployVersionPublishRequest"}},"required":["deploymentToken","publishRequest"]},"DeployVersionPublishRequest":{"type":"object","properties":{"EDGE_URL":{"type":"string"},"application_uid":{"type":"string"},"snapshot_id":{"type":"string"},"targets":{"type":"object","properties":{"version":{"$ref":"#/components/schemas/DeployVersionPublishTarget"},"tags":{"type":"array","items":{"$ref":"#/components/schemas/DeployVersionPublishTarget"}},"envs":{"type":"array","items":{"$ref":"#/components/schemas/DeployVersionPublishTarget"}},"cnames":{"type":"array","items":{"$ref":"#/components/schemas/DeployVersionPublishTarget"}}},"required":["tags","envs","cnames"]},"jwt":{"type":"string"},"ENVIRONMENTS":{"type":"object","additionalProperties":{"type":"object","properties":{"edgeUrl":{"type":"string","nullable":true},"name":{"type":"string"}},"required":["name"]}},"envVarSetEnvMap":{"type":"object","additionalProperties":{"type":"object","additionalProperties":{"type":"string"}}},"ignoredEnvs":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]}},"polyCloudMetadata":{"nullable":true}},"required":["EDGE_URL","application_uid","snapshot_id","targets","jwt"]},"DeployVersionPublishTarget":{"type":"object","properties":{"url":{"type":"string"},"hostname":{"type":"string"},"zephyrManifestFile":{"type":"object","properties":{"content":{"type":"object","additionalProperties":{"nullable":true}},"hash":{"type":"string"}},"required":["content","hash"]}},"required":["url","hostname"]},"FinalizeDeployVersionResponse":{"type":"object","properties":{"success":{"type":"boolean"}},"required":["success"]},"FinalizeDeployVersionBody":{"type":"object","properties":{"deploymentToken":{"type":"string"}},"required":["deploymentToken"]},"QueryOptsResponse":{"type":"object","properties":{"userList":{"type":"array","items":{"$ref":"#/components/schemas/QueryOptsUserItem"}}},"required":["userList"]},"QueryOptsUserItem":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"object","properties":{"name":{"type":"string"},"avatarColor":{"type":"string"},"avatar":{"type":"string","nullable":true}},"required":["name","avatarColor","avatar"]}},"required":["key","value"]},"SetVersionDeprecatedBody":{"type":"object","properties":{"availableTill":{"type":"string","format":"date-time","description":"Date until the version remains available"}},"required":["availableTill"]},"SetVersionUnavailableBody":{"type":"object","properties":{"reason":{"type":"string","description":"Reason for marking version as unavailable"}},"required":["reason"]},"SetVersionFailedBody":{"type":"object","properties":{"reason":{"type":"string","description":"Reason for marking version as failed"}},"required":["reason"]},"GraphResponse":{"type":"object","properties":{"nodes":{"type":"array","items":{"$ref":"#/components/schemas/GraphNode"}},"edges":{"type":"array","items":{"$ref":"#/components/schemas/GraphEdge"}}},"required":["nodes","edges"]},"GraphNode":{"type":"object","properties":{"id":{"type":"string"},"data":{"type":"object","properties":{"id":{"type":"string"},"applicationId":{"type":"string"},"entity_type":{"type":"string","enum":["version","tag","environment"]},"applicationVersionId":{"type":"string"},"version":{"type":"string"},"applicationTagId":{"type":"string"},"tagName":{"type":"string"},"applicationEnvironmentId":{"type":"string"},"environmentName":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"displayName":{"type":"string"},"projectName":{"type":"string"},"organizationName":{"type":"string"},"modules":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]}},"consumes":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]}},"dependencyVersion":{"type":"object","properties":{"name":{"type":"string"}},"required":["name"]},"status":{"type":"string","enum":["incomplete","complete"]},"createdAt":{"type":"string"},"createdBy":{"type":"object","properties":{"name":{"type":"string"},"avatarUrl":{"type":"string"}},"required":["name"]},"consumedBy":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"}},"required":["name"]}}},"required":["id","applicationId","name","description","displayName","projectName","organizationName","dependencyVersion"]},"position":{"type":"object","properties":{"x":{"type":"number"},"y":{"type":"number"}},"required":["x","y"]},"type":{"type":"string"}},"required":["id","data"]},"GraphEdge":{"type":"object","properties":{"id":{"type":"string"},"source":{"type":"string"},"target":{"type":"string"},"animated":{"type":"boolean"},"style":{"type":"object","additionalProperties":{"nullable":true}}},"required":["id","source","target"]},"NodeDetailsResponse":{"type":"object","properties":{"modules":{"type":"array","items":{"$ref":"#/components/schemas/NodeDetailsModuleItem"}},"consumes":{"type":"array","items":{"$ref":"#/components/schemas/NodeDetailsConsumeItem"}}},"required":["modules","consumes"]},"NodeDetailsModuleItem":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]},"NodeDetailsConsumeItem":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]},"SetVersionProblematicBody":{"type":"object","properties":{"environmentId":{"type":"string","description":"Environment ID where the issue occurred"},"reason":{"type":"string","description":"Reason for marking as problematic"}},"required":["environmentId"]},"RemoveVersionProblematicBody":{"type":"object","properties":{"environmentId":{"type":"string","description":"Environment ID to remove the problematic status from"}},"required":["environmentId"]},"VoidResponse":{"type":"object","properties":{"value":{"nullable":true}}},"TagConditionOperator":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/Operator"},"conditions":{"type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/TagConditionValue"},{"$ref":"#/components/schemas/TagConditionOperator"}]}}},"required":["type","conditions"],"description":"Tag conditions"},"Operator":{"type":"string","enum":["AND","OR"]},"TagConditionValue":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/TagChannel"},"operator":{"$ref":"#/components/schemas/ComparisonOperator"},"value":{"anyOf":[{"type":"string"},{"type":"boolean"},{"$ref":"#/components/schemas/ConditionValueWithLabel"},{"type":"array","items":{"type":"string"}}]},"label":{"type":"string"},"isRegex":{"type":"boolean"}},"required":["type","value"]},"TagChannel":{"type":"string","enum":["branch","version","user","isCI","target","gitTag","environment"]},"ComparisonOperator":{"type":"string","enum":["is","is not"]},"ConditionValueWithLabel":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"}},"required":["value","label"]},"ApplicationTag":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"locked":{"type":"boolean"},"applicationVersionId":{"type":"string","nullable":true},"version":{"$ref":"#/components/schemas/ApplicationTagVersion"},"conditions":{"allOf":[{"$ref":"#/components/schemas/TagConditionOperator"},{"nullable":true}]},"publishedAt":{"type":"string"},"downloads":{"type":"number"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"deletedAt":{"type":"string"},"remote_host":{"type":"string"},"remote_entry_url":{"type":"string"},"context":{"$ref":"#/components/schemas/Context"},"author":{"$ref":"#/components/schemas/Author"}},"required":["id","name","applicationVersionId","conditions","createdAt","remote_host","remote_entry_url"]},"ApplicationTagVersion":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"remote_host":{"type":"string","nullable":true},"remote_entry_url":{"type":"string","nullable":true}},"required":["id","name","remote_host","remote_entry_url"]},"TagConditionOptions":{"type":"object","properties":{"branch":{"type":"array","items":{"$ref":"#/components/schemas/ConditionValue"}},"version":{"type":"array","items":{"$ref":"#/components/schemas/ConditionValue"}},"user":{"type":"array","items":{"$ref":"#/components/schemas/ConditionUserValue"}},"isCI":{"type":"array","items":{"$ref":"#/components/schemas/ConditionValue"}}}},"ConditionValue":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"}},"required":["value","label"]},"ConditionUserValue":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"},"avatar":{"type":"string"}},"required":["value","label","avatar"]},"TagConditionVersion":{"type":"object","nullable":true,"properties":{"id":{"type":"string"},"version":{"type":"string"},"remote_host":{"type":"string"}},"required":["id","version","remote_host"]},"UpdateApplicationTagBody":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200,"pattern":"^(?=.*[a-zA-Z0-9])[a-zA-Z0-9_-]+$","description":"Tag name","example":"stable"},"applicationVersionId":{"type":"string","nullable":true,"description":"Application version ID to pin this tag to (null to remove version)","example":"version-uuid"},"conditions":{"$ref":"#/components/schemas/TagConditionOperator"},"locked":{"type":"boolean","description":"Whether this tag is locked (skipped during auto-matching)"}},"required":["name","conditions"]},"RenameApplicationTagBody":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200,"pattern":"^(?=.*[a-zA-Z0-9])[a-zA-Z0-9_-]+$","description":"New tag name","example":"latest"}},"required":["name"]},"TagQueryOptsResponse":{"type":"object","properties":{"versions":{"type":"array","items":{"$ref":"#/components/schemas/TagQueryOptsVersion"}}},"required":["versions"]},"TagQueryOptsVersion":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"ver":{"type":"string"}},"required":["key","value","ver"]},"EnvironmentConditionValue":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"}},"required":["value","label"],"description":"Environment condition value","example":{"value":"main","label":"Main Branch"}},"VersionBasic":{"type":"object","nullable":true,"properties":{"id":{"type":"string"},"name":{"type":"string"},"remote_host":{"type":"string","nullable":true},"remote_entry_url":{"type":"string","nullable":true},"worker_version":{"type":"string"},"snapshot_id":{"type":"string"}},"required":["id","name","remote_host"],"description":"Version basic information","example":{"id":"ver-123","name":"1.0.0","remote_host":"https://app.zephyr-cloud.io","remote_entry_url":"https://app.zephyr-cloud.io/remoteEntry.js"}},"ConditionVersion":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid"},"version":{"type":"string"},"remote_host":{"type":"string"}},"required":["id","version","remote_host"]},"RenameApplicationEnvironmentBody":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200,"pattern":"^(?=.*[a-zA-Z0-9])[a-zA-Z0-9_-]+$","description":"New environment name","example":"staging"}},"required":["name"]},"ModifyCustomDomainBody":{"type":"object","properties":{"customDomain":{"type":"string","description":"Custom domain name to add","example":"app.example.com"}},"required":["customDomain"]},"UpdateEnvVarSetBody":{"type":"object","properties":{"variables":{"type":"object","additionalProperties":{"type":"string"},"description":"Environment variables to set","example":{"API_URL":"https://api.example.com","NODE_ENV":"production"}}},"required":["variables"]},"EnvVarSetResponse":{"type":"object","properties":{"hash":{"type":"string"},"variables":{"type":"object","additionalProperties":{"type":"string"}},"createdAt":{"type":"string","format":"date-time"}},"required":["hash","variables","createdAt"]},"ValidateEnvVarPromotionResponse":{"type":"object","properties":{"isValid":{"type":"boolean"},"issues":{"type":"array","items":{"type":"string"}}},"required":["isValid","issues"]},"ZephyrDependencies":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/ResolvedDependencyWithMetadata"}},"ResolvedDependencyWithMetadata":{"type":"object","properties":{"application_uid":{"type":"string"},"remote_entry_url":{"type":"string"},"default_url":{"type":"string"},"name":{"type":"string"},"library_type":{"type":"string"},"display_name":{"type":"string"},"dependency_type":{"type":"string","enum":["version","tag","environment","wildcard"]},"_resolution_metadata":{"$ref":"#/components/schemas/ResolutionMetadata"}},"required":["application_uid","remote_entry_url","default_url","name","library_type","dependency_type"]},"ResolutionMetadata":{"type":"object","properties":{"source":{"type":"string","enum":["package.json","mfConfig"]},"original_data":{"type":"object","additionalProperties":{"nullable":true}},"resolved_version":{"type":"string"},"resolved_at":{"type":"number"}},"required":["source","original_data","resolved_version","resolved_at"]},"AddEnvironmentMembersResponse":{"type":"object","properties":{"existingUsers":{"type":"array","items":{"$ref":"#/components/schemas/EnvironmentMemberUserItem"}},"existingTeams":{"type":"array","items":{"$ref":"#/components/schemas/EnvironmentMemberTeamItem"}}},"required":["existingUsers","existingTeams"]},"EnvironmentMemberUserItem":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]},"EnvironmentMemberTeamItem":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]},"AddEnvironmentMembersBody":{"type":"object","properties":{"members":{"type":"array","items":{"$ref":"#/components/schemas/AddEnvironmentMemberBody"},"description":"Array of members to add"}},"required":["members"]},"AddEnvironmentMemberBody":{"type":"object","properties":{"userId":{"type":"string","description":"User ID to add"},"teamId":{"type":"string","description":"Team ID to add"}}},"EnvironmentMember":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"deletedAt":{"type":"string","nullable":true,"format":"date-time"},"user":{"$ref":"#/components/schemas/EnvironmentMemberUser"},"team":{"$ref":"#/components/schemas/EnvironmentMemberTeam"}},"required":["id","createdAt","deletedAt"]},"EnvironmentMemberUser":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"email":{"type":"string"},"portrait":{"type":"string","nullable":true},"username":{"type":"string"},"avatarColor":{"type":"string"}},"required":["id","name","email","portrait","username","avatarColor"]},"EnvironmentMemberTeam":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"avatarColor":{"type":"string"}},"required":["id","name","avatarColor"]},"AddEnvironmentMemberOptionsResponse":{"type":"object","properties":{"users":{"type":"array","items":{"$ref":"#/components/schemas/EnvironmentMemberUser"}},"teams":{"type":"array","items":{"$ref":"#/components/schemas/EnvironmentMemberTeam"}}},"required":["users","teams"]},"AvailableOrganization":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Organization unique identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"name":{"type":"string","description":"Organization URL-safe name","example":"zephyr-cloud"},"displayName":{"type":"string","description":"Organization display name","example":"Zephyr Cloud"}},"required":["id","name","displayName"]},"OrganizationDetail":{"allOf":[{"$ref":"#/components/schemas/Organization"},{"type":"object","properties":{"email":{"type":"string","format":"email","pattern":"^[^\\s@]+@[^\\s@.]+(\\.[^\\s@.]+)+$","description":"Organization contact email","example":"contact@zephyr-cloud.io"},"description":{"type":"string","maxLength":1000,"description":"Organization description","example":"A modern cloud deployment platform"},"socialAccounts":{"type":"array","items":{"$ref":"#/components/schemas/UrlLink"},"description":"Social media and website links","example":[{"link":"https://github.com/zephyr-cloud","label":"GitHub"}]},"privacyOptions":{"$ref":"#/components/schemas/PrivacyOptions"},"locationOptions":{"$ref":"#/components/schemas/LocationOptions"},"location":{"type":"string","description":"Organization location (display string)","example":"San Francisco, CA"},"avatarColor":{"type":"string","description":"Organization avatar color","example":"#3B82F6"},"role":{"type":"string","enum":["viewer","editor","admin","owner"],"description":"Current user role in organization","example":"viewer"}},"required":["socialAccounts","privacyOptions","locationOptions"]}]},"UrlLink":{"type":"object","properties":{"link":{"type":"string","format":"uri"},"label":{"type":"string","maxLength":50}},"required":["link","label"]},"PrivacyOptions":{"type":"object","properties":{"isPrivate":{"type":"boolean"}},"required":["isPrivate"],"description":"Organization privacy settings"},"LocationOptions":{"type":"object","properties":{"location":{"type":"string","maxLength":200},"locationVisible":{"type":"boolean"}},"required":["location","locationVisible"],"description":"Organization location settings"},"Organization":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Unique organization identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"name":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"URL-safe unique organization name","example":"zephyr-cloud"},"displayName":{"type":"string","minLength":1,"maxLength":200,"pattern":"^(?=.*[a-zA-Z0-9])[a-zA-Z0-9_.\\-@']+( [a-zA-Z0-9_.\\-@']+)*$","description":"Human-readable organization display name","example":"Zephyr Cloud"},"createdAt":{"type":"string","nullable":true,"format":"date-time","description":"When the organization was created","example":"2025-01-01T00:00:00.000Z"},"updatedAt":{"type":"string","nullable":true,"format":"date-time","description":"When the organization was last updated","example":"2025-06-15T12:30:00.000Z"},"deletedAt":{"type":"string","nullable":true,"format":"date-time","description":"When the organization was soft-deleted (null if not deleted)","example":null},"domains":{"type":"array","items":{"type":"string"},"description":"Verified email domains that can automatically join this organization","example":["@zephyr-cloud.io","@zephyrcloud.com"]},"defaultRole":{"type":"string","enum":["viewer","editor","admin","owner"],"description":"Default role assigned to new members","example":"viewer"},"openMembership":{"type":"boolean","description":"Whether the organization allows open membership","example":false},"subscriptionTier":{"type":"string","enum":["PERSONAL","TEAM","PRO","ENTERPRISE"],"default":"PERSONAL","description":"Current subscription tier","example":"PERSONAL"},"subscriptionOwner":{"type":"boolean","default":true,"description":"Whether this organization owns its subscription","example":true},"subscriptionId":{"type":"string","description":"Stripe subscription identifier","example":"sub_1234567890"}},"required":["id","name","displayName","createdAt","updatedAt","deletedAt","domains","defaultRole","openMembership","subscriptionId"]},"OrganizationSettings":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Organization identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"name":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"URL-safe organization name","example":"zephyr-cloud"},"displayName":{"type":"string","minLength":1,"maxLength":200,"pattern":"^(?=.*[a-zA-Z0-9])[a-zA-Z0-9_.\\-@']+( [a-zA-Z0-9_.\\-@']+)*$","description":"Display name","example":"Zephyr Cloud"},"contactInfo":{"$ref":"#/components/schemas/ContactInfo"},"description":{"type":"string","maxLength":1000,"description":"Organization description","example":"A modern cloud deployment platform"},"socialAccounts":{"type":"array","items":{"$ref":"#/components/schemas/UrlLink"},"description":"Social media and website links","example":[{"link":"https://github.com/zephyr-cloud","label":"GitHub"}]},"privacyOptions":{"$ref":"#/components/schemas/PrivacyOptions"},"locationOptions":{"$ref":"#/components/schemas/LocationOptions"},"countInfo":{"$ref":"#/components/schemas/CountInfo"}},"required":["id","name","displayName","contactInfo","socialAccounts","privacyOptions","locationOptions","countInfo"]},"ContactInfo":{"type":"object","properties":{"email":{"type":"string","format":"email","pattern":"^[^\\s@]+@[^\\s@.]+(\\.[^\\s@.]+)+$","description":"Organization contact email","example":"contact@zephyr-cloud.io"}},"required":["email"]},"CountInfo":{"type":"object","properties":{"projectAmount":{"type":"integer","minimum":0,"description":"Number of projects in the organization","example":5},"applicationAmount":{"type":"integer","minimum":0,"description":"Number of applications in the organization","example":12}},"required":["projectAmount","applicationAmount"]},"OrganizationPublicSettings":{"type":"object","properties":{"displayName":{"type":"string","minLength":1,"maxLength":200,"pattern":"^(?=.*[a-zA-Z0-9])[a-zA-Z0-9_.\\-@']+( [a-zA-Z0-9_.\\-@']+)*$","description":"Display name","example":"Zephyr Cloud"},"email":{"anyOf":[{"type":"string","format":"email","pattern":"^[^\\s@]+@[^\\s@.]+(\\.[^\\s@.]+)+$","description":"Valid email address","example":"user@example.com"},{"type":"string","enum":[""]}],"description":"Contact email (optional)","example":"contact@zephyr-cloud.io"},"description":{"type":"string","maxLength":1000,"description":"Organization description","example":"A modern cloud deployment platform"},"socialAccounts":{"type":"array","items":{"$ref":"#/components/schemas/UrlLink"},"description":"Social media links","example":[]},"privacyOptions":{"$ref":"#/components/schemas/PrivacyOptions"},"locationOptions":{"$ref":"#/components/schemas/LocationOptions"}},"required":["privacyOptions","locationOptions"]},"OrganizationMembershipDomain":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Domain verification record ID","example":"550e8400-e29b-41d4-a716-446655440123"},"domain":{"type":"string","pattern":"^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)+[a-z0-9][a-z0-9-]{0,61}[a-z0-9]$","description":"Normalized domain name (without @)","example":"example.com"},"emailDomain":{"type":"string","description":"Email domain used for membership matching","example":"@example.com"},"status":{"$ref":"#/components/schemas/OrganizationMembershipDomainStatus"},"verificationEmail":{"type":"string","format":"email","pattern":"^[^\\s@]+@[^\\s@.]+(\\.[^\\s@.]+)+$","description":"Email address used for domain ownership verification","example":"it-admin@example.com"},"role":{"type":"string","enum":["viewer","editor"],"description":"Role assigned to auto-joined members for this domain","example":"viewer"},"codeExpiresAt":{"type":"string","nullable":true,"format":"date-time","description":"Current verification code expiry timestamp","example":"2026-03-02T13:10:00.000Z"},"lastSentAt":{"type":"string","nullable":true,"format":"date-time","description":"Timestamp when the latest verification code was sent","example":"2026-03-02T12:55:00.000Z"},"sendCount":{"type":"integer","minimum":0,"description":"Number of verification codes sent in the current tracking window","example":2},"attemptCount":{"type":"integer","minimum":0,"description":"Number of incorrect attempts for the active verification code","example":1},"verifiedAt":{"type":"string","nullable":true,"format":"date-time","description":"Timestamp when domain ownership was verified","example":"2026-03-02T13:00:00.000Z"},"createdAt":{"type":"string","nullable":true,"format":"date-time","description":"When the domain verification record was created","example":"2026-03-02T12:55:00.000Z"},"updatedAt":{"type":"string","nullable":true,"format":"date-time","description":"When the domain verification record was last updated","example":"2026-03-02T13:10:00.000Z"}},"required":["id","domain","emailDomain","status","verificationEmail","role","codeExpiresAt","lastSentAt","sendCount","attemptCount","verifiedAt","createdAt","updatedAt"]},"OrganizationMembershipDomainStatus":{"type":"string","enum":["pending","verified"],"description":"Domain verification status","example":"pending"},"UpsertOrganizationMembershipDomain":{"type":"object","properties":{"domain":{"type":"string","minLength":1,"description":"Domain to verify ownership for (accepts company.com or @company.com)","example":"company.com"},"verificationEmail":{"type":"string","format":"email","pattern":"^[^\\s@]+@[^\\s@.]+(\\.[^\\s@.]+)+$","description":"Email address that belongs to the domain (must end with @domain)","example":"it-admin@company.com"},"role":{"type":"string","enum":["viewer","editor"],"description":"Role assigned to auto-joined members for this domain","example":"viewer"}},"required":["domain","verificationEmail"]},"SendOrganizationMembershipDomainCodeResult":{"type":"object","properties":{"sent":{"type":"boolean","description":"Whether the verification code email was sent","example":true},"status":{"allOf":[{"$ref":"#/components/schemas/OrganizationMembershipDomainStatus"},{"description":"Current domain verification status"}]}},"required":["sent","status"]},"VerifyOrganizationMembershipDomainResult":{"type":"object","properties":{"verified":{"type":"boolean","description":"Whether verification succeeded","example":true},"reason":{"type":"string","enum":["invalid_code","expired","code_not_sent","attempts_exceeded"],"description":"Verification failure reason","example":"expired"},"domain":{"$ref":"#/components/schemas/OrganizationMembershipDomain"}},"required":["verified","domain"]},"VerifyOrganizationMembershipDomain":{"type":"object","properties":{"code":{"type":"string","pattern":"^\\d{6}$","description":"6-digit verification code","example":"482915"}},"required":["code"]},"OrganizationMember":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"User identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"name":{"type":"string","description":"User display name","example":"John Doe"},"email":{"type":"string","format":"email","pattern":"^[^\\s@]+@[^\\s@.]+(\\.[^\\s@.]+)+$","description":"User email address","example":"john@example.com"},"avatarColor":{"type":"string","description":"Hex color code for avatar","example":"#3B82F6"},"userPortrait":{"type":"string","format":"uri","pattern":"^https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_+.~#?&//=]*)$","description":"URL of user profile picture","example":"https://cdn.example.com/avatars/john.png"},"lastActivity":{"type":"string","description":"ISO timestamp of last activity","example":"2025-06-15T12:30:00.000Z"},"is2FAEnabled":{"type":"boolean","description":"Whether two-factor authentication is enabled","example":true},"isPrivate":{"type":"boolean","description":"Whether the member profile is private","example":false},"role":{"type":"string","enum":["viewer","editor","admin","owner"],"description":"Member role in the organization","example":"editor"},"teamAmount":{"type":"integer","minimum":0,"description":"Number of teams the member belongs to","example":3}},"required":["id","name","email","avatarColor","lastActivity","isPrivate","role","teamAmount"]},"CreateOrganization":{"type":"object","properties":{"name":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"URL-safe unique organization name (optional, generated from displayName)","example":"zephyr-cloud"},"displayName":{"type":"string","minLength":1,"maxLength":200,"pattern":"^(?=.*[a-zA-Z0-9])[a-zA-Z0-9_.\\-@']+( [a-zA-Z0-9_.\\-@']+)*$","description":"Human-readable organization display name","example":"Zephyr Cloud"},"email":{"type":"string","format":"email","pattern":"^[^\\s@]+@[^\\s@.]+(\\.[^\\s@.]+)+$","description":"Organization email address (optional)","example":"contact@zephyr-cloud.io"},"acceptedBy":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"UUID of the user who accepted the terms of service","example":"550e8400-e29b-41d4-a716-446655440000"}},"required":["displayName","acceptedBy"]},"UpdateOrganization":{"type":"object","properties":{"name":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"New URL-safe organization name","example":"new-org-name"},"displayName":{"type":"string","minLength":1,"maxLength":200,"pattern":"^(?=.*[a-zA-Z0-9])[a-zA-Z0-9_.\\-@']+( [a-zA-Z0-9_.\\-@']+)*$","description":"New display name","example":"New Organization Name"},"openMembership":{"type":"boolean","description":"Whether the organization allows open membership","example":true}}},"ChangeOrganizationName":{"type":"object","properties":{"name":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"New organization name (URL-safe slug)","example":"new-org-name"}},"required":["name"]},"OrganizationCounters":{"type":"object","properties":{"organizationIsPrivate":{"type":"boolean","description":"Whether the organization is private","example":false},"projects":{"type":"integer","minimum":0,"description":"Number of projects","example":5},"applications":{"type":"integer","minimum":0,"description":"Number of applications","example":12}},"required":["organizationIsPrivate","projects","applications"]},"OrganizationApplicationListItem":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Application unique identifier"},"name":{"type":"string","description":"Application name","example":"web-dashboard"},"description":{"type":"string","nullable":true,"description":"Application description"},"isPrivate":{"type":"boolean","description":"Whether the application is private","example":false},"author":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"email":{"type":"string"},"portrait":{"type":"string","nullable":true},"username":{"type":"string"},"avatarColor":{"type":"string"}},"required":["id","name","email","username","avatarColor"],"description":"Author of the latest version"},"updatedAt":{"type":"string","description":"Last update timestamp"},"deletedAt":{"type":"string","description":"Deletion timestamp"},"organization":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"displayName":{"type":"string"}},"required":["id","name","displayName"],"description":"Organization information"},"project":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"displayName":{"type":"string"},"visibility":{"type":"string"},"updatedAt":{"type":"string"},"deletedAt":{"type":"string"}},"required":["id","name","displayName","visibility","updatedAt","deletedAt"],"description":"Project information"},"counters":{"type":"object","properties":{"remotes":{"type":"number"}},"required":["remotes"],"description":"Application counters"},"organizationIsPrivate":{"type":"boolean","description":"Whether the organization is private"},"projectIsPrivate":{"type":"boolean","description":"Whether the project is private"}},"required":["id","name","isPrivate","updatedAt","deletedAt","organization","project","counters"]},"ApplicationRef":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Valid UUID v4 identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"name":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name (supports scoped packages like @scope/name)","example":"@myorg/web-dashboard"}},"required":["id","name"],"description":"Application reference","example":{"id":"550e8400-e29b-41d4-a716-446655440001","name":"web-dashboard"}},"OrganizationSideBarProjectListItem":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Project unique identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"name":{"type":"string","description":"Project URL-safe name","example":"my-project"},"displayName":{"type":"string","minLength":1,"maxLength":100,"pattern":"^(?=[\\x20-\\x7F]+$)(?=.*[a-zA-Z0-9])[a-zA-Z0-9_\\-']+(\\s[a-zA-Z0-9_\\-']+)*\\s*$","description":"Project display name","example":"My Project"}},"required":["id","name","displayName"]},"ProjectSideBarSearchItem":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Valid UUID v4 identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"name":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project unique name (URL-safe slug)","example":"main-app"},"displayName":{"type":"string","minLength":1,"maxLength":100,"pattern":"^(?=[\\x20-\\x7F]+$)(?=.*[a-zA-Z0-9])[a-zA-Z0-9_\\-']+(\\s[a-zA-Z0-9_\\-']+)*\\s*$","description":"Project display name","example":"Main Application"},"applications":{"type":"array","items":{"$ref":"#/components/schemas/SidebarSearchApplication"},"description":"Applications belonging to this project"}},"required":["id","name","displayName","applications"]},"SidebarSearchApplication":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Valid UUID v4 identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"name":{"type":"string","description":"Application slug name","example":"my-app"},"displayName":{"type":"string","description":"Application display name","example":"My App"}},"required":["id","name","displayName"]},"ProjectSideBarListItem":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Valid UUID v4 identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"name":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project unique name (URL-safe slug)","example":"main-app"},"displayName":{"type":"string","minLength":1,"maxLength":100,"pattern":"^(?=[\\x20-\\x7F]+$)(?=.*[a-zA-Z0-9])[a-zA-Z0-9_\\-']+(\\s[a-zA-Z0-9_\\-']+)*\\s*$","description":"Project display name","example":"Main Application"}},"required":["id","name","displayName"]},"ProjectApplication":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Valid UUID v4 identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"name":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name (supports scoped packages like @scope/name)","example":"@myorg/web-dashboard"},"displayName":{"type":"string","minLength":1,"maxLength":200}},"required":["id","name"],"description":"Application within a project","example":{"id":"550e8400-e29b-41d4-a716-446655440001","name":"web-dashboard","displayName":"Web Dashboard"}},"ProjectContributorResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Valid UUID v4 identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"userId":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Valid UUID v4 identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"teamId":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Valid UUID v4 identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"name":{"type":"string","nullable":true},"username":{"type":"string","nullable":true},"email":{"type":"string"},"role":{"type":"string","enum":["viewer","editor","admin","owner"],"description":"User role within the project","example":"editor"},"avatarColor":{"type":"string","nullable":true},"members":{"type":"number"},"type":{"type":"string","enum":["member","team"]},"organizationIsPrivate":{"type":"boolean"},"organizationId":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Valid UUID v4 identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"projectIsPrivate":{"type":"boolean"},"portrait":{"type":"string","nullable":true}},"required":["id","name","role","type","organizationIsPrivate","organizationId","projectIsPrivate"]},"UniqueNameResponse":{"type":"object","properties":{"value":{"type":"string","description":"Generated unique project name","example":"my-project-k8j2m5"}},"required":["value"]},"UpdateProjectNameBody":{"type":"object","properties":{"name":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"New project URL-safe name (slug)","example":"new-project-name"}},"required":["name"]},"UpdateProjectById":{"type":"object","properties":{"displayName":{"type":"string","minLength":3,"maxLength":255,"description":"Updated display name"},"name":{"type":"string","minLength":3,"maxLength":255,"description":"Updated project slug name"},"visibility":{"type":"string","enum":["public","private"],"description":"Updated visibility setting"}}},"BatchResultResponse":{"type":"object","properties":{"count":{"type":"integer","minimum":0,"description":"Number of records affected","example":2}},"required":["count"]},"NewProjectContributor":{"type":"object","properties":{"type":{"type":"string","enum":["member","team"],"description":"Contributor type","example":"member"},"ids":{"type":"array","items":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Valid UUID v4 identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"minItems":1,"description":"Array of user or team IDs to add","example":["550e8400-e29b-41d4-a716-446655440000"]}},"required":["type","ids"]},"UpdateProjectContributor":{"type":"object","properties":{"type":{"type":"string","enum":["member","team"],"description":"Contributor type","example":"member"},"role":{"type":"string","enum":["viewer","editor","admin","owner"],"description":"New role for the contributor","example":"editor"}},"required":["type","role"]},"ProjectAuditLogResponse":{"type":"object","properties":{"logs":{"type":"array","items":{"$ref":"#/components/schemas/ProjectAuditLogEntry"},"description":"List of audit log entries"},"pageMetadata":{"type":"object","properties":{"total":{"type":"number","description":"Total number of entries"},"page":{"type":"number","description":"Current page"},"perPage":{"type":"number","description":"Entries per page"},"totalPages":{"type":"number","description":"Total number of pages"}},"required":["total","page","perPage","totalPages"],"description":"Pagination metadata"}},"required":["logs"]},"ProjectAuditLogEntry":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Audit log entry ID","example":"550e8400-e29b-41d4-a716-446655440000"},"type":{"$ref":"#/components/schemas/ProjectAuditLogType"},"action":{"$ref":"#/components/schemas/ProjectAuditLogAction"},"result":{"$ref":"#/components/schemas/ProjectAuditLogResult"},"message":{"type":"string","description":"Audit log message","example":"Updated project settings"},"oldData":{"type":"object","nullable":true,"additionalProperties":{"nullable":true},"description":"Data before the change"},"newData":{"type":"object","nullable":true,"additionalProperties":{"nullable":true},"description":"Data after the change"},"author":{"$ref":"#/components/schemas/ProjectAuditLogAuthor"},"createdAt":{"type":"string","format":"date-time","description":"When the action occurred"},"applicationName":{"type":"string","nullable":true,"description":"Application name (present for application-level log entries)"}},"required":["id","type","action","result","message","author","createdAt"]},"ProjectAuditLogType":{"type":"string","enum":["collaborators","settings","integration","environment","deployment","variables","dependencies","tag","tag-condition","environment-members","version","application"],"description":"Type of audit log entry"},"ProjectAuditLogAction":{"type":"string","enum":["create","update","delete"],"description":"Action performed"},"ProjectAuditLogResult":{"type":"string","enum":["success","failure"],"description":"Result of the action"},"ProjectAuditLogAuthor":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Author user ID","example":"550e8400-e29b-41d4-a716-446655440000"},"name":{"type":"string","description":"Author name","example":"John Doe"},"portrait":{"type":"string","description":"Author portrait URL"},"username":{"type":"string","description":"Author username","example":"johndoe"},"avatarColor":{"type":"string","description":"Author avatar color","example":"#3B82F6"}},"required":["id","name","username","avatarColor"],"description":"User who performed the action"},"ProjectAuditLogAuthorsResponse":{"type":"object","properties":{"entities":{"type":"array","items":{"$ref":"#/components/schemas/ProjectAuditLogAuthor"},"description":"List of unique authors"}},"required":["entities"]},"TargetListResponse":{"type":"object","properties":{"environments":{"$ref":"#/components/schemas/TargetListGroup"},"tags":{"$ref":"#/components/schemas/TargetListGroup"}},"required":["environments","tags"]},"TargetListGroup":{"type":"object","properties":{"entities":{"type":"array","items":{"$ref":"#/components/schemas/TargetListItem"}}},"required":["entities"]},"TargetListItem":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"remote_host":{"type":"string"},"customDnsNames":{"type":"array","items":{"type":"string"}},"deployedVersionAmount":{"type":"number"},"type":{"type":"string","enum":["environment","tag"]},"updatedAt":{"type":"string"},"updatedBy":{"$ref":"#/components/schemas/Author"},"deploymentAttribution":{"$ref":"#/components/schemas/CiDeploymentAttribution"}},"required":["id","name","remote_host","customDnsNames","deployedVersionAmount","type","updatedAt","updatedBy"]},"TargetAuthorsResponse":{"type":"array","items":{"$ref":"#/components/schemas/Author"}},"TargetHistoryResponse":{"type":"object","properties":{"entities":{"type":"array","items":{"$ref":"#/components/schemas/TargetHistoryItem"}},"pageMetadata":{"$ref":"#/components/schemas/PageMetadata"}},"required":["entities","pageMetadata"]},"TargetHistoryItem":{"type":"object","properties":{"id":{"type":"string"},"deployedAt":{"type":"string"},"deployedBy":{"$ref":"#/components/schemas/Author"},"trigger":{"type":"string","enum":["api","release","rollback","rule_match","config_update"]},"deployedBySource":{"type":"string","enum":["recorded","audit_log","inferred_build_author"]},"deploymentAttribution":{"$ref":"#/components/schemas/CiDeploymentAttribution"},"deploymentAuthorization":{"$ref":"#/components/schemas/DeploymentAuthorization"},"beforeReleaseTracking":{"type":"boolean"},"isCurrentDeployment":{"type":"boolean"},"version":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"snapshot_id":{"type":"string"},"remote_host":{"type":"string"},"createdAt":{"type":"string"},"branch":{"type":"string"},"status":{"type":"string"},"user":{"$ref":"#/components/schemas/Author"},"deploymentAttribution":{"$ref":"#/components/schemas/CiDeploymentAttribution"}},"required":["id","name","snapshot_id","remote_host","createdAt","branch","status","user"]}},"required":["id","deployedAt","isCurrentDeployment","version"]},"PageMetadata":{"type":"object","properties":{"total":{"type":"number"},"lastPage":{"type":"number"},"currentPage":{"type":"number"},"perPage":{"type":"number"},"prev":{"type":"number","nullable":true},"next":{"type":"number","nullable":true}},"required":["total","lastPage","currentPage","perPage","prev","next"]},"UserProfile":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"User unique identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"name":{"type":"string","description":"User display name","example":"John Doe"},"username":{"type":"string","description":"User username","example":"johndoe"},"email":{"type":"string","format":"email","description":"User email address","example":"john@example.com"},"emailIsVerified":{"type":"boolean","description":"Whether user email is verified","example":true},"avatarColor":{"type":"string","description":"Avatar background color","example":"#3B82F6"},"userPortrait":{"type":"string","description":"URL to user portrait image"},"description":{"type":"string","description":"User bio/description"},"socialAccounts":{"type":"array","items":{"$ref":"#/components/schemas/UrlLink"},"description":"User social media accounts"},"privacyOptions":{"allOf":[{"$ref":"#/components/schemas/PrivacyOptions"},{"description":"Privacy settings"}]},"locationOptions":{"allOf":[{"$ref":"#/components/schemas/LocationOptions"},{"description":"Location settings"}]},"ownedOrganizations":{"type":"array","items":{"$ref":"#/components/schemas/OwnedOrganization"},"description":"Organizations owned by the user"}},"required":["id","name","username","email","emailIsVerified","avatarColor","ownedOrganizations"]},"OwnedOrganization":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Organization unique identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"name":{"type":"string","description":"Organization URL-safe name","example":"zephyr-cloud"},"displayName":{"type":"string","description":"Organization display name","example":"Zephyr Cloud"}},"required":["id","name","displayName"]},"UpdateProfileBody":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":255,"description":"User display name","example":"John Doe"},"username":{"type":"string","minLength":1,"maxLength":255,"description":"User username","example":"johndoe"},"description":{"type":"string","maxLength":500,"description":"User bio/description"},"userPortrait":{"type":"string","nullable":true,"format":"uri","description":"URL to user portrait image"},"socialAccounts":{"type":"array","items":{"$ref":"#/components/schemas/UrlLink"},"description":"User social media accounts"},"privacyOptions":{"allOf":[{"$ref":"#/components/schemas/PrivacyOptions"},{"description":"Privacy settings"}]},"locationOptions":{"allOf":[{"$ref":"#/components/schemas/LocationOptions"},{"description":"Location settings"}]}}},"UpdateUserResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"User unique identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"name":{"type":"string","description":"User display name"},"username":{"type":"string","description":"User username"},"email":{"type":"string","format":"email","description":"User email address"},"metadata":{"type":"object","additionalProperties":{"nullable":true},"description":"User metadata"},"createdAt":{"type":"string","format":"date-time","description":"User creation timestamp"},"updatedAt":{"type":"string","nullable":true,"format":"date-time","description":"User update timestamp"},"lastAccess":{"type":"string","nullable":true,"format":"date-time","description":"Last access timestamp"}},"required":["id","name","username","email","metadata","createdAt"]},"UpdateUserBody":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":255,"description":"User display name","example":"John Doe"},"username":{"type":"string","minLength":1,"maxLength":255,"description":"User username","example":"johndoe"},"portrait":{"type":"string","nullable":true,"description":"User portrait image (URL or base64)"},"emails":{"type":"array","items":{"type":"string","format":"email"},"description":"Additional user email addresses","example":["user@example.com"]},"removePortrait":{"type":"boolean","description":"Remove current portrait when true","example":false},"description":{"type":"string","maxLength":500,"description":"User bio/description"},"socialAccounts":{"type":"array","items":{"$ref":"#/components/schemas/UrlLink"},"description":"User social media accounts"}}},"UserOrganization":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Organization unique identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"name":{"type":"string","description":"Organization URL-safe name","example":"zephyr-cloud"},"displayName":{"type":"string","description":"Organization display name","example":"Zephyr Cloud"},"role":{"type":"string","description":"User role in the organization","example":"admin"}},"required":["id","name","displayName","role"]},"CurrentUser":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"User unique identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"email":{"type":"string","format":"email","description":"User email address","example":"john@example.com"},"name":{"type":"string","description":"User display name","example":"John Doe"},"username":{"type":"string","description":"User username","example":"johndoe"},"avatarColor":{"type":"string","description":"Avatar background color","example":"#3B82F6"},"portrait":{"type":"string","nullable":true,"description":"URL to user portrait image"},"description":{"type":"string","description":"User bio/description"},"socialAccounts":{"type":"array","items":{"$ref":"#/components/schemas/UrlLink"},"description":"User social media accounts"},"theme":{"type":"string","description":"User theme preference","example":"light"},"role":{"type":"string","enum":["user","admin","owner"],"description":"User role"},"createdAt":{"type":"string","format":"date-time","description":"Account creation timestamp"},"updatedAt":{"type":"string","nullable":true,"format":"date-time","description":"Last update timestamp"},"lastAccess":{"type":"string","nullable":true,"format":"date-time","description":"Last access timestamp"},"deletedAt":{"type":"string","nullable":true,"format":"date-time","description":"Deletion timestamp if deleted"},"location":{"type":"object","properties":{"country":{"type":"string"},"city":{"type":"string"}},"required":["country","city"],"description":"User location"},"company":{"type":"string","description":"User company"},"personalEmail":{"type":"string","description":"User personal email"},"webpage":{"type":"string","description":"User webpage"},"isNewUser":{"type":"boolean","description":"Whether this response created the user record during the current upsert"},"openMembershipAutoJoin":{"type":"object","properties":{"autoJoin":{"type":"boolean","description":"Whether automatic open-membership join happened"},"reason":{"type":"string","enum":["no_matching_organization","single_matching_organization","multiple_matching_organizations"],"description":"Open-membership auto-join evaluation result"},"matches":{"type":"array","items":{"type":"object","properties":{"organization":{"type":"string","description":"Organization slug"},"organizationId":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Organization identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"role":{"type":"string","enum":["viewer","editor"],"description":"Auto-join role for this domain"}},"required":["organization","organizationId","role"]},"description":"Organizations that matched the user email domain"}},"required":["autoJoin","reason","matches"],"description":"Open-membership evaluation result for domain-based auto-join"}},"required":["id","email","name","portrait","theme","createdAt","updatedAt","lastAccess","deletedAt"]},"UserAvailableOrganization":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Organization unique identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"name":{"type":"string","description":"Organization URL-safe name","example":"zephyr-cloud"},"displayName":{"type":"string","description":"Organization display name","example":"Zephyr Cloud"},"subscriptionTier":{"type":"string","enum":["PERSONAL","TEAM","PRO","ENTERPRISE"],"description":"Current subscription tier"},"memberCount":{"type":"integer","minimum":0,"description":"Number of members in the organization"}},"required":["id","name","displayName","memberCount"]},"UserProjectListItem":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Project ID","example":"550e8400-e29b-41d4-a716-446655440000"},"name":{"type":"string","description":"Project name"},"displayName":{"type":"string","description":"Project display name"},"applications":{"type":"array","items":{"$ref":"#/components/schemas/UserProjectApplicationItem"},"description":"Project applications"},"contributors":{"type":"array","items":{"$ref":"#/components/schemas/UserProjectContributor"},"description":"Project contributors"},"visibility":{"type":"string","enum":["public","private"],"description":"Project visibility"},"deletedAt":{"type":"string","format":"date-time","description":"Deletion timestamp"},"updatedAt":{"type":"string","format":"date-time","description":"Update timestamp"},"authorId":{"type":"string","description":"Author user ID"},"author":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"],"description":"Author info"},"counters":{"type":"object","properties":{"applications":{"type":"number"},"remotes":{"type":"number"}},"description":"Project counters"},"tags":{"type":"array","items":{"type":"string"},"description":"Project tags"},"description":{"type":"string","description":"Project description"},"organization":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"],"description":"Organization info"}},"required":["id","name","displayName","visibility","deletedAt","updatedAt","authorId","author","counters","tags","organization"]},"UserProjectApplicationItem":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]},"UserProjectContributor":{"type":"object","properties":{"id":{"type":"string","description":"Contributor ID"},"name":{"type":"string","description":"Contributor name"},"type":{"type":"string","description":"Contributor type"},"avatarColor":{"type":"string","description":"Avatar color"},"username":{"type":"string","description":"Contributor username"}},"required":["id","name","type","avatarColor"]},"UserApplicationListItem":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Application ID","example":"550e8400-e29b-41d4-a716-446655440000"},"name":{"type":"string","description":"Application name"},"description":{"type":"string","description":"Application description"},"contributors":{"type":"array","items":{"$ref":"#/components/schemas/ApplicationContributor"},"description":"Application contributors"},"organization":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"displayName":{"type":"string"}},"required":["id","name","displayName"],"description":"Organization info"},"project":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"displayName":{"type":"string"},"visibility":{"type":"string","enum":["public","private"]},"updatedAt":{"type":"string","format":"date-time"},"deletedAt":{"type":"string","format":"date-time"},"contributors":{"type":"array","items":{"$ref":"#/components/schemas/ApplicationContributor"}}},"required":["id","name","displayName","visibility","updatedAt","deletedAt","contributors"],"description":"Project info"},"tags":{"type":"array","items":{"type":"string"},"description":"Application tags"},"deletedAt":{"type":"string","format":"date-time","description":"Deletion timestamp"},"updatedAt":{"type":"string","format":"date-time","description":"Update timestamp"},"counters":{"type":"object","properties":{"remotes":{"type":"number"}},"description":"Application counters"}},"required":["id","name","description","contributors","organization","project","tags","deletedAt","updatedAt","counters"]},"ApplicationContributor":{"type":"object","properties":{"id":{"type":"string","description":"Contributor ID"},"name":{"type":"string","description":"Contributor name"},"avatarColor":{"type":"string","description":"Avatar color"},"portrait":{"type":"string","description":"Portrait URL"},"username":{"type":"string","description":"Contributor username"},"email":{"type":"string","description":"Contributor email"},"lastUpdateAt":{"type":"string","nullable":true,"format":"date-time","description":"Last update timestamp"}},"required":["id","name","lastUpdateAt"]},"LinkedIdentity":{"type":"object","properties":{"connection":{"type":"string","description":"Connection type","example":"google-oauth2"},"user_id":{"type":"string","description":"User ID in the identity provider","example":"123456789"},"provider":{"type":"string","description":"Identity provider","example":"google-oauth2"},"isSocial":{"type":"boolean","description":"Whether this is a social connection","example":true},"profileData":{"type":"object","additionalProperties":{"nullable":true},"description":"Profile data from provider"}},"required":["connection","user_id","provider","isSocial"]},"StartGitProviderIdentityLinkResponse":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"Authorization URL for linking the selected Git provider"}},"required":["url"]},"StartGitProviderIdentityLinkBody":{"type":"object","properties":{"provider":{"$ref":"#/components/schemas/GitProviderIdentityProvider"},"gitlabBaseUrl":{"type":"string","format":"uri","description":"GitLab instance origin for direct GitLab OAuth. Defaults to configured GitLab.com.","example":"https://gitlab.example.com"},"gitlabClientId":{"type":"string","minLength":1,"maxLength":255,"description":"User-scoped OAuth application client ID for the selected GitLab instance.","example":"d6f511e6d2cad81fa55d05c8442644d5c10e24f59196c6ecbe605fda12e919eb"},"gitlabClientSecret":{"type":"string","minLength":1,"maxLength":2000,"description":"User-scoped OAuth application client secret for the selected GitLab instance."},"returnTo":{"type":"string","maxLength":500,"pattern":"^\\/(?![\\\\/]).*$","default":"/profile/settings/git-providers/","description":"Frontend-relative path to return to after linking","example":"/profile/settings/git-providers/"}},"required":["provider"]},"GitProviderIdentityProvider":{"type":"string","enum":["github","gitlab"],"description":"Git provider to link","example":"github"},"UnlinkGitProviderIdentitySuccess":{"type":"object","properties":{"success":{"type":"boolean"}},"required":["success"]},"UnlinkGitProviderIdentityBody":{"type":"object","properties":{"provider":{"allOf":[{"$ref":"#/components/schemas/GitProviderIdentityProvider"},{"description":"Git provider to unlink","example":"gitlab"}]},"issuer":{"type":"string","format":"uri","description":"Provider issuer/origin for the identity","example":"https://gitlab.example.com"},"providerSubject":{"type":"string","minLength":1,"maxLength":255,"description":"Provider user ID for the identity","example":"123456789"}},"required":["provider","issuer","providerSubject"]},"SetPrimaryAccountSuccess":{"type":"object","properties":{"success":{"type":"boolean"}},"required":["success"]},"PaginatedVersionListResponse":{"type":"object","properties":{"entities":{"type":"array","items":{"$ref":"#/components/schemas/VersionListItem"}},"pageMetadata":{"$ref":"#/components/schemas/VersionPageMetadata"}},"required":["entities","pageMetadata"]},"VersionListItem":{"type":"object","properties":{"id":{"type":"string"},"snapshot_id":{"type":"string"},"application_uid":{"type":"string"},"remote_host":{"type":"string"},"remote_entry_url":{"type":"string","nullable":true},"createdAt":{"type":"string"},"dependencyVersion":{"$ref":"#/components/schemas/DependencyVersion"},"user":{"$ref":"#/components/schemas/VersionAuthor"},"status":{"type":"string"},"environments":{"type":"array","items":{"type":"string"}},"tags":{"type":"array","items":{"type":"string"}}},"required":["id","snapshot_id","application_uid","remote_host","remote_entry_url","createdAt","dependencyVersion","user","status"]},"DependencyVersion":{"type":"object","properties":{"id":{"type":"number"},"name":{"type":"string"},"major":{"type":"number"},"minor":{"type":"number"},"patch":{"type":"number"},"branch":{"type":"string"},"username":{"type":"string"},"increment":{"type":"number"},"isCI":{"type":"boolean"},"environment":{"type":"string","nullable":true},"platform":{"type":"string","nullable":true},"gitTags":{"type":"array","items":{"type":"string"}},"createdAt":{"type":"string"}},"required":["id","name","major","minor","patch","branch","username","increment","isCI","environment","platform","gitTags","createdAt"]},"VersionAuthor":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"avatar_url":{"type":"string","nullable":true}},"required":["id","name","email"]},"VersionPageMetadata":{"type":"object","properties":{"total":{"type":"number"},"lastPage":{"type":"number"},"currentPage":{"type":"number"},"perPage":{"type":"number"},"prev":{"type":"number","nullable":true},"next":{"type":"number","nullable":true}},"required":["total","lastPage","currentPage","perPage","prev","next"]},"Team":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Team unique identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"name":{"type":"string","description":"Team name","example":"Frontend Team"},"role":{"type":"string","enum":["maintainer","member"],"description":"Role of a user within a team","example":"member"},"members":{"type":"integer","minimum":0,"description":"Number of members in the team","example":5},"avatarColor":{"type":"string","description":"Avatar color hex code","example":"#4ECDC4"}},"required":["id","name","role","members","avatarColor"]},"CreateTeam":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":30,"description":"Team name","example":"Frontend Team"}},"required":["name"]},"OrganizationTeam":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Team unique identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"name":{"type":"string","description":"Team name","example":"Frontend Team"},"avatarColor":{"type":"string","description":"Avatar color hex code","example":"#4ECDC4"},"authorId":{"type":"string","format":"uuid","description":"Author user ID","example":"550e8400-e29b-41d4-a716-446655440001"},"author":{"$ref":"#/components/schemas/TeamAuthor"},"memberCount":{"type":"integer","minimum":0,"description":"Number of members in the team","example":5},"role":{"type":"string","enum":["maintainer","member"],"description":"Role of a user within a team","example":"member"}},"required":["id","name","avatarColor","authorId","author","memberCount","role"]},"TeamAuthor":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Author user ID","example":"550e8400-e29b-41d4-a716-446655440000"},"name":{"type":"string","nullable":true,"description":"Author name","example":"John Doe"}},"required":["id","name"]},"TeamDetails":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Team unique identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"name":{"type":"string","description":"Team name","example":"Frontend Team"},"members":{"type":"array","items":{"$ref":"#/components/schemas/TeamMember"},"description":"List of team members"},"authorId":{"type":"string","nullable":true,"format":"uuid","description":"Team author user ID","example":"550e8400-e29b-41d4-a716-446655440001"},"author":{"allOf":[{"$ref":"#/components/schemas/TeamAuthor"},{"nullable":true}]},"organizationId":{"type":"string","nullable":true,"format":"uuid","description":"Organization ID","example":"550e8400-e29b-41d4-a716-446655440002"}},"required":["id","name","members"]},"TeamMember":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Team user record ID","example":"550e8400-e29b-41d4-a716-446655440000"},"user":{"$ref":"#/components/schemas/TeamMemberUser"},"role":{"type":"string","enum":["maintainer","member"],"description":"Role of a user within a team","example":"member"}},"required":["id","role"]},"TeamMemberUser":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"User ID","example":"550e8400-e29b-41d4-a716-446655440000"},"name":{"type":"string","nullable":true,"description":"User display name","example":"John Doe"},"email":{"type":"string","format":"email","description":"User email","example":"john@example.com"},"lastAccess":{"type":"string","nullable":true,"format":"date-time","description":"Last access timestamp","example":"2025-12-17T00:00:00.000Z"}},"required":["id","name","email"]},"UpdateTeam":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":30,"description":"Updated team name","example":"Updated Frontend Team"}},"required":["name"]},"BatchResult":{"type":"object","properties":{"count":{"type":"integer","minimum":0,"description":"Number of affected records","example":3}},"required":["count"]},"AddTeamMembers":{"type":"object","properties":{"membersIds":{"type":"array","items":{"type":"string","format":"uuid"},"minItems":1,"description":"Array of user IDs to add to the team","example":["550e8400-e29b-41d4-a716-446655440001","550e8400-e29b-41d4-a716-446655440002"]}},"required":["membersIds"]},"TeamUser":{"type":"object","properties":{"teamId":{"type":"string","format":"uuid","description":"Team ID","example":"550e8400-e29b-41d4-a716-446655440000"},"userId":{"type":"string","format":"uuid","description":"User ID","example":"550e8400-e29b-41d4-a716-446655440001"},"role":{"type":"string","enum":["maintainer","member"],"description":"Role of a user within a team","example":"member"}},"required":["teamId","userId","role"]},"UpdateMemberRole":{"type":"object","properties":{"role":{"type":"string","enum":["maintainer","member"],"description":"New role for the team member","example":"maintainer"}},"required":["role"]},"SubscriptionWithQuotasAndCouponDto":{"allOf":[{"$ref":"#/components/schemas/SubscriptionDto"},{"type":"object","properties":{"quotas":{"type":"array","items":{"$ref":"#/components/schemas/SimpleMetricQuotaDto"},"description":"List of metric quotas for this subscription"},"coupon":{"$ref":"#/components/schemas/CouponDto"}},"required":["quotas"]}]},"SimpleMetricQuotaDto":{"type":"object","properties":{"metric":{"type":"string","enum":["DEPLOYMENTS","SEATS"],"description":"The subscription metric type","example":"DEPLOYMENTS"},"limit":{"type":"number","nullable":true,"description":"Quota limit (null for unlimited)","example":10000},"overage":{"type":"number","nullable":true,"description":"Allowed overage amount (null for no overage)","example":1000}},"required":["metric","limit","overage"]},"CouponDto":{"type":"object","properties":{"stripeCouponId":{"type":"string","description":"Stripe coupon identifier","example":"ZEPHYR_DISCOUNT_20"},"percentOff":{"type":"number","nullable":true,"description":"Percentage discount (0-100)","example":20},"amountOff":{"type":"number","nullable":true,"description":"Fixed amount discount in cents","example":500},"productIds":{"type":"array","items":{"type":"string"},"description":"Stripe product IDs this coupon applies to","example":["prod_123","prod_456"]},"forcedTier":{"type":"string","enum":["PERSONAL","TEAM","PRO","ENTERPRISE"],"description":"If set, forces subscription to this tier"},"forcedSeats":{"type":"number","description":"If set, forces this number of seats","example":5},"blockedSeats":{"type":"boolean","default":false,"description":"If true, prevents changing seat count","example":false},"forcedCycle":{"type":"string","enum":["MONTHLY","YEARLY"],"description":"If set, forces this billing cycle"}},"required":["stripeCouponId"],"description":"Active coupon applied to this subscription"},"SubscriptionDto":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Unique identifier for the subscription","example":"550e8400-e29b-41d4-a716-446655440000"},"cycle":{"type":"string","enum":["MONTHLY","YEARLY"],"description":"Current billing cycle","example":"MONTHLY"},"tier":{"type":"string","enum":["PERSONAL","TEAM","PRO","ENTERPRISE"],"description":"Current subscription tier","example":"PRO"},"stripeTierPriceId":{"type":"string","description":"Stripe tier price identifier","example":"price_tier_pro_monthly"},"stripeCustomerId":{"type":"string","description":"Stripe customer identifier","example":"cus_1234567890"},"scheduledTier":{"type":"string","nullable":true,"enum":["PERSONAL","TEAM","PRO","ENTERPRISE",null],"description":"Tier scheduled for next billing cycle (if downgrading)","example":null},"scheduleReason":{"type":"string","nullable":true,"enum":["PAYMENT_FAILED","MANUAL_DOWNGRADE",null],"description":"Reason for the scheduled change","example":null},"stripeTierSubscriptionItemId":{"type":"string","description":"Stripe tier subscription item identifier","example":"si_tier_1234567890"},"stripeTierProductId":{"type":"string","description":"Stripe tier product identifier","example":"prod_tier_pro"},"stripeSubscriptionId":{"type":"string","description":"Stripe subscription identifier","example":"sub_1234567890"},"stripeScheduleId":{"type":"string","nullable":true,"description":"Stripe schedule identifier (for scheduled changes)","example":null},"invitedOrgIds":{"type":"array","items":{"type":"string"},"description":"IDs of organizations invited to share this subscription","example":[]},"cancelledAt":{"type":"string","nullable":true,"format":"date-time","description":"Date when subscription was cancelled (null if active)","example":null},"nextBillingAt":{"type":"string","format":"date-time","description":"Next billing date","example":"2025-02-17T00:00:00.000Z"},"lastInvoicedAt":{"type":"string","format":"date-time","description":"Last invoice date","example":"2025-01-17T00:00:00.000Z"},"startedAt":{"type":"string","format":"date-time","description":"Subscription start date","example":"2024-01-17T00:00:00.000Z"}},"required":["id","cycle","tier","stripeTierPriceId","stripeCustomerId","scheduledTier","scheduleReason","stripeTierSubscriptionItemId","stripeTierProductId","stripeSubscriptionId","stripeScheduleId","invitedOrgIds","cancelledAt","nextBillingAt","lastInvoicedAt","startedAt"]},"ChangeSubscriptionRequest":{"type":"object","properties":{"newTier":{"type":"string","enum":["PERSONAL","TEAM","PRO","ENTERPRISE"],"description":"The new subscription tier to change to","example":"PRO"},"newBillingCycle":{"type":"string","enum":["MONTHLY","YEARLY"],"description":"The new billing cycle","example":"MONTHLY"},"stripePaymentMethodId":{"type":"string","description":"Stripe payment method ID for billing","example":"pm_1234567890"},"amounts":{"$ref":"#/components/schemas/NonRecurringItemsAmounts"},"overages":{"$ref":"#/components/schemas/SubscriptionMetricOverages"},"coupon":{"type":"string","description":"Coupon code to apply to this change","example":"ZEPHYR20"}},"required":["newTier","newBillingCycle"]},"NonRecurringItemsAmounts":{"type":"object","properties":{"SEATS":{"type":"number","minimum":1,"description":"Number of seats to provision","example":5}},"description":"Non-recurring metric amounts (e.g., seats)"},"SubscriptionMetricOverages":{"type":"object","properties":{"DEPLOYMENTS":{"type":"number","nullable":true,"minimum":0,"description":"Deployment overage limit (null means unlimited)","example":5000}},"description":"Recurring metric overage configurations"},"UpdateRecurringQuotaBody":{"type":"object","properties":{"overage":{"type":"number","nullable":true,"minimum":0,"description":"New overage limit (null means no overage allowed)","example":1000}},"required":["overage"]},"UpdateNonRecurringQuotaBody":{"type":"object","properties":{"limit":{"type":"number","minimum":1,"description":"New quota limit (minimum 1)","example":10},"stripePaymentMethodId":{"type":"string","description":"Stripe payment method ID for billing","example":"pm_1234567890"},"coupon":{"type":"string","description":"Coupon code to apply to this change","example":"ZEPHYR20"}},"required":["limit"]},"UsagesQuotaDto":{"allOf":[{"$ref":"#/components/schemas/UsageQuotaDto"},{"type":"object","properties":{"metric":{"type":"string","enum":["DEPLOYMENTS","SEATS"],"description":"The subscription metric type"}},"required":["metric"]}]},"UsageQuotaDto":{"type":"object","properties":{"limit":{"type":"number","nullable":true,"description":"Quota limit","example":10000},"overage":{"type":"number","nullable":true,"description":"Allowed overage","example":1000},"used":{"type":"number","nullable":true,"description":"Current usage","example":5432}},"required":["limit","overage","used"]},"GraphMetricResultDto":{"type":"object","properties":{"metric":{"type":"string","enum":["DEPLOYMENTS"],"description":"The metric type","example":"DEPLOYMENTS"},"used":{"type":"number","nullable":true,"description":"Usage value for this data point","example":150},"date":{"type":"string","nullable":true,"format":"date-time","description":"Date of this data point","example":"2025-01-15T00:00:00.000Z"}},"required":["metric","used","date"]},"GraphMetricBodyDto":{"type":"object","properties":{"metrics":{"type":"array","nullable":true,"items":{"type":"string","enum":["DEPLOYMENTS"],"description":"Recurring (usage-based) subscription metric","example":"DEPLOYMENTS"},"description":"Metrics to include in the graph","example":["DEPLOYMENTS"]},"start":{"type":"string","format":"date-time","description":"Start date for the graph","example":"2025-01-01T00:00:00.000Z"},"end":{"type":"string","format":"date-time","description":"End date for the graph","example":"2025-01-31T23:59:59.999Z"},"span":{"type":"string","enum":["hour","day","week","month","year"],"default":"day","description":"Time span for aggregation","example":"day"}}},"ChildOrganizationListDto":{"type":"object","properties":{"children":{"type":"array","items":{"$ref":"#/components/schemas/ChildOrganizationDto"},"description":"List of child organizations"},"invites":{"type":"array","items":{"$ref":"#/components/schemas/NameIdDto"},"description":"List of pending invites"}},"required":["children","invites"]},"ChildOrganizationDto":{"type":"object","properties":{"id":{"type":"string","description":"Organization ID","example":"550e8400-e29b-41d4-a716-446655440000"},"name":{"type":"string","description":"Organization name","example":"child-org"},"projectCount":{"type":"number","description":"Number of projects in this organization","example":5},"applicationCount":{"type":"number","description":"Number of applications across all projects","example":12},"userCount":{"type":"number","description":"Number of users in this organization","example":8}},"required":["id","name","projectCount","applicationCount","userCount"]},"NameIdDto":{"type":"object","properties":{"id":{"type":"string","description":"ID","example":"550e8400-e29b-41d4-a716-446655440000"},"name":{"type":"string","description":"Name","example":"organization-name"}},"required":["id","name"]},"InviteChildOrganizationDto":{"type":"object","properties":{"childOrgName":{"type":"string","description":"Name of the organization to invite as a child","example":"child-organization"}},"required":["childOrgName"]},"InviteInformationDto":{"type":"object","properties":{"name":{"type":"string","description":"Parent organization name","example":"parent-org"},"cycle":{"type":"string","enum":["MONTHLY","YEARLY"],"description":"Parent subscription billing cycle","example":"MONTHLY"},"tier":{"type":"string","enum":["PERSONAL","TEAM","PRO","ENTERPRISE"],"description":"Parent subscription tier","example":"ENTERPRISE"},"seatsLimit":{"type":"number","nullable":true,"description":"Parent subscription seats limit","example":50}},"required":["name","cycle","tier","seatsLimit"]},"StripeInvoiceDto":{"type":"object","properties":{"id":{"type":"string","description":"Invoice ID","example":"in_1234567890"},"number":{"type":"string","nullable":true,"description":"Invoice number","example":"INV-0001"},"amount_due":{"type":"number","description":"Amount due in cents","example":9900},"amount_paid":{"type":"number","description":"Amount paid in cents","example":9900},"status":{"type":"string","nullable":true,"enum":["draft","open","paid","uncollectible","void",null],"description":"Invoice status","example":"paid"},"hosted_invoice_url":{"type":"string","nullable":true,"format":"uri","description":"Hosted invoice URL for payment","example":"https://invoice.stripe.com/i/..."},"invoice_pdf":{"type":"string","nullable":true,"format":"uri","description":"Invoice PDF download URL","example":"https://pay.stripe.com/invoice/.../pdf"},"lines":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/StripeInvoiceLineItemDto"},"description":"Invoice line items"}},"required":["data"],"description":"List of line items"},"created":{"type":"number","description":"Unix timestamp of creation","example":1704067200},"period_start":{"type":"number","description":"Start of billing period (unix timestamp)","example":1704067200},"period_end":{"type":"number","description":"End of billing period (unix timestamp)","example":1706745600},"customer":{"nullable":true,"description":"Customer ID","example":"cus_1234567890"},"subscription":{"nullable":true,"description":"Subscription ID (null for one-off invoices)","example":"sub_1234567890"}},"required":["id","amount_due","amount_paid","lines","created","period_start","period_end"]},"StripeInvoiceLineItemDto":{"type":"object","properties":{"id":{"type":"string","description":"Line item ID","example":"il_1234567890"},"amount":{"type":"number","description":"Line item amount in cents","example":2000},"description":{"type":"string","nullable":true,"description":"Line item description","example":"Pro Plan (Monthly)"},"quantity":{"type":"number","nullable":true,"description":"Quantity for this line item","example":1},"currency":{"type":"string","description":"Currency code","example":"usd"}},"required":["id","amount","currency"]},"StripePaymentMethodDto":{"type":"object","properties":{"id":{"type":"string","description":"Payment method ID","example":"pm_1234567890"},"type":{"type":"string","description":"Payment method type","example":"card"},"card":{"$ref":"#/components/schemas/StripePaymentMethodCardDto"},"billing_details":{"$ref":"#/components/schemas/StripeBillingDetailsDto"}},"required":["id","type","billing_details"]},"StripePaymentMethodCardDto":{"type":"object","properties":{"brand":{"type":"string","description":"Card brand (visa, mastercard, amex, etc.)","example":"visa"},"last4":{"type":"string","description":"Last 4 digits of card number","example":"4242"},"exp_month":{"type":"number","description":"Card expiration month","example":12},"exp_year":{"type":"number","description":"Card expiration year","example":2025},"funding":{"type":"string","description":"Card funding type (credit, debit, prepaid, unknown)","example":"credit"},"country":{"type":"string","nullable":true,"description":"Card issuing country","example":"US"}},"required":["brand","last4","exp_month","exp_year","funding"],"description":"Card details (present if type is \"card\")"},"StripeBillingDetailsDto":{"type":"object","properties":{"name":{"type":"string","nullable":true,"description":"Cardholder name","example":"John Doe"},"email":{"type":"string","nullable":true,"description":"Cardholder email","example":"john@example.com"}},"description":"Billing details"},"StripePriceDto":{"type":"object","properties":{"id":{"type":"string","description":"Price ID","example":"price_1234567890"},"active":{"type":"boolean","description":"Whether price is currently active","example":true},"currency":{"type":"string","description":"Three-letter ISO currency code","example":"usd"},"unit_amount":{"type":"number","nullable":true,"description":"Unit amount in cents (null for tiered pricing)","example":2000},"recurring":{"type":"object","nullable":true,"properties":{"interval":{"type":"string","enum":["day","month","week","year"],"description":"Billing interval","example":"month"},"interval_count":{"type":"number","description":"Number of intervals between billings","example":1},"usage_type":{"type":"string","enum":["licensed","metered"],"description":"Usage type (licensed for fixed, metered for usage-based)","example":"metered"},"meter":{"type":"string","nullable":true,"description":"Stripe meter ID for metered pricing","example":"mtr_1234567890"}},"required":["interval","interval_count","usage_type"],"description":"Recurring billing configuration (null for one-time prices)"},"tiers":{"type":"array","items":{"$ref":"#/components/schemas/StripePriceTierDto"},"description":"Tiered pricing configuration (for volume/graduated pricing)"},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"Set of key-value pairs for price metadata","example":{"tier":"PRO","cycle":"MONTHLY","metric":"DEPLOYMENTS","version":"1"}},"product":{"nullable":true,"description":"Product ID this price belongs to","example":"prod_1234567890"}},"required":["id","active","currency","metadata"]},"StripePriceTierDto":{"type":"object","properties":{"flat_amount":{"type":"number","nullable":true,"description":"Flat amount for this tier in cents","example":0},"unit_amount":{"type":"number","nullable":true,"description":"Per-unit amount for this tier in cents (integer)","example":10},"unit_amount_decimal":{"type":"string","nullable":true,"description":"Per-unit amount for this tier in cents (string, for fractional cents like \"0.1\")","example":"0.1"},"up_to":{"type":"number","nullable":true,"description":"Upper bound of this tier (null for infinity)","example":10000}}},"StripeSubscriptionItemDto":{"type":"object","properties":{"id":{"type":"string","description":"Subscription item ID","example":"si_1234567890"},"subscription":{"type":"string","description":"Parent subscription ID","example":"sub_1234567890"},"price":{"allOf":[{"$ref":"#/components/schemas/StripePriceDto"},{"description":"Associated price object"}]},"quantity":{"type":"number","description":"Quantity for this item (for licensed/tiered pricing)","example":5},"created":{"type":"number","description":"Unix timestamp of creation","example":1704067200},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"Subscription item metadata","example":{}}},"required":["id","subscription","price","created"]},"SidePanelApplication":{"type":"object","properties":{"name":{"type":"string","description":"Application name","example":"my-app"},"application_uid":{"type":"string","description":"Unique application identifier","example":"org/project/app"},"remote_host":{"type":"string","nullable":true,"description":"Remote host URL","example":"https://app.zephyr-cloud.io"},"organization":{"$ref":"#/components/schemas/SidePanelOrganization"},"project":{"$ref":"#/components/schemas/SidePanelProject"}},"required":["name","application_uid","remote_host","organization","project"]},"SidePanelOrganization":{"type":"object","properties":{"name":{"type":"string","description":"Organization name","example":"my-org"}},"required":["name"]},"SidePanelProject":{"type":"object","properties":{"name":{"type":"string","description":"Project name","example":"my-project"}},"required":["name"]},"SidePanelResponse":{"type":"object","properties":{"id":{"type":"string","description":"Entity ID"},"name":{"type":"string","description":"Entity name","example":"production"},"author":{"type":"string","description":"Author name","example":"John Doe"},"version":{"type":"string","description":"Version string","example":"1.0.0"},"createdAt":{"type":"string","format":"date-time","description":"Creation timestamp"},"snapshot_id":{"type":"string","description":"Snapshot identifier"},"application_uid":{"type":"string","description":"Application unique identifier"},"remote_host":{"type":"string","nullable":true,"description":"Remote host URL"},"remote_entry_url":{"type":"string","nullable":true,"description":"Remote entry URL"}},"required":["name","version","application_uid","remote_host","remote_entry_url"]},"ZeAppVersion":{"type":"object","nullable":true,"properties":{"id":{"type":"string","description":"Version ID"},"version_id":{"type":"string","description":"Version identifier"},"name":{"type":"string","description":"Application name"},"application_uid":{"type":"string","description":"Application unique identifier"},"snapshot_id":{"type":"string","description":"Snapshot identifier"},"version":{"type":"string","description":"Version string","example":"1.0.0"},"tag":{"type":"string","description":"Tag name"},"env":{"type":"string","description":"Environment name"},"remote_host":{"type":"string","nullable":true,"description":"Remote host URL"},"remote_entry_url":{"type":"string","nullable":true,"description":"Remote entry URL"},"createdAt":{"type":"string","format":"date-time","description":"Creation timestamp"},"author":{"type":"string","description":"Author name"},"remotes":{"type":"array","items":{"$ref":"#/components/schemas/ZeAppRemoteVersion"},"description":"Array of remote version objects"}},"required":["id","version_id","name","application_uid","snapshot_id","version","remote_host","remote_entry_url","createdAt","author"]},"ZeAppRemoteVersion":{"type":"object","properties":{"id":{"type":"string","description":"Remote version ID"},"version_id":{"type":"string","description":"Remote version identifier"},"application":{"$ref":"#/components/schemas/ZeAppRemoteApplication"},"application_uid":{"type":"string","description":"Remote application unique identifier"},"snapshot_id":{"type":"string","description":"Remote snapshot identifier"},"version":{"type":"string","description":"Remote version string","example":"1.0.0"},"remote_host":{"type":"string","nullable":true,"description":"Remote host URL"},"remote_entry_url":{"type":"string","nullable":true,"description":"Remote entry URL"},"createdAt":{"type":"string","format":"date-time","description":"Remote version creation timestamp"},"author":{"type":"string","description":"Remote version author name"},"remotes":{"allOf":[{"$ref":"#/components/schemas/ApplicationVersionRemotes"},{"description":"Nested remotes (raw JSON array from database)"}]}},"required":["id","version_id","application","application_uid","snapshot_id","version","remote_host","remote_entry_url","createdAt","author"]},"ZeAppRemoteApplication":{"type":"object","properties":{"name":{"type":"string","description":"Remote application name"}},"required":["name"]},"SidePanelDeployTarget":{"type":"string","enum":["environment","tag"],"description":"Filter by deploy target type"},"NavigationItem":{"type":"object","properties":{"id":{"type":"string","description":"Item unique identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"name":{"type":"string","description":"Item name","example":"my-organization"}},"required":["id","name"]},"CliTestResponse":{"type":"object","properties":{"message":{"type":"string","description":"Test message","example":"CLI test endpoint working"},"timestamp":{"type":"string","description":"Current timestamp","example":"2024-12-17T12:00:00.000Z"}},"required":["message","timestamp"]},"UserAuthToken":{"type":"object","properties":{"id":{"type":"string","description":"Token unique identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"token":{"type":"string","description":"The token value (only shown on creation)","example":"zephyr_xxxxxxxxxxxxxxxxxxxx"},"name":{"type":"string","description":"Token display name","example":"my-api-token"},"description":{"type":"string","nullable":true,"description":"Token description","example":"Token for CI/CD pipeline"},"userId":{"type":"string","description":"Owner user ID"},"createdAt":{"type":"string","format":"date-time","description":"Creation timestamp"},"expiryAt":{"type":"string","format":"date-time","description":"Expiry timestamp"}},"required":["id","token","name","userId","createdAt","expiryAt"]},"CreateUserTokenRequest":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100,"pattern":"^[a-z0-9_-]+$","description":"Token display name","example":"my-api-token"},"description":{"type":"string","maxLength":500,"description":"Token description","example":"Token for CI/CD pipeline"},"expiryDays":{"type":"number","minimum":1,"description":"Number of days until expiry","example":90}},"required":["name","expiryDays"]},"UpdateUserTokenRequest":{"type":"object","properties":{"description":{"type":"string","maxLength":500,"description":"Updated token description","example":"Updated description"}}},"UpdateUserTokenNameRequest":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100,"pattern":"^[a-z0-9_-]+$","description":"New token name","example":"new-token-name"}},"required":["name"]},"ServerAuthTokenDto":{"type":"object","properties":{"id":{"type":"string","description":"Token unique identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"token":{"type":"string","description":"The token value (only shown on creation)","example":"zephyr_server_xxxxxxxxxxxxxxxxxxxx"},"name":{"type":"string","description":"Token display name","example":"my-server-token"},"description":{"type":"string","description":"Token description","example":"Token for CI/CD pipeline"},"organization":{"type":"string","description":"Organization slug the token belongs to","example":"my-org"},"createdAt":{"type":"string","format":"date-time","description":"Creation timestamp"},"createdBy":{"$ref":"#/components/schemas/UserRef"},"expiryAt":{"type":"string","format":"date-time","description":"Expiry timestamp"}},"required":["id","token","name","description","organization","createdAt","createdBy","expiryAt"]},"UserRef":{"type":"object","nullable":true,"properties":{"id":{"type":"string","description":"User unique identifier"},"name":{"type":"string","description":"User display name"},"email":{"type":"string","format":"email","description":"User email address"},"avatarColor":{"type":"string","description":"User avatar background color"},"portrait":{"type":"string","description":"User portrait/avatar URL"},"username":{"type":"string","description":"User username"}},"required":["id","name","email","avatarColor","portrait","username"],"description":"User who created the token"},"CreateServerAuthTokenDto":{"type":"object","properties":{"organization":{"type":"string","minLength":1,"description":"Organization slug","example":"my-org"},"name":{"type":"string","minLength":1,"maxLength":100,"pattern":"^[a-z0-9_-]+$","description":"Token display name","example":"my-server-token"},"description":{"type":"string","maxLength":500,"description":"Token description","example":"Token for CI/CD pipeline"},"expiryDays":{"type":"number","minimum":1,"description":"Number of days until expiry","example":90}},"required":["organization","name","expiryDays"]},"UpdateServerAuthTokenDto":{"type":"object","properties":{"description":{"type":"string","maxLength":500,"description":"Updated token description","example":"Updated description"}}},"CiTokenExchangeResponse":{"type":"object","properties":{"access_token":{"type":"string","description":"Short-lived Zephyr access token minted for the CI-inferred actor."}},"required":["access_token"]},"CiTokenExchangeRequest":{"type":"object","properties":{"email":{"type":"string","maxLength":320,"description":"Legacy single advisory CI-inferred actor email. Invalid candidates are ignored.","example":"builder@example.com"},"emails":{"type":"array","items":{"type":"string","maxLength":320},"minItems":1,"maxItems":20,"description":"Ordered advisory CI-inferred actor email candidates. Invalid candidates are ignored.","example":["builder@example.com","12345+builder@users.noreply.github.com"]},"provider":{"type":"string","minLength":1,"description":"CI provider that inferred the actor.","example":"github"},"issuer":{"type":"string","minLength":1,"description":"Provider issuer or instance URL. Required for provider identity resolution.","example":"https://github.com"},"providerSubject":{"type":"string","minLength":1,"description":"Provider-stable actor subject, such as GitHub actor ID or GitLab user ID.","example":"1234567"},"username":{"type":"string","minLength":1,"description":"Provider username for observability.","example":"octocat"},"providerActorType":{"type":"string","enum":["user","bot"],"description":"Client-reported Git provider actor classification. Bot actors use the CI token creator for authorization and remain separate deployment attribution.","example":"user"},"source":{"type":"string","minLength":1,"description":"Provider-specific identity source.","example":"oidc"}},"required":["provider"],"anyOf":[{"required":["email"]},{"required":["emails"]},{"required":["issuer","providerSubject"]}]},"CiAuthTokenDto":{"type":"object","properties":{"id":{"type":"string","description":"CI token ID"},"name":{"type":"string","description":"Token display name"},"description":{"type":"string","nullable":true,"description":"Token description"},"organization":{"type":"string","description":"Organization slug"},"createdAt":{"type":"string","format":"date-time","description":"Creation timestamp"},"createdBy":{"$ref":"#/components/schemas/UserRef"},"expiryAt":{"type":"string","nullable":true,"format":"date-time","description":"Expiry timestamp"},"lastUsedAt":{"type":"string","nullable":true,"format":"date-time","description":"Last exchange timestamp"}},"required":["id","name","description","organization","createdAt","createdBy","expiryAt","lastUsedAt"]},"CreatedCiAuthTokenDto":{"allOf":[{"$ref":"#/components/schemas/CiAuthTokenDto"},{"type":"object","properties":{"token":{"type":"string","description":"One-time token value returned only on creation."}},"required":["token"]}]},"CreateCiAuthTokenDto":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100,"pattern":"^[a-z0-9_-]+$","description":"Token display name","example":"gitlab-production"},"description":{"type":"string","maxLength":500,"description":"Token description"},"expiryDays":{"type":"number","minimum":1,"description":"Number of days until expiry","example":90}},"required":["name","expiryDays"]},"OrgDeploymentIntegration":{"allOf":[{"$ref":"#/components/schemas/DeploymentIntegrationValue"},{"type":"object","properties":{"workerVersion":{"type":"string","description":"Worker version"},"organizationId":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Organization ID","example":"550e8400-e29b-41d4-a716-446655440000"},"accountId":{"type":"string","description":"Provider account ID"},"projectName":{"type":"string","description":"Provider project name"}},"required":["organizationId"]}]},"DeploymentIntegrationType":{"type":"string","enum":["worker","pages"]},"DeploymentPlatform":{"type":"string","enum":["cloudflare","aws","netlify","fastly","akamai","kubernetes","zephyr","custom","multi-cdn"]},"DeploymentStatus":{"type":"string","enum":["active","pending","failed","disabled"]},"DeploymentIntegrationPublicConfig":{"anyOf":[{"$ref":"#/components/schemas/CloudflarePublicIntegration"},{"$ref":"#/components/schemas/NetlifyIntegration"},{"$ref":"#/components/schemas/FastlyIntegration"},{"$ref":"#/components/schemas/AkamaiIntegration"},{"$ref":"#/components/schemas/AwsIntegration"},{"$ref":"#/components/schemas/KubernetesIntegration"},{"$ref":"#/components/schemas/CustomIntegration"},{"$ref":"#/components/schemas/MultiCdnIntegration"},{"$ref":"#/components/schemas/ZephyrIntegration"}]},"CloudflarePublicIntegration":{"type":"object","properties":{"platform":{"type":"string","enum":["cloudflare"]},"zone_id":{"type":"string"},"zone_name":{"type":"string"},"account_id":{"type":"string"},"account_name":{"type":"string"},"zoneId":{"type":"string"},"workerName":{"type":"string","minLength":1,"maxLength":63,"pattern":"^[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$","description":"Cloudflare Worker script name. Alphanumeric characters and dashes only. Must be at most 63 characters after the ze- prefix is applied.","example":"ze-worker-for-static-upload"},"kvEnvsNamespaceName":{"type":"string","minLength":1,"maxLength":512,"description":"Cloudflare Workers KV namespace title. Zephyr creates or reuses a namespace with this title.","example":"ze_envs"},"kvSnapshotsNamespaceName":{"type":"string","minLength":1,"maxLength":512,"description":"Cloudflare Workers KV namespace title. Zephyr creates or reuses a namespace with this title.","example":"ze_envs"},"kvFilesNamespaceName":{"type":"string","minLength":1,"maxLength":512,"description":"Cloudflare Workers KV namespace title. Zephyr creates or reuses a namespace with this title.","example":"ze_envs"},"delimiter":{"$ref":"#/components/schemas/Delimiter"}}},"Delimiter":{"type":"string","enum":["-","."]},"NetlifyIntegration":{"type":"object","properties":{"platform":{"type":"string","enum":["netlify"]},"site_id":{"type":"string"},"site_name":{"type":"string"},"api_token":{"type":"string"},"delimiter":{"$ref":"#/components/schemas/Delimiter"}}},"FastlyIntegration":{"type":"object","properties":{"platform":{"type":"string","enum":["fastly"]},"domain":{"type":"string"},"api_token":{"type":"string"},"delimiter":{"$ref":"#/components/schemas/Delimiter"}}},"AkamaiIntegration":{"type":"object","properties":{"platform":{"type":"string","enum":["akamai"]},"domain":{"type":"string"},"contractId":{"type":"string"},"groupId":{"type":"number"},"productId":{"type":"string"},"api_token":{"type":"string"},"delimiter":{"$ref":"#/components/schemas/Delimiter"}}},"AwsIntegration":{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]},"domain":{"type":"string"},"certificateArn":{"type":"string"},"api_key":{"type":"string"}}},"KubernetesIntegration":{"type":"object","properties":{"platform":{"type":"string","enum":["kubernetes"]},"edgeUrl":{"type":"string","format":"uri"},"delimiter":{"$ref":"#/components/schemas/Delimiter"},"jwtSecret":{"type":"string"}},"required":["edgeUrl"]},"CustomIntegration":{"type":"object","properties":{"platform":{"type":"string","enum":["custom"]},"edgeUrl":{"type":"string","format":"uri"},"delimiter":{"$ref":"#/components/schemas/Delimiter"},"code":{"type":"string"},"jwtSecret":{"type":"string"}},"required":["edgeUrl"]},"MultiCdnIntegration":{"type":"object","properties":{"platform":{"type":"string","enum":["multi-cdn"]},"primaryTarget":{"type":"string"},"secondaryTargets":{"type":"array","items":{"type":"string"}}},"required":["primaryTarget","secondaryTargets"]},"ZephyrIntegration":{"type":"object","properties":{"platform":{"type":"string","enum":["zephyr"]}}},"DeploymentConfig":{"anyOf":[{"$ref":"#/components/schemas/CloudflareDeploymentConfig"},{"$ref":"#/components/schemas/NetlifyDeploymentConfig"},{"$ref":"#/components/schemas/FastlyDeploymentConfig"},{"$ref":"#/components/schemas/AkamaiDeploymentConfig"},{"$ref":"#/components/schemas/AwsDeploymentConfig"},{"$ref":"#/components/schemas/KubernetesDeploymentConfig"},{"$ref":"#/components/schemas/CustomDeploymentConfig"},{"nullable":true}]},"CloudflareDeploymentConfig":{"type":"object","properties":{"platform":{"type":"string","enum":["cloudflare"]},"zoneName":{"type":"string"},"accountId":{"type":"string"},"accountName":{"type":"string"},"kvEnvsNamespaceId":{"type":"string"},"kvSnapshotsNamespaceId":{"type":"string"},"kvFilesNamespaceId":{"type":"string"},"kvEnvsNamespaceName":{"type":"string","minLength":1,"maxLength":512,"description":"Cloudflare Workers KV namespace title. Zephyr creates or reuses a namespace with this title.","example":"ze_envs"},"kvSnapshotsNamespaceName":{"type":"string","minLength":1,"maxLength":512,"description":"Cloudflare Workers KV namespace title. Zephyr creates or reuses a namespace with this title.","example":"ze_envs"},"kvFilesNamespaceName":{"type":"string","minLength":1,"maxLength":512,"description":"Cloudflare Workers KV namespace title. Zephyr creates or reuses a namespace with this title.","example":"ze_envs"},"edgeUrl":{"type":"string","format":"uri"},"staticUploadWorkerId":{"type":"string"},"delimiter":{"$ref":"#/components/schemas/Delimiter"}},"required":["zoneName","accountId","accountName","kvEnvsNamespaceId","kvSnapshotsNamespaceId","kvFilesNamespaceId","edgeUrl","staticUploadWorkerId","delimiter"]},"NetlifyDeploymentConfig":{"type":"object","properties":{"platform":{"type":"string","enum":["netlify"]},"edgeUrl":{"type":"string","format":"uri"},"domain":{"type":"string"},"siteId":{"type":"string"},"siteName":{"type":"string"},"accountId":{"type":"string"},"accountName":{"type":"string"},"accountSlug":{"type":"string"},"delimiter":{"$ref":"#/components/schemas/Delimiter"}},"required":["edgeUrl","domain","siteId","delimiter"]},"FastlyDeploymentConfig":{"type":"object","properties":{"platform":{"type":"string","enum":["fastly"]},"edgeUrl":{"type":"string","format":"uri"},"serviceId":{"type":"string"},"delimiter":{"$ref":"#/components/schemas/Delimiter"}},"required":["edgeUrl","serviceId","delimiter"]},"AkamaiDeploymentConfig":{"type":"object","properties":{"platform":{"type":"string","enum":["akamai"]},"edgeUrl":{"type":"string","format":"uri"},"delimiter":{"$ref":"#/components/schemas/Delimiter"},"namespace":{"type":"string"},"tokenName":{"type":"string"},"edge_worker_id":{"type":"string"},"property_id":{"type":"string"}},"required":["edgeUrl","delimiter","namespace","tokenName"]},"AwsDeploymentConfig":{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]},"edgeUrl":{"type":"string","format":"uri"},"delimiter":{"$ref":"#/components/schemas/Delimiter"},"domain_name":{"type":"string"},"s3_bucket_name":{"type":"string"},"acm_certificate_arn":{"type":"string"},"lambda_edge_name":{"type":"string"},"secret_store_name":{"type":"string"},"cloudfront_function_name":{"type":"string"},"lambda_role_name":{"type":"string"},"lambda_edge_policy":{"type":"string"},"ze_envs_name":{"type":"string"},"ze_snapshots_name":{"type":"string"},"s3_bucket_domain_name":{"type":"string"},"cloudfront_oai_path":{"type":"string"},"cloudfront_distribution_id":{"type":"string"},"lambda_role_arn":{"type":"string"},"cloudfront_viewer_function_arn":{"type":"string"}},"required":["edgeUrl","delimiter","domain_name","s3_bucket_name","acm_certificate_arn","lambda_edge_name","secret_store_name","cloudfront_function_name","lambda_role_name","lambda_edge_policy","ze_envs_name","ze_snapshots_name"]},"KubernetesDeploymentConfig":{"type":"object","properties":{"platform":{"type":"string","enum":["kubernetes"]},"edgeUrl":{"type":"string","format":"uri"},"delimiter":{"$ref":"#/components/schemas/Delimiter"}},"required":["edgeUrl","delimiter"]},"CustomDeploymentConfig":{"type":"object","properties":{"platform":{"type":"string","enum":["custom"]},"edgeUrl":{"type":"string","format":"uri"},"delimiter":{"$ref":"#/components/schemas/Delimiter"},"code":{"type":"string"},"jwtSecret":{"type":"string"}},"required":["edgeUrl","delimiter"]},"DeploymentIntegrationValue":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Integration unique identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"name":{"type":"string","description":"Integration name","example":"cloudflare-prod"},"displayName":{"type":"string","description":"Display name for the integration"},"type":{"$ref":"#/components/schemas/DeploymentIntegrationType"},"platform":{"$ref":"#/components/schemas/DeploymentPlatform"},"status":{"$ref":"#/components/schemas/DeploymentStatus"},"enabled":{"type":"boolean","description":"Whether integration is enabled","example":true},"isDefault":{"type":"boolean","description":"Whether this is the default integration","example":false},"isZephyr":{"type":"boolean","description":"Whether this is a Zephyr integration"},"workerVersion":{"type":"string","description":"Worker version","example":"0.1.2"},"workerVersionId":{"type":"string","nullable":true,"description":"Worker version ID"},"createdAt":{"type":"string","format":"date-time","description":"Creation timestamp"},"updatedAt":{"type":"string","format":"date-time","description":"Last update timestamp"},"deletedAt":{"type":"string","nullable":true,"format":"date-time","description":"Soft delete timestamp"},"createdBy":{"type":"string","description":"Creator user ID"},"updatedBy":{"type":"string","description":"Last updater user ID"},"appCount":{"type":"number","description":"Number of apps using this integration"},"integrationConfig":{"$ref":"#/components/schemas/DeploymentIntegrationPublicConfig"},"deploymentConfig":{"$ref":"#/components/schemas/DeploymentConfig"}},"required":["id","name","platform","enabled","isDefault","createdAt","updatedAt"]},"CreateDeploymentIntegration":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100,"description":"Integration name","example":"cloudflare-prod"},"displayName":{"type":"string","description":"Integration display name","example":"Cloudflare Production"},"platform":{"$ref":"#/components/schemas/DeploymentPlatform"},"integrationConfig":{"$ref":"#/components/schemas/DeploymentIntegrationConfig"},"isDefault":{"type":"boolean","default":false,"description":"Set as default integration (will unset other defaults)"}},"required":["name","platform","integrationConfig"]},"DeploymentIntegrationConfig":{"anyOf":[{"$ref":"#/components/schemas/CloudflareIntegration"},{"$ref":"#/components/schemas/NetlifyIntegration"},{"$ref":"#/components/schemas/FastlyIntegration"},{"$ref":"#/components/schemas/AkamaiIntegration"},{"$ref":"#/components/schemas/AwsIntegration"},{"$ref":"#/components/schemas/KubernetesIntegration"},{"$ref":"#/components/schemas/CustomIntegration"},{"$ref":"#/components/schemas/MultiCdnIntegration"},{"$ref":"#/components/schemas/ZephyrIntegration"}]},"CloudflareIntegration":{"type":"object","properties":{"platform":{"type":"string","enum":["cloudflare"]},"zone_id":{"type":"string"},"zone_name":{"type":"string"},"account_id":{"type":"string"},"account_name":{"type":"string"},"api_token":{"type":"string"},"zoneId":{"type":"string"},"apiToken":{"type":"string"},"workerName":{"type":"string","minLength":1,"maxLength":63,"pattern":"^[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$","description":"Cloudflare Worker script name. Alphanumeric characters and dashes only. Must be at most 63 characters after the ze- prefix is applied.","example":"ze-worker-for-static-upload"},"kvEnvsNamespaceName":{"type":"string","minLength":1,"maxLength":512,"description":"Cloudflare Workers KV namespace title. Zephyr creates or reuses a namespace with this title.","example":"ze_envs"},"kvSnapshotsNamespaceName":{"type":"string","minLength":1,"maxLength":512,"description":"Cloudflare Workers KV namespace title. Zephyr creates or reuses a namespace with this title.","example":"ze_envs"},"kvFilesNamespaceName":{"type":"string","minLength":1,"maxLength":512,"description":"Cloudflare Workers KV namespace title. Zephyr creates or reuses a namespace with this title.","example":"ze_envs"},"delimiter":{"$ref":"#/components/schemas/Delimiter"}}},"OAuthAuthorizeUrl":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"Cloudflare OAuth authorization URL"}},"required":["url"]},"StartCloudflareOAuth":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100,"description":"Integration name","example":"cloudflare-prod"},"displayName":{"type":"string","description":"Integration display name","example":"Cloudflare Production"},"delimiter":{"type":"string","enum":["-","."],"description":"Delimiter used in generated deploy URLs","example":"-"},"workerName":{"type":"string","minLength":1,"maxLength":63,"pattern":"^[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$","description":"Cloudflare Worker script name. Alphanumeric characters and dashes only. Must be at most 63 characters after the ze- prefix is applied.","example":"ze-worker-for-static-upload"},"kvEnvsNamespaceName":{"type":"string","minLength":1,"maxLength":512,"description":"Cloudflare Workers KV namespace title. Zephyr creates or reuses a namespace with this title.","example":"ze_envs"},"kvSnapshotsNamespaceName":{"type":"string","minLength":1,"maxLength":512,"description":"Cloudflare Workers KV namespace title. Zephyr creates or reuses a namespace with this title.","example":"ze_envs"},"kvFilesNamespaceName":{"type":"string","minLength":1,"maxLength":512,"description":"Cloudflare Workers KV namespace title. Zephyr creates or reuses a namespace with this title.","example":"ze_envs"},"isDefault":{"type":"boolean","default":false,"description":"Set as default integration after successful deployment"},"dnsAcknowledged":{"type":"boolean","enum":[true],"description":"Confirms the user acknowledged Cloudflare DNS setup requirements","example":true}},"required":["name","dnsAcknowledged"]},"CloudflareOAuthZones":{"type":"object","properties":{"zones":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Cloudflare Zone ID"},"name":{"type":"string","description":"Cloudflare zone name"}},"required":["id","name"]}},"count":{"type":"integer","minimum":0,"description":"Number of zones returned"}},"required":["zones","count"]},"CompleteCloudflareOAuth":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100,"description":"Integration name","example":"cloudflare-prod"},"displayName":{"type":"string","description":"Integration display name","example":"Cloudflare Production"},"delimiter":{"type":"string","enum":["-","."],"description":"Delimiter used in generated deploy URLs","example":"-"},"workerName":{"type":"string","minLength":1,"maxLength":63,"pattern":"^[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$","description":"Cloudflare Worker script name. Alphanumeric characters and dashes only. Must be at most 63 characters after the ze- prefix is applied.","example":"ze-worker-for-static-upload"},"kvEnvsNamespaceName":{"type":"string","minLength":1,"maxLength":512,"description":"Cloudflare Workers KV namespace title. Zephyr creates or reuses a namespace with this title.","example":"ze_envs"},"kvSnapshotsNamespaceName":{"type":"string","minLength":1,"maxLength":512,"description":"Cloudflare Workers KV namespace title. Zephyr creates or reuses a namespace with this title.","example":"ze_envs"},"kvFilesNamespaceName":{"type":"string","minLength":1,"maxLength":512,"description":"Cloudflare Workers KV namespace title. Zephyr creates or reuses a namespace with this title.","example":"ze_envs"},"isDefault":{"type":"boolean","default":false,"description":"Set as default integration after successful deployment"},"dnsAcknowledged":{"type":"boolean","enum":[true],"description":"Confirms the user acknowledged Cloudflare DNS setup requirements","example":true},"zoneId":{"type":"string","minLength":1,"description":"Selected Cloudflare Zone ID","example":"023e105f4ecef8ad9ca31a8372d0c353"}},"required":["name","dnsAcknowledged","zoneId"]},"UpdateWorkerVersion":{"type":"object","properties":{"version":{"type":"string","description":"Worker version","example":"0.1.2"}},"required":["version"]},"MultiCdnConfig":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100,"description":"Multi-CDN configuration name"},"displayName":{"type":"string","description":"New display name"},"primaryTarget":{"type":"string","description":"Primary CDN target integration name"},"secondaryTargets":{"type":"array","items":{"type":"string"},"description":"Secondary CDN target integration names"}},"required":["name","primaryTarget","secondaryTargets"]},"UpdateDeploymentIntegration":{"type":"object","properties":{"displayName":{"type":"string","description":"New display name"},"integrationConfig":{"allOf":[{"$ref":"#/components/schemas/DeploymentIntegrationConfig"},{"description":"Updated integration configuration (merged with existing; Fastly token changes persist even if redeployment fails)"}]},"isDefault":{"type":"boolean","description":"Set as default integration (will unset other defaults)"}}},"ChangeIntegrationNameRequest":{"type":"object","properties":{"name":{"type":"string","minLength":3,"maxLength":75,"pattern":"^(?=.*[a-zA-Z0-9])[a-zA-Z0-9_-]+$","description":"New integration name","example":"cloudflare-prod-v2"}},"required":["name"]},"ProjectDeploymentIntegrationApp":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Application ID","example":"550e8400-e29b-41d4-a716-446655440000"},"name":{"type":"string","description":"Application name"},"displayName":{"type":"string","description":"Application display name"},"integrationId":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Assigned integration ID","example":"550e8400-e29b-41d4-a716-446655440000"},"integrationName":{"type":"string","description":"Assigned integration name"},"deploymentIntegration":{"$ref":"#/components/schemas/AppDeploymentIntegrationInfo"}},"required":["id","name","displayName"]},"AppDeploymentIntegrationInfo":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Integration ID","example":"550e8400-e29b-41d4-a716-446655440000"},"name":{"type":"string","description":"Integration name"}},"description":"Deployment integration details (nested for backwards compatibility)"},"EnvironmentDeploymentIntegration":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Environment integration ID","example":"550e8400-e29b-41d4-a716-446655440000"},"deploymentIntegrationId":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Deployment integration ID","example":"550e8400-e29b-41d4-a716-446655440000"},"environmentId":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Environment ID","example":"550e8400-e29b-41d4-a716-446655440000"},"isPrimary":{"type":"boolean","description":"Whether this is the primary integration"},"customDnsNames":{"type":"array","items":{"type":"string"},"description":"Custom DNS names"},"lastDeploymentStatus":{"type":"string","description":"Last deployment status"},"lastDeploymentAt":{"type":"string","format":"date-time","description":"Last deployment timestamp"},"lastDeploymentErrorMsg":{"type":"string","description":"Last deployment error message"},"integration":{"allOf":[{"$ref":"#/components/schemas/DeploymentIntegrationValue"},{"description":"Integration details"}]}},"required":["id","deploymentIntegrationId","environmentId","isPrimary","integration"]},"DeploymentStatusResponse":{"type":"object","properties":{"environmentId":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Environment ID","example":"550e8400-e29b-41d4-a716-446655440000"},"integrations":{"type":"array","items":{"$ref":"#/components/schemas/DeploymentStatusIntegrationItem"}}},"required":["environmentId","integrations"]},"DeploymentStatusIntegrationItem":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Valid UUID v4 identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"integrationId":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Valid UUID v4 identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"integrationName":{"type":"string"},"platform":{"$ref":"#/components/schemas/DeploymentPlatform"},"isPrimary":{"type":"boolean"},"lastDeploymentStatus":{"type":"string"},"lastDeploymentAt":{"type":"string","format":"date-time"},"lastDeploymentErrorMsg":{"type":"string"}},"required":["id","integrationId","integrationName","platform","isPrimary"]},"ProfileSettings":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"User unique identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"name":{"type":"string","description":"User display name","example":"John Doe"},"username":{"type":"string","description":"User username","example":"johndoe"},"email":{"type":"string","format":"email","description":"User email address","example":"john@example.com"},"emailIsVerified":{"type":"boolean","description":"Whether email is verified","example":true},"avatarColor":{"type":"string","description":"Avatar background color","example":"#3B82F6"},"userPortrait":{"type":"string","description":"URL to user portrait image"},"description":{"type":"string","description":"User bio/description"},"socialAccounts":{"type":"array","items":{"$ref":"#/components/schemas/UrlLink"},"description":"User social media accounts"},"privacyOptions":{"allOf":[{"$ref":"#/components/schemas/PrivacyOptions"},{"description":"Privacy settings"}]},"locationOptions":{"allOf":[{"$ref":"#/components/schemas/LocationOptions"},{"description":"Location settings"}]},"ownedOrganizations":{"type":"array","items":{"$ref":"#/components/schemas/OwnedOrganization"},"description":"Organizations owned by the user"}},"required":["id","name","username","email","emailIsVerified","avatarColor","ownedOrganizations"]},"UpdateProfileSettings":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":255,"description":"User display name","example":"John Doe"},"username":{"type":"string","minLength":1,"maxLength":255,"description":"User username","example":"johndoe"},"description":{"type":"string","maxLength":500,"description":"User bio/description"},"userPortrait":{"type":"string","nullable":true,"format":"uri","description":"URL to user portrait image"},"socialAccounts":{"type":"array","items":{"$ref":"#/components/schemas/UrlLink"},"description":"User social media accounts"},"privacyOptions":{"allOf":[{"$ref":"#/components/schemas/PrivacyOptions"},{"description":"Privacy settings"}]},"locationOptions":{"allOf":[{"$ref":"#/components/schemas/LocationOptions"},{"description":"Location settings"}]}}},"EmailOptions":{"type":"object","properties":{"defaultEmail":{"type":"string","format":"email","description":"Default email address","example":"john@example.com"},"emails":{"type":"array","items":{"$ref":"#/components/schemas/ProfileEmailItem"},"description":"List of user email addresses"}},"required":["defaultEmail","emails"]},"ProfileEmailItem":{"type":"object","properties":{"email":{"type":"string","format":"email","description":"Email address"},"isVerified":{"type":"boolean","description":"Whether email is verified"},"isPrimary":{"type":"boolean","description":"Whether this is the primary email"}},"required":["email","isVerified","isPrimary"]},"UpdateEmailOptions":{"type":"object","properties":{"defaultEmail":{"type":"string","format":"email","description":"New default email address"}}},"ChangePassword":{"type":"object","properties":{"currentPassword":{"type":"string","minLength":1,"description":"Current password"},"newPassword":{"type":"string","minLength":8,"description":"New password (min 8 characters)"}},"required":["currentPassword","newPassword"]},"People":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"User ID","example":"550e8400-e29b-41d4-a716-446655440000"},"name":{"type":"string","description":"User name","example":"John Doe"},"email":{"type":"string","format":"email","pattern":"^[^\\s@]+@[^\\s@.]+(\\.[^\\s@.]+)+$","description":"User email","example":"john@example.com"},"role":{"type":"string","enum":["viewer","editor","admin","owner"],"description":"User role in organization","example":"editor"}},"required":["id","name","email","role"]},"UpdatePeople":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100,"description":"Updated name","example":"John Doe Jr."},"email":{"type":"string","format":"email","pattern":"^[^\\s@]+@[^\\s@.]+(\\.[^\\s@.]+)+$","description":"Updated email address","example":"john.updated@example.com"},"role":{"type":"string","enum":["viewer","editor","admin","owner"],"description":"Updated role","example":"admin"}},"required":["name","email","role"]},"DeleteSuccess":{"type":"object","properties":{"success":{"type":"boolean"}},"required":["success"]},"NewPeople":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100,"description":"Name of the person being invited","example":"Jane Smith"},"email":{"type":"string","format":"email","pattern":"^[^\\s@]+@[^\\s@.]+(\\.[^\\s@.]+)+$","description":"Email address to send invitation","example":"jane@example.com"},"role":{"type":"string","enum":["viewer","editor","admin","owner"],"description":"Role to assign to the new member","example":"editor"},"username":{"type":"string","description":"Optional username","example":"janesmith"}},"required":["name","email","role"]},"PeopleListResponse":{"type":"object","properties":{"entities":{"type":"array","items":{"$ref":"#/components/schemas/OrganizationPeople"}},"pageMetadata":{"type":"object","properties":{"total":{"type":"number"},"page":{"type":"number"},"perPage":{"type":"number"},"totalPages":{"type":"number"}},"required":["total","page","perPage","totalPages"]},"peopleLimitExceeded":{"type":"boolean","description":"Whether the seats limit has been exceeded","example":false}},"required":["entities","peopleLimitExceeded"]},"OrganizationPeople":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"User ID","example":"550e8400-e29b-41d4-a716-446655440000"},"name":{"type":"string","nullable":true,"description":"User name","example":"John Doe"},"email":{"type":"string","format":"email","pattern":"^[^\\s@]+@[^\\s@.]+(\\.[^\\s@.]+)+$","description":"User email","example":"john@example.com"},"username":{"type":"string","nullable":true,"description":"Username","example":"johndoe"},"role":{"type":"string","enum":["viewer","editor","admin","owner"],"description":"User role in organization","example":"editor"},"isDefault":{"type":"boolean","description":"Whether this member is the primary org owner (owner=true and default=true)","example":false},"avatarColor":{"type":"string","nullable":true,"description":"User avatar color","example":"#3B82F6"},"portrait":{"type":"string","nullable":true,"description":"User portrait image URL","example":null}},"required":["id","name","email","username","role","isDefault","avatarColor","portrait"]},"CurrentUserInfo":{"type":"object","properties":{"user":{"$ref":"#/components/schemas/UserInfo"},"scopes":{"type":"array","items":{"type":"string"},"description":"OAuth scopes"},"auth0Id":{"type":"string","description":"Identity provider subject ID"}},"required":["user","scopes","auth0Id"]},"UserInfo":{"type":"object","properties":{"id":{"type":"string","description":"User ID"},"email":{"type":"string","format":"email","description":"User email"},"name":{"type":"string","nullable":true,"description":"User display name"},"role":{"type":"string","description":"User role"},"auth0Id":{"type":"string","description":"Identity provider subject ID"}},"required":["id","email","name","role","auth0Id"]},"AuthorizeLinkResponse":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"Authorization URL"}},"required":["url"]},"DnsCheckResultDto":{"type":"object","properties":{"status":{"type":"string","enum":["registered","unregistered"],"description":"Domain registration status","example":"registered"},"expired":{"type":"boolean","description":"Whether the domain registration has expired","example":false},"registration":{"type":"string","nullable":true,"description":"Domain registration date (ISO 8601)","example":"2020-01-15T00:00:00Z"},"expiration":{"type":"string","nullable":true,"description":"Domain expiration date (ISO 8601)","example":"2025-01-15T00:00:00Z"}},"required":["status","expired","registration","expiration"]},"EntriConfig":{"type":"object","properties":{"applicationId":{"type":"string","description":"Entri application ID"},"token":{"type":"string","description":"Entri access token"},"dnsRecords":{"type":"array","items":{"$ref":"#/components/schemas/DnsRecord"},"description":"DNS records for configuration"}},"required":["applicationId","token","dnsRecords"]},"DnsRecord":{"type":"object","properties":{"type":{"type":"string","description":"DNS record type","example":"CNAME"},"host":{"type":"string","description":"Host name","example":"www.example.com"},"value":{"type":"string","description":"Record value","example":"example.zephyr.com"},"ttl":{"type":"number","description":"Time to live in seconds","example":3600}},"required":["type","host","value","ttl"]},"EntriConnectUrl":{"type":"object","properties":{"link":{"type":"string","format":"uri","description":"Entri connect URL"}},"required":["link"]},"EntriEligibleResponse":{"type":"object","properties":{"eligible":{"type":"boolean","description":"Is the domain CNAMEed to the cname_target?"},"powerStatus":{"type":"string","enum":["active","inactive"],"description":"Is the domain already powered?"},"cnameTarget":{"type":"string","description":"Current cnameTarget set on the Dashboard"},"applicationUrl":{"type":"string","description":"Current cnameTarget value for the domain"},"powerRootPathAccess":{"type":"array","items":{"type":"string"},"description":"Paths with granted access to the root","example":["/path1","/path2"]}},"required":["eligible","powerStatus","cnameTarget","applicationUrl","powerRootPathAccess"]},"EntriPowerDomainResponse":{"type":"object","properties":{"message":{"type":"string","description":"Result message"}},"required":["message"]},"EntriPowerDomainRequest":{"type":"object","properties":{"domain":{"type":"string","description":"Domain to power","example":"app.example.com"},"applicationUrl":{"type":"string","description":"Application URL to point to"},"powerRootPathAccess":{"type":"array","items":{"type":"string"},"description":"Paths to grant access to","example":["/api","/static"]}},"required":["domain","applicationUrl"]}},"parameters":{}},"paths":{"/health":{"get":{"tags":["Health"],"summary":"Health check endpoint","description":"Liveness only. Returns HTTP 200 with an empty body when the process is up. Use /health/readiness for dependency checks.","responses":{"200":{"description":"Process is up"}}}},"/health/liveness":{"get":{"tags":["Health"],"summary":"Liveness probe endpoint","description":"Simple liveness check for Kubernetes probes","responses":{"200":{"description":"Liveness status","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["ok"],"example":"ok","description":"Liveness status"},"timestamp":{"type":"string","format":"date-time","example":"2025-12-17T00:00:00.000Z","description":"Timestamp of the liveness check"}},"required":["status","timestamp"]}}}}}}},"/health/readiness":{"get":{"tags":["Health"],"summary":"Readiness probe endpoint","description":"Readiness check for Kubernetes probes - verifies all dependencies are available","responses":{"200":{"description":"Readiness status","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["ready","not_ready"],"example":"ready","description":"Readiness status"},"timestamp":{"type":"string","format":"date-time","example":"2025-12-17T00:00:00.000Z","description":"Timestamp of the readiness check"},"checks":{"type":"object","properties":{"database":{"type":"boolean","example":true,"description":"Database is ready"},"redis":{"type":"boolean","example":true,"description":"Redis is ready (or not configured)"}},"required":["database","redis"],"description":"Individual dependency check results"}},"required":["status","timestamp","checks"]}}}},"503":{"description":"Service not ready","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["ready","not_ready"],"example":"ready","description":"Readiness status"},"timestamp":{"type":"string","format":"date-time","example":"2025-12-17T00:00:00.000Z","description":"Timestamp of the readiness check"},"checks":{"type":"object","properties":{"database":{"type":"boolean","example":true,"description":"Database is ready"},"redis":{"type":"boolean","example":true,"description":"Redis is ready (or not configured)"}},"required":["database","redis"],"description":"Individual dependency check results"}},"required":["status","timestamp","checks"]}}}}}}},"/":{"get":{"tags":["System"],"summary":"Root endpoint","description":"Returns basic API information","operationId":"getRoot","responses":{"200":{"description":"API information","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Zephyr Cloud API"},"version":{"type":"string","example":"0.0.1"}},"required":["message","version"]}}}}}}},"/v2/application/{organization}/{project}/{application}/summary":{"get":{"tags":["Applications"],"summary":"Get application summary","description":"Returns a summary of the application including latest version info","operationId":"getApplicationSummary","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name (slug)","example":"web-dashboard"},"required":true,"description":"Application name (slug)","name":"application","in":"path"}],"responses":{"200":{"description":"Application summary","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"displayName":{"type":"string"},"description":{"type":"string"},"application_uid":{"type":"string"},"isPrivate":{"type":"boolean"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"latestVersion":{"type":"object","nullable":true,"properties":{"id":{"type":"string"},"remote_host":{"type":"string"},"remote_entry_url":{"type":"string","nullable":true},"dependencyVersion":{"type":"object","properties":{"name":{"type":"string"}},"required":["name"]}},"required":["id","remote_host","remote_entry_url","dependencyVersion"],"description":"Application summary version","example":{"id":"ver-123","remote_host":"https://app.zephyr-cloud.io","remote_entry_url":"https://app.zephyr-cloud.io/remoteEntry.js","dependencyVersion":{"name":"1.0.0"}}}},"required":["id","name","displayName","description","application_uid","isPrivate","createdAt","updatedAt","latestVersion"],"description":"Application summary","example":{"id":"app-123","name":"web-dashboard","displayName":"Web Dashboard","description":"Main web dashboard application","application_uid":"zephyr-cloud.main-app.web-dashboard","isPrivate":false,"createdAt":"2025-01-01T00:00:00.000Z","updatedAt":"2025-12-17T00:00:00.000Z","latestVersion":null}}},"required":["value"],"description":"Single value response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Application not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/application/{organization}/{project}/{application}/live-reload-subscription":{"post":{"tags":["Applications"],"summary":"Authorize an application live-reload subscription","description":"Returns a short-lived signed capability for the exact application after application read authorization succeeds.","operationId":"createLiveReloadSubscription","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name (slug)","example":"web-dashboard"},"required":true,"description":"Application name (slug)","name":"application","in":"path"}],"responses":{"200":{"description":"Authorized live-reload subscription","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LiveReloadSubscription"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Application not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/application/{organization}/{project}/{application}/overview":{"get":{"tags":["Applications"],"summary":"Get application overview","description":"Returns lightweight application data for overview/modules pages","operationId":"getApplicationOverview","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name (slug)","example":"web-dashboard"},"required":true,"description":"Application name (slug)","name":"application","in":"path"}],"responses":{"200":{"description":"Application overview","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/ApplicationOverview"}},"required":["value"],"description":"Single value response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Application not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/application/{organization}/{project}/{application}/consumers":{"get":{"tags":["Applications"],"summary":"Get application consumers","description":"Returns consuming applications with lightweight metadata and page info","operationId":"getApplicationConsumers","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name (slug)","example":"web-dashboard"},"required":true,"description":"Application name (slug)","name":"application","in":"path"},{"schema":{"type":"integer","minimum":1,"maximum":200,"description":"Maximum number of consuming applications to return (default: 50, max: 200)","example":50},"required":false,"description":"Maximum number of consuming applications to return (default: 50, max: 200)","name":"limit","in":"query"}],"responses":{"200":{"description":"Application consumers list","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/ApplicationConsumersResponse"}},"required":["value"],"description":"Single value response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Application not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/application/{organization}/{project}/{application}/uml-sidebar":{"get":{"tags":["Applications"],"summary":"Get application UML sidebar details","description":"Returns tags/metadata/consumes/consumedBy needed for UML sidebar panel","operationId":"getApplicationUmlSidebar","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name (slug)","example":"web-dashboard"},"required":true,"description":"Application name (slug)","name":"application","in":"path"},{"schema":{"type":"integer","minimum":1,"maximum":200,"description":"Maximum number of consumed-by applications to include (default: 50, max: 200)","example":50},"required":false,"description":"Maximum number of consumed-by applications to include (default: 50, max: 200)","name":"consumedByLimit","in":"query"}],"responses":{"200":{"description":"Application UML sidebar data","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/ApplicationUmlSidebar"}},"required":["value"],"description":"Single value response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Application not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/application/{organization}/{project}/list":{"get":{"tags":["Applications"],"summary":"List applications in project (NestJS compatible)","description":"Returns a paginated list of applications in the specified project (NestJS compatible)","operationId":"getProjectApplicationListByProjectName","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"number","nullable":true,"description":"Items per page"},"required":false,"description":"Items per page","name":"perPage","in":"query"},{"schema":{"type":"string","enum":["asc","desc"],"description":"Sort order"},"required":false,"description":"Sort order","name":"sortOrder","in":"query"},{"schema":{"type":"number","nullable":true,"description":"Page number (1-indexed)"},"required":false,"description":"Page number (1-indexed)","name":"page","in":"query"},{"schema":{"type":"array","items":{"type":"string"},"description":"Filter by publisher ids"},"required":false,"description":"Filter by publisher ids","name":"publisher","in":"query"},{"schema":{"type":"string","description":"Filter by application name"},"required":false,"description":"Filter by application name","name":"name","in":"query"},{"schema":{"type":"string","description":"Publish period start date","format":"date-time"},"required":false,"description":"Publish period start date","name":"publishPeriodStart","in":"query"},{"schema":{"type":"string","description":"Publish period end date","format":"date-time"},"required":false,"description":"Publish period end date","name":"publishPeriodEnd","in":"query"},{"schema":{"type":"array","items":{"type":"string"},"description":"Filter by git tags. Accepts repeated params or a comma-separated value."},"required":false,"description":"Filter by git tags. Accepts repeated params or a comma-separated value.","name":"gitTags","in":"query"}],"responses":{"200":{"description":"Paginated list of applications","content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"$ref":"#/components/schemas/ApplicationListByProjectItem"}},"pageMetadata":{"type":"object","properties":{"total":{"type":"number"},"lastPage":{"type":"number"},"currentPage":{"type":"number"},"perPage":{"type":"number"},"prev":{"type":"number","nullable":true},"next":{"type":"number","nullable":true}},"required":["total","lastPage","currentPage","perPage","prev","next"],"description":"Pagination metadata for application responses","example":{"total":100,"lastPage":10,"currentPage":1,"perPage":10,"prev":null,"next":2}}},"required":["entities","pageMetadata"],"description":"Paginated application list by project"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}}}}},"/v2/application/{organization}/{project}/sidebar":{"get":{"tags":["Applications"],"summary":"Get sidebar application list","description":"Returns a minimal list of applications for navigation sidebar","operationId":"getApplicationSidebarList","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"}],"responses":{"200":{"description":"List of applications for sidebar","content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"],"description":"Application sidebar list item","example":{"id":"app-123","name":"web-dashboard"}}}},"required":["entities"],"description":"List response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}}}}},"/v2/application/{organization}/{project}/side-bar-list":{"get":{"tags":["Applications"],"summary":"Get project application sidebar list","description":"Returns a minimal list of applications for navigation sidebar (NestJS compatible)","operationId":"getProjectApplicationSidebarList","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"}],"responses":{"200":{"description":"List of applications for sidebar","content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"],"description":"Application sidebar list item","example":{"id":"app-123","name":"web-dashboard"}}}},"required":["entities"],"description":"List response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}}}}},"/v2/application/{organization}/{project}":{"get":{"tags":["Applications"],"summary":"List applications in project","description":"Returns a paginated list of applications in the specified project","operationId":"getApplicationListByProject","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"number","nullable":true,"description":"Items per page"},"required":false,"description":"Items per page","name":"perPage","in":"query"},{"schema":{"type":"string","enum":["asc","desc"],"description":"Sort order"},"required":false,"description":"Sort order","name":"sortOrder","in":"query"},{"schema":{"type":"number","nullable":true,"description":"Page number (1-indexed)"},"required":false,"description":"Page number (1-indexed)","name":"page","in":"query"},{"schema":{"type":"array","items":{"type":"string"},"description":"Filter by publisher ids"},"required":false,"description":"Filter by publisher ids","name":"publisher","in":"query"},{"schema":{"type":"string","description":"Filter by application name"},"required":false,"description":"Filter by application name","name":"name","in":"query"},{"schema":{"type":"string","description":"Publish period start date","format":"date-time"},"required":false,"description":"Publish period start date","name":"publishPeriodStart","in":"query"},{"schema":{"type":"string","description":"Publish period end date","format":"date-time"},"required":false,"description":"Publish period end date","name":"publishPeriodEnd","in":"query"},{"schema":{"type":"array","items":{"type":"string"},"description":"Filter by git tags. Accepts repeated params or a comma-separated value."},"required":false,"description":"Filter by git tags. Accepts repeated params or a comma-separated value.","name":"gitTags","in":"query"}],"responses":{"200":{"description":"Paginated list of applications","content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"$ref":"#/components/schemas/ApplicationListByProjectItem"}},"pageMetadata":{"type":"object","properties":{"total":{"type":"number"},"lastPage":{"type":"number"},"currentPage":{"type":"number"},"perPage":{"type":"number"},"prev":{"type":"number","nullable":true},"next":{"type":"number","nullable":true}},"required":["total","lastPage","currentPage","perPage","prev","next"],"description":"Pagination metadata for application responses","example":{"total":100,"lastPage":10,"currentPage":1,"perPage":10,"prev":null,"next":2}}},"required":["entities","pageMetadata"],"description":"Paginated application list by project"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}}}}},"/v2/application/{organization}/{project}/{application}/settings":{"get":{"tags":["Applications"],"summary":"Get application settings","description":"Returns the settings for the specified application","operationId":"getApplicationSettings","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name (slug)","example":"web-dashboard"},"required":true,"description":"Application name (slug)","name":"application","in":"path"}],"responses":{"200":{"description":"Application settings","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/ApplicationSettings"}},"required":["value"],"description":"Single value response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Application not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}},"post":{"tags":["Applications"],"summary":"Update application settings","description":"Updates the settings for the specified application","operationId":"updateApplicationSettings","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name (slug)","example":"web-dashboard"},"required":true,"description":"Application name (slug)","name":"application","in":"path"}],"requestBody":{"description":"Settings to update","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateApplicationSettingsBody"}}}},"responses":{"200":{"description":"Updated application settings","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/ApplicationSettings"}},"required":["value"],"description":"Single value response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Application not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/application/{organization}/{project}/{application}/details":{"get":{"tags":["Applications"],"summary":"Get full application data","description":"DEPRECATED: returns full application data. Prefer /overview, /consumers, and /uml-sidebar for page-scoped data.","operationId":"getApplication","deprecated":true,"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name (slug)","example":"web-dashboard"},"required":true,"description":"Application name (slug)","name":"application","in":"path"}],"responses":{"200":{"description":"Full application data","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"displayName":{"type":"string"},"description":{"type":"string"},"application_uid":{"type":"string"},"projectId":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"metadata":{"type":"array","items":{"$ref":"#/components/schemas/ApplicationMetadataItem"}},"versions":{"type":"array","items":{"$ref":"#/components/schemas/ApplicationFullVersion"}},"consumes":{"type":"array","items":{"$ref":"#/components/schemas/ApplicationFullVersionConsume"}},"isPrivate":{"type":"boolean"},"createdAt":{"anyOf":[{"type":"string"},{"type":"string","format":"date-time"}]},"updatedAt":{"anyOf":[{"type":"string"},{"type":"string","format":"date-time"}]},"deletedAt":{"anyOf":[{"type":"string"},{"type":"string","format":"date-time"},{"nullable":true}]},"consumedBy":{"type":"array","items":{"nullable":true}},"remotes":{"type":"array","items":{"$ref":"#/components/schemas/ApplicationRemote"}},"contributors":{"type":"array","items":{"$ref":"#/components/schemas/ContributorWithType"}},"organizationIsPrivate":{"type":"boolean"},"projectIsPrivate":{"type":"boolean"}},"required":["id","name","displayName","description","application_uid","projectId","tags","metadata","versions","consumes","isPrivate","createdAt","updatedAt","deletedAt","consumedBy","remotes","contributors","organizationIsPrivate","projectIsPrivate"],"additionalProperties":{"nullable":true},"description":"Full application data with relations"}},"required":["value"],"description":"Single value response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Application not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/application/{organization}/{project}/{application}/module/{moduleName}":{"get":{"tags":["Applications"],"summary":"Get application module","description":"Returns module details including where it is consumed","operationId":"getApplicationModule","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name (slug)","example":"web-dashboard"},"required":true,"description":"Application name (slug)","name":"application","in":"path"},{"schema":{"type":"string","minLength":1,"description":"Module name","example":"Header"},"required":true,"description":"Module name","name":"moduleName","in":"path"}],"responses":{"200":{"description":"Application module details","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"applicationID":{"type":"string"},"metadata":{"nullable":true},"appVersion":{"nullable":true},"consumedBy":{"type":"array","items":{"$ref":"#/components/schemas/Consume"}}},"required":["id","name","applicationID","consumedBy"],"additionalProperties":{"nullable":true},"description":"Application module with consumption details"}},"required":["value"],"description":"Single value response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Application or module not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/application/{organization}/{project}/{application}/contributors":{"get":{"tags":["Applications"],"summary":"Get application contributors","description":"Returns the list of contributors for the specified application","operationId":"getApplicationContributors","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name (slug)","example":"web-dashboard"},"required":true,"description":"Application name (slug)","name":"application","in":"path"}],"responses":{"200":{"description":"List of application contributors","content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"avatarColor":{"type":"string","nullable":true},"username":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"portrait":{"type":"string","nullable":true},"lastUpdateAt":{"type":"string","nullable":true,"format":"date-time"}},"required":["id","name","avatarColor","username","email","portrait","lastUpdateAt"],"description":"Application contributor","example":{"id":"user-123","name":"John Doe","avatarColor":"#3498db","username":"johndoe","email":"john@example.com","portrait":"https://example.com/portrait.jpg","lastUpdateAt":"2025-01-01T00:00:00.000Z"}}}},"required":["entities"],"description":"List response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Application not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/application/{organization}/{project}/{application}/contributors/versions":{"get":{"tags":["Applications"],"summary":"Get contributors with version counts","description":"Returns the list of contributors for the specified application with their total version count, ordered by version count descending","operationId":"getApplicationContributorsWithVersionCount","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name (slug)","example":"web-dashboard"},"required":true,"description":"Application name (slug)","name":"application","in":"path"},{"schema":{"type":"string","enum":["all","year","6months","month","current-month"],"default":"all","description":"Time period filter for activity data","example":"year"},"required":false,"description":"Time period filter for activity data","name":"period","in":"query"}],"responses":{"200":{"description":"List of contributors with version counts","content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"avatarColor":{"type":"string","nullable":true},"username":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"portrait":{"type":"string","nullable":true},"versionsCount":{"type":"integer","minimum":0},"firstActivity":{"type":"string","format":"date-time"},"lastActivity":{"type":"string","format":"date-time"}},"required":["id","name","avatarColor","username","email","portrait","versionsCount","firstActivity","lastActivity"],"title":"ApplicationContributorWithVersionCount","example":{"id":"user-123","name":"John Doe","avatarColor":"#3498db","username":"johndoe","email":"john@example.com","portrait":"https://example.com/portrait.jpg","versionsCount":42,"firstActivity":"2024-01-01T00:00:00.000Z","lastActivity":"2024-12-31T23:59:59.000Z"}}}},"required":["entities"],"description":"List response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Application not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/application/{organization}/{project}/{application}/activity":{"get":{"tags":["Applications"],"summary":"Get application activity over time","description":"Returns monthly activity data including versions created and active contributors per month","operationId":"getApplicationActivityOverTime","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name (slug)","example":"web-dashboard"},"required":true,"description":"Application name (slug)","name":"application","in":"path"},{"schema":{"type":"string","enum":["all","year","6months","month","current-month"],"default":"all","description":"Time period filter for activity data","example":"year"},"required":false,"description":"Time period filter for activity data","name":"period","in":"query"}],"responses":{"200":{"description":"Monthly activity data","content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"$ref":"#/components/schemas/ApplicationActivityDataPoint"}}},"required":["entities"],"description":"List response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Application not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/organization/{organization}/project/{project}/application":{"post":{"tags":["Applications"],"summary":"Create application","description":"Creates a new application in the specified project","operationId":"createApplication","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"}],"requestBody":{"description":"Application to create","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateApplicationRequest"}}}},"responses":{"201":{"description":"Application created successfully","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"displayName":{"type":"string"},"description":{"type":"string"},"application_uid":{"type":"string"},"projectId":{"type":"string"},"isPrivate":{"type":"boolean"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","name","displayName","description","application_uid","projectId","isPrivate","createdAt","updatedAt"],"description":"Created or updated application","example":{"id":"app-123","name":"web-dashboard","displayName":"Web Dashboard","description":"Main web dashboard application","application_uid":"zephyr-cloud.main-app.web-dashboard","projectId":"proj-456","isPrivate":false,"createdAt":"2025-01-01T00:00:00.000Z","updatedAt":"2025-12-17T00:00:00.000Z"}}},"required":["value"],"description":"Single value response wrapper"}}}},"400":{"description":"Invalid request body","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[400]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Bad request error - invalid input or validation failed","example":{"error":"Bad Request","message":"Validation failed","statusCode":400,"requestId":"req-123-abc-456"}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Project not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}},"409":{"description":"Application already exists","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Conflict"],"default":"Conflict"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[409]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource conflict - duplicate or conflicting operation","example":{"error":"Conflict","message":"A resource with this name already exists","statusCode":409,"requestId":"req-123-abc-456"}}}}}}}},"/v2/application/{organization}/{project}/{application}":{"patch":{"tags":["Applications"],"summary":"Update application","description":"Updates the specified application","operationId":"updateApplication","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name (slug)","example":"web-dashboard"},"required":true,"description":"Application name (slug)","name":"application","in":"path"}],"requestBody":{"description":"Application updates","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateApplicationRequest"}}}},"responses":{"200":{"description":"Application updated successfully","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"displayName":{"type":"string"},"description":{"type":"string"},"application_uid":{"type":"string"},"projectId":{"type":"string"},"isPrivate":{"type":"boolean"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","name","displayName","description","application_uid","projectId","isPrivate","createdAt","updatedAt"],"description":"Created or updated application","example":{"id":"app-123","name":"web-dashboard","displayName":"Web Dashboard","description":"Main web dashboard application","application_uid":"zephyr-cloud.main-app.web-dashboard","projectId":"proj-456","isPrivate":false,"createdAt":"2025-01-01T00:00:00.000Z","updatedAt":"2025-12-17T00:00:00.000Z"}}},"required":["value"],"description":"Single value response wrapper"}}}},"400":{"description":"Invalid request body","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[400]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Bad request error - invalid input or validation failed","example":{"error":"Bad Request","message":"Validation failed","statusCode":400,"requestId":"req-123-abc-456"}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Application not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}},"delete":{"tags":["Applications"],"summary":"Delete application","description":"Archives the specified application (soft delete)","operationId":"deleteApplicationSingular","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name (slug)","example":"web-dashboard"},"required":true,"description":"Application name (slug)","name":"application","in":"path"}],"responses":{"200":{"description":"Application deleted successfully","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","default":true},"message":{"type":"string"}},"description":"Success response","example":{"success":true,"message":"Operation completed successfully"}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Application not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/application/{organization}/{project}/{application}/name":{"post":{"tags":["Applications"],"summary":"Update application name","description":"Changes the URL-safe name (slug) of an application","operationId":"updateApplicationName","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name (slug)","example":"web-dashboard"},"required":true,"description":"Application name (slug)","name":"application","in":"path"}],"requestBody":{"description":"New application name","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateApplicationNameBody"}}}},"responses":{"200":{"description":"Updated application with new name","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/ApplicationSettings"}},"required":["value"],"description":"Single value response wrapper"}}}},"400":{"description":"Invalid name data","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[400]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Bad request error - invalid input or validation failed","example":{"error":"Bad Request","message":"Validation failed","statusCode":400,"requestId":"req-123-abc-456"}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Application not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}},"409":{"description":"Application name already exists","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Conflict"],"default":"Conflict"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[409]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource conflict - duplicate or conflicting operation","example":{"error":"Conflict","message":"A resource with this name already exists","statusCode":409,"requestId":"req-123-abc-456"}}}}}}}},"/v2/application/{organization}/{project}/{application}/audit-log/authors":{"get":{"tags":["Applications","Audit Log"],"summary":"Get application audit log authors","description":"Returns distinct authors who have entries in the application audit log","operationId":"getApplicationAuditLogAuthors","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name (slug)","example":"web-dashboard"},"required":true,"description":"Application name (slug)","name":"application","in":"path"}],"responses":{"200":{"description":"Audit log authors","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationAuditLogAuthorsResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Application not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/application/{organization}/{project}/{application}/audit-log":{"get":{"tags":["Applications","Audit Log"],"summary":"Get application audit log","description":"Returns a paginated audit log of changes for the specified application","operationId":"getApplicationAuditLog","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name (slug)","example":"web-dashboard"},"required":true,"description":"Application name (slug)","name":"application","in":"path"},{"schema":{"type":"string","description":"Page number (1-indexed)","example":"1"},"required":false,"description":"Page number (1-indexed)","name":"page","in":"query"},{"schema":{"type":"string","description":"Items per page","example":"20"},"required":false,"description":"Items per page","name":"perPage","in":"query"},{"schema":{"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/ApplicationAuditLogType"}},{"$ref":"#/components/schemas/ApplicationAuditLogType"}],"description":"Filter by audit log type"},"required":false,"description":"Filter by audit log type","name":"type","in":"query"},{"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"string"}],"description":"Filter by author user ID"},"required":false,"description":"Filter by author user ID","name":"author","in":"query"},{"schema":{"type":"string","description":"Filter from date (ISO string)"},"required":false,"description":"Filter from date (ISO string)","name":"dateFrom","in":"query"},{"schema":{"type":"string","description":"Filter to date (ISO string)"},"required":false,"description":"Filter to date (ISO string)","name":"dateTo","in":"query"},{"schema":{"allOf":[{"$ref":"#/components/schemas/ApplicationAuditLogResult"},{"description":"Filter by result"}]},"required":false,"description":"Filter by result","name":"result","in":"query"},{"schema":{"allOf":[{"$ref":"#/components/schemas/ApplicationAuditLogAction"},{"description":"Filter by action"}]},"required":false,"description":"Filter by action","name":"action","in":"query"},{"schema":{"type":"string","description":"Filter by audit log entry ID (partial match)"},"required":false,"description":"Filter by audit log entry ID (partial match)","name":"id","in":"query"},{"schema":{"type":"string","minLength":1,"maxLength":200,"description":"Filter by environment name (strict scope). Unknown env names return an empty page (silent-empty)."},"required":false,"description":"Filter by environment name (strict scope). Unknown env names return an empty page (silent-empty).","name":"environment","in":"query"}],"responses":{"200":{"description":"Application audit log","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationAuditLogResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Application not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/application/{organization}/{project}/{application}/versions":{"get":{"tags":["Application Version"],"summary":"List application versions","description":"Returns a paginated list of application versions","operationId":"getApplicationVersionList","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name (slug)","example":"web-dashboard"},"required":true,"description":"Application name (slug)","name":"application","in":"path"},{"schema":{"type":"integer","nullable":true,"minimum":0,"default":0,"description":"Page number (0-indexed)","example":0},"required":false,"description":"Page number (0-indexed)","name":"page","in":"query"},{"schema":{"$ref":"#/components/schemas/VersionSortField"},"required":false,"description":"Sort field","name":"sortBy","in":"query"},{"schema":{"type":"string","enum":["asc","desc"],"description":"Sort order"},"required":false,"description":"Sort order","name":"sortOrder","in":"query"},{"schema":{"type":"string","description":"JSON-encoded query filter"},"required":false,"description":"JSON-encoded query filter","name":"query","in":"query"}],"responses":{"200":{"description":"Paginated list of versions","content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"$ref":"#/components/schemas/ApplicationVersion"}},"pageMetadata":{"type":"object","properties":{"total":{"type":"number"},"lastPage":{"type":"number"},"currentPage":{"type":"number"},"perPage":{"type":"number"},"prev":{"type":"number","nullable":true},"next":{"type":"number","nullable":true}},"required":["total","lastPage","currentPage","perPage","prev","next"],"description":"Pagination metadata for application responses","example":{"total":100,"lastPage":10,"currentPage":1,"perPage":10,"prev":null,"next":2}}},"required":["entities","pageMetadata"],"description":"Paginated application version list"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Application not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/application/{organization}/{project}/{application}/versions/{version}":{"get":{"tags":["Application Version"],"summary":"Get application version detail","description":"Returns detailed information about a specific version","operationId":"getApplicationVersionDetail","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name (slug)","example":"web-dashboard"},"required":true,"description":"Application name (slug)","name":"application","in":"path"},{"schema":{"type":"string","description":"Version identifier (snapshot_id or version ID)","example":"snap-abc123"},"required":true,"description":"Version identifier (snapshot_id or version ID)","name":"version","in":"path"}],"responses":{"200":{"description":"Version details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VersionDetail"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Version not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/application/{organization}/{project}/{application}/counters":{"get":{"tags":["Application Version"],"summary":"Get application counters","description":"Returns active counts for application versions, tags, and environments","operationId":"getApplicationCounters","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name (slug)","example":"web-dashboard"},"required":true,"description":"Application name (slug)","name":"application","in":"path"}],"responses":{"200":{"description":"Application versions, tags, and environments counters","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/ApplicationEntityCounts"}},"required":["value"],"description":"Single value response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Application not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/application/{organization}/{project}/{application}/version-deploy-targets":{"get":{"tags":["Application Version"],"summary":"Get version deploy targets","description":"Returns available environments and tags for version deployment","operationId":"getApplicationVersionDeployTargetList","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name (slug)","example":"web-dashboard"},"required":true,"description":"Application name (slug)","name":"application","in":"path"}],"responses":{"200":{"description":"Deploy targets","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/DeployTargetsResponse"}},"required":["value"],"description":"Single value response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}}}}},"/v2/application/{organization}/{project}/{application}/versions-deployed":{"get":{"tags":["Application Version"],"summary":"List deployed versions","description":"Returns list of versions deployed to environments and tags","operationId":"getDeployApplicationVersionList","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name (slug)","example":"web-dashboard"},"required":true,"description":"Application name (slug)","name":"application","in":"path"},{"schema":{"type":"string","enum":["all","environment","tag"],"default":"all","description":"Deploy target type filter"},"required":false,"description":"Deploy target type filter","name":"type","in":"query"},{"schema":{"type":"string","description":"Filter by name"},"required":false,"description":"Filter by name","name":"name","in":"query"}],"responses":{"200":{"description":"Deployed versions","content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"$ref":"#/components/schemas/DeployedVersion"}}},"required":["entities"],"description":"List response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}}}}},"/v2/application/{organization}/{project}/{application}/version-deploy":{"post":{"tags":["Application Version"],"summary":"Deploy application version","description":"Deploys a version to the specified environment or tag","operationId":"deployApplicationVersion","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name (slug)","example":"web-dashboard"},"required":true,"description":"Application name (slug)","name":"application","in":"path"},{"schema":{"type":"string","enum":["true","false"],"description":"Whether this is a rollback deployment","example":"true"},"required":false,"description":"Whether this is a rollback deployment","name":"is-rollback","in":"query"}],"requestBody":{"description":"Deployment details","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeployVersionBody"}}}},"responses":{"200":{"description":"Deployment successful","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"boolean"}},"required":["value"],"description":"Single value response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Version or target not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}},"409":{"description":"Deployment conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Conflict"],"default":"Conflict"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[409]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource conflict - duplicate or conflicting operation","example":{"error":"Conflict","message":"A resource with this name already exists","statusCode":409,"requestId":"req-123-abc-456"}}}}}}}},"/v2/application/{organization}/{project}/{application}/version-deploy/prepare":{"post":{"tags":["Application Version"],"summary":"Prepare application version deployment","description":"Validates a manual deployment and returns the gateway publish payload.","operationId":"prepareDeployApplicationVersion","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name (slug)","example":"web-dashboard"},"required":true,"description":"Application name (slug)","name":"application","in":"path"},{"schema":{"type":"string","enum":["true","false"],"description":"Whether this is a rollback deployment","example":"true"},"required":false,"description":"Whether this is a rollback deployment","name":"is-rollback","in":"query"}],"requestBody":{"description":"Deployment details","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeployVersionBody"}}}},"responses":{"200":{"description":"Deployment prepared","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/PrepareDeployVersionResponse"}},"required":["value"],"description":"Single value response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Version or target not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}},"409":{"description":"Deployment conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Conflict"],"default":"Conflict"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[409]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource conflict - duplicate or conflicting operation","example":{"error":"Conflict","message":"A resource with this name already exists","statusCode":409,"requestId":"req-123-abc-456"}}}}}}}},"/v2/application/{organization}/{project}/{application}/version-deploy/finalize":{"post":{"tags":["Application Version"],"summary":"Finalize application version deployment","description":"Finalizes a gateway-published manual deployment in the control-plane database.","operationId":"finalizeDeployApplicationVersion","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name (slug)","example":"web-dashboard"},"required":true,"description":"Application name (slug)","name":"application","in":"path"}],"requestBody":{"description":"Finalize deployment details","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FinalizeDeployVersionBody"}}}},"responses":{"200":{"description":"Deployment finalized","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/FinalizeDeployVersionResponse"}},"required":["value"],"description":"Single value response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Version or target not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}},"409":{"description":"Deployment conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Conflict"],"default":"Conflict"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[409]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource conflict - duplicate or conflicting operation","example":{"error":"Conflict","message":"A resource with this name already exists","statusCode":409,"requestId":"req-123-abc-456"}}}}}}}},"/v2/application/{organization}/{project}/{application}/version-query-opts":{"get":{"tags":["Application Version"],"summary":"Get version query options","description":"Returns available filter options for version listing","operationId":"getApplicationVersionQueryOpts","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name (slug)","example":"web-dashboard"},"required":true,"description":"Application name (slug)","name":"application","in":"path"}],"responses":{"200":{"description":"Query options","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/QueryOptsResponse"}},"required":["value"],"description":"Single value response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}}}}},"/v2/application/{organization}/{project}/{application}/versions/{version}/deprecated":{"post":{"tags":["Application Version"],"summary":"Set version deprecated","description":"Marks a version as deprecated with an expiration date","operationId":"setApplicationVersionDeprecated","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name (slug)","example":"web-dashboard"},"required":true,"description":"Application name (slug)","name":"application","in":"path"},{"schema":{"type":"string","description":"Version identifier (snapshot_id or version ID)","example":"snap-abc123"},"required":true,"description":"Version identifier (snapshot_id or version ID)","name":"version","in":"path"}],"requestBody":{"description":"Deprecation details","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetVersionDeprecatedBody"}}}},"responses":{"200":{"description":"Version marked as deprecated","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"boolean"}},"required":["value"],"description":"Single value response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Version not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/application/{organization}/{project}/{application}/versions/{version}/unavailable":{"post":{"tags":["Application Version"],"summary":"Set version unavailable","description":"Marks a version as unavailable with a reason","operationId":"setApplicationVersionUnavailable","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name (slug)","example":"web-dashboard"},"required":true,"description":"Application name (slug)","name":"application","in":"path"},{"schema":{"type":"string","description":"Version identifier (snapshot_id or version ID)","example":"snap-abc123"},"required":true,"description":"Version identifier (snapshot_id or version ID)","name":"version","in":"path"}],"requestBody":{"description":"Unavailability details","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetVersionUnavailableBody"}}}},"responses":{"200":{"description":"Version marked as unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"boolean"}},"required":["value"],"description":"Single value response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Version not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/application/{organization}/{project}/{application}/versions/{version}/failed":{"post":{"tags":["Application Version"],"summary":"Set version failed","description":"Marks a version as failed with a reason","operationId":"setApplicationVersionFailed","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name (slug)","example":"web-dashboard"},"required":true,"description":"Application name (slug)","name":"application","in":"path"},{"schema":{"type":"string","description":"Version identifier (snapshot_id or version ID)","example":"snap-abc123"},"required":true,"description":"Version identifier (snapshot_id or version ID)","name":"version","in":"path"}],"requestBody":{"description":"Failure details","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetVersionFailedBody"}}}},"responses":{"200":{"description":"Version marked as failed","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"boolean"}},"required":["value"],"description":"Single value response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Version not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/application/{organization}/{project}/{application}/versions/{version}/available":{"post":{"tags":["Application Version"],"summary":"Set version available","description":"Marks a version as available.","operationId":"setApplicationVersionAvailable","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name (slug)","example":"web-dashboard"},"required":true,"description":"Application name (slug)","name":"application","in":"path"},{"schema":{"type":"string","description":"Version identifier (snapshot_id or version ID)","example":"snap-abc123"},"required":true,"description":"Version identifier (snapshot_id or version ID)","name":"version","in":"path"}],"responses":{"200":{"description":"Version marked as available","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"boolean"}},"required":["value"],"description":"Single value response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Version not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/application-version/graph/{organization}/{project}/{application}":{"get":{"tags":["Application Version"],"summary":"Get application version graph","description":"Returns graph data with nodes and edges for dependency visualization","operationId":"getApplicationGraph","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name (slug)","example":"web-dashboard"},"required":true,"description":"Application name (slug)","name":"application","in":"path"},{"schema":{"type":"integer","minimum":1,"maximum":10,"description":"Graph traversal depth (1-10)","example":1},"required":false,"description":"Graph traversal depth (1-10)","name":"depth","in":"query"},{"schema":{"type":"boolean","nullable":true,"description":"Include unlinked nodes from same projects"},"required":false,"description":"Include unlinked nodes from same projects","name":"includeIncompleteNodes","in":"query"},{"schema":{"type":"string","description":"Specific version ID to fetch"},"required":false,"description":"Specific version ID to fetch","name":"application-version-id","in":"query"},{"schema":{"type":"string","description":"Tag ID to filter by"},"required":false,"description":"Tag ID to filter by","name":"tagId","in":"query"},{"schema":{"type":"string","description":"Environment ID to filter by"},"required":false,"description":"Environment ID to filter by","name":"environmentId","in":"query"},{"schema":{"type":"string","description":"Type of entity to fetch (version, tag, environment)"},"required":false,"description":"Type of entity to fetch (version, tag, environment)","name":"entityType","in":"query"}],"responses":{"200":{"description":"Graph data","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/GraphResponse"}},"required":["value"],"description":"Single value response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Application not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}},"409":{"description":"Invalid parameters","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Conflict"],"default":"Conflict"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[409]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource conflict - duplicate or conflicting operation","example":{"error":"Conflict","message":"A resource with this name already exists","statusCode":409,"requestId":"req-123-abc-456"}}}}}}}},"/v2/application-version/node-details/{versionId}":{"get":{"tags":["Application Version"],"summary":"Get node details","description":"Returns detailed module and consumer information for a version node","operationId":"getNodeDetails","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Version ID for node details","example":"123e4567-e89b-12d3-a456-426614174000"},"required":true,"description":"Version ID for node details","name":"versionId","in":"path"}],"responses":{"200":{"description":"Node details","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/NodeDetailsResponse"}},"required":["value"],"description":"Single value response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Node not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}},"409":{"description":"Invalid version ID","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Conflict"],"default":"Conflict"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[409]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource conflict - duplicate or conflicting operation","example":{"error":"Conflict","message":"A resource with this name already exists","statusCode":409,"requestId":"req-123-abc-456"}}}}}}}},"/v2/application-version/{organization}/{project}/{application}/{versionId}/problematic":{"post":{"tags":["Application Version"],"summary":"Set version problematic status","description":"Marks an application version as problematic in a specific environment","operationId":"setApplicationVersionProblematic","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name (slug)","example":"web-dashboard"},"required":true,"description":"Application name (slug)","name":"application","in":"path"},{"schema":{"type":"string","description":"Version ID (UUID or dependency version ID)","example":"123e4567-e89b-12d3-a456-426614174000"},"required":true,"description":"Version ID (UUID or dependency version ID)","name":"versionId","in":"path"}],"requestBody":{"description":"Problematic status details","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetVersionProblematicBody"}}}},"responses":{"200":{"description":"Successfully marked as problematic","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"boolean"}},"required":["value"],"description":"Single value response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Version not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}},"delete":{"tags":["Application Version"],"summary":"Remove version problematic status","description":"Removes problematic status for an application version in a specific environment","operationId":"removeApplicationVersionProblematic","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name (slug)","example":"web-dashboard"},"required":true,"description":"Application name (slug)","name":"application","in":"path"},{"schema":{"type":"string","description":"Version ID (UUID or dependency version ID)","example":"123e4567-e89b-12d3-a456-426614174000"},"required":true,"description":"Version ID (UUID or dependency version ID)","name":"versionId","in":"path"}],"requestBody":{"description":"Environment to remove status from","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RemoveVersionProblematicBody"}}}},"responses":{"200":{"description":"Successfully removed problematic status","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"boolean"}},"required":["value"],"description":"Single value response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Version not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/application/{organization}/{project}/{application}/tags":{"post":{"tags":["Application Tags"],"summary":"Create application tag","description":"Creates a new tag for the specified application.","operationId":"createApplicationTag","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name (slug)","example":"web-dashboard"},"required":true,"description":"Application name (slug)","name":"application","in":"path"}],"requestBody":{"description":"Tag data to create","required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200,"pattern":"^(?=.*[a-zA-Z0-9])[a-zA-Z0-9_-]+$"},"applicationVersionId":{"type":"string","nullable":true},"conditions":{"$ref":"#/components/schemas/TagConditionOperator"},"locked":{"type":"boolean"}},"required":["name","conditions"],"description":"Create application tag request"}}}},"responses":{"200":{"description":"Tag created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VoidResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Application not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}},"get":{"tags":["Application Tags","Infinite"],"summary":"List application tags","description":"Returns a paginated list of tags for the specified application","operationId":"getTagList","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name (slug)","example":"web-dashboard"},"required":true,"description":"Application name (slug)","name":"application","in":"path"},{"schema":{"type":"integer","minimum":1,"default":1,"description":"Page number (1-indexed)","example":1},"required":false,"description":"Page number (1-indexed)","name":"page","in":"query"},{"schema":{"type":"string","format":"uuid","description":"Filter by canonical tag UUID (exact match). Rename-safe — env-scoped audit-log links carry the persisted tagId and resolve the current tag by id regardless of subsequent renames. Returns a single-element page (or empty if not found).","example":"3f7c1e2a-9b4d-4e8a-bc21-5d6f7a8b9c0d"},"required":false,"description":"Filter by canonical tag UUID (exact match). Rename-safe — env-scoped audit-log links carry the persisted tagId and resolve the current tag by id regardless of subsequent renames. Returns a single-element page (or empty if not found).","name":"id","in":"query"},{"schema":{"type":"string","description":"Filter by tag name (case-insensitive partial match)"},"required":false,"description":"Filter by tag name (case-insensitive partial match)","name":"name","in":"query"},{"schema":{"type":"string","description":"Filter by version name (case-insensitive partial match)"},"required":false,"description":"Filter by version name (case-insensitive partial match)","name":"version","in":"query"},{"schema":{"type":"string","description":"Filter by branch condition (exact match)"},"required":false,"description":"Filter by branch condition (exact match)","name":"branch","in":"query"},{"schema":{"type":"string","description":"Filter by user condition (exact match)"},"required":false,"description":"Filter by user condition (exact match)","name":"user","in":"query"},{"schema":{"type":"string","description":"Filter by target condition (exact match)"},"required":false,"description":"Filter by target condition (exact match)","name":"target","in":"query"},{"schema":{"type":"string","description":"Filter by environment condition (exact match)"},"required":false,"description":"Filter by environment condition (exact match)","name":"environment","in":"query"},{"schema":{"type":"string","format":"date-time","description":"Filter by update date from (ISO 8601 datetime)","example":"2024-01-01T00:00:00.000Z"},"required":false,"description":"Filter by update date from (ISO 8601 datetime)","name":"dateRangeFrom","in":"query"},{"schema":{"type":"string","format":"date-time","description":"Filter by update date to (ISO 8601 datetime)","example":"2024-12-31T23:59:59.999Z"},"required":false,"description":"Filter by update date to (ISO 8601 datetime)","name":"dateRangeTo","in":"query"},{"schema":{"type":"string","enum":["asc","desc"],"default":"desc","description":"Sort order for results (by updated date)"},"required":false,"description":"Sort order for results (by updated date)","name":"sortOrder","in":"query"}],"responses":{"200":{"description":"Paginated list of tags","content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"$ref":"#/components/schemas/ApplicationTag"}},"pageMetadata":{"type":"object","properties":{"total":{"type":"number"},"lastPage":{"type":"number"},"currentPage":{"type":"number"},"perPage":{"type":"number"},"prev":{"type":"number","nullable":true},"next":{"type":"number","nullable":true}},"required":["total","lastPage","currentPage","perPage","prev","next"],"description":"Pagination metadata for application responses","example":{"total":100,"lastPage":10,"currentPage":1,"perPage":10,"prev":null,"next":2}}},"required":["entities","pageMetadata"],"description":"Paginated application tag list"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Application not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/application/{organization}/{project}/{application}/tags/{tag}":{"get":{"tags":["Application Tags"],"summary":"Get application tag","description":"Returns details of a specific tag","operationId":"getApplicationTag","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name (slug)","example":"web-dashboard"},"required":true,"description":"Application name (slug)","name":"application","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":200,"pattern":"^(?=.*[a-zA-Z0-9])[a-zA-Z0-9_-]+$","description":"Tag name","example":"latest"},"required":true,"description":"Tag name","name":"tag","in":"path"}],"responses":{"200":{"description":"Tag details","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/ApplicationTag"}},"required":["value"],"description":"Single value response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Tag not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}},"post":{"tags":["Application Tags"],"summary":"Update application tag","description":"Updates an existing tag for the specified application.","operationId":"updateApplicationTag","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name (slug)","example":"web-dashboard"},"required":true,"description":"Application name (slug)","name":"application","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":200,"pattern":"^(?=.*[a-zA-Z0-9])[a-zA-Z0-9_-]+$","description":"Tag name","example":"latest"},"required":true,"description":"Tag name","name":"tag","in":"path"}],"requestBody":{"description":"Tag data to update","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateApplicationTagBody"}}}},"responses":{"200":{"description":"Tag updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VoidResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Tag not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}},"delete":{"tags":["Application Tags"],"summary":"Delete application tag","description":"Deletes a tag from the specified application","operationId":"deleteApplicationTag","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name (slug)","example":"web-dashboard"},"required":true,"description":"Application name (slug)","name":"application","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":200,"pattern":"^(?=.*[a-zA-Z0-9])[a-zA-Z0-9_-]+$","description":"Tag name","example":"latest"},"required":true,"description":"Tag name","name":"tag","in":"path"}],"responses":{"200":{"description":"Tag deleted successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VoidResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Tag not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/application/{organization}/{project}/{application}/tags-condition-options":{"get":{"tags":["Application Tags"],"summary":"Get tag condition options","description":"Returns available options for tag conditions (versions, users, etc.)","operationId":"getApplicationTagConditionOptions","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name (slug)","example":"web-dashboard"},"required":true,"description":"Application name (slug)","name":"application","in":"path"}],"responses":{"200":{"description":"Condition options","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/TagConditionOptions"}},"required":["value"],"description":"Single value response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}}}}},"/v2/application/{organization}/{project}/{application}/tags-condition-options/users":{"get":{"tags":["Application Tags"],"summary":"Get tag condition user options","description":"Returns available user options for tag conditions","operationId":"getApplicationTagConditionOptionsUsers","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name (slug)","example":"web-dashboard"},"required":true,"description":"Application name (slug)","name":"application","in":"path"}],"responses":{"200":{"description":"User options","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"array","items":{"$ref":"#/components/schemas/ConditionUserValue"}}},"required":["value"],"description":"Single value response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}}}}},"/v2/application/{organization}/{project}/{application}/tags-condition-options/versions":{"get":{"tags":["Application Tags"],"summary":"Get tag condition version options","description":"Returns available version options for tag conditions","operationId":"getApplicationTagConditionOptionsVersions","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name (slug)","example":"web-dashboard"},"required":true,"description":"Application name (slug)","name":"application","in":"path"}],"responses":{"200":{"description":"Version options","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"array","items":{"$ref":"#/components/schemas/ConditionValue"}}},"required":["value"],"description":"Single value response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}}}}},"/v2/application/{organization}/{project}/{application}/tags-condition-version":{"get":{"tags":["Application Tags"],"summary":"Get tag condition version","description":"Returns the version that matches the given conditions","operationId":"getApplicationTagConditionVersion","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name (slug)","example":"web-dashboard"},"required":true,"description":"Application name (slug)","name":"application","in":"path"},{"schema":{"type":"string","description":"JSON encoded conditions"},"required":true,"description":"JSON encoded conditions","name":"conditions","in":"query"}],"responses":{"200":{"description":"Matching version","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/TagConditionVersion"}},"required":["value"],"description":"Single value response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}}}}},"/v2/application/{organization}/{project}/{application}/tags/{tag}/rename":{"patch":{"tags":["Application Tags"],"summary":"Rename application tag","description":"Renames an existing tag without changing its conditions or version","operationId":"renameApplicationTag","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name (slug)","example":"web-dashboard"},"required":true,"description":"Application name (slug)","name":"application","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":200,"pattern":"^(?=.*[a-zA-Z0-9])[a-zA-Z0-9_-]+$","description":"Tag name","example":"latest"},"required":true,"description":"Tag name","name":"tag","in":"path"}],"requestBody":{"description":"New tag name","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RenameApplicationTagBody"}}}},"responses":{"200":{"description":"Tag renamed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VoidResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Tag not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}},"409":{"description":"Tag name already exists","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/application/{organization}/{project}/{application}/tags/{tag}/query-opts":{"get":{"tags":["Application Tags"],"summary":"Get tag query options","description":"Returns available query options for a tag (versions list)","operationId":"getApplicationTagQueryOpts","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name (slug)","example":"web-dashboard"},"required":true,"description":"Application name (slug)","name":"application","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":200,"pattern":"^(?=.*[a-zA-Z0-9])[a-zA-Z0-9_-]+$","description":"Tag name","example":"latest"},"required":true,"description":"Tag name","name":"tag","in":"path"}],"responses":{"200":{"description":"Query options","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/TagQueryOptsResponse"}},"required":["value"],"description":"Single value response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Tag not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/application/{organization}/{project}/{application}/environment":{"post":{"tags":["Application Environment"],"summary":"Create application environment","description":"Creates a new environment for the specified application. applicationVersionId accepts only an exact immutable ApplicationVersion UUID; semantic version names are rejected.","operationId":"createApplicationEnvironment","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name (slug)","example":"web-dashboard"},"required":true,"description":"Application name (slug)","name":"application","in":"path"}],"requestBody":{"description":"Environment configuration","required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200,"pattern":"^(?=.*[a-zA-Z0-9])[a-zA-Z0-9_-]+$"},"applicationVersionId":{"type":"string","nullable":true,"format":"uuid","description":"Exact immutable application version ID"},"customDnsNames":{"type":"array","items":{"type":"string"}},"versionId":{"type":"string"},"condition":{"type":"object","properties":{"channel":{"type":"string","enum":["tag","version"]},"value":{"$ref":"#/components/schemas/EnvironmentConditionValue"}},"required":["channel","value"],"description":"Environment condition","example":{"channel":"tag","value":{"value":"production","label":"Production"}}},"description":{"type":"string"},"envVarSet":{"type":"object","additionalProperties":{"type":"string"}},"isDefault":{"type":"boolean"},"locked":{"type":"boolean"},"protected":{"type":"boolean"}},"required":["name","condition"],"description":"Create application environment request"}}}},"responses":{"200":{"description":"Environment created successfully","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"boolean"}},"required":["value"],"description":"Single value response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Application not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}},"get":{"tags":["Application Environment"],"summary":"List application environments","description":"Returns a list of environments for the specified application","operationId":"getEnvironmentList","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name (slug)","example":"web-dashboard"},"required":true,"description":"Application name (slug)","name":"application","in":"path"},{"schema":{"type":"string","enum":["name","version","updatedAt"],"description":"Sort field"},"required":false,"description":"Sort field","name":"sortBy","in":"query"},{"schema":{"type":"string","enum":["asc","desc"],"description":"Sort order"},"required":false,"description":"Sort order","name":"sortOrder","in":"query"},{"schema":{"type":"string","description":"Filter query in format <field>:<value>","example":"name:production"},"required":false,"description":"Filter query in format <field>:<value>","name":"query","in":"query"}],"responses":{"200":{"description":"List of environments","content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"deletedAt":{"type":"string"},"name":{"type":"string"},"remote_host":{"type":"string"},"remote_entry_url":{"type":"string"},"applicationId":{"type":"string"},"applicationVersionId":{"type":"string","nullable":true},"customDnsNames":{"type":"array","items":{"type":"string"}},"version":{"$ref":"#/components/schemas/VersionBasic"},"condition":{"type":"object","properties":{"channel":{"type":"string","enum":["tag","version"]},"value":{"$ref":"#/components/schemas/EnvironmentConditionValue"}},"required":["channel","value"],"description":"Environment condition","example":{"channel":"tag","value":{"value":"production","label":"Production"}}},"description":{"type":"string"},"author":{"$ref":"#/components/schemas/Author"},"context":{"$ref":"#/components/schemas/Context"},"isDefault":{"type":"boolean"},"protected":{"type":"boolean"},"locked":{"type":"boolean"}},"required":["id","createdAt","name","remote_host","remote_entry_url","applicationId","customDnsNames","condition"],"description":"Application environment"}}},"required":["entities"],"description":"List response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}}}}},"/v2/application/{organization}/{project}/{application}/environment/condition/options":{"get":{"tags":["Application Environment"],"summary":"Get environment condition options","description":"Returns available condition options (tags and versions) for creating/updating environments","operationId":"getEnvironmentConditionOptions","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name (slug)","example":"web-dashboard"},"required":true,"description":"Application name (slug)","name":"application","in":"path"}],"responses":{"200":{"description":"Condition options","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"object","properties":{"tag":{"type":"array","items":{"$ref":"#/components/schemas/EnvironmentConditionValue"}},"version":{"type":"array","items":{"$ref":"#/components/schemas/EnvironmentConditionValue"}}},"required":["tag","version"],"description":"Environment condition options"}},"required":["value"],"description":"Single value response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}}}}},"/v2/application/{organization}/{project}/{application}/environment/condition/version":{"get":{"tags":["Application Environment"],"summary":"Get condition version","description":"Returns the version associated with a specific condition","operationId":"getEnvironmentConditionVersion","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name (slug)","example":"web-dashboard"},"required":true,"description":"Application name (slug)","name":"application","in":"path"},{"schema":{"type":"string","enum":["tag","version"],"description":"Condition channel type"},"required":true,"description":"Condition channel type","name":"channel","in":"query"},{"schema":{"type":"string","description":"Condition value"},"required":true,"description":"Condition value","name":"value","in":"query"}],"responses":{"200":{"description":"Condition version","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/ConditionVersion"}},"description":"Single value response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}}}}},"/v2/application/{organization}/{project}/{application}/environment/{environment}":{"get":{"tags":["Application Environment"],"summary":"Get application environment","description":"Returns details for the specified environment","operationId":"getApplicationEnvironment","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name (slug)","example":"web-dashboard"},"required":true,"description":"Application name (slug)","name":"application","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":200,"pattern":"^(?=.*[a-zA-Z0-9])[a-zA-Z0-9_-]+$","description":"Environment name","example":"production"},"required":true,"description":"Environment name","name":"environment","in":"path"}],"responses":{"200":{"description":"Environment details","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"deletedAt":{"type":"string"},"name":{"type":"string"},"remote_host":{"type":"string"},"remote_entry_url":{"type":"string"},"applicationId":{"type":"string"},"applicationVersionId":{"type":"string","nullable":true},"customDnsNames":{"type":"array","items":{"type":"string"}},"version":{"$ref":"#/components/schemas/VersionBasic"},"condition":{"type":"object","properties":{"channel":{"type":"string","enum":["tag","version"]},"value":{"$ref":"#/components/schemas/EnvironmentConditionValue"}},"required":["channel","value"],"description":"Environment condition","example":{"channel":"tag","value":{"value":"production","label":"Production"}}},"description":{"type":"string"},"author":{"$ref":"#/components/schemas/Author"},"context":{"$ref":"#/components/schemas/Context"},"isDefault":{"type":"boolean"},"protected":{"type":"boolean"},"locked":{"type":"boolean"}},"required":["id","createdAt","name","remote_host","remote_entry_url","applicationId","customDnsNames","condition"],"description":"Application environment"}},"required":["value"],"description":"Single value response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Environment not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}},"post":{"tags":["Application Environment"],"summary":"Update application environment","description":"Updates the specified environment. applicationVersionId accepts only an exact immutable ApplicationVersion UUID; semantic version names are rejected.","operationId":"updateApplicationEnvironment","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name (slug)","example":"web-dashboard"},"required":true,"description":"Application name (slug)","name":"application","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":200,"pattern":"^(?=.*[a-zA-Z0-9])[a-zA-Z0-9_-]+$","description":"Environment name","example":"production"},"required":true,"description":"Environment name","name":"environment","in":"path"}],"requestBody":{"description":"Environment updates","required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200,"pattern":"^(?=.*[a-zA-Z0-9])[a-zA-Z0-9_-]+$"},"applicationVersionId":{"type":"string","format":"uuid","description":"Exact immutable application version ID"},"versionId":{"type":"string"},"condition":{"type":"object","properties":{"channel":{"type":"string","enum":["tag","version"]},"value":{"$ref":"#/components/schemas/EnvironmentConditionValue"}},"required":["channel","value"],"description":"Environment condition","example":{"channel":"tag","value":{"value":"production","label":"Production"}}},"description":{"type":"string"},"isDefault":{"type":"boolean"},"protected":{"type":"boolean"},"locked":{"type":"boolean"}},"description":"Update application environment request"}}}},"responses":{"200":{"description":"Environment updated successfully","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"boolean"}},"required":["value"],"description":"Single value response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Environment not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}},"delete":{"tags":["Application Environment"],"summary":"Delete application environment","description":"Archives the specified environment (soft delete)","operationId":"deleteApplicationEnvironment","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name (slug)","example":"web-dashboard"},"required":true,"description":"Application name (slug)","name":"application","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":200,"pattern":"^(?=.*[a-zA-Z0-9])[a-zA-Z0-9_-]+$","description":"Environment name","example":"production"},"required":true,"description":"Environment name","name":"environment","in":"path"}],"responses":{"200":{"description":"Environment deleted successfully","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"boolean"}},"required":["value"],"description":"Single value response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Environment not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/application/{organization}/{project}/{application}/environment/{environment}/rename":{"patch":{"tags":["Application Environment"],"summary":"Rename application environment","description":"Renames an environment and recalculates its remote_host and remote_entry_url","operationId":"renameApplicationEnvironment","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name (slug)","example":"web-dashboard"},"required":true,"description":"Application name (slug)","name":"application","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":200,"pattern":"^(?=.*[a-zA-Z0-9])[a-zA-Z0-9_-]+$","description":"Environment name","example":"production"},"required":true,"description":"Environment name","name":"environment","in":"path"}],"requestBody":{"description":"New environment name","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RenameApplicationEnvironmentBody"}}}},"responses":{"200":{"description":"Environment renamed successfully","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"boolean"}},"required":["value"],"description":"Single value response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Environment not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}},"409":{"description":"Environment name already exists","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/application/{organization}/{project}/{application}/environment/{environment}/custom-domain":{"post":{"tags":["Application Environment"],"summary":"Add custom domain to environment","description":"Adds a custom domain to the specified environment","operationId":"addEnvironmentCustomDomain","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name (slug)","example":"web-dashboard"},"required":true,"description":"Application name (slug)","name":"application","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":200,"pattern":"^(?=.*[a-zA-Z0-9])[a-zA-Z0-9_-]+$","description":"Environment name","example":"production"},"required":true,"description":"Environment name","name":"environment","in":"path"}],"requestBody":{"description":"Custom domain to add","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModifyCustomDomainBody"}}}},"responses":{"200":{"description":"Custom domain added successfully","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"boolean"}},"required":["value"],"description":"Single value response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Environment not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/application/{organization}/{project}/{application}/environment/{environment}/custom-domain/{customDomain}":{"delete":{"tags":["Application Environment"],"summary":"Remove custom domain from environment","description":"Removes a custom domain from the specified environment","operationId":"removeEnvironmentCustomDomain","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name (slug)","example":"web-dashboard"},"required":true,"description":"Application name (slug)","name":"application","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":200,"pattern":"^(?=.*[a-zA-Z0-9])[a-zA-Z0-9_-]+$","description":"Environment name","example":"production"},"required":true,"description":"Environment name","name":"environment","in":"path"},{"schema":{"type":"string","description":"Custom domain name","example":"app.example.com"},"required":true,"description":"Custom domain name","name":"customDomain","in":"path"}],"responses":{"200":{"description":"Custom domain removed successfully","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"boolean"}},"required":["value"],"description":"Single value response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Environment not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/application/{organization}/{project}/{application}/environment/{environment}/env-vars":{"post":{"tags":["Application Environment"],"summary":"Update environment variables","description":"Updates the environment variables for the specified environment","operationId":"updateEnvironmentEnvVarSet","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name (slug)","example":"web-dashboard"},"required":true,"description":"Application name (slug)","name":"application","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":200,"pattern":"^(?=.*[a-zA-Z0-9])[a-zA-Z0-9_-]+$","description":"Environment name","example":"production"},"required":true,"description":"Environment name","name":"environment","in":"path"}],"requestBody":{"description":"Environment variables","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEnvVarSetBody"}}}},"responses":{"200":{"description":"Environment variables updated successfully","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"boolean"}},"required":["value"],"description":"Single value response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Environment not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}},"get":{"tags":["Application Environment"],"summary":"Get environment variables","description":"Returns the environment variables for the specified environment","operationId":"getEnvironmentEnvVarSet","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name (slug)","example":"web-dashboard"},"required":true,"description":"Application name (slug)","name":"application","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":200,"pattern":"^(?=.*[a-zA-Z0-9])[a-zA-Z0-9_-]+$","description":"Environment name","example":"production"},"required":true,"description":"Environment name","name":"environment","in":"path"}],"responses":{"200":{"description":"Environment variables","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/EnvVarSetResponse"}},"required":["value"],"description":"Single value response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Environment not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/application/{organization}/{project}/{application}/environment/{environment}/validate-env-vars":{"get":{"tags":["Application Environment"],"summary":"Validate environment variable promotion","description":"Validates if environment variables can be promoted from a version","operationId":"validateEnvVarPromotion","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name (slug)","example":"web-dashboard"},"required":true,"description":"Application name (slug)","name":"application","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":200,"pattern":"^(?=.*[a-zA-Z0-9])[a-zA-Z0-9_-]+$","description":"Environment name","example":"production"},"required":true,"description":"Environment name","name":"environment","in":"path"},{"schema":{"type":"string","description":"Version ID to validate against"},"required":true,"description":"Version ID to validate against","name":"versionId","in":"query"}],"responses":{"200":{"description":"Validation result","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/ValidateEnvVarPromotionResponse"}},"required":["value"],"description":"Single value response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Environment not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/application/{organization}/{project}/{application}/environments/{environment}/dependencies":{"get":{"tags":["Application Environment"],"summary":"Get environment dependencies","description":"Returns the Zephyr dependencies for the specified environment","operationId":"getEnvironmentDependencies","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name (slug)","example":"web-dashboard"},"required":true,"description":"Application name (slug)","name":"application","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":200,"pattern":"^(?=.*[a-zA-Z0-9])[a-zA-Z0-9_-]+$","description":"Environment name","example":"production"},"required":true,"description":"Environment name","name":"environment","in":"path"}],"responses":{"200":{"description":"Environment dependencies","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/ZephyrDependencies"}},"required":["value"],"description":"Single value response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Environment not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}},"put":{"tags":["Application Environment"],"summary":"Update environment dependencies","description":"Updates the Zephyr dependencies for the specified environment","operationId":"updateEnvironmentDependencies","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name (slug)","example":"web-dashboard"},"required":true,"description":"Application name (slug)","name":"application","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":200,"pattern":"^(?=.*[a-zA-Z0-9])[a-zA-Z0-9_-]+$","description":"Environment name","example":"production"},"required":true,"description":"Environment name","name":"environment","in":"path"}],"requestBody":{"description":"Zephyr dependencies","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ZephyrDependencies"}}}},"responses":{"200":{"description":"Dependencies updated successfully","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"boolean"}},"required":["value"],"description":"Single value response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Environment not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/application/{organization}/{project}/{application}/environments/{environment}/members":{"post":{"tags":["Application Environment"],"summary":"Add environment members","description":"Adds users or teams as members to the specified environment","operationId":"addEnvironmentMembers","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name (slug)","example":"web-dashboard"},"required":true,"description":"Application name (slug)","name":"application","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":200,"pattern":"^(?=.*[a-zA-Z0-9])[a-zA-Z0-9_-]+$","description":"Environment name","example":"production"},"required":true,"description":"Environment name","name":"environment","in":"path"}],"requestBody":{"description":"Members to add","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddEnvironmentMembersBody"}}}},"responses":{"200":{"description":"Members added successfully","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/AddEnvironmentMembersResponse"}},"required":["value"],"description":"Single value response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Environment not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}},"get":{"tags":["Application Environment"],"summary":"Get environment members","description":"Returns the list of members for the specified environment","operationId":"getEnvironmentMembers","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name (slug)","example":"web-dashboard"},"required":true,"description":"Application name (slug)","name":"application","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":200,"pattern":"^(?=.*[a-zA-Z0-9])[a-zA-Z0-9_-]+$","description":"Environment name","example":"production"},"required":true,"description":"Environment name","name":"environment","in":"path"},{"schema":{"type":"string","description":"Filter by member name"},"required":false,"description":"Filter by member name","name":"name","in":"query"}],"responses":{"200":{"description":"List of environment members","content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"$ref":"#/components/schemas/EnvironmentMember"}}},"required":["entities"],"description":"List response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Environment not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/application/{organization}/{project}/{application}/environments/{environment}/members/add-options":{"get":{"tags":["Application Environment"],"summary":"Get add environment member options","description":"Returns available users and teams that can be added as environment members","operationId":"getAddEnvironmentMemberOptions","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name (slug)","example":"web-dashboard"},"required":true,"description":"Application name (slug)","name":"application","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":200,"pattern":"^(?=.*[a-zA-Z0-9])[a-zA-Z0-9_-]+$","description":"Environment name","example":"production"},"required":true,"description":"Environment name","name":"environment","in":"path"}],"responses":{"200":{"description":"Available members to add","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/AddEnvironmentMemberOptionsResponse"}},"required":["value"],"description":"Single value response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Environment not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/application/{organization}/{project}/{application}/environments/{environment}/members/{memberId}":{"delete":{"tags":["Application Environment"],"summary":"Remove environment member","description":"Removes a member from the specified environment","operationId":"removeEnvironmentMember","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name (slug)","example":"web-dashboard"},"required":true,"description":"Application name (slug)","name":"application","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":200,"pattern":"^(?=.*[a-zA-Z0-9])[a-zA-Z0-9_-]+$","description":"Environment name","example":"production"},"required":true,"description":"Environment name","name":"environment","in":"path"},{"schema":{"type":"string","description":"Member ID","example":"member-123"},"required":true,"description":"Member ID","name":"memberId","in":"path"}],"responses":{"200":{"description":"Member removed successfully","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"boolean"}},"required":["value"],"description":"Single value response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Member not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/organization":{"get":{"tags":["Organizations"],"summary":"List user organizations","description":"Lists all organizations the authenticated user has access to. Optionally filter by name.","operationId":"listOrganizations","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Filter organizations by name (partial match)","example":"zephyr"},"required":false,"description":"Filter organizations by name (partial match)","name":"name","in":"query"}],"responses":{"200":{"description":"List of organizations the user has access to","content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"$ref":"#/components/schemas/AvailableOrganization"}}},"required":["entities"],"description":"List of organizations"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}}}},"post":{"tags":["Organizations"],"summary":"Create a new organization","description":"Creates a new organization with the authenticated user as owner.","operationId":"createOrganization","security":[{"bearerAuth":[]}],"requestBody":{"description":"Organization to create","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOrganization"}}}},"responses":{"201":{"description":"Organization created successfully","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/Organization"}},"required":["value"],"description":"Created organization"}}}},"400":{"description":"Invalid organization data","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[400]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Bad request error - invalid input or validation failed","example":{"error":"Bad Request","message":"Validation failed","statusCode":400,"requestId":"req-123-abc-456"}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"409":{"description":"Organization name already exists","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Conflict"],"default":"Conflict"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[409]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource conflict - duplicate or conflicting operation","example":{"error":"Conflict","message":"A resource with this name already exists","statusCode":409,"requestId":"req-123-abc-456"}}}}}}}},"/v2/organization/{organization}":{"get":{"tags":["Organizations"],"summary":"Get organization details","description":"Retrieves organization details by name. Includes the current user's role in the organization.","operationId":"getOrganization","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization unique name (URL-safe slug)","example":"zephyr-cloud"},"required":true,"description":"Organization unique name (URL-safe slug)","name":"organization","in":"path"}],"responses":{"200":{"description":"Organization details with user role","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/OrganizationDetail"}},"required":["value"],"description":"Organization details"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Organization not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}},"delete":{"tags":["Organizations"],"summary":"Delete organization","description":"Soft-deletes an organization. Requires owner permissions and no active subscription.","operationId":"deleteOrganization","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization unique name (URL-safe slug)","example":"zephyr-cloud"},"required":true,"description":"Organization unique name (URL-safe slug)","name":"organization","in":"path"}],"responses":{"200":{"description":"Organization deleted successfully","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","default":true},"message":{"type":"string"}},"description":"Success response","example":{"success":true,"message":"Operation completed successfully"}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Owner permissions required or active subscription exists","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Organization not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/organization/{organization}/settings":{"patch":{"tags":["Organizations"],"summary":"Update organization settings","description":"Updates the public-facing settings of an organization. Requires admin permissions.","operationId":"updateOrganizationSettings","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization unique name (URL-safe slug)","example":"zephyr-cloud"},"required":true,"description":"Organization unique name (URL-safe slug)","name":"organization","in":"path"}],"requestBody":{"description":"Organization settings to update","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationPublicSettings"}}}},"responses":{"200":{"description":"Updated organization settings","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/OrganizationSettings"}},"required":["value"],"description":"Updated organization settings"}}}},"400":{"description":"Invalid settings data","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[400]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Bad request error - invalid input or validation failed","example":{"error":"Bad Request","message":"Validation failed","statusCode":400,"requestId":"req-123-abc-456"}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Admin permissions required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Organization not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/organization/{organization}/membership-domains":{"get":{"tags":["Organizations"],"summary":"List organization membership domains","description":"Lists organization domains and email-verification status for open membership.","operationId":"getOrganizationMembershipDomains","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization unique name (URL-safe slug)","example":"zephyr-cloud"},"required":true,"description":"Organization unique name (URL-safe slug)","name":"organization","in":"path"}],"responses":{"200":{"description":"Organization membership domains","content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"$ref":"#/components/schemas/OrganizationMembershipDomain"}}},"required":["entities"],"description":"Organization membership domains"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Admin permissions required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Organization not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}},"post":{"tags":["Organizations"],"summary":"Create pending membership domain verification","description":"Adds a domain + verification email for open membership. Domain stays pending until a verification code is sent and confirmed.","operationId":"upsertOrganizationMembershipDomain","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization unique name (URL-safe slug)","example":"zephyr-cloud"},"required":true,"description":"Organization unique name (URL-safe slug)","name":"organization","in":"path"}],"requestBody":{"description":"Domain to verify","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpsertOrganizationMembershipDomain"}}}},"responses":{"200":{"description":"Membership domain verification challenge","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/OrganizationMembershipDomain"}},"required":["value"],"description":"Membership domain record"}}}},"400":{"description":"Invalid domain","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[400]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Bad request error - invalid input or validation failed","example":{"error":"Bad Request","message":"Validation failed","statusCode":400,"requestId":"req-123-abc-456"}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Admin permissions required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Organization not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/organization/{organization}/membership-domains/{domainId}/send-code":{"post":{"tags":["Organizations"],"summary":"Send or resend membership domain verification code","description":"Sends a 6-digit verification code to the stored verification email for a pending domain.","operationId":"sendOrganizationMembershipDomainCode","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization unique name (URL-safe slug)","example":"zephyr-cloud"},"required":true,"description":"Organization unique name (URL-safe slug)","name":"organization","in":"path"},{"schema":{"type":"string","format":"uuid","description":"Domain verification record ID","example":"550e8400-e29b-41d4-a716-446655440999"},"required":true,"description":"Domain verification record ID","name":"domainId","in":"path"}],"responses":{"200":{"description":"Verification code send result","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/SendOrganizationMembershipDomainCodeResult"}},"required":["value"],"description":"Verification code send result"}}}},"400":{"description":"Domain is already verified","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[400]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Bad request error - invalid input or validation failed","example":{"error":"Bad Request","message":"Validation failed","statusCode":400,"requestId":"req-123-abc-456"}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Admin permissions required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Organization or domain not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Too Many Requests"],"default":"Too Many Requests"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[429]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Rate limit exceeded","example":{"error":"Too Many Requests","message":"Rate limit exceeded. Please try again later.","statusCode":429,"requestId":"req-123-abc-456","details":{"retryAfter":60}}}}}}}}},"/v2/organization/{organization}/membership-domains/{domainId}/verify":{"post":{"tags":["Organizations"],"summary":"Verify membership domain ownership","description":"Verifies a pending domain using a 6-digit email verification code.","operationId":"verifyOrganizationMembershipDomain","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization unique name (URL-safe slug)","example":"zephyr-cloud"},"required":true,"description":"Organization unique name (URL-safe slug)","name":"organization","in":"path"},{"schema":{"type":"string","format":"uuid","description":"Domain verification record ID","example":"550e8400-e29b-41d4-a716-446655440999"},"required":true,"description":"Domain verification record ID","name":"domainId","in":"path"}],"requestBody":{"description":"6-digit verification code","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyOrganizationMembershipDomain"}}}},"responses":{"200":{"description":"Membership domain verification result","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/VerifyOrganizationMembershipDomainResult"}},"required":["value"],"description":"Verification result"}}}},"400":{"description":"Invalid verification code","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[400]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Bad request error - invalid input or validation failed","example":{"error":"Bad Request","message":"Validation failed","statusCode":400,"requestId":"req-123-abc-456"}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Admin permissions required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Organization or domain not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/organization/{organization}/membership-domains/{domainId}":{"delete":{"tags":["Organizations"],"summary":"Delete membership domain","description":"Deletes a domain verification record and removes it from open-membership allowlist.","operationId":"deleteOrganizationMembershipDomain","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization unique name (URL-safe slug)","example":"zephyr-cloud"},"required":true,"description":"Organization unique name (URL-safe slug)","name":"organization","in":"path"},{"schema":{"type":"string","format":"uuid","description":"Domain verification record ID","example":"550e8400-e29b-41d4-a716-446655440999"},"required":true,"description":"Domain verification record ID","name":"domainId","in":"path"}],"responses":{"200":{"description":"Domain removed","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","default":true},"message":{"type":"string"}},"description":"Success response","example":{"success":true,"message":"Operation completed successfully"}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Admin permissions required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Organization or domain not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/organization/{organization}/members":{"get":{"tags":["Organizations"],"operationId":"listOrganizationMembers","summary":"List organization members","description":"Returns a paginated list of members in the organization. Filter by name or email.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization unique name (URL-safe slug)","example":"zephyr-cloud"},"required":true,"description":"Organization unique name (URL-safe slug)","name":"organization","in":"path"},{"schema":{"type":"integer","minimum":1,"default":1,"description":"Page number for pagination (1-indexed)","example":1},"required":false,"description":"Page number for pagination (1-indexed)","name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Number of items per page (max 100)","example":20},"required":false,"description":"Number of items per page (max 100)","name":"perPage","in":"query"},{"schema":{"type":"string","description":"Filter members by name or email (partial match)","example":"john"},"required":false,"description":"Filter members by name or email (partial match)","name":"name","in":"query"}],"responses":{"200":{"description":"Paginated list of organization members","content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"$ref":"#/components/schemas/OrganizationMember"}},"pageMetadata":{"type":"object","properties":{"total":{"type":"integer","minimum":0},"lastPage":{"type":"integer","minimum":1},"currentPage":{"type":"integer","minimum":1},"perPage":{"type":"integer","minimum":1},"prev":{"type":"integer","nullable":true,"minimum":1},"next":{"type":"integer","nullable":true,"minimum":1}},"required":["total","lastPage","currentPage","perPage","prev","next"],"description":"Pagination metadata for paginated responses","example":{"total":100,"lastPage":5,"currentPage":2,"perPage":20,"prev":1,"next":3}}},"required":["entities"],"description":"Paginated list of organization members"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Organization not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/organization/{id}":{"post":{"tags":["Organizations"],"summary":"Update organization by ID","description":"Updates an existing organization. Requires admin permissions.","operationId":"updateOrganization","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Valid UUID v4 identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"required":true,"description":"Valid UUID v4 identifier","name":"id","in":"path"}],"requestBody":{"description":"Organization update data","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateOrganization"}}}},"responses":{"200":{"description":"Organization updated successfully","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/Organization"}},"required":["value"],"description":"Updated organization"}}}},"400":{"description":"Invalid update data","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[400]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Bad request error - invalid input or validation failed","example":{"error":"Bad Request","message":"Validation failed","statusCode":400,"requestId":"req-123-abc-456"}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Admin permissions required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Organization not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}},"409":{"description":"Organization name conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Conflict"],"default":"Conflict"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[409]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource conflict - duplicate or conflicting operation","example":{"error":"Conflict","message":"A resource with this name already exists","statusCode":409,"requestId":"req-123-abc-456"}}}}}}}},"/v2/organization/unique-name/{displayName}":{"get":{"tags":["Organizations"],"operationId":"getUniqueOrganizationName","summary":"Get unique organization name","description":"Generates a unique URL-safe organization name from a display name. Appends random suffix if name already exists.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"description":"Organization display name to generate slug from","example":"My Organization"},"required":true,"description":"Organization display name to generate slug from","name":"displayName","in":"path"}],"responses":{"200":{"description":"Unique name generated","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"string","description":"Generated unique organization name (slug)","example":"my-organization"}},"required":["value"],"description":"Unique organization name"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}}}}},"/v2/organization/is-unique-name/{name}":{"get":{"tags":["Organizations"],"operationId":"isUniqueOrganizationName","summary":"Check if organization name is unique","description":"Checks if a given organization name (slug) is available for use.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"description":"Organization name (slug) to check availability","example":"my-organization"},"required":true,"description":"Organization name (slug) to check availability","name":"name","in":"path"}],"responses":{"200":{"description":"Name availability checked","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"boolean","description":"Whether the name is available","example":true}},"required":["value"],"description":"Name availability result"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}}}}},"/v2/organization/search":{"get":{"tags":["Organizations"],"operationId":"searchOrganizations","summary":"Search organizations","description":"Search for organizations matching criteria. Currently returns an empty list.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Search query string","example":"zephyr"},"required":false,"description":"Search query string","name":"q","in":"query"}],"responses":{"200":{"description":"Search results","content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"$ref":"#/components/schemas/AvailableOrganization"}}},"required":["entities"],"description":"Search results"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}}}}},"/v2/organization/{organization}/name":{"post":{"tags":["Organizations"],"operationId":"updateOrganizationName","summary":"Update organization name","description":"Changes the URL-safe name (slug) of an organization. Requires admin permissions.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization unique name (URL-safe slug)","example":"zephyr-cloud"},"required":true,"description":"Organization unique name (URL-safe slug)","name":"organization","in":"path"}],"requestBody":{"description":"New organization name","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChangeOrganizationName"}}}},"responses":{"200":{"description":"Organization name updated","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/Organization"}},"required":["value"],"description":"Updated organization"}}}},"400":{"description":"Invalid name data","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[400]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Bad request error - invalid input or validation failed","example":{"error":"Bad Request","message":"Validation failed","statusCode":400,"requestId":"req-123-abc-456"}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Admin permissions required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Organization not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}},"409":{"description":"Organization name already exists","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Conflict"],"default":"Conflict"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[409]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource conflict - duplicate or conflicting operation","example":{"error":"Conflict","message":"A resource with this name already exists","statusCode":409,"requestId":"req-123-abc-456"}}}}}}}},"/v2/organization/{organization}/counters":{"get":{"tags":["Organizations"],"operationId":"getOrganizationCounters","summary":"Get organization counters","description":"Returns project and application counts for an organization.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization unique name (URL-safe slug)","example":"zephyr-cloud"},"required":true,"description":"Organization unique name (URL-safe slug)","name":"organization","in":"path"}],"responses":{"200":{"description":"Organization counters","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/OrganizationCounters"}},"required":["value"],"description":"Organization counters"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Organization not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/organization/{organization}/application-list":{"get":{"tags":["Organizations","Applications"],"summary":"Get organization application list","description":"Returns a paginated list of applications in the organization with filtering and sorting options.","operationId":"getOrganizationApplicationList","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization unique name (URL-safe slug)","example":"zephyr-cloud"},"required":true,"description":"Organization unique name (URL-safe slug)","name":"organization","in":"path"},{"schema":{"type":"string","enum":["all","created_by_me","public","private","removed"],"description":"Filter applications by type","example":"all"},"required":false,"description":"Filter applications by type","name":"type","in":"query"},{"schema":{"type":"string","enum":["name_asc","name_desc","latest_updates"],"description":"Sort order","example":"latest_updates"},"required":false,"description":"Sort order","name":"sort","in":"query"},{"schema":{"type":"string","description":"Filter by application name","example":"my-app"},"required":false,"description":"Filter by application name","name":"name","in":"query"},{"schema":{"type":"number","nullable":true,"description":"Limit results","example":20},"required":false,"description":"Limit results","name":"limit","in":"query"},{"schema":{"type":"number","nullable":true,"description":"Offset for pagination","example":0},"required":false,"description":"Offset for pagination","name":"offset","in":"query"},{"schema":{"type":"number","nullable":true,"description":"Filter by latest days","example":7},"required":false,"description":"Filter by latest days","name":"latestDays","in":"query"},{"schema":{"type":"number","nullable":true,"description":"Items per page","example":20},"required":false,"description":"Items per page","name":"perPage","in":"query"},{"schema":{"type":"number","nullable":true,"description":"Page number","example":1},"required":false,"description":"Page number","name":"page","in":"query"},{"schema":{"type":"string","description":"Comma-separated user IDs to filter by author of latest version","example":"uuid1,uuid2"},"required":false,"description":"Comma-separated user IDs to filter by author of latest version","name":"publishedBy","in":"query"}],"responses":{"200":{"description":"Paginated list of applications","content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"$ref":"#/components/schemas/OrganizationApplicationListItem"}},"pageMetadata":{"type":"object","properties":{"total":{"type":"integer","minimum":0},"lastPage":{"type":"integer","minimum":1},"currentPage":{"type":"integer","minimum":1},"perPage":{"type":"integer","minimum":1},"prev":{"type":"integer","nullable":true,"minimum":1},"next":{"type":"integer","nullable":true,"minimum":1}},"required":["total","lastPage","currentPage","perPage","prev","next"],"description":"Pagination metadata for paginated responses","example":{"total":100,"lastPage":5,"currentPage":2,"perPage":20,"prev":1,"next":3}}},"required":["entities"],"description":"Paginated list of applications"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Organization not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/organization/{organization}/project-list":{"get":{"tags":["Organizations","Projects"],"summary":"Get organization project list","description":"Returns a list of projects in the organization with filtering and sorting options.","operationId":"projectList","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization unique name (URL-safe slug)","example":"zephyr-cloud"},"required":true,"description":"Organization unique name (URL-safe slug)","name":"organization","in":"path"},{"schema":{"type":"string","enum":["all","created_by_me","public","private","removed"],"description":"Filter projects by type","example":"all"},"required":false,"description":"Filter projects by type","name":"type","in":"query"},{"schema":{"type":"string","enum":["name_asc","name_desc","latest_updates"],"description":"Sort order","example":"latest_updates"},"required":false,"description":"Sort order","name":"sort","in":"query"},{"schema":{"type":"string","description":"Filter by project name","example":"my-project"},"required":false,"description":"Filter by project name","name":"name","in":"query"},{"schema":{"type":"number","nullable":true,"description":"Limit results","example":20},"required":false,"description":"Limit results","name":"limit","in":"query"},{"schema":{"type":"number","nullable":true,"description":"Offset for pagination","example":0},"required":false,"description":"Offset for pagination","name":"offset","in":"query"},{"schema":{"type":"integer","minimum":1,"description":"Page number (1-based). When provided, overrides offset.","example":1},"required":false,"description":"Page number (1-based). When provided, overrides offset.","name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"description":"Number of projects per page","example":20},"required":false,"description":"Number of projects per page","name":"perPage","in":"query"},{"schema":{"type":"number","nullable":true,"description":"Filter by latest days","example":7},"required":false,"description":"Filter by latest days","name":"latestDays","in":"query"},{"schema":{"type":"string","description":"Filter projects updated after this ISO 8601 date","example":"2025-01-01T00:00:00.000Z"},"required":false,"description":"Filter projects updated after this ISO 8601 date","name":"updatedFrom","in":"query"},{"schema":{"type":"string","description":"Filter projects updated before this ISO 8601 date","example":"2025-12-31T23:59:59.000Z"},"required":false,"description":"Filter projects updated before this ISO 8601 date","name":"updatedTo","in":"query"}],"responses":{"200":{"description":"Paginated list of projects","content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Valid UUID v4 identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"name":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project unique name (URL-safe slug)","example":"main-app"},"displayName":{"type":"string","minLength":1,"maxLength":100,"pattern":"^(?=[\\x20-\\x7F]+$)(?=.*[a-zA-Z0-9])[a-zA-Z0-9_\\-']+(\\s[a-zA-Z0-9_\\-']+)*\\s*$","description":"Project display name","example":"Main Application"},"applications":{"type":"array","items":{"$ref":"#/components/schemas/ApplicationRef"}},"visibility":{"type":"string","enum":["public","private"],"description":"Project visibility setting","example":"private"},"deletedAt":{"type":"string","nullable":true},"updatedAt":{"type":"string"},"authorId":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Valid UUID v4 identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"author":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Valid UUID v4 identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"name":{"type":"string","minLength":1,"maxLength":200},"username":{"type":"string","nullable":true},"portrait":{"type":"string","nullable":true},"avatarColor":{"type":"string","nullable":true}},"required":["id","name"],"description":"Author reference","example":{"id":"550e8400-e29b-41d4-a716-446655440002","name":"John Doe","username":"johndoe","portrait":"","avatarColor":"#4f46e5"}},"updatedById":{"type":"string","nullable":true,"format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Valid UUID v4 identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"updatedBy":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Valid UUID v4 identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"name":{"type":"string","minLength":1,"maxLength":200},"username":{"type":"string","nullable":true},"portrait":{"type":"string","nullable":true},"avatarColor":{"type":"string","nullable":true}},"required":["id","name"],"description":"Author reference","example":{"id":"550e8400-e29b-41d4-a716-446655440002","name":"John Doe","username":"johndoe","portrait":"","avatarColor":"#4f46e5"}},"counters":{"type":"object","properties":{"applications":{"type":"integer","minimum":0},"remotes":{"type":"integer","minimum":0}},"description":"Project entity counters","example":{"applications":5,"remotes":3}},"tags":{"type":"array","items":{"type":"string"}},"description":{"type":"string","maxLength":1000},"organizationId":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Valid UUID v4 identifier","example":"550e8400-e29b-41d4-a716-446655440000"}},"required":["id","name","displayName","applications","visibility","deletedAt","updatedAt","authorId","author","counters","tags","organizationId"],"description":"Project item in organization list","example":{"id":"550e8400-e29b-41d4-a716-446655440000","name":"main-app","displayName":"Main Application","applications":[{"id":"550e8400-e29b-41d4-a716-446655440010","name":"web-dashboard"}],"visibility":"private","deletedAt":null,"updatedAt":"2025-12-17T00:00:00.000Z","authorId":"550e8400-e29b-41d4-a716-446655440001","author":{"id":"550e8400-e29b-41d4-a716-446655440001","name":"John Doe"},"counters":{"applications":1,"remotes":0},"tags":["frontend"],"description":"The main application project","organizationId":"550e8400-e29b-41d4-a716-446655440002"}}},"pageMetadata":{"type":"object","properties":{"total":{"type":"integer","minimum":0},"lastPage":{"type":"integer","minimum":1},"currentPage":{"type":"integer","minimum":1},"perPage":{"type":"integer","minimum":1},"prev":{"type":"integer","nullable":true,"minimum":1},"next":{"type":"integer","nullable":true,"minimum":1}},"required":["total","lastPage","currentPage","perPage","prev","next"],"description":"Pagination metadata for paginated responses","example":{"total":100,"lastPage":5,"currentPage":2,"perPage":20,"prev":1,"next":3}}},"required":["entities"],"description":"Paginated list of projects"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Organization not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/organization/{organization}/side-bar-project-list":{"get":{"tags":["Organizations"],"summary":"Get sidebar project list","description":"Returns a minimal list of projects for navigation sidebar.","operationId":"sideBarProjectList","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization unique name (URL-safe slug)","example":"zephyr-cloud"},"required":true,"description":"Organization unique name (URL-safe slug)","name":"organization","in":"path"}],"responses":{"200":{"description":"List of projects for sidebar","content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"$ref":"#/components/schemas/OrganizationSideBarProjectListItem"}}},"required":["entities"],"description":"List of projects for sidebar"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Organization not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/organization/{organization}/events":{"get":{"operationId":"streamDashboardEvents","tags":["Organizations"],"summary":"Stream authorized dashboard changes","description":"SSE refresh hints. Reconnect with Last-Event-ID. A resync-required frame requests current data. Read requests remain the source of truth.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization unique name (URL-safe slug)","example":"zephyr-cloud"},"required":true,"description":"Organization unique name (URL-safe slug)","name":"organization","in":"path"},{"schema":{"type":"string","maxLength":100},"required":false,"name":"last-event-id","in":"header"}],"responses":{"200":{"description":"A readable SSE stream. Use the fetch adapter and responseType stream in the generated operation.","content":{"text/event-stream":{"schema":{"type":"string"}}}},"401":{"description":"A valid dashboard bearer token is required."},"403":{"description":"Organization access denied."},"404":{"description":"Feature disabled or organization absent."},"429":{"description":"Connection limit reached. Use bounded polling."},"503":{"description":"Event delivery unavailable. Use bounded polling."}}}},"/v2/organization/{organization}/deployment-status":{"get":{"operationId":"getDashboardDeploymentStatus","tags":["Organizations"],"summary":"Read a recent visible organization build and its publication state","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization unique name (URL-safe slug)","example":"zephyr-cloud"},"required":true,"description":"Organization unique name (URL-safe slug)","name":"organization","in":"path"}],"responses":{"200":{"description":"Current state, including publication confirmation.","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"object","properties":{"state":{"type":"string","enum":["waiting","received","published","failed"]},"versionId":{"type":"string","format":"uuid"},"application":{"type":"string"},"project":{"type":"string"},"url":{"type":"string"},"createdAt":{"type":"string","format":"date-time"}},"required":["state"]}},"required":["value"]}}}},"401":{"description":"Authentication required."},"403":{"description":"Organization access denied."},"404":{"description":"Feature disabled or organization absent."},"503":{"description":"Recent build search limit reached. Retry or use application history."}}}},"/v2/dashboard-publication":{"post":{"operationId":"confirmDashboardPublication","tags":["Internal"],"summary":"Accept a signed gateway publication receipt","parameters":[{"schema":{"type":"string","maxLength":4096},"required":true,"name":"authorization","in":"header"}],"responses":{"204":{"description":"Receipt accepted."},"401":{"description":"Invalid service receipt."},"503":{"description":"Receipts are not configured."}}}},"/v2/project/{organization}/sidebar-search":{"get":{"tags":["Projects"],"summary":"Sidebar project and application search","description":"Returns all authorized projects with their applications, optionally filtered by a search query. Designed to replace N parallel per-project application list requests during sidebar search.","operationId":"getProjectSidebarSearch","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":100,"description":"Search query to filter projects and applications by name","example":"my-app"},"required":false,"description":"Search query to filter projects and applications by name","name":"q","in":"query"}],"responses":{"200":{"description":"Projects with applications matching the search query","content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"$ref":"#/components/schemas/ProjectSideBarSearchItem"}}},"required":["entities"],"description":"List response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}}}}},"/v2/project/{organization}":{"get":{"tags":["Projects"],"summary":"List organization projects","description":"Returns a list of projects in the organization for sidebar navigation","operationId":"listOrganizationProjects","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"}],"responses":{"200":{"description":"List of projects","content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"$ref":"#/components/schemas/ProjectSideBarListItem"}}},"required":["entities"],"description":"List response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}}}},"post":{"tags":["Projects"],"summary":"Create project","description":"Creates a new project within the specified organization","operationId":"createProject","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"}],"requestBody":{"description":"Project creation data","required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"displayName":{"type":"string","minLength":1,"maxLength":30,"description":"Project display name (human-readable)","example":"Main Application"},"name":{"type":"string","maxLength":255,"description":"Project URL-safe name (auto-generated from displayName if not provided)","example":"main-application"},"visibility":{"type":"string","enum":["public","private"],"description":"Project visibility setting","example":"private"}},"required":["displayName","visibility"],"description":"Create project request body"}}}},"responses":{"201":{"description":"Created project","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Valid UUID v4 identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"authorId":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Valid UUID v4 identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"organizationId":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Valid UUID v4 identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"name":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project unique name (URL-safe slug)","example":"main-app"},"displayName":{"type":"string","minLength":1,"maxLength":100,"pattern":"^(?=[\\x20-\\x7F]+$)(?=.*[a-zA-Z0-9])[a-zA-Z0-9_\\-']+(\\s[a-zA-Z0-9_\\-']+)*\\s*$","description":"Project display name","example":"Main Application"},"deletedAt":{"type":"string","nullable":true},"updatedAt":{"type":"string","nullable":true},"description":{"type":"string","nullable":true,"maxLength":1000},"metadata":{"nullable":true},"visibility":{"type":"string","enum":["public","private"],"description":"Project visibility setting","example":"private"},"role":{"type":"string","enum":["viewer","editor","admin","owner"],"description":"User role within the project","example":"editor"},"organization":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Valid UUID v4 identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"name":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization unique name (URL-safe slug)","example":"zephyr-cloud"},"displayName":{"type":"string","minLength":1,"maxLength":200}},"required":["id","name","displayName"],"description":"Organization reference","example":{"id":"550e8400-e29b-41d4-a716-446655440000","name":"zephyr-cloud","displayName":"Zephyr Cloud"}},"applications":{"type":"array","items":{"$ref":"#/components/schemas/ProjectApplication"}},"counters":{"type":"object","properties":{"applications":{"type":"integer","minimum":0},"remotes":{"type":"integer","minimum":0}},"description":"Project entity counters","example":{"applications":5,"remotes":3}}},"required":["id","authorId","organizationId","name","displayName","deletedAt","updatedAt","description","visibility"],"description":"Full project details","example":{"id":"550e8400-e29b-41d4-a716-446655440000","authorId":"550e8400-e29b-41d4-a716-446655440001","organizationId":"550e8400-e29b-41d4-a716-446655440002","name":"main-app","displayName":"Main Application","deletedAt":null,"updatedAt":"2025-12-17T00:00:00.000Z","description":"The main application project","metadata":["frontend","react"],"visibility":"private"}}},"required":["value"],"description":"Single value response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"409":{"description":"Project name already exists","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Conflict"],"default":"Conflict"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[409]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource conflict - duplicate or conflicting operation","example":{"error":"Conflict","message":"A resource with this name already exists","statusCode":409,"requestId":"req-123-abc-456"}}}}}}}},"/v2/project/{organization}/{project}":{"get":{"tags":["Projects"],"summary":"Get project details","description":"Returns details of a project and metadata","operationId":"getProject","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"array","items":{"type":"string","enum":["applications","contributors"],"description":"Include related data in the response","example":"applications"},"description":"Include related data (applications, contributors)","example":["applications"]},"required":false,"description":"Include related data (applications, contributors)","name":"include","in":"query"}],"responses":{"200":{"description":"Project details","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Valid UUID v4 identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"authorId":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Valid UUID v4 identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"organizationId":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Valid UUID v4 identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"name":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project unique name (URL-safe slug)","example":"main-app"},"displayName":{"type":"string","minLength":1,"maxLength":100,"pattern":"^(?=[\\x20-\\x7F]+$)(?=.*[a-zA-Z0-9])[a-zA-Z0-9_\\-']+(\\s[a-zA-Z0-9_\\-']+)*\\s*$","description":"Project display name","example":"Main Application"},"deletedAt":{"type":"string","nullable":true},"updatedAt":{"type":"string","nullable":true},"description":{"type":"string","nullable":true,"maxLength":1000},"metadata":{"nullable":true},"visibility":{"type":"string","enum":["public","private"],"description":"Project visibility setting","example":"private"},"role":{"type":"string","enum":["viewer","editor","admin","owner"],"description":"User role within the project","example":"editor"},"organization":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Valid UUID v4 identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"name":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization unique name (URL-safe slug)","example":"zephyr-cloud"},"displayName":{"type":"string","minLength":1,"maxLength":200}},"required":["id","name","displayName"],"description":"Organization reference","example":{"id":"550e8400-e29b-41d4-a716-446655440000","name":"zephyr-cloud","displayName":"Zephyr Cloud"}},"applications":{"type":"array","items":{"$ref":"#/components/schemas/ProjectApplication"}},"counters":{"type":"object","properties":{"applications":{"type":"integer","minimum":0},"remotes":{"type":"integer","minimum":0}},"description":"Project entity counters","example":{"applications":5,"remotes":3}}},"required":["id","authorId","organizationId","name","displayName","deletedAt","updatedAt","description","visibility"],"description":"Full project details","example":{"id":"550e8400-e29b-41d4-a716-446655440000","authorId":"550e8400-e29b-41d4-a716-446655440001","organizationId":"550e8400-e29b-41d4-a716-446655440002","name":"main-app","displayName":"Main Application","deletedAt":null,"updatedAt":"2025-12-17T00:00:00.000Z","description":"The main application project","metadata":["frontend","react"],"visibility":"private"}}},"required":["value"],"description":"Single value response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Project not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}},"delete":{"tags":["Projects"],"summary":"Delete project","description":"Archives the specified project (soft delete)","operationId":"deleteProject","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"}],"responses":{"200":{"description":"Project deleted successfully","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","default":true},"message":{"type":"string"}},"description":"Success response","example":{"success":true,"message":"Operation completed successfully"}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Project not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/project/{organization}/{project}/settings":{"get":{"tags":["Projects"],"summary":"Get project settings","description":"Returns the settings for the specified project","operationId":"getProjectSettings","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"}],"responses":{"200":{"description":"Project settings","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Valid UUID v4 identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"name":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project unique name (URL-safe slug)","example":"main-app"},"description":{"type":"string","maxLength":1000},"isPrivate":{"type":"boolean"},"displayName":{"type":"string","minLength":1,"maxLength":100,"pattern":"^(?=[\\x20-\\x7F]+$)(?=.*[a-zA-Z0-9])[a-zA-Z0-9_\\-']+(\\s[a-zA-Z0-9_\\-']+)*\\s*$","description":"Project display name","example":"Main Application"}},"required":["id","name","description","isPrivate","displayName"],"description":"Project settings","example":{"id":"550e8400-e29b-41d4-a716-446655440000","name":"main-app","description":"The main application project","isPrivate":true,"displayName":"Main Application"}}},"required":["value"],"description":"Single value response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Project not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}},"post":{"tags":["Projects"],"summary":"Update project settings","description":"Updates the settings for the specified project","operationId":"updateProjectSettings","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"}],"requestBody":{"description":"Settings to update","required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"description":{"type":"string","maxLength":200,"description":"Project description","example":"Updated project description"},"isPrivate":{"type":"boolean","description":"Whether the project is private","example":true},"displayName":{"type":"string","minLength":3,"maxLength":50,"pattern":"^(?=.*[a-zA-Z0-9])[a-zA-Z0-9_.\\-@']+( [a-zA-Z0-9_.\\-@']+)*$","description":"Project display name","example":"Main Application"}},"required":["isPrivate"],"description":"Update project settings request body"}}}},"responses":{"200":{"description":"Updated project settings","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Valid UUID v4 identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"name":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project unique name (URL-safe slug)","example":"main-app"},"description":{"type":"string","maxLength":1000},"isPrivate":{"type":"boolean"},"displayName":{"type":"string","minLength":1,"maxLength":100,"pattern":"^(?=[\\x20-\\x7F]+$)(?=.*[a-zA-Z0-9])[a-zA-Z0-9_\\-']+(\\s[a-zA-Z0-9_\\-']+)*\\s*$","description":"Project display name","example":"Main Application"}},"required":["id","name","description","isPrivate","displayName"],"description":"Project settings","example":{"id":"550e8400-e29b-41d4-a716-446655440000","name":"main-app","description":"The main application project","isPrivate":true,"displayName":"Main Application"}}},"required":["value"],"description":"Single value response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Project not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/project/{organization}/{project}/contributors":{"get":{"tags":["Projects"],"summary":"List project contributors","description":"Returns a list of contributors (members and teams) for the project","operationId":"listProjectContributors","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"string","description":"Filter by contributor name"},"required":false,"description":"Filter by contributor name","name":"name","in":"query"}],"responses":{"200":{"description":"List of project contributors","content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"$ref":"#/components/schemas/ProjectContributorResponse"}}},"required":["entities"],"description":"List response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Project not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/project/{organization}/{project}/contributor/list":{"get":{"tags":["Projects"],"summary":"List project contributors","description":"Returns a list of contributors (members and teams) for the project","operationId":"listProjectContributorsList","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"string","description":"Filter by contributor name"},"required":false,"description":"Filter by contributor name","name":"name","in":"query"}],"responses":{"200":{"description":"List of project contributors","content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"$ref":"#/components/schemas/ProjectContributorResponse"}}},"required":["entities"],"description":"List response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Project not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/project/unique-name/{organization}/{displayName}":{"get":{"tags":["Projects"],"summary":"Get unique project name","description":"Generates a unique URL-safe project name from a display name","operationId":"getUniqueProjectName","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":255,"description":"Display name to generate unique name from"},"required":true,"description":"Display name to generate unique name from","name":"displayName","in":"path"}],"responses":{"200":{"description":"Generated unique name","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UniqueNameResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}}}}},"/v2/project/{organization}/{project}/summary":{"get":{"tags":["Projects"],"summary":"Get project summary","description":"Returns summary information for the specified project","operationId":"getProjectSummary","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"}],"responses":{"200":{"description":"Project summary","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Valid UUID v4 identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"name":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project unique name (URL-safe slug)","example":"main-app"},"displayName":{"type":"string","minLength":1,"maxLength":100,"pattern":"^(?=[\\x20-\\x7F]+$)(?=.*[a-zA-Z0-9])[a-zA-Z0-9_\\-']+(\\s[a-zA-Z0-9_\\-']+)*\\s*$","description":"Project display name","example":"Main Application"},"description":{"type":"string","nullable":true,"maxLength":1000},"metadata":{"nullable":true},"visibility":{"type":"string","enum":["public","private"],"description":"Project visibility setting","example":"private"},"authorId":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Valid UUID v4 identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"organizationId":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Valid UUID v4 identifier","example":"550e8400-e29b-41d4-a716-446655440000"}},"required":["id","name","displayName","description","visibility","authorId","organizationId"],"description":"Project summary information","example":{"id":"550e8400-e29b-41d4-a716-446655440000","name":"main-app","displayName":"Main Application","description":"The main application project","metadata":["frontend","react"],"visibility":"private","authorId":"550e8400-e29b-41d4-a716-446655440001","organizationId":"550e8400-e29b-41d4-a716-446655440002"}}},"required":["value"],"description":"Single value response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Project not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/project/{organization}/{project}/application-list":{"get":{"tags":["Projects"],"summary":"Get project applications","description":"Returns list of applications in the specified project","operationId":"getProjectApplicationList","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"}],"responses":{"200":{"description":"List of applications","content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"nullable":true}}},"required":["entities"],"description":"List response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Project not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/project/{organization}/{project}/update-name":{"post":{"tags":["Projects"],"summary":"Update project name","description":"Updates the URL-safe name (slug) of the project","operationId":"updateProjectName","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"}],"requestBody":{"description":"New project name","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateProjectNameBody"}}}},"responses":{"200":{"description":"Updated project settings","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Valid UUID v4 identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"name":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project unique name (URL-safe slug)","example":"main-app"},"description":{"type":"string","maxLength":1000},"isPrivate":{"type":"boolean"},"displayName":{"type":"string","minLength":1,"maxLength":100,"pattern":"^(?=[\\x20-\\x7F]+$)(?=.*[a-zA-Z0-9])[a-zA-Z0-9_\\-']+(\\s[a-zA-Z0-9_\\-']+)*\\s*$","description":"Project display name","example":"Main Application"}},"required":["id","name","description","isPrivate","displayName"],"description":"Project settings","example":{"id":"550e8400-e29b-41d4-a716-446655440000","name":"main-app","description":"The main application project","isPrivate":true,"displayName":"Main Application"}}},"required":["value"],"description":"Single value response wrapper"}}}},"204":{"description":"No change (name unchanged)"},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Project not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}},"409":{"description":"Project name already exists","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Conflict"],"default":"Conflict"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[409]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource conflict - duplicate or conflicting operation","example":{"error":"Conflict","message":"A resource with this name already exists","statusCode":409,"requestId":"req-123-abc-456"}}}}}}}},"/v2/project/{projectId}":{"post":{"tags":["Projects"],"summary":"Update project","description":"Updates a project by its UUID","operationId":"updateProjectById","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Project UUID","example":"550e8400-e29b-41d4-a716-446655440000"},"required":true,"description":"Project UUID","name":"projectId","in":"path"}],"requestBody":{"description":"Project update data","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateProjectById"}}}},"responses":{"200":{"description":"Updated project","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Valid UUID v4 identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"authorId":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Valid UUID v4 identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"organizationId":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Valid UUID v4 identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"name":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project unique name (URL-safe slug)","example":"main-app"},"displayName":{"type":"string","minLength":1,"maxLength":100,"pattern":"^(?=[\\x20-\\x7F]+$)(?=.*[a-zA-Z0-9])[a-zA-Z0-9_\\-']+(\\s[a-zA-Z0-9_\\-']+)*\\s*$","description":"Project display name","example":"Main Application"},"deletedAt":{"type":"string","nullable":true},"updatedAt":{"type":"string","nullable":true},"description":{"type":"string","nullable":true,"maxLength":1000},"metadata":{"nullable":true},"visibility":{"type":"string","enum":["public","private"],"description":"Project visibility setting","example":"private"},"role":{"type":"string","enum":["viewer","editor","admin","owner"],"description":"User role within the project","example":"editor"},"organization":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Valid UUID v4 identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"name":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization unique name (URL-safe slug)","example":"zephyr-cloud"},"displayName":{"type":"string","minLength":1,"maxLength":200}},"required":["id","name","displayName"],"description":"Organization reference","example":{"id":"550e8400-e29b-41d4-a716-446655440000","name":"zephyr-cloud","displayName":"Zephyr Cloud"}},"applications":{"type":"array","items":{"$ref":"#/components/schemas/ProjectApplication"}},"counters":{"type":"object","properties":{"applications":{"type":"integer","minimum":0},"remotes":{"type":"integer","minimum":0}},"description":"Project entity counters","example":{"applications":5,"remotes":3}}},"required":["id","authorId","organizationId","name","displayName","deletedAt","updatedAt","description","visibility"],"description":"Full project details","example":{"id":"550e8400-e29b-41d4-a716-446655440000","authorId":"550e8400-e29b-41d4-a716-446655440001","organizationId":"550e8400-e29b-41d4-a716-446655440002","name":"main-app","displayName":"Main Application","deletedAt":null,"updatedAt":"2025-12-17T00:00:00.000Z","description":"The main application project","metadata":["frontend","react"],"visibility":"private"}}},"required":["value"],"description":"Single value response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Project not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}},"409":{"description":"Project name already exists","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Conflict"],"default":"Conflict"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[409]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource conflict - duplicate or conflicting operation","example":{"error":"Conflict","message":"A resource with this name already exists","statusCode":409,"requestId":"req-123-abc-456"}}}}}}},"delete":{"tags":["Projects"],"summary":"Delete project by ID","description":"Archives the specified project by UUID (soft delete)","operationId":"deleteProjectById","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Project UUID","example":"550e8400-e29b-41d4-a716-446655440000"},"required":true,"description":"Project UUID","name":"projectId","in":"path"}],"responses":{"200":{"description":"Deleted project","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Valid UUID v4 identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"authorId":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Valid UUID v4 identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"organizationId":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Valid UUID v4 identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"name":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project unique name (URL-safe slug)","example":"main-app"},"displayName":{"type":"string","minLength":1,"maxLength":100,"pattern":"^(?=[\\x20-\\x7F]+$)(?=.*[a-zA-Z0-9])[a-zA-Z0-9_\\-']+(\\s[a-zA-Z0-9_\\-']+)*\\s*$","description":"Project display name","example":"Main Application"},"deletedAt":{"type":"string","nullable":true},"updatedAt":{"type":"string","nullable":true},"description":{"type":"string","nullable":true,"maxLength":1000},"metadata":{"nullable":true},"visibility":{"type":"string","enum":["public","private"],"description":"Project visibility setting","example":"private"},"role":{"type":"string","enum":["viewer","editor","admin","owner"],"description":"User role within the project","example":"editor"},"organization":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Valid UUID v4 identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"name":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization unique name (URL-safe slug)","example":"zephyr-cloud"},"displayName":{"type":"string","minLength":1,"maxLength":200}},"required":["id","name","displayName"],"description":"Organization reference","example":{"id":"550e8400-e29b-41d4-a716-446655440000","name":"zephyr-cloud","displayName":"Zephyr Cloud"}},"applications":{"type":"array","items":{"$ref":"#/components/schemas/ProjectApplication"}},"counters":{"type":"object","properties":{"applications":{"type":"integer","minimum":0},"remotes":{"type":"integer","minimum":0}},"description":"Project entity counters","example":{"applications":5,"remotes":3}}},"required":["id","authorId","organizationId","name","displayName","deletedAt","updatedAt","description","visibility"],"description":"Full project details","example":{"id":"550e8400-e29b-41d4-a716-446655440000","authorId":"550e8400-e29b-41d4-a716-446655440001","organizationId":"550e8400-e29b-41d4-a716-446655440002","name":"main-app","displayName":"Main Application","deletedAt":null,"updatedAt":"2025-12-17T00:00:00.000Z","description":"The main application project","metadata":["frontend","react"],"visibility":"private"}}},"required":["value"],"description":"Single value response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Project not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/project/{projectId}/restore":{"post":{"tags":["Projects"],"summary":"Restore project","description":"Restores a previously deleted (archived) project","operationId":"restoreProject","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Project UUID","example":"550e8400-e29b-41d4-a716-446655440000"},"required":true,"description":"Project UUID","name":"projectId","in":"path"}],"responses":{"200":{"description":"Restored project","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Valid UUID v4 identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"authorId":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Valid UUID v4 identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"organizationId":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Valid UUID v4 identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"name":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project unique name (URL-safe slug)","example":"main-app"},"displayName":{"type":"string","minLength":1,"maxLength":100,"pattern":"^(?=[\\x20-\\x7F]+$)(?=.*[a-zA-Z0-9])[a-zA-Z0-9_\\-']+(\\s[a-zA-Z0-9_\\-']+)*\\s*$","description":"Project display name","example":"Main Application"},"deletedAt":{"type":"string","nullable":true},"updatedAt":{"type":"string","nullable":true},"description":{"type":"string","nullable":true,"maxLength":1000},"metadata":{"nullable":true},"visibility":{"type":"string","enum":["public","private"],"description":"Project visibility setting","example":"private"},"role":{"type":"string","enum":["viewer","editor","admin","owner"],"description":"User role within the project","example":"editor"},"organization":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Valid UUID v4 identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"name":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization unique name (URL-safe slug)","example":"zephyr-cloud"},"displayName":{"type":"string","minLength":1,"maxLength":200}},"required":["id","name","displayName"],"description":"Organization reference","example":{"id":"550e8400-e29b-41d4-a716-446655440000","name":"zephyr-cloud","displayName":"Zephyr Cloud"}},"applications":{"type":"array","items":{"$ref":"#/components/schemas/ProjectApplication"}},"counters":{"type":"object","properties":{"applications":{"type":"integer","minimum":0},"remotes":{"type":"integer","minimum":0}},"description":"Project entity counters","example":{"applications":5,"remotes":3}}},"required":["id","authorId","organizationId","name","displayName","deletedAt","updatedAt","description","visibility"],"description":"Full project details","example":{"id":"550e8400-e29b-41d4-a716-446655440000","authorId":"550e8400-e29b-41d4-a716-446655440001","organizationId":"550e8400-e29b-41d4-a716-446655440002","name":"main-app","displayName":"Main Application","deletedAt":null,"updatedAt":"2025-12-17T00:00:00.000Z","description":"The main application project","metadata":["frontend","react"],"visibility":"private"}}},"required":["value"],"description":"Single value response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Deleted project not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}},"409":{"description":"Project with same name already exists","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Conflict"],"default":"Conflict"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[409]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource conflict - duplicate or conflicting operation","example":{"error":"Conflict","message":"A resource with this name already exists","statusCode":409,"requestId":"req-123-abc-456"}}}}}}}},"/v2/project/{projectId}/contributor/add":{"post":{"tags":["Projects"],"summary":"Add project contributors","description":"Adds members or teams as contributors to the project","operationId":"addProjectContributors","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Project UUID","example":"550e8400-e29b-41d4-a716-446655440000"},"required":true,"description":"Project UUID","name":"projectId","in":"path"}],"requestBody":{"description":"Contributors to add","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NewProjectContributor"}}}},"responses":{"200":{"description":"Contributors added","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/BatchResultResponse"}},"required":["value"],"description":"Single value response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"409":{"description":"Contributor already exists","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Conflict"],"default":"Conflict"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[409]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource conflict - duplicate or conflicting operation","example":{"error":"Conflict","message":"A resource with this name already exists","statusCode":409,"requestId":"req-123-abc-456"}}}}}}}},"/v2/project/{projectId}/{contributorId}/update/role":{"post":{"tags":["Projects"],"summary":"Update contributor role","description":"Updates the role of a contributor in the project","operationId":"updateProjectContributorRole","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Project UUID","example":"550e8400-e29b-41d4-a716-446655440000"},"required":true,"description":"Project UUID","name":"projectId","in":"path"},{"schema":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Contributor relation UUID","example":"550e8400-e29b-41d4-a716-446655440000"},"required":true,"description":"Contributor relation UUID","name":"contributorId","in":"path"}],"requestBody":{"description":"Role update data","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateProjectContributor"}}}},"responses":{"200":{"description":"Updated contributor","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Valid UUID v4 identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"role":{"type":"string","enum":["viewer","editor","admin","owner"],"description":"User role within the project","example":"editor"}},"required":["id","role"]}},"required":["value"],"description":"Single value response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Contributor not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/project/{projectId}/team/{contributorId}/remove":{"delete":{"tags":["Projects"],"summary":"Remove team from project","description":"Removes a team contributor from the project","operationId":"removeProjectTeam","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Project UUID","example":"550e8400-e29b-41d4-a716-446655440000"},"required":true,"description":"Project UUID","name":"projectId","in":"path"},{"schema":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Contributor relation UUID","example":"550e8400-e29b-41d4-a716-446655440000"},"required":true,"description":"Contributor relation UUID","name":"contributorId","in":"path"}],"responses":{"200":{"description":"Removed team","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Valid UUID v4 identifier","example":"550e8400-e29b-41d4-a716-446655440000"}},"required":["id"]}},"required":["value"],"description":"Single value response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Team contributor not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/project/{projectId}/member/{contributorId}/remove":{"delete":{"tags":["Projects"],"summary":"Remove member from project","description":"Removes a member contributor from the project","operationId":"removeProjectMember","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Project UUID","example":"550e8400-e29b-41d4-a716-446655440000"},"required":true,"description":"Project UUID","name":"projectId","in":"path"},{"schema":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Contributor relation UUID","example":"550e8400-e29b-41d4-a716-446655440000"},"required":true,"description":"Contributor relation UUID","name":"contributorId","in":"path"}],"responses":{"200":{"description":"Removed member","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Valid UUID v4 identifier","example":"550e8400-e29b-41d4-a716-446655440000"}},"required":["id"]}},"required":["value"],"description":"Single value response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Member contributor not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/project/{organization}/{project}/audit-log":{"get":{"tags":["Projects","Audit Log"],"summary":"Get project audit log","description":"Returns paginated audit log entries for the specified project, including settings changes, collaborator updates, and deployment integration changes.","operationId":"getProjectAuditLog","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"integer","minimum":1,"description":"Page number"},"required":false,"description":"Page number","name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"description":"Entries per page"},"required":false,"description":"Entries per page","name":"perPage","in":"query"},{"schema":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"Filter by author user ID(s)"},"required":false,"description":"Filter by author user ID(s)","name":"author","in":"query"},{"schema":{"type":"string","description":"Filter from date (ISO 8601)","example":"2025-01-01T00:00:00Z"},"required":false,"description":"Filter from date (ISO 8601)","name":"dateFrom","in":"query"},{"schema":{"type":"string","description":"Filter to date (ISO 8601)","example":"2025-12-31T23:59:59Z"},"required":false,"description":"Filter to date (ISO 8601)","name":"dateTo","in":"query"},{"schema":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"Filter by audit log type(s)"},"required":false,"description":"Filter by audit log type(s)","name":"type","in":"query"},{"schema":{"type":"string","description":"Filter by audit log entry ID"},"required":false,"description":"Filter by audit log entry ID","name":"id","in":"query"},{"schema":{"type":"string","description":"Filter by result"},"required":false,"description":"Filter by result","name":"result","in":"query"},{"schema":{"type":"string","description":"Filter by action"},"required":false,"description":"Filter by action","name":"action","in":"query"},{"schema":{"type":"boolean","nullable":true,"description":"Include application-level audit log entries","example":true},"required":false,"description":"Include application-level audit log entries","name":"includeApplicationLogs","in":"query"}],"responses":{"200":{"description":"Project audit log","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectAuditLogResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Project not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/project/{organization}/{project}/audit-log/authors":{"get":{"tags":["Projects","Audit Log"],"summary":"Get project audit log authors","description":"Returns a list of unique users who have performed actions on the specified project.","operationId":"getProjectAuditLogAuthors","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"}],"responses":{"200":{"description":"Project audit log authors","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectAuditLogAuthorsResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Project not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/project/{organization}/{project}/environments":{"get":{"operationId":"listProjectEnvironments","tags":["Project environments"],"parameters":[{"schema":{"type":"string"},"required":true,"name":"organization","in":"path"},{"schema":{"type":"string"},"required":true,"name":"project","in":"path"}],"responses":{"200":{"description":"Environment board","content":{"application/json":{"schema":{"type":"object","properties":{"applications":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"displayName":{"type":"string"}},"required":["id","name","displayName"]}},"environments":{"type":"array","items":{"type":"object","properties":{"displayName":{"type":"string","minLength":1,"maxLength":100},"position":{"type":"integer","minimum":0,"default":0},"protected":{"type":"boolean","default":false},"userIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":100,"default":[]},"teamIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":100,"default":[]},"defaultIntegrationId":{"type":"string","nullable":true,"format":"uuid","default":null},"id":{"type":"string"},"name":{"type":"string"},"revision":{"type":"number"},"activeReleaseId":{"type":"string","nullable":true},"environments":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"applicationId":{"type":"string"},"applicationUid":{"type":"string"},"name":{"type":"string"},"versionId":{"type":"string","nullable":true},"version":{"type":"string","nullable":true},"snapshotId":{"type":"string","nullable":true},"aliases":{"type":"array","items":{"type":"string"}},"locked":{"type":"boolean"},"remoteHost":{"type":"string"}},"required":["id","applicationId","applicationUid","name","versionId","version","snapshotId","aliases","locked","remoteHost"]}}},"required":["displayName","id","name","revision","activeReleaseId","environments"]}},"independent":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"applicationId":{"type":"string"},"applicationUid":{"type":"string"},"name":{"type":"string"},"versionId":{"type":"string","nullable":true},"version":{"type":"string","nullable":true},"snapshotId":{"type":"string","nullable":true},"aliases":{"type":"array","items":{"type":"string"}},"locked":{"type":"boolean"},"remoteHost":{"type":"string"}},"required":["id","applicationId","applicationUid","name","versionId","version","snapshotId","aliases","locked","remoteHost"]}}},"required":["applications","environments","independent"]}}}},"400":{"description":"Request rejected","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Request rejected","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"404":{"description":"Request rejected","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"409":{"description":"Request rejected","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"503":{"description":"Request rejected","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}},"post":{"operationId":"adoptProjectEnvironment","tags":["Project environments"],"parameters":[{"schema":{"type":"string"},"required":true,"name":"organization","in":"path"},{"schema":{"type":"string"},"required":true,"name":"project","in":"path"}],"requestBody":{"description":"Explicit adoption","required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"displayName":{"type":"string","minLength":1,"maxLength":100},"position":{"type":"integer","minimum":0,"default":0},"protected":{"type":"boolean","default":false},"userIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":100,"default":[]},"teamIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":100,"default":[]},"defaultIntegrationId":{"type":"string","nullable":true,"format":"uuid","default":null},"name":{"type":"string","minLength":1,"maxLength":100},"environmentIds":{"type":"array","items":{"type":"string","format":"uuid"},"minItems":1,"maxItems":50},"previewHash":{"type":"string","minLength":64,"maxLength":64},"acceptSharedPolicy":{"type":"boolean","enum":[true]}},"required":["displayName","name","environmentIds","previewHash","acceptSharedPolicy"]}}}},"responses":{"201":{"description":"Created environment","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"revision":{"type":"number"}},"required":["id","revision"]}}}},"400":{"description":"Request rejected","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Request rejected","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"404":{"description":"Request rejected","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"409":{"description":"Request rejected","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"503":{"description":"Request rejected","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/v2/project/{organization}/{project}/environments/adoption-preview":{"post":{"operationId":"previewProjectEnvironmentAdoption","tags":["Project environments"],"parameters":[{"schema":{"type":"string"},"required":true,"name":"organization","in":"path"},{"schema":{"type":"string"},"required":true,"name":"project","in":"path"}],"requestBody":{"description":"Selected environments","required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"environmentIds":{"type":"array","items":{"type":"string","format":"uuid"},"minItems":1,"maxItems":50}},"required":["environmentIds"]}}}},"responses":{"200":{"description":"Adoption preview","content":{"application/json":{"schema":{"type":"object","properties":{"previewHash":{"type":"string"},"name":{"type":"string"},"environments":{"type":"array","items":{"type":"object","properties":{"environmentId":{"type":"string","format":"uuid"},"applicationId":{"type":"string","format":"uuid"},"applicationUid":{"type":"string"},"versionId":{"type":"string","nullable":true,"format":"uuid"},"snapshotId":{"type":"string","nullable":true},"versionEnvVarSetHash":{"type":"string","nullable":true},"remoteHost":{"type":"string"},"remoteEntryUrl":{"type":"string"},"manifestUrl":{"type":"string","nullable":true},"locked":{"type":"boolean"},"configurationHash":{"type":"string"},"dependencies":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"application_uid":{"type":"string"},"remote_entry_url":{"type":"string"},"default_url":{"type":"string"},"manifest_url":{"type":"string","nullable":true},"name":{"type":"string"},"library_type":{"type":"string"},"source":{"type":"string"},"original_version":{"type":"string","nullable":true},"original_app_uid":{"type":"string","nullable":true},"original_registry":{"type":"string","nullable":true},"original_url":{"type":"string","nullable":true},"resolved_version":{"type":"string"},"resolved_at":{"type":"string"},"remoteApplicationVersionId":{"type":"string","nullable":true},"remoteApplicationTagId":{"type":"string","nullable":true},"remoteApplicationEnvironmentId":{"type":"string","nullable":true}},"required":["key","application_uid","remote_entry_url","default_url","manifest_url","name","library_type","source","original_version","original_app_uid","original_registry","original_url","resolved_version","resolved_at","remoteApplicationVersionId","remoteApplicationTagId","remoteApplicationEnvironmentId"]}}},"required":["environmentId","applicationId","applicationUid","versionId","snapshotId","versionEnvVarSetHash","remoteHost","remoteEntryUrl","manifestUrl","locked","configurationHash","dependencies"]},"maxItems":50},"policies":{"type":"array","items":{"type":"object","properties":{"environmentId":{"type":"string"},"protected":{"type":"boolean"},"userIds":{"type":"array","items":{"type":"string"}},"teamIds":{"type":"array","items":{"type":"string"}}},"required":["environmentId","protected","userIds","teamIds"]}},"restrictions":{"type":"array","items":{"type":"string"}}},"required":["previewHash","name","environments","policies","restrictions"]}}}},"400":{"description":"Request rejected","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Request rejected","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"404":{"description":"Request rejected","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"409":{"description":"Request rejected","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"503":{"description":"Request rejected","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/v2/project/{organization}/{project}/environments/{id}/adopt":{"post":{"operationId":"attachProjectEnvironments","tags":["Project environments"],"parameters":[{"schema":{"type":"string"},"required":true,"name":"organization","in":"path"},{"schema":{"type":"string"},"required":true,"name":"project","in":"path"},{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"requestBody":{"description":"Explicit participant adoption","required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"environmentIds":{"type":"array","items":{"type":"string","format":"uuid"},"minItems":1,"maxItems":50},"previewHash":{"type":"string","minLength":64,"maxLength":64},"revision":{"type":"integer","minimum":0},"acceptSharedPolicy":{"type":"boolean","enum":[true]}},"required":["environmentIds","previewHash","revision","acceptSharedPolicy"]}}}},"responses":{"202":{"description":"Adoption recorded","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["id","status","statusUrl"]}}}},"400":{"description":"Request rejected","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Request rejected","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"404":{"description":"Request rejected","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"409":{"description":"Request rejected","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"503":{"description":"Request rejected","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/v2/project/{organization}/{project}/environments/{id}":{"patch":{"operationId":"updateProjectEnvironment","tags":["Project environments"],"parameters":[{"schema":{"type":"string"},"required":true,"name":"organization","in":"path"},{"schema":{"type":"string"},"required":true,"name":"project","in":"path"},{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"requestBody":{"description":"Shared settings","required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"displayName":{"type":"string","minLength":1,"maxLength":100},"position":{"type":"integer","minimum":0,"default":0},"protected":{"type":"boolean","default":false},"userIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":100,"default":[]},"teamIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":100,"default":[]},"defaultIntegrationId":{"type":"string","nullable":true,"format":"uuid","default":null},"revision":{"type":"integer","minimum":0}},"required":["displayName","revision"]}}}},"responses":{"200":{"description":"Updated environment","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"revision":{"type":"number"}},"required":["id","revision"]}}}},"400":{"description":"Request rejected","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Request rejected","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"404":{"description":"Request rejected","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"409":{"description":"Request rejected","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"503":{"description":"Request rejected","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/v2/project/{organization}/{project}/environments/{id}/releases/preview":{"post":{"operationId":"previewProjectRelease","tags":["Project environments"],"parameters":[{"schema":{"type":"string"},"required":true,"name":"organization","in":"path"},{"schema":{"type":"string"},"required":true,"name":"project","in":"path"},{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"requestBody":{"description":"Release","required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"revision":{"type":"integer","minimum":0},"idempotencyKey":{"type":"string","minLength":1,"maxLength":128},"changes":{"type":"array","items":{"type":"object","properties":{"environmentId":{"type":"string","format":"uuid"},"versionId":{"type":"string","format":"uuid"},"replacePin":{"type":"boolean","default":false},"locked":{"type":"boolean"},"dependencies":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"application_uid":{"type":"string"},"remote_entry_url":{"type":"string"},"default_url":{"type":"string"},"manifest_url":{"type":"string","nullable":true},"name":{"type":"string"},"library_type":{"type":"string"},"source":{"type":"string"},"original_version":{"type":"string","nullable":true},"original_app_uid":{"type":"string","nullable":true},"original_registry":{"type":"string","nullable":true},"original_url":{"type":"string","nullable":true},"resolved_version":{"type":"string"},"resolved_at":{"type":"string"},"remoteApplicationVersionId":{"type":"string","nullable":true},"remoteApplicationTagId":{"type":"string","nullable":true},"remoteApplicationEnvironmentId":{"type":"string","nullable":true}},"required":["key","application_uid","remote_entry_url","default_url","manifest_url","name","library_type","source","original_version","original_app_uid","original_registry","original_url","resolved_version","resolved_at","remoteApplicationVersionId","remoteApplicationTagId","remoteApplicationEnvironmentId"]},"maxItems":100}},"required":["environmentId","versionId"]},"minItems":1,"maxItems":50}},"required":["revision","idempotencyKey","changes"]}}}},"responses":{"200":{"description":"Release preview","content":{"application/json":{"schema":{"type":"object","properties":{"before":{"type":"array","items":{"type":"object","properties":{"environmentId":{"type":"string","format":"uuid"},"applicationId":{"type":"string","format":"uuid"},"applicationUid":{"type":"string"},"versionId":{"type":"string","nullable":true,"format":"uuid"},"snapshotId":{"type":"string","nullable":true},"versionEnvVarSetHash":{"type":"string","nullable":true},"remoteHost":{"type":"string"},"remoteEntryUrl":{"type":"string"},"manifestUrl":{"type":"string","nullable":true},"locked":{"type":"boolean"},"configurationHash":{"type":"string"},"dependencies":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"application_uid":{"type":"string"},"remote_entry_url":{"type":"string"},"default_url":{"type":"string"},"manifest_url":{"type":"string","nullable":true},"name":{"type":"string"},"library_type":{"type":"string"},"source":{"type":"string"},"original_version":{"type":"string","nullable":true},"original_app_uid":{"type":"string","nullable":true},"original_registry":{"type":"string","nullable":true},"original_url":{"type":"string","nullable":true},"resolved_version":{"type":"string"},"resolved_at":{"type":"string"},"remoteApplicationVersionId":{"type":"string","nullable":true},"remoteApplicationTagId":{"type":"string","nullable":true},"remoteApplicationEnvironmentId":{"type":"string","nullable":true}},"required":["key","application_uid","remote_entry_url","default_url","manifest_url","name","library_type","source","original_version","original_app_uid","original_registry","original_url","resolved_version","resolved_at","remoteApplicationVersionId","remoteApplicationTagId","remoteApplicationEnvironmentId"]}}},"required":["environmentId","applicationId","applicationUid","versionId","snapshotId","versionEnvVarSetHash","remoteHost","remoteEntryUrl","manifestUrl","locked","configurationHash","dependencies"]},"maxItems":50},"after":{"type":"array","items":{"type":"object","properties":{"environmentId":{"type":"string","format":"uuid"},"applicationId":{"type":"string","format":"uuid"},"applicationUid":{"type":"string"},"versionId":{"type":"string","nullable":true,"format":"uuid"},"snapshotId":{"type":"string","nullable":true},"versionEnvVarSetHash":{"type":"string","nullable":true},"remoteHost":{"type":"string"},"remoteEntryUrl":{"type":"string"},"manifestUrl":{"type":"string","nullable":true},"locked":{"type":"boolean"},"configurationHash":{"type":"string"},"dependencies":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"application_uid":{"type":"string"},"remote_entry_url":{"type":"string"},"default_url":{"type":"string"},"manifest_url":{"type":"string","nullable":true},"name":{"type":"string"},"library_type":{"type":"string"},"source":{"type":"string"},"original_version":{"type":"string","nullable":true},"original_app_uid":{"type":"string","nullable":true},"original_registry":{"type":"string","nullable":true},"original_url":{"type":"string","nullable":true},"resolved_version":{"type":"string"},"resolved_at":{"type":"string"},"remoteApplicationVersionId":{"type":"string","nullable":true},"remoteApplicationTagId":{"type":"string","nullable":true},"remoteApplicationEnvironmentId":{"type":"string","nullable":true}},"required":["key","application_uid","remote_entry_url","default_url","manifest_url","name","library_type","source","original_version","original_app_uid","original_registry","original_url","resolved_version","resolved_at","remoteApplicationVersionId","remoteApplicationTagId","remoteApplicationEnvironmentId"]}}},"required":["environmentId","applicationId","applicationUid","versionId","snapshotId","versionEnvVarSetHash","remoteHost","remoteEntryUrl","manifestUrl","locked","configurationHash","dependencies"]},"maxItems":50}},"required":["before","after"]}}}},"400":{"description":"Request rejected","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Request rejected","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"404":{"description":"Request rejected","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"409":{"description":"Request rejected","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"503":{"description":"Request rejected","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/v2/project/{organization}/{project}/environments/{id}/releases":{"post":{"operationId":"createProjectRelease","tags":["Project environments"],"parameters":[{"schema":{"type":"string"},"required":true,"name":"organization","in":"path"},{"schema":{"type":"string"},"required":true,"name":"project","in":"path"},{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"requestBody":{"description":"Release","required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"revision":{"type":"integer","minimum":0},"idempotencyKey":{"type":"string","minLength":1,"maxLength":128},"changes":{"type":"array","items":{"type":"object","properties":{"environmentId":{"type":"string","format":"uuid"},"versionId":{"type":"string","format":"uuid"},"replacePin":{"type":"boolean","default":false},"locked":{"type":"boolean"},"dependencies":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"application_uid":{"type":"string"},"remote_entry_url":{"type":"string"},"default_url":{"type":"string"},"manifest_url":{"type":"string","nullable":true},"name":{"type":"string"},"library_type":{"type":"string"},"source":{"type":"string"},"original_version":{"type":"string","nullable":true},"original_app_uid":{"type":"string","nullable":true},"original_registry":{"type":"string","nullable":true},"original_url":{"type":"string","nullable":true},"resolved_version":{"type":"string"},"resolved_at":{"type":"string"},"remoteApplicationVersionId":{"type":"string","nullable":true},"remoteApplicationTagId":{"type":"string","nullable":true},"remoteApplicationEnvironmentId":{"type":"string","nullable":true}},"required":["key","application_uid","remote_entry_url","default_url","manifest_url","name","library_type","source","original_version","original_app_uid","original_registry","original_url","resolved_version","resolved_at","remoteApplicationVersionId","remoteApplicationTagId","remoteApplicationEnvironmentId"]},"maxItems":100}},"required":["environmentId","versionId"]},"minItems":1,"maxItems":50}},"required":["revision","idempotencyKey","changes"]}}}},"responses":{"202":{"description":"Recorded release","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["id","status","statusUrl"]}}}},"400":{"description":"Request rejected","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Request rejected","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"404":{"description":"Request rejected","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"409":{"description":"Request rejected","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"503":{"description":"Request rejected","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}},"get":{"operationId":"listProjectReleases","tags":["Project environments"],"parameters":[{"schema":{"type":"string"},"required":true,"name":"organization","in":"path"},{"schema":{"type":"string"},"required":true,"name":"project","in":"path"},{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Last 100 releases","content":{"application/json":{"schema":{"type":"object","properties":{"releases":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"kind":{"type":"string"},"projectEnvironmentId":{"type":"string"},"status":{"type":"string"},"revision":{"type":"number"},"rollbackOfId":{"type":"string","nullable":true},"error":{"type":"string","nullable":true},"createdAt":{"type":"string"},"completedAt":{"type":"string","nullable":true},"beforeState":{"type":"array","items":{"type":"object","properties":{"environmentId":{"type":"string","format":"uuid"},"applicationId":{"type":"string","format":"uuid"},"applicationUid":{"type":"string"},"versionId":{"type":"string","nullable":true,"format":"uuid"},"snapshotId":{"type":"string","nullable":true},"versionEnvVarSetHash":{"type":"string","nullable":true},"remoteHost":{"type":"string"},"remoteEntryUrl":{"type":"string"},"manifestUrl":{"type":"string","nullable":true},"locked":{"type":"boolean"},"configurationHash":{"type":"string"},"dependencies":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"application_uid":{"type":"string"},"remote_entry_url":{"type":"string"},"default_url":{"type":"string"},"manifest_url":{"type":"string","nullable":true},"name":{"type":"string"},"library_type":{"type":"string"},"source":{"type":"string"},"original_version":{"type":"string","nullable":true},"original_app_uid":{"type":"string","nullable":true},"original_registry":{"type":"string","nullable":true},"original_url":{"type":"string","nullable":true},"resolved_version":{"type":"string"},"resolved_at":{"type":"string"},"remoteApplicationVersionId":{"type":"string","nullable":true},"remoteApplicationTagId":{"type":"string","nullable":true},"remoteApplicationEnvironmentId":{"type":"string","nullable":true}},"required":["key","application_uid","remote_entry_url","default_url","manifest_url","name","library_type","source","original_version","original_app_uid","original_registry","original_url","resolved_version","resolved_at","remoteApplicationVersionId","remoteApplicationTagId","remoteApplicationEnvironmentId"]}}},"required":["environmentId","applicationId","applicationUid","versionId","snapshotId","versionEnvVarSetHash","remoteHost","remoteEntryUrl","manifestUrl","locked","configurationHash","dependencies"]},"maxItems":50},"afterState":{"type":"array","items":{"type":"object","properties":{"environmentId":{"type":"string","format":"uuid"},"applicationId":{"type":"string","format":"uuid"},"applicationUid":{"type":"string"},"versionId":{"type":"string","nullable":true,"format":"uuid"},"snapshotId":{"type":"string","nullable":true},"versionEnvVarSetHash":{"type":"string","nullable":true},"remoteHost":{"type":"string"},"remoteEntryUrl":{"type":"string"},"manifestUrl":{"type":"string","nullable":true},"locked":{"type":"boolean"},"configurationHash":{"type":"string"},"dependencies":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"application_uid":{"type":"string"},"remote_entry_url":{"type":"string"},"default_url":{"type":"string"},"manifest_url":{"type":"string","nullable":true},"name":{"type":"string"},"library_type":{"type":"string"},"source":{"type":"string"},"original_version":{"type":"string","nullable":true},"original_app_uid":{"type":"string","nullable":true},"original_registry":{"type":"string","nullable":true},"original_url":{"type":"string","nullable":true},"resolved_version":{"type":"string"},"resolved_at":{"type":"string"},"remoteApplicationVersionId":{"type":"string","nullable":true},"remoteApplicationTagId":{"type":"string","nullable":true},"remoteApplicationEnvironmentId":{"type":"string","nullable":true}},"required":["key","application_uid","remote_entry_url","default_url","manifest_url","name","library_type","source","original_version","original_app_uid","original_registry","original_url","resolved_version","resolved_at","remoteApplicationVersionId","remoteApplicationTagId","remoteApplicationEnvironmentId"]}}},"required":["environmentId","applicationId","applicationUid","versionId","snapshotId","versionEnvVarSetHash","remoteHost","remoteEntryUrl","manifestUrl","locked","configurationHash","dependencies"]},"maxItems":50},"items":{"type":"array","items":{"type":"object","properties":{"environmentId":{"type":"string"},"status":{"type":"string"},"error":{"type":"string","nullable":true}},"required":["environmentId","status","error"]}}},"required":["id","kind","projectEnvironmentId","status","revision","rollbackOfId","error","createdAt","completedAt","beforeState","afterState","items"]}}},"required":["releases"]}}}},"400":{"description":"Request rejected","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Request rejected","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"404":{"description":"Request rejected","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"409":{"description":"Request rejected","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"503":{"description":"Request rejected","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/v2/project/{organization}/{project}/environments/{id}/releases/{releaseId}":{"get":{"operationId":"getProjectRelease","tags":["Project environments"],"parameters":[{"schema":{"type":"string"},"required":true,"name":"organization","in":"path"},{"schema":{"type":"string"},"required":true,"name":"project","in":"path"},{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","format":"uuid"},"required":true,"name":"releaseId","in":"path"}],"responses":{"200":{"description":"Release","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"kind":{"type":"string"},"projectEnvironmentId":{"type":"string"},"status":{"type":"string"},"revision":{"type":"number"},"rollbackOfId":{"type":"string","nullable":true},"error":{"type":"string","nullable":true},"createdAt":{"type":"string"},"completedAt":{"type":"string","nullable":true},"beforeState":{"type":"array","items":{"type":"object","properties":{"environmentId":{"type":"string","format":"uuid"},"applicationId":{"type":"string","format":"uuid"},"applicationUid":{"type":"string"},"versionId":{"type":"string","nullable":true,"format":"uuid"},"snapshotId":{"type":"string","nullable":true},"versionEnvVarSetHash":{"type":"string","nullable":true},"remoteHost":{"type":"string"},"remoteEntryUrl":{"type":"string"},"manifestUrl":{"type":"string","nullable":true},"locked":{"type":"boolean"},"configurationHash":{"type":"string"},"dependencies":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"application_uid":{"type":"string"},"remote_entry_url":{"type":"string"},"default_url":{"type":"string"},"manifest_url":{"type":"string","nullable":true},"name":{"type":"string"},"library_type":{"type":"string"},"source":{"type":"string"},"original_version":{"type":"string","nullable":true},"original_app_uid":{"type":"string","nullable":true},"original_registry":{"type":"string","nullable":true},"original_url":{"type":"string","nullable":true},"resolved_version":{"type":"string"},"resolved_at":{"type":"string"},"remoteApplicationVersionId":{"type":"string","nullable":true},"remoteApplicationTagId":{"type":"string","nullable":true},"remoteApplicationEnvironmentId":{"type":"string","nullable":true}},"required":["key","application_uid","remote_entry_url","default_url","manifest_url","name","library_type","source","original_version","original_app_uid","original_registry","original_url","resolved_version","resolved_at","remoteApplicationVersionId","remoteApplicationTagId","remoteApplicationEnvironmentId"]}}},"required":["environmentId","applicationId","applicationUid","versionId","snapshotId","versionEnvVarSetHash","remoteHost","remoteEntryUrl","manifestUrl","locked","configurationHash","dependencies"]},"maxItems":50},"afterState":{"type":"array","items":{"type":"object","properties":{"environmentId":{"type":"string","format":"uuid"},"applicationId":{"type":"string","format":"uuid"},"applicationUid":{"type":"string"},"versionId":{"type":"string","nullable":true,"format":"uuid"},"snapshotId":{"type":"string","nullable":true},"versionEnvVarSetHash":{"type":"string","nullable":true},"remoteHost":{"type":"string"},"remoteEntryUrl":{"type":"string"},"manifestUrl":{"type":"string","nullable":true},"locked":{"type":"boolean"},"configurationHash":{"type":"string"},"dependencies":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"application_uid":{"type":"string"},"remote_entry_url":{"type":"string"},"default_url":{"type":"string"},"manifest_url":{"type":"string","nullable":true},"name":{"type":"string"},"library_type":{"type":"string"},"source":{"type":"string"},"original_version":{"type":"string","nullable":true},"original_app_uid":{"type":"string","nullable":true},"original_registry":{"type":"string","nullable":true},"original_url":{"type":"string","nullable":true},"resolved_version":{"type":"string"},"resolved_at":{"type":"string"},"remoteApplicationVersionId":{"type":"string","nullable":true},"remoteApplicationTagId":{"type":"string","nullable":true},"remoteApplicationEnvironmentId":{"type":"string","nullable":true}},"required":["key","application_uid","remote_entry_url","default_url","manifest_url","name","library_type","source","original_version","original_app_uid","original_registry","original_url","resolved_version","resolved_at","remoteApplicationVersionId","remoteApplicationTagId","remoteApplicationEnvironmentId"]}}},"required":["environmentId","applicationId","applicationUid","versionId","snapshotId","versionEnvVarSetHash","remoteHost","remoteEntryUrl","manifestUrl","locked","configurationHash","dependencies"]},"maxItems":50},"items":{"type":"array","items":{"type":"object","properties":{"environmentId":{"type":"string"},"status":{"type":"string"},"error":{"type":"string","nullable":true}},"required":["environmentId","status","error"]}}},"required":["id","kind","projectEnvironmentId","status","revision","rollbackOfId","error","createdAt","completedAt","beforeState","afterState","items"]}}}},"400":{"description":"Request rejected","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Request rejected","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"404":{"description":"Request rejected","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"409":{"description":"Request rejected","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"503":{"description":"Request rejected","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/v2/project/{organization}/{project}/environments/{id}/releases/{releaseId}/rollback":{"post":{"operationId":"rollbackProjectRelease","tags":["Project environments"],"parameters":[{"schema":{"type":"string"},"required":true,"name":"organization","in":"path"},{"schema":{"type":"string"},"required":true,"name":"project","in":"path"},{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","format":"uuid"},"required":true,"name":"releaseId","in":"path"}],"requestBody":{"description":"Rollback","required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"revision":{"type":"integer","minimum":0},"idempotencyKey":{"type":"string","minLength":1,"maxLength":128}},"required":["revision","idempotencyKey"]}}}},"responses":{"202":{"description":"Recorded rollback","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["id","status","statusUrl"]}}}},"400":{"description":"Request rejected","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Request rejected","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"404":{"description":"Request rejected","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"409":{"description":"Request rejected","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"503":{"description":"Request rejected","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/v2/project/{organization}/{project}/environments/{id}/releases/{releaseId}/retry":{"post":{"operationId":"retryProjectReleaseRecovery","tags":["Project environments"],"parameters":[{"schema":{"type":"string"},"required":true,"name":"organization","in":"path"},{"schema":{"type":"string"},"required":true,"name":"project","in":"path"},{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","format":"uuid"},"required":true,"name":"releaseId","in":"path"}],"requestBody":{"description":"Recovery revision","required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"revision":{"type":"integer","minimum":0}},"required":["revision"]}}}},"responses":{"202":{"description":"Recovery recorded","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["id","status","statusUrl"]}}}},"400":{"description":"Request rejected","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"403":{"description":"Request rejected","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"404":{"description":"Request rejected","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"409":{"description":"Request rejected","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"503":{"description":"Request rejected","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/v2/redeployment/{organization}/{project}/{application}/target-list":{"get":{"tags":["Redeployment"],"summary":"Get deployment targets","operationId":"getRedeploymentTargetList","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name","example":"zephyr-cloud"},"required":true,"description":"Organization name","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name","example":"main-app"},"required":true,"description":"Project name","name":"project","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name","example":"@myorg/web-dashboard"},"required":true,"description":"Application name","name":"application","in":"path"},{"schema":{"type":"string","description":"Filter by target name"},"required":false,"description":"Filter by target name","name":"name","in":"query"},{"schema":{"type":"string","enum":["environment","tag"],"description":"Filter by target type"},"required":false,"description":"Filter by target type","name":"type","in":"query"},{"schema":{"type":"string","description":"Comma-separated updater ids"},"required":false,"description":"Comma-separated updater ids","name":"updatedBy","in":"query"},{"schema":{"type":"string","description":"ISO lower bound"},"required":false,"description":"ISO lower bound","name":"dateFrom","in":"query"},{"schema":{"type":"string","description":"ISO upper bound"},"required":false,"description":"ISO upper bound","name":"dateTo","in":"query"},{"schema":{"type":"boolean","nullable":true,"description":"Include targets with no deployments"},"required":false,"description":"Include targets with no deployments","name":"includeEmpty","in":"query"}],"responses":{"200":{"description":"Deployment targets","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TargetListResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Application not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/redeployment/{organization}/{project}/{application}/target-authors":{"get":{"tags":["Redeployment"],"summary":"Get deployment target authors","operationId":"getRedeploymentTargetAuthors","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name","example":"zephyr-cloud"},"required":true,"description":"Organization name","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name","example":"main-app"},"required":true,"description":"Project name","name":"project","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name","example":"@myorg/web-dashboard"},"required":true,"description":"Application name","name":"application","in":"path"},{"schema":{"type":"string","description":"Target id"},"required":false,"description":"Target id","name":"target","in":"query"}],"responses":{"200":{"description":"Deployment target authors","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TargetAuthorsResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Application not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/redeployment/{organization}/{project}/{application}/{target}/history":{"get":{"tags":["Redeployment","Infinite"],"summary":"Get deployment target history","operationId":"getRedeploymentTargetHistory","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name","example":"zephyr-cloud"},"required":true,"description":"Organization name","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name","example":"main-app"},"required":true,"description":"Project name","name":"project","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name","example":"@myorg/web-dashboard"},"required":true,"description":"Application name","name":"application","in":"path"},{"schema":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Target ID","example":"550e8400-e29b-41d4-a716-446655440000"},"required":true,"description":"Target ID","name":"target","in":"path"},{"schema":{"type":"integer","minimum":1,"default":1,"description":"Page number","example":1},"required":false,"description":"Page number","name":"page","in":"query"},{"schema":{"type":"number","minimum":1,"maximum":100,"description":"Rows per page"},"required":false,"description":"Rows per page","name":"perPage","in":"query"},{"schema":{"type":"string","description":"Version name filter"},"required":false,"description":"Version name filter","name":"name","in":"query"},{"schema":{"type":"string","description":"Comma-separated deployer ids"},"required":false,"description":"Comma-separated deployer ids","name":"deployedBy","in":"query"},{"schema":{"type":"string","description":"ISO lower bound"},"required":false,"description":"ISO lower bound","name":"dateFrom","in":"query"},{"schema":{"type":"string","description":"ISO upper bound"},"required":false,"description":"ISO upper bound","name":"dateTo","in":"query"}],"responses":{"200":{"description":"Deployment target history","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TargetHistoryResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Target not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/user/profile":{"get":{"tags":["User"],"operationId":"getCurrentUserProfile","summary":"Get current user profile","description":"Retrieves the profile information for the authenticated user.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"User profile information","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/UserProfile"}},"required":["value"],"description":"User profile"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"404":{"description":"User not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}},"patch":{"tags":["User"],"operationId":"updateCurrentUserProfile","summary":"Update current user profile","description":"Updates the profile information for the authenticated user.","security":[{"bearerAuth":[]}],"requestBody":{"description":"Profile fields to update","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateProfileBody"}}}},"responses":{"200":{"description":"Updated profile information","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/UserProfile"}},"required":["value"],"description":"Updated user profile"}}}},"400":{"description":"Invalid profile data","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[400]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Bad request error - invalid input or validation failed","example":{"error":"Bad Request","message":"Validation failed","statusCode":400,"requestId":"req-123-abc-456"}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"404":{"description":"User not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/user":{"post":{"tags":["User V2"],"summary":"Update user profile","description":"Updates the authenticated user profile information (legacy endpoint).","operationId":"updateUser","security":[{"bearerAuth":[]}],"requestBody":{"description":"User profile update","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUserBody"}}}},"responses":{"200":{"description":"Updated user profile","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUserResponse"}}}},"400":{"description":"Invalid user data","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[400]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Bad request error - invalid input or validation failed","example":{"error":"Bad Request","message":"Validation failed","statusCode":400,"requestId":"req-123-abc-456"}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"404":{"description":"User not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}},"delete":{"tags":["User V2"],"summary":"Deactivate current user","description":"Deactivates the current authenticated user account. This action is irreversible.","operationId":"deactivateCurrentUser","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Account deactivated","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}},"required":["success","message"]}}}},"400":{"description":"Cannot deactivate account","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[400]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Bad request error - invalid input or validation failed","example":{"error":"Bad Request","message":"Validation failed","statusCode":400,"requestId":"req-123-abc-456"}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}}}}},"/v2/user/organizations":{"get":{"tags":["User"],"operationId":"getUserOrganizations","summary":"Get user organizations","description":"Retrieves all organizations the authenticated user has access to.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"List of organizations","content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"$ref":"#/components/schemas/UserOrganization"}}},"required":["entities"],"description":"List of user organizations"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}}}}},"/v2/user/me":{"get":{"tags":["User V2"],"operationId":"getCurrentUser","summary":"Get current user","description":"Retrieves the current authenticated user information.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Current user information","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/CurrentUser"}},"required":["value"],"description":"Current user"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"404":{"description":"User not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/user/organization-list":{"get":{"tags":["User V2"],"operationId":"getCurrentUserOrganizationList","summary":"Get current user organizations list","description":"Retrieves organizations available to the current user with optional name filter.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Filter by name","example":"my-"},"required":false,"description":"Filter by name","name":"name","in":"query"}],"responses":{"200":{"description":"Available organizations","content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"$ref":"#/components/schemas/UserAvailableOrganization"}}},"required":["entities"],"description":"List of available organizations"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}}}}},"/v2/user/{userEmail}/organization-list":{"get":{"tags":["User V2"],"operationId":"getUserOrganizationListByEmail","summary":"Get user organizations by email","description":"Retrieves organizations available to a user by their email address.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"email","description":"User email address","example":"john@example.com"},"required":true,"description":"User email address","name":"userEmail","in":"path"},{"schema":{"type":"string","description":"Filter by name","example":"my-"},"required":false,"description":"Filter by name","name":"name","in":"query"}],"responses":{"200":{"description":"Available organizations for the user","content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"$ref":"#/components/schemas/UserAvailableOrganization"}}},"required":["entities"],"description":"List of available organizations"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"404":{"description":"User not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/user/{userEmail}/project-list":{"get":{"tags":["User V2"],"operationId":"getUserProjectListByEmail","summary":"Get user project list","description":"Retrieves projects accessible to a user by their email address.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"email","description":"User email address","example":"john@example.com"},"required":true,"description":"User email address","name":"userEmail","in":"path"},{"schema":{"type":"string","enum":["all","created_by_me","public","private","removed"],"description":"Filter projects by type","example":"all"},"required":false,"description":"Filter projects by type","name":"type","in":"query"},{"schema":{"type":"string","enum":["name_asc","name_desc","latest_updates"],"description":"Sort order","example":"name_asc"},"required":false,"description":"Sort order","name":"sort","in":"query"},{"schema":{"type":"string","description":"Filter by name"},"required":false,"description":"Filter by name","name":"name","in":"query"},{"schema":{"type":"number","nullable":true,"description":"Limit results","example":20},"required":false,"description":"Limit results","name":"limit","in":"query"},{"schema":{"type":"number","nullable":true,"description":"Offset for pagination","example":0},"required":false,"description":"Offset for pagination","name":"offset","in":"query"},{"schema":{"type":"number","nullable":true,"description":"Filter by latest days"},"required":false,"description":"Filter by latest days","name":"latestDays","in":"query"}],"responses":{"200":{"description":"User projects","content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"$ref":"#/components/schemas/UserProjectListItem"}}},"required":["entities"],"description":"List of projects"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"404":{"description":"User not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/user/{userEmail}/application-list":{"get":{"tags":["User V2"],"operationId":"getUserApplicationListByEmail","summary":"Get user application list","description":"Retrieves applications accessible to a user by their email address.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"email","description":"User email address","example":"john@example.com"},"required":true,"description":"User email address","name":"userEmail","in":"path"},{"schema":{"type":"string","enum":["all","created_by_me","public","private","removed"],"description":"Filter applications by type","example":"all"},"required":false,"description":"Filter applications by type","name":"type","in":"query"},{"schema":{"type":"string","enum":["name_asc","name_desc","latest_updates"],"description":"Sort order","example":"name_asc"},"required":false,"description":"Sort order","name":"sort","in":"query"},{"schema":{"type":"string","description":"Filter by name"},"required":false,"description":"Filter by name","name":"name","in":"query"},{"schema":{"type":"number","nullable":true,"description":"Limit results","example":20},"required":false,"description":"Limit results","name":"limit","in":"query"},{"schema":{"type":"number","nullable":true,"description":"Offset for pagination","example":0},"required":false,"description":"Offset for pagination","name":"offset","in":"query"},{"schema":{"type":"number","nullable":true,"description":"Filter by latest days"},"required":false,"description":"Filter by latest days","name":"latestDays","in":"query"}],"responses":{"200":{"description":"User applications","content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"$ref":"#/components/schemas/UserApplicationListItem"}}},"required":["entities"],"description":"List of applications"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"404":{"description":"User not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/user/is-unique-username/{username}":{"get":{"tags":["User V2"],"operationId":"isUniqueUsername","summary":"Check username uniqueness","description":"Checks if the specified username is available.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Username","example":"johndoe"},"required":true,"description":"Username","name":"username","in":"path"}],"responses":{"200":{"description":"Uniqueness check result","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"boolean"}},"required":["value"],"description":"Username uniqueness"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}}}}},"/v2/user/{username}":{"get":{"tags":["User V2"],"operationId":"getUserByUsername","summary":"Get user by username","description":"Retrieves user information by username.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Username","example":"johndoe"},"required":true,"description":"Username","name":"username","in":"path"}],"responses":{"200":{"description":"User information","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"allOf":[{"$ref":"#/components/schemas/CurrentUser"},{"nullable":true}]}},"required":["value"],"description":"User information"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}}}}},"/v2/user/upsert":{"post":{"tags":["User V2"],"operationId":"upsertUser","summary":"Upsert user","description":"Creates a new user or updates an existing user.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"User upserted successfully","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/CurrentUser"}},"required":["value"],"description":"Upserted user"}}}},"400":{"description":"Invalid user data","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[400]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Bad request error - invalid input or validation failed","example":{"error":"Bad Request","message":"Validation failed","statusCode":400,"requestId":"req-123-abc-456"}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}}}}},"/v2/user/me/accounts-associated":{"get":{"tags":["User V2"],"operationId":"getAccountsAssociated","summary":"Get associated accounts","description":"Retrieves all identity providers linked to the current user account.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Associated accounts","content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"$ref":"#/components/schemas/LinkedIdentity"}}},"required":["entities"],"description":"List of associated accounts"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}}}}},"/v2/user/me/git-provider-identities/link":{"post":{"tags":["User V2","SDK"],"operationId":"startGitProviderIdentityLink","summary":"Start Git provider identity link","description":"Creates an Auth0 authorization URL for linking a Git provider identity to the current user.","security":[{"bearerAuth":[]}],"requestBody":{"description":"Git provider link request","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartGitProviderIdentityLinkBody"}}}},"responses":{"200":{"description":"Git provider identity link URL","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/StartGitProviderIdentityLinkResponse"}},"required":["value"],"description":"Git provider identity link URL"}}}},"400":{"description":"Invalid link request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[400]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Bad request error - invalid input or validation failed","example":{"error":"Bad Request","message":"Validation failed","statusCode":400,"requestId":"req-123-abc-456"}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}}}}},"/v2/user/me/git-provider-identities/link/callback":{"get":{"tags":["User V2"],"operationId":"gitProviderIdentityLinkCallback","summary":"Git provider identity link callback","description":"Handles the Auth0 callback for a Git provider identity link request.","parameters":[{"schema":{"type":"string","description":"Authorization code from Auth0"},"required":false,"description":"Authorization code from Auth0","name":"code","in":"query"},{"schema":{"type":"string","description":"One-time link state"},"required":false,"description":"One-time link state","name":"state","in":"query"},{"schema":{"type":"string","description":"Auth0 error code"},"required":false,"description":"Auth0 error code","name":"error","in":"query"},{"schema":{"type":"string","description":"Auth0 error description"},"required":false,"description":"Auth0 error description","name":"error_description","in":"query"}],"responses":{"302":{"description":"Redirect to frontend profile Git providers page"},"400":{"description":"Invalid callback request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[400]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Bad request error - invalid input or validation failed","example":{"error":"Bad Request","message":"Validation failed","statusCode":400,"requestId":"req-123-abc-456"}}}}}}}},"/v2/user/me/git-provider-identities/unlink":{"post":{"tags":["User V2","SDK"],"operationId":"unlinkGitProviderIdentity","summary":"Unlink Git provider identity","description":"Unlinks a Git provider identity from the current user.","security":[{"bearerAuth":[]}],"requestBody":{"description":"Git provider identity unlink request","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnlinkGitProviderIdentityBody"}}}},"responses":{"200":{"description":"Git provider identity unlinked","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnlinkGitProviderIdentitySuccess"}}}},"400":{"description":"Invalid unlink request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[400]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Bad request error - invalid input or validation failed","example":{"error":"Bad Request","message":"Validation failed","statusCode":400,"requestId":"req-123-abc-456"}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Identity not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/user/me/set-primary-account/{provider}/{id}":{"post":{"tags":["User V2"],"operationId":"setPrimaryAccount","summary":"Set primary account","description":"Sets the specified identity provider as the primary account for the current user.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Identity provider name","example":"google-oauth2"},"required":true,"description":"Identity provider name","name":"provider","in":"path"},{"schema":{"type":"string","description":"User ID in the identity provider","example":"123456789"},"required":true,"description":"User ID in the identity provider","name":"id","in":"path"}],"responses":{"200":{"description":"Primary account set successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetPrimaryAccountSuccess"}}}},"400":{"description":"Invalid provider or ID","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[400]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Bad request error - invalid input or validation failed","example":{"error":"Bad Request","message":"Validation failed","statusCode":400,"requestId":"req-123-abc-456"}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Identity not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/builds/{organization}/{project}/{application}/versions":{"get":{"tags":["Builds"],"summary":"Get application version list","description":"Returns a paginated list of application versions (builds) for the specified application","operationId":"getBuildVersionList","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name (slug)","example":"web-dashboard"},"required":true,"description":"Application name (slug)","name":"application","in":"path"},{"schema":{"type":"integer","minimum":1,"default":1,"description":"Page number (1-indexed)","example":1},"required":false,"description":"Page number (1-indexed)","name":"page","in":"query"},{"schema":{"allOf":[{"$ref":"#/components/schemas/VersionSortField"},{"description":"Field to sort by"}]},"required":false,"description":"Field to sort by","name":"sortBy","in":"query"},{"schema":{"type":"string","enum":["asc","desc"],"description":"Sort order"},"required":false,"description":"Sort order","name":"sortOrder","in":"query"},{"schema":{"type":"string","description":"Search query (version name, branch, username)"},"required":false,"description":"Search query (version name, branch, username)","name":"query","in":"query"}],"responses":{"200":{"description":"Paginated list of versions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedVersionListResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Application not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/builds/{organization}/{project}/{application}/versions/{version}":{"get":{"tags":["Builds"],"summary":"Get version detail","description":"Returns detailed information about a specific version including modules and consumes","operationId":"getBuildVersionDetail","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name (slug)","example":"web-dashboard"},"required":true,"description":"Application name (slug)","name":"application","in":"path"},{"schema":{"type":"string","minLength":1,"description":"Version identifier (version name or snapshot ID)","example":"1.0.0"},"required":true,"description":"Version identifier (version name or snapshot ID)","name":"version","in":"path"}],"responses":{"200":{"description":"Version detail","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/VersionDetail"}},"required":["value"],"description":"Single value response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Version not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/builds/{organization}/{project}/{application}/deploy-targets":{"get":{"tags":["Builds"],"summary":"Get deployment targets","description":"Returns list of available deployment targets (environments and tags) for the application","operationId":"getDeployTargets","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name (slug)","example":"web-dashboard"},"required":true,"description":"Application name (slug)","name":"application","in":"path"}],"responses":{"200":{"description":"Deployment targets","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/DeployTargetsResponse"}},"required":["value"],"description":"Single value response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Application not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/builds/{organization}/{project}/{application}/deployed-versions":{"get":{"tags":["Builds"],"summary":"Get deployed versions","description":"Returns list of currently deployed versions across environments and tags","operationId":"getDeployedVersions","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name (slug)","example":"web-dashboard"},"required":true,"description":"Application name (slug)","name":"application","in":"path"},{"schema":{"type":"string","enum":["all","environment","tag"],"default":"all","description":"Deploy target type filter"},"required":false,"description":"Deploy target type filter","name":"type","in":"query"},{"schema":{"type":"string","description":"Filter by name"},"required":false,"description":"Filter by name","name":"name","in":"query"}],"responses":{"200":{"description":"Deployed versions","content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"$ref":"#/components/schemas/DeployedVersion"}}},"required":["entities"],"description":"List response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Application not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/builds/{organization}/{project}/{application}/versions/{version}/deploy":{"post":{"tags":["Builds"],"summary":"Deploy version","description":"Deploys a specific version to an environment or tag","operationId":"deployVersion","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization name (slug)","example":"zephyr-cloud"},"required":true,"description":"Organization name (slug)","name":"organization","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Project name (slug)","example":"main-app"},"required":true,"description":"Project name (slug)","name":"project","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":214,"pattern":"^(@[a-zA-Z0-9_-]+\\/)?[a-zA-Z0-9_-]+$","description":"Application name (slug)","example":"web-dashboard"},"required":true,"description":"Application name (slug)","name":"application","in":"path"},{"schema":{"type":"string","minLength":1,"description":"Version identifier (version name or snapshot ID)","example":"1.0.0"},"required":true,"description":"Version identifier (version name or snapshot ID)","name":"version","in":"path"},{"schema":{"type":"string","enum":["true","false"],"description":"Whether this is a rollback deployment","example":"true"},"required":false,"description":"Whether this is a rollback deployment","name":"is-rollback","in":"query"}],"requestBody":{"description":"Deployment target","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeployVersionBody"}}}},"responses":{"200":{"description":"Deployment initiated successfully","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"boolean"}},"required":["value"],"description":"Single value response wrapper"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[400]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Bad request error - invalid input or validation failed","example":{"error":"Bad Request","message":"Validation failed","statusCode":400,"requestId":"req-123-abc-456"}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Version or target not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}},"409":{"description":"Deployment conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Conflict"],"default":"Conflict"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[409]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource conflict - duplicate or conflicting operation","example":{"error":"Conflict","message":"A resource with this name already exists","statusCode":409,"requestId":"req-123-abc-456"}}}}}}}},"/v2/organization/{organizationName}/unique-project-name/{displayName}":{"get":{"tags":["Teams"],"summary":"Get unique team name","description":"Generates a unique team name based on the provided display name within an organization.","operationId":"getUniqueTeamName","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"description":"Organization name","example":"zephyr-cloud"},"required":true,"description":"Organization name","name":"organizationName","in":"path"},{"schema":{"type":"string","minLength":1,"description":"Display name to generate unique name from","example":"Frontend Team"},"required":true,"description":"Display name to generate unique name from","name":"displayName","in":"path"}],"responses":{"200":{"description":"Unique team name generated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UniqueNameResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Organization not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/organization/{organizationName}/team":{"post":{"tags":["Teams"],"summary":"Create team","description":"Creates a new team within the specified organization. The creator becomes a maintainer.","operationId":"createTeam","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"description":"Organization name","example":"zephyr-cloud"},"required":true,"description":"Organization name","name":"organizationName","in":"path"}],"requestBody":{"description":"Team creation data","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTeam"}}}},"responses":{"201":{"description":"Team created successfully","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/Team"}},"required":["value"],"description":"Created team"}}}},"400":{"description":"Invalid team data","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[400]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Bad request error - invalid input or validation failed","example":{"error":"Bad Request","message":"Validation failed","statusCode":400,"requestId":"req-123-abc-456"}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Organization not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}},"409":{"description":"Team name already exists","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Conflict"],"default":"Conflict"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[409]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource conflict - duplicate or conflicting operation","example":{"error":"Conflict","message":"A resource with this name already exists","statusCode":409,"requestId":"req-123-abc-456"}}}}}}}},"/v2/organization/{organizationName}/team-list":{"get":{"tags":["Teams"],"summary":"List organization teams","description":"Returns a list of teams within the specified organization.","operationId":"getTeamList","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"description":"Organization name","example":"zephyr-cloud"},"required":true,"description":"Organization name","name":"organizationName","in":"path"},{"schema":{"type":"string","description":"Filter teams by name (partial match)","example":"frontend"},"required":false,"description":"Filter teams by name (partial match)","name":"name","in":"query"}],"responses":{"200":{"description":"List of organization teams","content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"$ref":"#/components/schemas/OrganizationTeam"}}},"required":["entities"],"description":"List of teams"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Organization not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/team/{teamId}":{"get":{"tags":["Teams"],"summary":"Get team by ID","description":"Returns detailed information about a team including its members.","operationId":"getTeam","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid","description":"Team unique identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"required":true,"description":"Team unique identifier","name":"teamId","in":"path"}],"responses":{"200":{"description":"Team details retrieved successfully","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/TeamDetails"}},"required":["value"],"description":"Team details"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}},"post":{"tags":["Teams"],"summary":"Update team","description":"Updates team information. Requires maintainer permissions.","operationId":"updateTeam","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid","description":"Team unique identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"required":true,"description":"Team unique identifier","name":"teamId","in":"path"}],"requestBody":{"description":"Team update data","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateTeam"}}}},"responses":{"200":{"description":"Team updated successfully","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"object","properties":{"id":{"type":"string","format":"uuid"}},"required":["id"]}},"required":["value"],"description":"Updated team ID"}}}},"400":{"description":"Invalid team data","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[400]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Bad request error - invalid input or validation failed","example":{"error":"Bad Request","message":"Validation failed","statusCode":400,"requestId":"req-123-abc-456"}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Maintainer permissions required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}},"409":{"description":"Team name already exists","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Conflict"],"default":"Conflict"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[409]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource conflict - duplicate or conflicting operation","example":{"error":"Conflict","message":"A resource with this name already exists","statusCode":409,"requestId":"req-123-abc-456"}}}}}}},"delete":{"tags":["Teams"],"summary":"Delete team","description":"Deletes a team and removes all members. Requires maintainer permissions.","operationId":"deleteTeam","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid","description":"Team unique identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"required":true,"description":"Team unique identifier","name":"teamId","in":"path"}],"responses":{"200":{"description":"Team deleted successfully","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"object","properties":{"id":{"type":"string","format":"uuid"}},"required":["id"]}},"required":["value"],"description":"Deleted team ID"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Maintainer permissions required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/team/{teamId}/members":{"get":{"tags":["Teams"],"summary":"List team members","description":"Returns a list of members in the specified team.","operationId":"getTeamMembers","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid","description":"Team unique identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"required":true,"description":"Team unique identifier","name":"teamId","in":"path"},{"schema":{"type":"string","description":"Filter members by name or email (partial match)","example":"john"},"required":false,"description":"Filter members by name or email (partial match)","name":"name","in":"query"}],"responses":{"200":{"description":"Team members retrieved successfully","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"array","items":{"$ref":"#/components/schemas/TeamMember"}}},"required":["value"],"description":"List of team members"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/team/{organizationName}/team/{teamName}":{"get":{"tags":["Teams"],"summary":"Get team by name","description":"Returns team details by organization and team name.","operationId":"getTeamByName","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"description":"Organization name","example":"zephyr-cloud"},"required":true,"description":"Organization name","name":"organizationName","in":"path"},{"schema":{"type":"string","minLength":1,"description":"Team name","example":"frontend-team"},"required":true,"description":"Team name","name":"teamName","in":"path"}],"responses":{"200":{"description":"Team details retrieved successfully","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/TeamDetails"}},"required":["value"],"description":"Team details"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/team/{teamId}/member":{"post":{"tags":["Teams"],"summary":"Add team members","description":"Adds active organization members to the team. Re-adding a former team member restores their soft-deleted membership. Requires maintainer permissions.","operationId":"addTeamMembers","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid","description":"Team unique identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"required":true,"description":"Team unique identifier","name":"teamId","in":"path"}],"requestBody":{"description":"Members to add","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddTeamMembers"}}}},"responses":{"200":{"description":"Members added successfully","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/BatchResult"}},"required":["value"],"description":"Number of members added"}}}},"400":{"description":"Invalid member data or a user is not an active member of the organization","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[400]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Bad request error - invalid input or validation failed","example":{"error":"Bad Request","message":"Validation failed","statusCode":400,"requestId":"req-123-abc-456"}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Maintainer permissions required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Team not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}},"409":{"description":"One or more users already exist in team","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Conflict"],"default":"Conflict"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[409]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource conflict - duplicate or conflicting operation","example":{"error":"Conflict","message":"A resource with this name already exists","statusCode":409,"requestId":"req-123-abc-456"}}}}}}}},"/v2/team/{teamId}/member/{memberId}":{"post":{"tags":["Teams"],"summary":"Update member role","description":"Updates the role of a team member. Requires maintainer permissions.","operationId":"updateTeamMemberRole","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid","description":"Team unique identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"required":true,"description":"Team unique identifier","name":"teamId","in":"path"},{"schema":{"type":"string","format":"uuid","description":"Team member record ID","example":"550e8400-e29b-41d4-a716-446655440001"},"required":true,"description":"Team member record ID","name":"memberId","in":"path"}],"requestBody":{"description":"New role data","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateMemberRole"}}}},"responses":{"200":{"description":"Member role updated successfully","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/TeamUser"}},"required":["value"],"description":"Updated team user"}}}},"400":{"description":"Invalid role data","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[400]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Bad request error - invalid input or validation failed","example":{"error":"Bad Request","message":"Validation failed","statusCode":400,"requestId":"req-123-abc-456"}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Maintainer permissions required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Team or member not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}},"delete":{"tags":["Teams"],"summary":"Remove team member","description":"Removes a member from the team. Requires maintainer permissions.","operationId":"removeTeamMember","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid","description":"Team unique identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"required":true,"description":"Team unique identifier","name":"teamId","in":"path"},{"schema":{"type":"string","format":"uuid","description":"Team member record ID","example":"550e8400-e29b-41d4-a716-446655440001"},"required":true,"description":"Team member record ID","name":"memberId","in":"path"}],"responses":{"200":{"description":"Member removed successfully","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/TeamUser"}},"required":["value"],"description":"Removed team user"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Maintainer permissions required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Team or member not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v3/subscriptions/{organizationName}":{"get":{"operationId":"getSubscription","tags":["Subscriptions"],"summary":"Get organization subscription","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Organization name","example":"my-org"},"required":true,"description":"Organization name","name":"organizationName","in":"path"}],"responses":{"200":{"description":"Subscription details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionWithQuotasAndCouponDto"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Organization not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v3/subscriptions/{organizationName}/change":{"post":{"operationId":"changeSubscription","tags":["Subscriptions"],"summary":"Change subscription tier or billing cycle","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Organization name","example":"my-org"},"required":true,"description":"Organization name","name":"organizationName","in":"path"}],"requestBody":{"description":"Change request","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChangeSubscriptionRequest"}}}},"responses":{"200":{"description":"Subscription changed","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","default":true},"message":{"type":"string"}},"description":"Success response","example":{"success":true,"message":"Operation completed successfully"}}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[400]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Bad request error - invalid input or validation failed","example":{"error":"Bad Request","message":"Validation failed","statusCode":400,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Organization not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v3/subscriptions/{organizationName}/schedule/downgrade":{"delete":{"operationId":"cancelSubscriptionSchedule","tags":["Subscriptions"],"summary":"Cancel scheduled downgrade","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Organization name","example":"my-org"},"required":true,"description":"Organization name","name":"organizationName","in":"path"}],"responses":{"200":{"description":"Schedule cancelled","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","default":true},"message":{"type":"string"}},"description":"Success response","example":{"success":true,"message":"Operation completed successfully"}}}}},"400":{"description":"No schedule or payment method required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[400]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Bad request error - invalid input or validation failed","example":{"error":"Bad Request","message":"Validation failed","statusCode":400,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Organization not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v3/subscriptions/{organizationName}/schedule/advance":{"delete":{"operationId":"advanceSubscriptionSchedule","tags":["Subscriptions"],"summary":"Advance scheduled change immediately","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Organization name","example":"my-org"},"required":true,"description":"Organization name","name":"organizationName","in":"path"}],"responses":{"200":{"description":"Schedule advanced","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","default":true},"message":{"type":"string"}},"description":"Success response","example":{"success":true,"message":"Operation completed successfully"}}}}},"400":{"description":"No schedule or payment method required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[400]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Bad request error - invalid input or validation failed","example":{"error":"Bad Request","message":"Validation failed","statusCode":400,"requestId":"req-123-abc-456"}}}}}}}},"/v3/subscriptions/quotas/{organizationName}":{"get":{"operationId":"listQuotas","tags":["Quotas"],"summary":"List subscription quotas","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Organization name","example":"my-org"},"required":true,"description":"Organization name","name":"organizationName","in":"path"}],"responses":{"200":{"description":"Quotas","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SimpleMetricQuotaDto"}}}}},"404":{"description":"Organization not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v3/subscriptions/quotas/{organizationName}/{metric}/recurring":{"post":{"operationId":"updateRecurringQuota","tags":["Quotas"],"summary":"Update recurring quota overage","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"organizationName","in":"path"},{"schema":{"type":"string","enum":["DEPLOYMENTS","SEATS"]},"required":true,"name":"metric","in":"path"}],"requestBody":{"description":"Update request","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRecurringQuotaBody"}}}},"responses":{"200":{"description":"Quota updated","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","default":true},"message":{"type":"string"}},"description":"Success response","example":{"success":true,"message":"Operation completed successfully"}}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[400]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Bad request error - invalid input or validation failed","example":{"error":"Bad Request","message":"Validation failed","statusCode":400,"requestId":"req-123-abc-456"}}}}}}}},"/v3/subscriptions/quotas/{organizationName}/{metric}/non-recurring":{"post":{"operationId":"updateNonRecurringQuota","tags":["Quotas"],"summary":"Update non-recurring quota limit","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"organizationName","in":"path"},{"schema":{"type":"string","enum":["DEPLOYMENTS","SEATS"]},"required":true,"name":"metric","in":"path"}],"requestBody":{"description":"Update request","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateNonRecurringQuotaBody"}}}},"responses":{"200":{"description":"Quota updated","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","default":true},"message":{"type":"string"}},"description":"Success response","example":{"success":true,"message":"Operation completed successfully"}}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[400]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Bad request error - invalid input or validation failed","example":{"error":"Bad Request","message":"Validation failed","statusCode":400,"requestId":"req-123-abc-456"}}}}}}}},"/v3/subscriptions/metrics/{organizationName}/current-usage":{"get":{"operationId":"listCurrentUsage","tags":["Metrics"],"summary":"List current usage for all metrics","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Organization name","example":"my-org"},"required":true,"description":"Organization name","name":"organizationName","in":"path"}],"responses":{"200":{"description":"Usage quotas","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UsagesQuotaDto"}}}}},"404":{"description":"Organization not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v3/subscriptions/metrics/{organizationName}/current-usage/{metric}":{"get":{"operationId":"listCurrentMetricUsage","tags":["Metrics"],"summary":"Get current usage for specific metric","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"organizationName","in":"path"},{"schema":{"type":"string","enum":["DEPLOYMENTS","SEATS"]},"required":true,"name":"metric","in":"path"}],"responses":{"200":{"description":"Usage quota","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UsageQuotaDto"}}}},"404":{"description":"Organization not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v3/subscriptions/metrics/{organizationName}/current-usage-graph":{"post":{"operationId":"graphCurrentUsage","tags":["Metrics"],"summary":"Get usage graph over time","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Organization name","example":"my-org"},"required":true,"description":"Organization name","name":"organizationName","in":"path"}],"requestBody":{"description":"Graph query","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GraphMetricBodyDto"}}}},"responses":{"200":{"description":"Graph data","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/GraphMetricResultDto"}}}}},"404":{"description":"Organization not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v3/subscriptions/multiorgs/{organizationName}/children":{"get":{"operationId":"listChildOrganizations","tags":["Multi-Organization Subscriptions"],"summary":"List child organizations","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Organization name","example":"my-org"},"required":true,"description":"Organization name","name":"organizationName","in":"path"}],"responses":{"200":{"description":"Child organizations","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChildOrganizationListDto"}}}},"404":{"description":"Organization not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v3/subscriptions/multiorgs/{organizationName}/children/invite":{"post":{"operationId":"inviteChildOrganization","tags":["Multi-Organization Subscriptions"],"summary":"Invite child organization","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Organization name","example":"my-org"},"required":true,"description":"Organization name","name":"organizationName","in":"path"}],"requestBody":{"description":"Invite request","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InviteChildOrganizationDto"}}}},"responses":{"200":{"description":"Invite sent","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","default":true},"message":{"type":"string"}},"description":"Success response","example":{"success":true,"message":"Operation completed successfully"}}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[400]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Bad request error - invalid input or validation failed","example":{"error":"Bad Request","message":"Validation failed","statusCode":400,"requestId":"req-123-abc-456"}}}}}}}},"/v3/subscriptions/multiorgs/{organizationName}/children/check":{"post":{"operationId":"checkCanJoinAsChild","tags":["Multi-Organization Subscriptions"],"summary":"Check if organization can join as child","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Organization name","example":"my-org"},"required":true,"description":"Organization name","name":"organizationName","in":"path"}],"requestBody":{"description":"Check request","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InviteChildOrganizationDto"}}}},"responses":{"200":{"description":"Can join","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","default":true},"message":{"type":"string"}},"description":"Success response","example":{"success":true,"message":"Operation completed successfully"}}}}},"400":{"description":"Cannot join","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[400]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Bad request error - invalid input or validation failed","example":{"error":"Bad Request","message":"Validation failed","statusCode":400,"requestId":"req-123-abc-456"}}}}}}}},"/v3/subscriptions/multiorgs/{organizationName}/children/invite/{childOrgId}":{"delete":{"operationId":"deleteInviteChildOrganization","tags":["Multi-Organization Subscriptions"],"summary":"Delete child organization invite","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"organizationName","in":"path"},{"schema":{"type":"string"},"required":true,"name":"childOrgId","in":"path"}],"responses":{"200":{"description":"Invite deleted","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","default":true},"message":{"type":"string"}},"description":"Success response","example":{"success":true,"message":"Operation completed successfully"}}}}},"404":{"description":"Organization not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v3/subscriptions/multiorgs/{organizationName}/invite/{inviteOrgName}":{"get":{"operationId":"getInviteInformation","tags":["Multi-Organization Subscriptions"],"summary":"Get invite information","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"organizationName","in":"path"},{"schema":{"type":"string"},"required":true,"name":"inviteOrgName","in":"path"}],"responses":{"200":{"description":"Invite information","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InviteInformationDto"}}}},"404":{"description":"Organization not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}},"delete":{"operationId":"rejectChildOrganizationInvite","tags":["Multi-Organization Subscriptions"],"summary":"Reject child organization invite","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"organizationName","in":"path"},{"schema":{"type":"string"},"required":true,"name":"inviteOrgName","in":"path"}],"responses":{"200":{"description":"Invite rejected","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","default":true},"message":{"type":"string"}},"description":"Success response","example":{"success":true,"message":"Operation completed successfully"}}}}},"404":{"description":"Organization not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v3/subscriptions/multiorgs/{organizationName}/invite/{inviteOrgName}/accept":{"post":{"operationId":"acceptChildOrganizationInvite","tags":["Multi-Organization Subscriptions"],"summary":"Accept child organization invite","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"organizationName","in":"path"},{"schema":{"type":"string"},"required":true,"name":"inviteOrgName","in":"path"}],"responses":{"200":{"description":"Invite accepted","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","default":true},"message":{"type":"string"}},"description":"Success response","example":{"success":true,"message":"Operation completed successfully"}}}}},"404":{"description":"Organization not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v3/subscriptions/invoices/{organizationName}/invoices":{"get":{"operationId":"listInvoices","tags":["Invoices"],"summary":"List subscription invoices","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Organization name","example":"my-org"},"required":true,"description":"Organization name","name":"organizationName","in":"path"},{"schema":{"type":"string","description":"Cursor for pagination (ending before this ID)","example":"in_1234567890"},"required":false,"description":"Cursor for pagination (ending before this ID)","name":"ending_before","in":"query"},{"schema":{"type":"number","nullable":true,"description":"Number of items to return","example":10},"required":false,"description":"Number of items to return","name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor for pagination (starting after this ID)","example":"in_0987654321"},"required":false,"description":"Cursor for pagination (starting after this ID)","name":"starting_after","in":"query"},{"schema":{"type":"string","enum":["draft","open","paid","uncollectible","void"],"description":"Filter invoices by status","example":"paid"},"required":false,"description":"Filter invoices by status","name":"status","in":"query"}],"responses":{"200":{"description":"Invoices","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/StripeInvoiceDto"}}}}},"404":{"description":"Organization not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v3/subscriptions/invoices/{organizationName}/invoices/upcoming":{"get":{"operationId":"getUpcomingInvoice","tags":["Invoices"],"summary":"Get upcoming invoice preview","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Organization name","example":"my-org"},"required":true,"description":"Organization name","name":"organizationName","in":"path"}],"responses":{"200":{"description":"Upcoming invoice","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StripeInvoiceDto"}}}},"400":{"description":"Cannot access invoice","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[400]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Bad request error - invalid input or validation failed","example":{"error":"Bad Request","message":"Validation failed","statusCode":400,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Organization not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v3/subscriptions/payment-methods/{organizationName}":{"get":{"operationId":"listPaymentMethods","tags":["Payment Methods"],"summary":"List payment methods","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Organization name","example":"my-org"},"required":true,"description":"Organization name","name":"organizationName","in":"path"},{"schema":{"type":"string","description":"Cursor for pagination (ending before this ID)","example":"in_1234567890"},"required":false,"description":"Cursor for pagination (ending before this ID)","name":"ending_before","in":"query"},{"schema":{"type":"number","nullable":true,"description":"Number of items to return","example":10},"required":false,"description":"Number of items to return","name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor for pagination (starting after this ID)","example":"in_0987654321"},"required":false,"description":"Cursor for pagination (starting after this ID)","name":"starting_after","in":"query"}],"responses":{"200":{"description":"Payment methods","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/StripePaymentMethodDto"}}}}},"404":{"description":"Organization not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v3/subscriptions/payment-methods/{organizationName}/attach":{"post":{"operationId":"attachPaymentMethod","tags":["Payment Methods"],"summary":"Attach payment method","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Organization name","example":"my-org"},"required":true,"description":"Organization name","name":"organizationName","in":"path"},{"schema":{"type":"string"},"required":true,"name":"paymentMethodId","in":"query"},{"schema":{"type":"boolean","description":"Set this payment method as the organization default","example":false},"required":false,"description":"Set this payment method as the organization default","name":"useAsDefault","in":"query"}],"responses":{"200":{"description":"Payment method attached","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","default":true},"message":{"type":"string"}},"description":"Success response","example":{"success":true,"message":"Operation completed successfully"}}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[400]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Bad request error - invalid input or validation failed","example":{"error":"Bad Request","message":"Validation failed","statusCode":400,"requestId":"req-123-abc-456"}}}}}}}},"/v3/subscriptions/payment-methods/{organizationName}/detach":{"post":{"operationId":"detachPaymentMethod","tags":["Payment Methods"],"summary":"Detach payment method","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Organization name","example":"my-org"},"required":true,"description":"Organization name","name":"organizationName","in":"path"},{"schema":{"type":"string"},"required":true,"name":"paymentMethodId","in":"query"}],"responses":{"200":{"description":"Payment method detached","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","default":true},"message":{"type":"string"}},"description":"Success response","example":{"success":true,"message":"Operation completed successfully"}}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[400]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Bad request error - invalid input or validation failed","example":{"error":"Bad Request","message":"Validation failed","statusCode":400,"requestId":"req-123-abc-456"}}}}}}}},"/v3/subscriptions/payment-methods/{organizationName}/default":{"put":{"operationId":"setDefaultPaymentMethod","tags":["Payment Methods"],"summary":"Set default payment method","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Organization name","example":"my-org"},"required":true,"description":"Organization name","name":"organizationName","in":"path"},{"schema":{"type":"string"},"required":true,"name":"paymentMethodId","in":"query"}],"responses":{"200":{"description":"Default payment method set","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","default":true},"message":{"type":"string"}},"description":"Success response","example":{"success":true,"message":"Operation completed successfully"}}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[400]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Bad request error - invalid input or validation failed","example":{"error":"Bad Request","message":"Validation failed","statusCode":400,"requestId":"req-123-abc-456"}}}}}}},"get":{"operationId":"getDefaultPaymentMethod","tags":["Payment Methods"],"summary":"Get default payment method","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Organization name","example":"my-org"},"required":true,"description":"Organization name","name":"organizationName","in":"path"}],"responses":{"200":{"description":"Default payment method","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StripePaymentMethodDto"}}}},"404":{"description":"Organization not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v3/subscriptions/stripe/prices/all":{"get":{"operationId":"listAllStripePrices","tags":["Stripe"],"summary":"List all Stripe prices","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Stripe prices","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/StripePriceDto"}}}}}}}},"/v3/subscriptions/stripe/subscription/{organizationName}/items":{"get":{"operationId":"getStripeSubscriptionItems","tags":["Stripe"],"summary":"Get Stripe subscription items","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Organization name","example":"my-org"},"required":true,"description":"Organization name","name":"organizationName","in":"path"}],"responses":{"200":{"description":"Subscription items","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/StripeSubscriptionItemDto"}}}}},"404":{"description":"Organization not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v3/subscriptions/{organizationName}/coupons/{coupon}":{"get":{"operationId":"getCoupon","tags":["Coupons"],"summary":"Get coupon details","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Coupon code","example":"ZEPHYR20"},"required":true,"description":"Coupon code","name":"coupon","in":"path"},{"schema":{"type":"string","description":"Organization name","example":"my-org"},"required":true,"description":"Organization name","name":"organizationName","in":"path"}],"responses":{"200":{"description":"Coupon details","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/CouponDto"},{"nullable":true}]}}}}}}},"/v3/subscriptions/{organizationName}/coupons":{"delete":{"operationId":"removeCoupon","tags":["Coupons"],"summary":"Remove active coupon from subscription","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Organization name","example":"my-org"},"required":true,"description":"Organization name","name":"organizationName","in":"path"}],"responses":{"200":{"description":"Coupon removed","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","default":true},"message":{"type":"string"}},"description":"Success response","example":{"success":true,"message":"Operation completed successfully"}}}}},"404":{"description":"Organization not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/side-panel/application-list":{"get":{"tags":["Side Panel"],"operationId":"getSidePanelApplicationList","summary":"Get application list","description":"Retrieves the list of applications accessible to the current user for the side panel.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Application list","content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"$ref":"#/components/schemas/SidePanelApplication"}}},"required":["entities"],"description":"List of applications"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}}}}},"/v2/side-panel/application-environment-list":{"get":{"tags":["Side Panel"],"operationId":"getSidePanelApplicationEnvironmentList","summary":"Get application environments","description":"Retrieves the list of environments for a specific application.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Application unique identifier","example":"org/project/app"},"required":true,"description":"Application unique identifier","name":"application_uid","in":"query"}],"responses":{"200":{"description":"Environment list","content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"$ref":"#/components/schemas/SidePanelResponse"}}},"required":["entities"],"description":"List of environments"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Application not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/side-panel/application-tag-list":{"get":{"tags":["Side Panel"],"operationId":"getSidePanelApplicationTagList","summary":"Get application tags","description":"Retrieves the list of tags for a specific application.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Application unique identifier","example":"org/project/app"},"required":true,"description":"Application unique identifier","name":"application_uid","in":"query"}],"responses":{"200":{"description":"Tag list","content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"$ref":"#/components/schemas/SidePanelResponse"}}},"required":["entities"],"description":"List of tags"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Application not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/side-panel/application-version-list":{"get":{"tags":["Side Panel"],"operationId":"getSidePanelApplicationVersionList","summary":"Get application versions","description":"Retrieves a paginated list of versions for a specific application.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Application unique identifier"},"required":true,"description":"Application unique identifier","name":"application_uid","in":"query"},{"schema":{"type":"number","nullable":true,"default":1,"description":"Page number","example":1},"required":false,"description":"Page number","name":"page","in":"query"},{"schema":{"type":"number","nullable":true,"default":10,"description":"Items per page","example":10},"required":false,"description":"Items per page","name":"perPage","in":"query"}],"responses":{"200":{"description":"Version list with pagination","content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"$ref":"#/components/schemas/SidePanelResponse"}},"meta":{"type":"object","properties":{"total":{"type":"integer","minimum":0},"lastPage":{"type":"integer","minimum":1},"currentPage":{"type":"integer","minimum":1},"perPage":{"type":"integer","minimum":1},"prev":{"type":"integer","nullable":true,"minimum":1},"next":{"type":"integer","nullable":true,"minimum":1}},"required":["total","lastPage","currentPage","perPage","prev","next"],"description":"Pagination metadata for paginated responses","example":{"total":100,"lastPage":5,"currentPage":2,"perPage":20,"prev":1,"next":3}}},"required":["entities"],"description":"Paginated version list"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Application not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/side-panel/application-remote-versions":{"get":{"tags":["Side Panel"],"operationId":"getSidePanelApplicationRemoteVersions","summary":"Get remote versions by host URL","description":"Retrieves the application descriptor with remote versions for a given host URL.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uri","description":"Host URL to look up","example":"https://app.zephyr-cloud.io"},"required":true,"description":"Host URL to look up","name":"host_url","in":"query"}],"responses":{"200":{"description":"Version descriptor with remotes","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/ZeAppVersion"}},"required":["value"],"description":"Application version with remotes"}}}},"400":{"description":"Invalid host URL","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[400]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Bad request error - invalid input or validation failed","example":{"error":"Bad Request","message":"Validation failed","statusCode":400,"requestId":"req-123-abc-456"}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}}}}},"/v2/side-panel/version-deploy":{"post":{"tags":["Side Panel"],"operationId":"deploySidePanelVersion","summary":"Deploy application version","description":"Deploys a specific version to an environment or tag.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Application unique identifier"},"required":true,"description":"Application unique identifier","name":"application_uid","in":"query"}],"requestBody":{"description":"Deploy version request","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeployVersionBody"}}}},"responses":{"200":{"description":"Deployment successful","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"nullable":true}},"description":"Deployment result"}}}},"400":{"description":"Invalid deployment request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[400]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Bad request error - invalid input or validation failed","example":{"error":"Bad Request","message":"Validation failed","statusCode":400,"requestId":"req-123-abc-456"}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Version or deployment target not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/side-panel/version-deploy/list":{"get":{"tags":["Side Panel"],"operationId":"getSidePanelDeployedVersionsList","summary":"Get deployed versions","description":"Retrieves the list of deployed versions for an application.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Application unique identifier"},"required":true,"description":"Application unique identifier","name":"application_uid","in":"query"},{"schema":{"$ref":"#/components/schemas/SidePanelDeployTarget"},"required":false,"description":"Filter by deploy target type","name":"deployTarget","in":"query"},{"schema":{"type":"string","description":"Filter by specific target ID"},"required":false,"description":"Filter by specific target ID","name":"deployTargetId","in":"query"}],"responses":{"200":{"description":"List of deployed versions","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"nullable":true}},"description":"Deployed versions"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[400]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Bad request error - invalid input or validation failed","example":{"error":"Bad Request","message":"Validation failed","statusCode":400,"requestId":"req-123-abc-456"}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}}}}},"/sp-app-list":{"get":{"tags":["Side Panel","Legacy"],"operationId":"getSpApplicationList","summary":"Get application list (legacy)","description":"Legacy alias for /v2/side-panel/application-list.","deprecated":true,"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Application list","content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"$ref":"#/components/schemas/SidePanelApplication"}}},"required":["entities"],"description":"List of applications"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}}}}},"/sp-app-environment":{"get":{"tags":["Side Panel","Legacy"],"operationId":"getSpAppEnvironment","summary":"Get application environments (legacy)","description":"Legacy alias for /v2/side-panel/application-environment-list.","deprecated":true,"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Application unique identifier","example":"org/project/app"},"required":true,"description":"Application unique identifier","name":"application_uid","in":"query"}],"responses":{"200":{"description":"Environment list","content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"$ref":"#/components/schemas/SidePanelResponse"}}},"required":["entities"],"description":"List of environments"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Application not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/sp-app-tag-list":{"get":{"tags":["Side Panel","Legacy"],"operationId":"getSpAppTagList","summary":"Get application tags (legacy)","description":"Legacy alias for /v2/side-panel/application-tag-list.","deprecated":true,"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Application unique identifier","example":"org/project/app"},"required":true,"description":"Application unique identifier","name":"application_uid","in":"query"}],"responses":{"200":{"description":"Tag list","content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"$ref":"#/components/schemas/SidePanelResponse"}}},"required":["entities"],"description":"List of tags"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Application not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/sp-app-version-list":{"get":{"tags":["Side Panel","Legacy"],"operationId":"getSpAppVersionList","summary":"Get application versions (legacy)","description":"Legacy alias for /v2/side-panel/application-version-list.","deprecated":true,"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Application unique identifier"},"required":true,"description":"Application unique identifier","name":"application_uid","in":"query"},{"schema":{"type":"number","nullable":true,"default":1,"description":"Page number","example":1},"required":false,"description":"Page number","name":"page","in":"query"},{"schema":{"type":"number","nullable":true,"default":10,"description":"Items per page","example":10},"required":false,"description":"Items per page","name":"perPage","in":"query"}],"responses":{"200":{"description":"Version list with pagination","content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"$ref":"#/components/schemas/SidePanelResponse"}},"meta":{"type":"object","properties":{"total":{"type":"integer","minimum":0},"lastPage":{"type":"integer","minimum":1},"currentPage":{"type":"integer","minimum":1},"perPage":{"type":"integer","minimum":1},"prev":{"type":"integer","nullable":true,"minimum":1},"next":{"type":"integer","nullable":true,"minimum":1}},"required":["total","lastPage","currentPage","perPage","prev","next"],"description":"Pagination metadata for paginated responses","example":{"total":100,"lastPage":5,"currentPage":2,"perPage":20,"prev":1,"next":3}}},"required":["entities"],"description":"Paginated version list"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Application not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/sp-app-version":{"get":{"tags":["Side Panel","Legacy"],"operationId":"getSpAppVersion","summary":"Get remote versions by host URL (legacy)","description":"Legacy alias for /v2/side-panel/application-remote-versions.","deprecated":true,"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uri","description":"Host URL to look up","example":"https://app.zephyr-cloud.io"},"required":true,"description":"Host URL to look up","name":"host_url","in":"query"}],"responses":{"200":{"description":"Version descriptor with remotes","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/ZeAppVersion"}},"required":["value"],"description":"Application version with remotes"}}}},"400":{"description":"Invalid host URL","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[400]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Bad request error - invalid input or validation failed","example":{"error":"Bad Request","message":"Validation failed","statusCode":400,"requestId":"req-123-abc-456"}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}}}}},"/sp-version-deploy":{"post":{"tags":["Side Panel","Legacy"],"operationId":"postSpVersionDeploy","summary":"Deploy application version (legacy)","description":"Legacy alias for /v2/side-panel/version-deploy.","deprecated":true,"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Application unique identifier","example":"org/project/app"},"required":true,"description":"Application unique identifier","name":"application_uid","in":"query"}],"requestBody":{"description":"Deploy version request","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeployVersionBody"}}}},"responses":{"200":{"description":"Deployment successful","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"nullable":true}},"description":"Deployment result"}}}},"400":{"description":"Invalid deployment request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[400]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Bad request error - invalid input or validation failed","example":{"error":"Bad Request","message":"Validation failed","statusCode":400,"requestId":"req-123-abc-456"}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}}}}},"/sp-version-deploy-list":{"get":{"tags":["Side Panel","Legacy"],"operationId":"getSpVersionDeployList","summary":"Get deployed versions (legacy)","description":"Legacy alias for /v2/side-panel/version-deploy/list.","deprecated":true,"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Application unique identifier"},"required":true,"description":"Application unique identifier","name":"application_uid","in":"query"},{"schema":{"$ref":"#/components/schemas/SidePanelDeployTarget"},"required":false,"description":"Filter by deploy target type","name":"deployTarget","in":"query"},{"schema":{"type":"string","description":"Filter by specific target ID"},"required":false,"description":"Filter by specific target ID","name":"deployTargetId","in":"query"}],"responses":{"200":{"description":"List of deployed versions","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"nullable":true}},"description":"Deployed versions"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[400]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Bad request error - invalid input or validation failed","example":{"error":"Bad Request","message":"Validation failed","statusCode":400,"requestId":"req-123-abc-456"}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}}}}},"/v2/user-navigation/org-items":{"get":{"tags":["Navigation"],"operationId":"getOrgNavigationItems","summary":"Get organization navigation items","description":"Retrieves the list of organizations for navigation.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Filter items by name","example":"my-"},"required":false,"description":"Filter items by name","name":"name","in":"query"}],"responses":{"200":{"description":"Organization navigation items","content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"$ref":"#/components/schemas/NavigationItem"}}},"required":["entities"],"description":"List of organization navigation items"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}}}}},"/v2/user-navigation/{organization}/proj-items":{"get":{"tags":["Navigation"],"operationId":"getProjNavigationItems","summary":"Get project navigation items","description":"Retrieves the list of projects in an organization for navigation.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Organization name","example":"my-org"},"required":true,"description":"Organization name","name":"organization","in":"path"},{"schema":{"type":"string","description":"Filter items by name","example":"my-"},"required":false,"description":"Filter items by name","name":"name","in":"query"}],"responses":{"200":{"description":"Project navigation items","content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"$ref":"#/components/schemas/NavigationItem"}}},"required":["entities"],"description":"List of project navigation items"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}}}}},"/v2/user-navigation/{organization}/{project}/app-items":{"get":{"tags":["Navigation"],"operationId":"getAppNavigationItems","summary":"Get application navigation items","description":"Retrieves the list of applications in a project for navigation.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Organization name","example":"my-org"},"required":true,"description":"Organization name","name":"organization","in":"path"},{"schema":{"type":"string","description":"Project name","example":"my-project"},"required":true,"description":"Project name","name":"project","in":"path"},{"schema":{"type":"string","description":"Filter items by name","example":"my-"},"required":false,"description":"Filter items by name","name":"name","in":"query"}],"responses":{"200":{"description":"Application navigation items","content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"$ref":"#/components/schemas/NavigationItem"}}},"required":["entities"],"description":"List of application navigation items"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}}}}},"/v2/cli/test":{"get":{"tags":["CLI"],"operationId":"cliTest","summary":"CLI test endpoint","description":"A simple test endpoint to verify CLI connectivity.","responses":{"200":{"description":"CLI test response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CliTestResponse"}}}}}}},"/v2/user/auth-token/generate":{"post":{"tags":["User Auth Token"],"operationId":"generateUserAuthToken","summary":"Generate user auth token","description":"Creates a new API token for the authenticated user.","security":[{"bearerAuth":[]}],"requestBody":{"description":"Token creation request","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateUserTokenRequest"}}}},"responses":{"200":{"description":"Token created successfully","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/UserAuthToken"}},"required":["value"],"description":"Created token"}}}},"400":{"description":"Invalid token data","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[400]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Bad request error - invalid input or validation failed","example":{"error":"Bad Request","message":"Validation failed","statusCode":400,"requestId":"req-123-abc-456"}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"409":{"description":"Token name already exists","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Conflict"],"default":"Conflict"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[409]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource conflict - duplicate or conflicting operation","example":{"error":"Conflict","message":"A resource with this name already exists","statusCode":409,"requestId":"req-123-abc-456"}}}}}}}},"/v2/user/auth-token/list":{"get":{"tags":["User Auth Token"],"operationId":"listUserAuthTokens","summary":"List user auth tokens","description":"Retrieves all API tokens for the authenticated user.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Token list","content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Token unique identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"name":{"type":"string","description":"Token display name","example":"my-api-token"},"description":{"type":"string","nullable":true,"description":"Token description","example":"Token for CI/CD pipeline"},"userId":{"type":"string","description":"Owner user ID"},"createdAt":{"type":"string","format":"date-time","description":"Creation timestamp"},"expiryAt":{"type":"string","format":"date-time","description":"Expiry timestamp"}},"required":["id","name","userId","createdAt","expiryAt"]}}},"required":["entities"],"description":"List of tokens"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}}}}},"/v2/user/auth-token/{tokenName}":{"get":{"tags":["User Auth Token"],"operationId":"getUserAuthToken","summary":"Get user auth token","description":"Retrieves details of a specific API token by name.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Token name","example":"my-api-token"},"required":true,"description":"Token name","name":"tokenName","in":"path"}],"responses":{"200":{"description":"Token information","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"object","properties":{"id":{"type":"string","description":"Token unique identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"name":{"type":"string","description":"Token display name","example":"my-api-token"},"description":{"type":"string","nullable":true,"description":"Token description","example":"Token for CI/CD pipeline"},"userId":{"type":"string","description":"Owner user ID"},"createdAt":{"type":"string","format":"date-time","description":"Creation timestamp"},"expiryAt":{"type":"string","format":"date-time","description":"Expiry timestamp"}},"required":["id","name","userId","createdAt","expiryAt"]}},"required":["value"],"description":"Token details"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Token not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}},"post":{"tags":["User Auth Token"],"operationId":"editUserAuthToken","summary":"Edit user auth token","description":"Updates the description of an existing API token.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Token name","example":"my-api-token"},"required":true,"description":"Token name","name":"tokenName","in":"path"}],"requestBody":{"description":"Token update request","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUserTokenRequest"}}}},"responses":{"200":{"description":"Token updated successfully","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"object","properties":{"id":{"type":"string","description":"Token unique identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"name":{"type":"string","description":"Token display name","example":"my-api-token"},"description":{"type":"string","nullable":true,"description":"Token description","example":"Token for CI/CD pipeline"},"userId":{"type":"string","description":"Owner user ID"},"createdAt":{"type":"string","format":"date-time","description":"Creation timestamp"},"expiryAt":{"type":"string","format":"date-time","description":"Expiry timestamp"}},"required":["id","name","userId","createdAt","expiryAt"]}},"required":["value"],"description":"Updated token"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Token not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}},"delete":{"tags":["User Auth Token"],"operationId":"deleteUserAuthToken","summary":"Delete user auth token","description":"Revokes and deletes an existing API token.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Token name","example":"my-api-token"},"required":true,"description":"Token name","name":"tokenName","in":"path"}],"responses":{"200":{"description":"Token deleted successfully","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"nullable":true}},"required":["value"],"description":"Token deleted"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Token not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/user/auth-token/{tokenName}/name":{"post":{"tags":["User Auth Token"],"operationId":"updateUserAuthTokenName","summary":"Update user auth token name","description":"Renames an existing API token.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Token name","example":"my-api-token"},"required":true,"description":"Token name","name":"tokenName","in":"path"}],"requestBody":{"description":"Token rename request","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUserTokenNameRequest"}}}},"responses":{"200":{"description":"Token renamed successfully","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"object","properties":{"id":{"type":"string","description":"Token unique identifier","example":"550e8400-e29b-41d4-a716-446655440000"},"name":{"type":"string","description":"Token display name","example":"my-api-token"},"description":{"type":"string","nullable":true,"description":"Token description","example":"Token for CI/CD pipeline"},"userId":{"type":"string","description":"Owner user ID"},"createdAt":{"type":"string","format":"date-time","description":"Creation timestamp"},"expiryAt":{"type":"string","format":"date-time","description":"Expiry timestamp"}},"required":["id","name","userId","createdAt","expiryAt"]}},"required":["value"],"description":"Renamed token"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Token not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}},"409":{"description":"Token name already exists","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Conflict"],"default":"Conflict"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[409]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource conflict - duplicate or conflicting operation","example":{"error":"Conflict","message":"A resource with this name already exists","statusCode":409,"requestId":"req-123-abc-456"}}}}}}}},"/v2/user/auth-token/{tokenName}/is-token-name-unique":{"get":{"tags":["User Auth Token"],"operationId":"isUserAuthTokenNameUnique","summary":"Check token name uniqueness","description":"Checks if a token name is available for the authenticated user.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Token name","example":"my-api-token"},"required":true,"description":"Token name","name":"tokenName","in":"path"}],"responses":{"200":{"description":"Uniqueness result","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"boolean"}},"required":["value"],"description":"Uniqueness check result"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}}}}},"/v2/server-auth-token/{organization}":{"get":{"operationId":"getServerAuthTokenList","tags":["Server Auth Token"],"summary":"List server auth tokens","description":"Retrieves all server API tokens for the specified organization.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Organization slug","example":"my-org"},"required":true,"description":"Organization slug","name":"organization","in":"path"}],"responses":{"200":{"description":"Token list","content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"$ref":"#/components/schemas/ServerAuthTokenDto"}}},"required":["entities"],"description":"List of server tokens"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}}}},"post":{"operationId":"createServerAuthToken","tags":["Server Auth Token"],"summary":"Create server auth token","description":"Creates a new server API token for the specified organization.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Organization slug","example":"my-org"},"required":true,"description":"Organization slug","name":"organization","in":"path"}],"requestBody":{"description":"Token creation request","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateServerAuthTokenDto"}}}},"responses":{"200":{"description":"Token created successfully","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/ServerAuthTokenDto"}},"required":["value"],"description":"Created token with token value"}}}},"400":{"description":"Invalid token data","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[400]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Bad request error - invalid input or validation failed","example":{"error":"Bad Request","message":"Validation failed","statusCode":400,"requestId":"req-123-abc-456"}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"409":{"description":"Token name already exists","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Conflict"],"default":"Conflict"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[409]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource conflict - duplicate or conflicting operation","example":{"error":"Conflict","message":"A resource with this name already exists","statusCode":409,"requestId":"req-123-abc-456"}}}}}}}},"/v2/server-auth-token/{organization}/{tokenName}":{"get":{"operationId":"getServerAuthToken","tags":["Server Auth Token"],"summary":"Get server auth token","description":"Retrieves details of a specific server API token by name.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Organization slug","example":"my-org"},"required":true,"description":"Organization slug","name":"organization","in":"path"},{"schema":{"type":"string","description":"Token name","example":"my-server-token"},"required":true,"description":"Token name","name":"tokenName","in":"path"}],"responses":{"200":{"description":"Token information","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/ServerAuthTokenDto"}},"required":["value"],"description":"Token details"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Token not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}},"post":{"operationId":"updateServerAuthToken","tags":["Server Auth Token"],"summary":"Update server auth token","description":"Updates the description of an existing server API token.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Organization slug","example":"my-org"},"required":true,"description":"Organization slug","name":"organization","in":"path"},{"schema":{"type":"string","description":"Token name","example":"my-server-token"},"required":true,"description":"Token name","name":"tokenName","in":"path"}],"requestBody":{"description":"Token update request","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateServerAuthTokenDto"}}}},"responses":{"200":{"description":"Token updated successfully","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/ServerAuthTokenDto"}},"required":["value"],"description":"Updated token"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Token not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}},"delete":{"operationId":"deleteServerAuthToken","tags":["Server Auth Token"],"summary":"Delete server auth token","description":"Revokes and deletes an existing server API token.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Organization slug","example":"my-org"},"required":true,"description":"Organization slug","name":"organization","in":"path"},{"schema":{"type":"string","description":"Token name","example":"my-server-token"},"required":true,"description":"Token name","name":"tokenName","in":"path"}],"responses":{"200":{"description":"Token deleted successfully","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"nullable":true}},"required":["value"],"description":"Token deleted"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Token not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/server-auth-token/{organization}/{tokenName}/is-name-unique":{"get":{"tags":["Server Auth Token"],"operationId":"isServerAuthTokenNameUnique","summary":"Check token name uniqueness","description":"Checks if a server token name is available for the specified organization.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Organization slug","example":"my-org"},"required":true,"description":"Organization slug","name":"organization","in":"path"},{"schema":{"type":"string","description":"Token name","example":"my-server-token"},"required":true,"description":"Token name","name":"tokenName","in":"path"}],"responses":{"200":{"description":"Uniqueness result","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"boolean"}},"required":["value"],"description":"Uniqueness check result"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}}}}},"/v2/ci-token/exchange":{"post":{"operationId":"exchangeCiToken","tags":["CI Auth Token"],"summary":"Exchange CI token","description":"Exchanges a CI token for a short-lived Zephyr access token using actor identity inferred by the plugin. This route does not call CI provider APIs.","security":[{"bearerAuth":[]}],"requestBody":{"description":"CI token exchange request","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CiTokenExchangeRequest"}}}},"responses":{"200":{"description":"Exchange result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CiTokenExchangeResponse"}}}},"400":{"description":"Invalid CI token exchange request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[400]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Bad request error - invalid input or validation failed","example":{"error":"Bad Request","message":"Validation failed","statusCode":400,"requestId":"req-123-abc-456"}}}}},"401":{"description":"Invalid CI token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}}}}},"/v2/ci-auth-token/{organization}":{"get":{"operationId":"getCiAuthTokenList","tags":["CI Auth Token"],"summary":"List CI auth tokens","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Organization slug","example":"my-org"},"required":true,"description":"Organization slug","name":"organization","in":"path"}],"responses":{"200":{"description":"Token list","content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"$ref":"#/components/schemas/CiAuthTokenDto"}}},"required":["entities"],"description":"List of CI tokens"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Organization not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}},"post":{"operationId":"createCiAuthToken","tags":["CI Auth Token"],"summary":"Create CI auth token","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Organization slug","example":"my-org"},"required":true,"description":"Organization slug","name":"organization","in":"path"}],"requestBody":{"description":"Token creation request","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCiAuthTokenDto"}}}},"responses":{"200":{"description":"Token created successfully","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/CreatedCiAuthTokenDto"}},"required":["value"],"description":"Created CI token with one-time token value"}}}},"400":{"description":"Invalid token data","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[400]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Bad request error - invalid input or validation failed","example":{"error":"Bad Request","message":"Validation failed","statusCode":400,"requestId":"req-123-abc-456"}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Organization not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}},"409":{"description":"Token name already exists","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Conflict"],"default":"Conflict"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[409]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource conflict - duplicate or conflicting operation","example":{"error":"Conflict","message":"A resource with this name already exists","statusCode":409,"requestId":"req-123-abc-456"}}}}}}}},"/v2/ci-auth-token/{organization}/{tokenName}":{"delete":{"operationId":"deleteCiAuthToken","tags":["CI Auth Token"],"summary":"Delete CI auth token","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Organization slug","example":"my-org"},"required":true,"description":"Organization slug","name":"organization","in":"path"},{"schema":{"type":"string","description":"Token name","example":"gitlab-production"},"required":true,"description":"Token name","name":"tokenName","in":"path"}],"responses":{"200":{"description":"Token deleted successfully","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"nullable":true}},"required":["value"],"description":"Token deleted"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Token not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/organization/{organization}/deployment-integration":{"post":{"operationId":"create","tags":["Deployment Integrations"],"summary":"Create a new deployment integration","description":"Creates a new deployment integration for the organization.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization unique name (URL-safe slug)","example":"zephyr-cloud"},"required":true,"description":"Organization unique name (URL-safe slug)","name":"organization","in":"path"}],"requestBody":{"description":"Integration configuration","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDeploymentIntegration"}}}},"responses":{"201":{"description":"Integration created successfully","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/OrgDeploymentIntegration"}},"required":["value"],"description":"Created integration"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[400]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Bad request error - invalid input or validation failed","example":{"error":"Bad Request","message":"Validation failed","statusCode":400,"requestId":"req-123-abc-456"}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Organization not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/organization/{organization}/deployment-integration/cloudflare/oauth/start":{"post":{"operationId":"startCloudflareOAuth","tags":["Deployment Integrations"],"summary":"Start Cloudflare OAuth integration","description":"Creates a Cloudflare OAuth authorization URL for deployment integration setup.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization unique name (URL-safe slug)","example":"zephyr-cloud"},"required":true,"description":"Organization unique name (URL-safe slug)","name":"organization","in":"path"}],"requestBody":{"description":"Cloudflare OAuth setup details","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartCloudflareOAuth"}}}},"responses":{"200":{"description":"OAuth URL","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/OAuthAuthorizeUrl"}},"required":["value"],"description":"Authorization URL"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[400]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Bad request error - invalid input or validation failed","example":{"error":"Bad Request","message":"Validation failed","statusCode":400,"requestId":"req-123-abc-456"}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Organization not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}},"409":{"description":"Integration already exists","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Conflict"],"default":"Conflict"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[409]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource conflict - duplicate or conflicting operation","example":{"error":"Conflict","message":"A resource with this name already exists","statusCode":409,"requestId":"req-123-abc-456"}}}}}}}},"/v2/deployment-integration/cloudflare/oauth/callback":{"get":{"operationId":"cloudflareOAuthCallback","tags":["Deployment Integrations"],"summary":"Cloudflare OAuth callback","description":"Handles Cloudflare OAuth callback and stores a temporary setup session.","parameters":[{"schema":{"type":"string","description":"Cloudflare OAuth authorization code"},"required":false,"description":"Cloudflare OAuth authorization code","name":"code","in":"query"},{"schema":{"type":"string","description":"Cloudflare OAuth state"},"required":false,"description":"Cloudflare OAuth state","name":"state","in":"query"},{"schema":{"type":"string","description":"Cloudflare OAuth error code"},"required":false,"description":"Cloudflare OAuth error code","name":"error","in":"query"},{"schema":{"type":"string","description":"Cloudflare OAuth error description"},"required":false,"description":"Cloudflare OAuth error description","name":"error_description","in":"query"}],"responses":{"302":{"description":"Redirects to the Cloudflare integration setup page"}}}},"/v2/organization/{organization}/deployment-integration/cloudflare/oauth/{setupId}/zones":{"get":{"operationId":"listCloudflareOAuthZones","tags":["Deployment Integrations"],"summary":"List Cloudflare OAuth zones","description":"Returns the minimal list of Cloudflare zones available to the temporary OAuth setup session.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization unique name (URL-safe slug)","example":"zephyr-cloud"},"required":true,"description":"Organization unique name (URL-safe slug)","name":"organization","in":"path"},{"schema":{"type":"string","description":"Cloudflare OAuth setup ID"},"required":true,"description":"Cloudflare OAuth setup ID","name":"setupId","in":"path"}],"responses":{"200":{"description":"Cloudflare zones","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CloudflareOAuthZones"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Cloudflare OAuth setup not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/organization/{organization}/deployment-integration/cloudflare/oauth/{setupId}/complete":{"post":{"operationId":"completeCloudflareOAuth","tags":["Deployment Integrations"],"summary":"Complete Cloudflare OAuth integration","description":"Creates and deploys a Cloudflare integration from a temporary OAuth setup session.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization unique name (URL-safe slug)","example":"zephyr-cloud"},"required":true,"description":"Organization unique name (URL-safe slug)","name":"organization","in":"path"},{"schema":{"type":"string","description":"Cloudflare OAuth setup ID"},"required":true,"description":"Cloudflare OAuth setup ID","name":"setupId","in":"path"}],"requestBody":{"description":"Cloudflare OAuth completion details","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompleteCloudflareOAuth"}}}},"responses":{"201":{"description":"Integration created successfully","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/OrgDeploymentIntegration"}},"required":["value"],"description":"Created integration"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[400]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Bad request error - invalid input or validation failed","example":{"error":"Bad Request","message":"Validation failed","statusCode":400,"requestId":"req-123-abc-456"}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Cloudflare OAuth setup not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}},"409":{"description":"Integration already exists","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Conflict"],"default":"Conflict"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[409]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource conflict - duplicate or conflicting operation","example":{"error":"Conflict","message":"A resource with this name already exists","statusCode":409,"requestId":"req-123-abc-456"}}}}}}}},"/v2/organization/{organization}/deployment-integration/list":{"get":{"operationId":"getList","tags":["Deployment Integrations"],"summary":"Get list of deployment integrations","description":"Returns all deployment integrations for the organization.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization unique name (URL-safe slug)","example":"zephyr-cloud"},"required":true,"description":"Organization unique name (URL-safe slug)","name":"organization","in":"path"}],"responses":{"200":{"description":"List of deployment integrations","content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"$ref":"#/components/schemas/OrgDeploymentIntegration"}}},"required":["entities"],"description":"List of integrations"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Organization not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/organization/{organization}/deployment-integration/list/enabled":{"get":{"operationId":"getEnabledList","tags":["Deployment Integrations"],"summary":"Get list of enabled deployment integrations","description":"Returns only enabled deployment integrations for the organization.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization unique name (URL-safe slug)","example":"zephyr-cloud"},"required":true,"description":"Organization unique name (URL-safe slug)","name":"organization","in":"path"}],"responses":{"200":{"description":"List of enabled deployment integrations","content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"$ref":"#/components/schemas/OrgDeploymentIntegration"}}},"required":["entities"],"description":"List of enabled integrations"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Organization not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/organization/{organization}/deployment-integration/{integration}":{"get":{"operationId":"getDeploymentIntegration","tags":["Deployment Integrations"],"summary":"Get a deployment integration","description":"Returns details of a specific deployment integration.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Organization slug","example":"zephyr-cloud"},"required":true,"description":"Organization slug","name":"organization","in":"path"},{"schema":{"type":"string","description":"Integration name","example":"cloudflare-prod"},"required":true,"description":"Integration name","name":"integration","in":"path"}],"responses":{"200":{"description":"Deployment integration details","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/OrgDeploymentIntegration"}},"required":["value"],"description":"Integration details"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Integration not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}},"post":{"operationId":"updateOrganizationDeploymentIntegration","tags":["Deployment Integrations"],"summary":"Update a deployment integration","description":"Updates API token or other settings for a deployment integration. A changed Fastly API token is saved before redeployment; if deployment fails, the token remains saved for worker retries while other settings remain unchanged. A concurrent configuration change rejects the token update with 409; reload and retry.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Organization slug","example":"zephyr-cloud"},"required":true,"description":"Organization slug","name":"organization","in":"path"},{"schema":{"type":"string","description":"Integration name","example":"cloudflare-prod"},"required":true,"description":"Integration name","name":"integration","in":"path"}],"requestBody":{"description":"Integration updates","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDeploymentIntegration"}}}},"responses":{"200":{"description":"Integration updated successfully","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/OrgDeploymentIntegration"}},"required":["value"],"description":"Updated integration"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[400]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Bad request error - invalid input or validation failed","example":{"error":"Bad Request","message":"Validation failed","statusCode":400,"requestId":"req-123-abc-456"}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Integration not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}},"409":{"description":"Integration configuration changed; reload and retry","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Conflict"],"default":"Conflict"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[409]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource conflict - duplicate or conflicting operation","example":{"error":"Conflict","message":"A resource with this name already exists","statusCode":409,"requestId":"req-123-abc-456"}}}}}}},"delete":{"operationId":"delete","tags":["Deployment Integrations"],"summary":"Delete a deployment integration","description":"Deletes a deployment integration from the organization.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Organization slug","example":"zephyr-cloud"},"required":true,"description":"Organization slug","name":"organization","in":"path"},{"schema":{"type":"string","description":"Integration name","example":"cloudflare-prod"},"required":true,"description":"Integration name","name":"integration","in":"path"}],"responses":{"200":{"description":"Integration deleted successfully","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/OrgDeploymentIntegration"}},"required":["value"],"description":"Deleted integration"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Integration not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}},"409":{"description":"Integration cannot be deleted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Conflict"],"default":"Conflict"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[409]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource conflict - duplicate or conflicting operation","example":{"error":"Conflict","message":"A resource with this name already exists","statusCode":409,"requestId":"req-123-abc-456"}}}}}}}},"/v2/organization/{organization}/deployment-integration/{integration}/worker":{"post":{"operationId":"updateWorker","tags":["Deployment Integrations"],"summary":"Update deployment integration worker version","description":"Updates the worker version for a deployment integration.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Organization slug","example":"zephyr-cloud"},"required":true,"description":"Organization slug","name":"organization","in":"path"},{"schema":{"type":"string","description":"Integration name","example":"cloudflare-prod"},"required":true,"description":"Integration name","name":"integration","in":"path"}],"requestBody":{"description":"Worker version","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWorkerVersion"}}}},"responses":{"200":{"description":"Integration worker version updated","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/OrgDeploymentIntegration"}},"required":["value"],"description":"Updated integration"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[400]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Bad request error - invalid input or validation failed","example":{"error":"Bad Request","message":"Validation failed","statusCode":400,"requestId":"req-123-abc-456"}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Integration not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/organization/{organization}/deployment-integration/multi-cdn":{"post":{"operationId":"createMultiCdn","tags":["Deployment Integrations","Polycloud"],"summary":"Create a Multi-CDN configuration","description":"Creates a new Multi-CDN configuration for the organization.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization unique name (URL-safe slug)","example":"zephyr-cloud"},"required":true,"description":"Organization unique name (URL-safe slug)","name":"organization","in":"path"}],"requestBody":{"description":"Multi-CDN configuration","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MultiCdnConfig"}}}},"responses":{"201":{"description":"Multi-CDN configuration created","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/OrgDeploymentIntegration"}},"required":["value"],"description":"Created Multi-CDN configuration"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[400]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Bad request error - invalid input or validation failed","example":{"error":"Bad Request","message":"Validation failed","statusCode":400,"requestId":"req-123-abc-456"}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Organization not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/organization/{organization}/deployment-integration/multi-cdn/list":{"get":{"operationId":"getMultiCdnList","tags":["Deployment Integrations","Polycloud"],"summary":"Get list of Multi-CDN configurations","description":"Returns all Multi-CDN configurations for the organization.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization unique name (URL-safe slug)","example":"zephyr-cloud"},"required":true,"description":"Organization unique name (URL-safe slug)","name":"organization","in":"path"}],"responses":{"200":{"description":"List of Multi-CDN configurations","content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"$ref":"#/components/schemas/OrgDeploymentIntegration"}}},"required":["entities"],"description":"List of Multi-CDN configurations"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Organization not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/organization/{organization}/deployment-integration/{integration}/default":{"post":{"operationId":"setDefault","tags":["Deployment Integrations"],"summary":"Set a deployment integration as default","description":"Sets a deployment integration as the default for the organization.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Organization slug","example":"zephyr-cloud"},"required":true,"description":"Organization slug","name":"organization","in":"path"},{"schema":{"type":"string","description":"Integration name","example":"cloudflare-prod"},"required":true,"description":"Integration name","name":"integration","in":"path"}],"responses":{"200":{"description":"Integration set as default","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/OrgDeploymentIntegration"}},"required":["value"],"description":"Updated integration"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Integration not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}},"delete":{"operationId":"unsetDefault","tags":["Deployment Integrations"],"summary":"Unset a deployment integration as default","description":"Removes the default status from a deployment integration.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Organization slug","example":"zephyr-cloud"},"required":true,"description":"Organization slug","name":"organization","in":"path"},{"schema":{"type":"string","description":"Integration name","example":"cloudflare-prod"},"required":true,"description":"Integration name","name":"integration","in":"path"}],"responses":{"200":{"description":"Default status removed","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/OrgDeploymentIntegration"}},"required":["value"],"description":"Updated integration"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Integration not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/organization/{organization}/deployment-integration/{integration}/enabled":{"post":{"operationId":"toggleEnabled","tags":["Deployment Integrations"],"summary":"Toggle deployment integration enabled status","description":"Toggles the enabled/disabled status of a deployment integration.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Organization slug","example":"zephyr-cloud"},"required":true,"description":"Organization slug","name":"organization","in":"path"},{"schema":{"type":"string","description":"Integration name","example":"cloudflare-prod"},"required":true,"description":"Integration name","name":"integration","in":"path"}],"responses":{"200":{"description":"Integration status toggled","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/OrgDeploymentIntegration"}},"required":["value"],"description":"Updated integration"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Integration not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/organization/{organization}/deployment-integration/zephyr/set-as-default":{"post":{"operationId":"setZephyrAsDefault","tags":["Deployment Integrations","Zephyr"],"summary":"Set Zephyr as default deployment integration","description":"Sets Zephyr as the default deployment integration for the organization.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization unique name (URL-safe slug)","example":"zephyr-cloud"},"required":true,"description":"Organization unique name (URL-safe slug)","name":"organization","in":"path"}],"responses":{"200":{"description":"Zephyr set as default","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}},"required":["success","message"]}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Organization not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/organization/deployment-integration/permission/is-user-zephyr-team":{"get":{"operationId":"isUserZephyrTeam","tags":["Deployment Integrations","Zephyr"],"summary":"Check if user is a member of the Zephyr team","description":"Returns whether the authenticated user is a member of the Zephyr team.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"User Zephyr team status","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"boolean"}},"required":["value"]}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}}}}},"/v2/organization/{organization}/deployment-integration/{integration}/retry":{"post":{"operationId":"retry","tags":["Deployment Integrations"],"summary":"Retry creating a failed deployment integration","description":"Retries the creation of a failed deployment integration.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Organization slug","example":"zephyr-cloud"},"required":true,"description":"Organization slug","name":"organization","in":"path"},{"schema":{"type":"string","description":"Integration name","example":"cloudflare-prod"},"required":true,"description":"Integration name","name":"integration","in":"path"}],"responses":{"200":{"description":"Integration retry initiated","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/OrgDeploymentIntegration"}},"required":["value"],"description":"Retried integration"}}}},"400":{"description":"Deployment retry failed","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[400]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Bad request error - invalid input or validation failed","example":{"error":"Bad Request","message":"Validation failed","statusCode":400,"requestId":"req-123-abc-456"}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Integration not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/organization/{organization}/deployment-integration/{integration}/change-name":{"post":{"operationId":"changeOrganizationDeploymentIntegrationName","tags":["Deployment Integrations"],"summary":"Change a deployment integration name","description":"Renames an existing deployment integration. The new name must be unique within the organization.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Organization slug","example":"zephyr-cloud"},"required":true,"description":"Organization slug","name":"organization","in":"path"},{"schema":{"type":"string","description":"Integration name","example":"cloudflare-prod"},"required":true,"description":"Integration name","name":"integration","in":"path"}],"requestBody":{"description":"New integration name","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChangeIntegrationNameRequest"}}}},"responses":{"200":{"description":"Integration renamed successfully","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/OrgDeploymentIntegration"}},"required":["value"],"description":"Renamed integration"}}}},"400":{"description":"Name already exists","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[400]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Bad request error - invalid input or validation failed","example":{"error":"Bad Request","message":"Validation failed","statusCode":400,"requestId":"req-123-abc-456"}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Integration not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}},"409":{"description":"Integration name already exists","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[400]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Bad request error - invalid input or validation failed","example":{"error":"Bad Request","message":"Validation failed","statusCode":400,"requestId":"req-123-abc-456"}}}}}}}},"/v2/project/{organization}/{project}/deployment-integration/{integration}/default":{"post":{"operationId":"setDefaultProjectIntegration","tags":["Deployment Integrations"],"summary":"Set default deployment integration for project","description":"Sets a deployment integration as the default for the project.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Organization slug","example":"zephyr-cloud"},"required":true,"description":"Organization slug","name":"organization","in":"path"},{"schema":{"type":"string","description":"Project slug","example":"my-project"},"required":true,"description":"Project slug","name":"project","in":"path"},{"schema":{"type":"string","description":"Integration name","example":"cloudflare-prod"},"required":true,"description":"Integration name","name":"integration","in":"path"}],"responses":{"200":{"description":"Default integration set","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}},"required":["success","message"]}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Project or integration not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}},"delete":{"tags":["Deployment Integrations"],"summary":"Unset default deployment integration for project","description":"Removes the default status from a project deployment integration.","operationId":"unsetDefaultProjectIntegration","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Organization slug","example":"zephyr-cloud"},"required":true,"description":"Organization slug","name":"organization","in":"path"},{"schema":{"type":"string","description":"Project slug","example":"my-project"},"required":true,"description":"Project slug","name":"project","in":"path"},{"schema":{"type":"string","description":"Integration name","example":"cloudflare-prod"},"required":true,"description":"Integration name","name":"integration","in":"path"}],"responses":{"200":{"description":"Default status removed","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}},"required":["success","message"]}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Project or integration not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/project/{organization}/{project}/deployment-integration/list":{"get":{"operationId":"getProjectIntegrationList","tags":["Deployment Integrations"],"summary":"Get project deployment integration list","description":"Returns all deployment integrations available for the project.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Organization slug","example":"zephyr-cloud"},"required":true,"description":"Organization slug","name":"organization","in":"path"},{"schema":{"type":"string","description":"Project slug","example":"my-project"},"required":true,"description":"Project slug","name":"project","in":"path"}],"responses":{"200":{"description":"Project integration list","content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"$ref":"#/components/schemas/DeploymentIntegrationValue"}}},"required":["entities"],"description":"List of integrations"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Project not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/project/{organization}/{project}/deployment-integration/apps":{"get":{"operationId":"getProjectDeploymentIntegrationApps","tags":["Deployment Integrations"],"summary":"Get project apps with deployment integrations","description":"Returns all applications in the project with their deployment integration assignments.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Organization slug","example":"zephyr-cloud"},"required":true,"description":"Organization slug","name":"organization","in":"path"},{"schema":{"type":"string","description":"Project slug","example":"my-project"},"required":true,"description":"Project slug","name":"project","in":"path"}],"responses":{"200":{"description":"Project apps with integrations","content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"$ref":"#/components/schemas/ProjectDeploymentIntegrationApp"}}},"required":["entities"],"description":"List of apps"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Project not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/project/{organization}/{project}/deployment-integration/set-all-apps-to-project-default":{"post":{"operationId":"setDeploymentIntegrationAllAppsToProjectDefault","tags":["Deployment Integrations"],"summary":"Set all apps to project default integration","description":"Sets the deployment integration to project default for all applications in the project.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Organization slug","example":"zephyr-cloud"},"required":true,"description":"Organization slug","name":"organization","in":"path"},{"schema":{"type":"string","description":"Project slug","example":"my-project"},"required":true,"description":"Project slug","name":"project","in":"path"}],"responses":{"200":{"description":"All apps set to project default","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}},"required":["success","message"]}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Project not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/project/{organization}/{project}/deployment-integration/set-zephyr-as-default":{"post":{"operationId":"setZephyrAsDefaultProjectIntegration","tags":["Deployment Integrations","Zephyr"],"summary":"Set Zephyr as default deployment integration for project","description":"Sets Zephyr as the default deployment integration for the project.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Organization slug","example":"zephyr-cloud"},"required":true,"description":"Organization slug","name":"organization","in":"path"},{"schema":{"type":"string","description":"Project slug","example":"my-project"},"required":true,"description":"Project slug","name":"project","in":"path"}],"responses":{"200":{"description":"Zephyr set as default","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}},"required":["success","message"]}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Project not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/application/{organization}/{project}/{application}/deployment-integrations/{integration}":{"post":{"operationId":"setDefaultApplicationIntegration","tags":["Deployment Integrations"],"summary":"Set default deployment integration for application","description":"Sets a deployment integration as the default for the application.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Organization slug","example":"zephyr-cloud"},"required":true,"description":"Organization slug","name":"organization","in":"path"},{"schema":{"type":"string","description":"Project slug","example":"my-project"},"required":true,"description":"Project slug","name":"project","in":"path"},{"schema":{"type":"string","description":"Application slug","example":"my-app"},"required":true,"description":"Application slug","name":"application","in":"path"},{"schema":{"type":"string","description":"Integration name","example":"cloudflare-prod"},"required":true,"description":"Integration name","name":"integration","in":"path"}],"responses":{"200":{"description":"Default integration set","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}},"required":["success","message"]}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Application or integration not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/application/{organization}/{project}/{application}/deployment-integrations/{integration}/unset-default":{"post":{"operationId":"unsetDefaultApplicationIntegration","tags":["Deployment Integrations"],"summary":"Unset default deployment integration for application","description":"Removes the default status from an application deployment integration.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Organization slug","example":"zephyr-cloud"},"required":true,"description":"Organization slug","name":"organization","in":"path"},{"schema":{"type":"string","description":"Project slug","example":"my-project"},"required":true,"description":"Project slug","name":"project","in":"path"},{"schema":{"type":"string","description":"Application slug","example":"my-app"},"required":true,"description":"Application slug","name":"application","in":"path"},{"schema":{"type":"string","description":"Integration name","example":"cloudflare-prod"},"required":true,"description":"Integration name","name":"integration","in":"path"}],"responses":{"200":{"description":"Default status removed","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}},"required":["success","message"]}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Application or integration not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/application/{organization}/{project}/{application}/deployment-integrations":{"get":{"operationId":"getApplicationIntegrationList","tags":["Deployment Integrations"],"summary":"Get application deployment integration list","description":"Returns all deployment integrations available for the application.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Organization slug","example":"zephyr-cloud"},"required":true,"description":"Organization slug","name":"organization","in":"path"},{"schema":{"type":"string","description":"Project slug","example":"my-project"},"required":true,"description":"Project slug","name":"project","in":"path"},{"schema":{"type":"string","description":"Application slug","example":"my-app"},"required":true,"description":"Application slug","name":"application","in":"path"}],"responses":{"200":{"description":"Application integration list","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DeploymentIntegrationValue"}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Application not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/application/{organization}/{project}/{application}/deployment-integrations/zephyr/set-as-default":{"post":{"operationId":"setZephyrAsDefaultApplicationIntegration","tags":["Deployment Integrations","Zephyr"],"summary":"Set Zephyr as default deployment integration for application","description":"Sets Zephyr as the default deployment integration for the application.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Organization slug","example":"zephyr-cloud"},"required":true,"description":"Organization slug","name":"organization","in":"path"},{"schema":{"type":"string","description":"Project slug","example":"my-project"},"required":true,"description":"Project slug","name":"project","in":"path"},{"schema":{"type":"string","description":"Application slug","example":"my-app"},"required":true,"description":"Application slug","name":"application","in":"path"}],"responses":{"200":{"description":"Zephyr set as default","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}},"required":["success","message"]}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Application not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/application/{organization}/{project}/{application}/{environment}/deployment-integration/list":{"get":{"operationId":"getEnvironmentDeploymentIntegrationList","tags":["Deployment Integrations"],"summary":"Get environment deployment integration list","description":"Returns all deployment integrations available for the application environment.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Organization slug","example":"zephyr-cloud"},"required":true,"description":"Organization slug","name":"organization","in":"path"},{"schema":{"type":"string","description":"Project slug","example":"my-project"},"required":true,"description":"Project slug","name":"project","in":"path"},{"schema":{"type":"string","description":"Application slug","example":"my-app"},"required":true,"description":"Application slug","name":"application","in":"path"},{"schema":{"type":"string","description":"Environment slug","example":"production"},"required":true,"description":"Environment slug","name":"environment","in":"path"}],"responses":{"200":{"description":"Environment integration list","content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"$ref":"#/components/schemas/DeploymentIntegrationValue"}}},"required":["entities"],"description":"List of integrations"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Environment not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/application/{organization}/{project}/{application}/{environment}/deployment-integration/{deploymentIntegration}/set":{"post":{"operationId":"setEnvironmentDeploymentIntegration","tags":["Deployment Integrations"],"summary":"Set environment deployment integration","description":"Associates a deployment integration with the application environment.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Organization slug","example":"zephyr-cloud"},"required":true,"description":"Organization slug","name":"organization","in":"path"},{"schema":{"type":"string","description":"Project slug","example":"my-project"},"required":true,"description":"Project slug","name":"project","in":"path"},{"schema":{"type":"string","description":"Application slug","example":"my-app"},"required":true,"description":"Application slug","name":"application","in":"path"},{"schema":{"type":"string","description":"Environment slug","example":"production"},"required":true,"description":"Environment slug","name":"environment","in":"path"},{"schema":{"type":"string","description":"Deployment integration name","example":"cloudflare-prod"},"required":true,"description":"Deployment integration name","name":"deploymentIntegration","in":"path"}],"responses":{"200":{"description":"Integration set","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}},"required":["success","message"]}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Environment or integration not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/application/{organization}/{project}/{application}/{environment}/deployment-integration/{deploymentIntegration}/unset":{"delete":{"operationId":"unsetEnvironmentDeploymentIntegration","tags":["Deployment Integrations"],"summary":"Unset environment deployment integration","description":"Removes the deployment integration association from the application environment.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Organization slug","example":"zephyr-cloud"},"required":true,"description":"Organization slug","name":"organization","in":"path"},{"schema":{"type":"string","description":"Project slug","example":"my-project"},"required":true,"description":"Project slug","name":"project","in":"path"},{"schema":{"type":"string","description":"Application slug","example":"my-app"},"required":true,"description":"Application slug","name":"application","in":"path"},{"schema":{"type":"string","description":"Environment slug","example":"production"},"required":true,"description":"Environment slug","name":"environment","in":"path"},{"schema":{"type":"string","description":"Deployment integration name","example":"cloudflare-prod"},"required":true,"description":"Deployment integration name","name":"deploymentIntegration","in":"path"}],"responses":{"204":{"description":"Integration unset successfully"},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Environment or integration not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/application/{organization}/{project}/{application}/{environment}/deployment-integration/set/zephyr-as-default":{"post":{"operationId":"setZephyrAsDefaultEnvironmentIntegration","tags":["Deployment Integrations","Zephyr"],"summary":"Set Zephyr as default deployment integration for environment","description":"Sets Zephyr as the default deployment integration for the application environment.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Organization slug","example":"zephyr-cloud"},"required":true,"description":"Organization slug","name":"organization","in":"path"},{"schema":{"type":"string","description":"Project slug","example":"my-project"},"required":true,"description":"Project slug","name":"project","in":"path"},{"schema":{"type":"string","description":"Application slug","example":"my-app"},"required":true,"description":"Application slug","name":"application","in":"path"},{"schema":{"type":"string","description":"Environment slug","example":"production"},"required":true,"description":"Environment slug","name":"environment","in":"path"}],"responses":{"200":{"description":"Zephyr set as default","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}},"required":["success","message"]}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Environment not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/application/{organization}/{project}/{application}/{environment}/deployment-integration/poly-cloud/integrations":{"get":{"operationId":"getEnvironmentIntegrations","tags":["Deployment Integrations","Polycloud"],"summary":"Get all poly-cloud integrations for environment","description":"Returns all deployment integrations configured for a specific application environment.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Organization slug","example":"zephyr-cloud"},"required":true,"description":"Organization slug","name":"organization","in":"path"},{"schema":{"type":"string","description":"Project slug","example":"my-project"},"required":true,"description":"Project slug","name":"project","in":"path"},{"schema":{"type":"string","description":"Application slug","example":"my-app"},"required":true,"description":"Application slug","name":"application","in":"path"},{"schema":{"type":"string","description":"Environment slug","example":"production"},"required":true,"description":"Environment slug","name":"environment","in":"path"}],"responses":{"200":{"description":"Environment poly-cloud integrations","content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"$ref":"#/components/schemas/EnvironmentDeploymentIntegration"}}},"required":["entities"],"description":"List of integrations"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Environment not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/application/{organization}/{project}/{application}/{environment}/deployment-integration/poly-cloud/integrations/{deploymentIntegration}/add":{"post":{"operationId":"addIntegrationToEnvironment","tags":["Deployment Integrations","Polycloud"],"summary":"Add integration to environment (poly-cloud)","description":"Associates a deployment integration with an environment for poly-cloud.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Organization slug","example":"zephyr-cloud"},"required":true,"description":"Organization slug","name":"organization","in":"path"},{"schema":{"type":"string","description":"Project slug","example":"my-project"},"required":true,"description":"Project slug","name":"project","in":"path"},{"schema":{"type":"string","description":"Application slug","example":"my-app"},"required":true,"description":"Application slug","name":"application","in":"path"},{"schema":{"type":"string","description":"Environment slug","example":"production"},"required":true,"description":"Environment slug","name":"environment","in":"path"},{"schema":{"type":"string","description":"Deployment integration name","example":"cloudflare-prod"},"required":true,"description":"Deployment integration name","name":"deploymentIntegration","in":"path"}],"requestBody":{"description":"Integration options","required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"isPrimary":{"type":"boolean","description":"Whether this is the primary integration"},"customDnsNames":{"type":"array","items":{"type":"string"},"description":"Custom DNS names"}}}}}},"responses":{"201":{"description":"Integration added to environment","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/EnvironmentDeploymentIntegration"}},"required":["value"],"description":"Added integration"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[400]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Bad request error - invalid input or validation failed","example":{"error":"Bad Request","message":"Validation failed","statusCode":400,"requestId":"req-123-abc-456"}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Environment or integration not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/application/{organization}/{project}/{application}/{environment}/deployment-integration/poly-cloud/integrations/{deploymentIntegration}/primary":{"put":{"operationId":"setPrimaryIntegration","tags":["Deployment Integrations","Polycloud"],"summary":"Set integration as primary (poly-cloud)","description":"Sets the specified deployment integration as the primary deployment target for the environment.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Organization slug","example":"zephyr-cloud"},"required":true,"description":"Organization slug","name":"organization","in":"path"},{"schema":{"type":"string","description":"Project slug","example":"my-project"},"required":true,"description":"Project slug","name":"project","in":"path"},{"schema":{"type":"string","description":"Application slug","example":"my-app"},"required":true,"description":"Application slug","name":"application","in":"path"},{"schema":{"type":"string","description":"Environment slug","example":"production"},"required":true,"description":"Environment slug","name":"environment","in":"path"},{"schema":{"type":"string","description":"Deployment integration name","example":"cloudflare-prod"},"required":true,"description":"Deployment integration name","name":"deploymentIntegration","in":"path"}],"responses":{"200":{"description":"Integration set as primary","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/EnvironmentDeploymentIntegration"}},"required":["value"],"description":"Updated integration"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Environment or integration not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/application/{organization}/{project}/{application}/{environment}/deployment-integration/poly-cloud/integrations/{deploymentIntegration}/remove":{"delete":{"operationId":"removeIntegrationFromEnvironment","tags":["Deployment Integrations","Polycloud"],"summary":"Remove integration from environment (poly-cloud)","description":"Removes the association between a deployment integration and an environment.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Organization slug","example":"zephyr-cloud"},"required":true,"description":"Organization slug","name":"organization","in":"path"},{"schema":{"type":"string","description":"Project slug","example":"my-project"},"required":true,"description":"Project slug","name":"project","in":"path"},{"schema":{"type":"string","description":"Application slug","example":"my-app"},"required":true,"description":"Application slug","name":"application","in":"path"},{"schema":{"type":"string","description":"Environment slug","example":"production"},"required":true,"description":"Environment slug","name":"environment","in":"path"},{"schema":{"type":"string","description":"Deployment integration name","example":"cloudflare-prod"},"required":true,"description":"Deployment integration name","name":"deploymentIntegration","in":"path"}],"responses":{"204":{"description":"Integration removed successfully"},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Environment or integration not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/application/{organization}/{project}/{application}/{environment}/deployment-integration/poly-cloud/deployment-status":{"get":{"operationId":"getDeploymentStatus","tags":["Deployment Integrations","Polycloud"],"summary":"Get deployment status for all integrations (poly-cloud)","description":"Returns the current deployment status for all integrations configured on this environment.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Organization slug","example":"zephyr-cloud"},"required":true,"description":"Organization slug","name":"organization","in":"path"},{"schema":{"type":"string","description":"Project slug","example":"my-project"},"required":true,"description":"Project slug","name":"project","in":"path"},{"schema":{"type":"string","description":"Application slug","example":"my-app"},"required":true,"description":"Application slug","name":"application","in":"path"},{"schema":{"type":"string","description":"Environment slug","example":"production"},"required":true,"description":"Environment slug","name":"environment","in":"path"}],"responses":{"200":{"description":"Deployment status","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentStatusResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Environment not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/user-profile-settings":{"get":{"tags":["User Profile Settings"],"operationId":"getUserProfileSettings","summary":"Get current user profile settings","description":"Retrieves the profile settings for the authenticated user.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Profile settings retrieved","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/ProfileSettings"}},"required":["value"],"description":"Profile settings"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"404":{"description":"User not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}},"post":{"tags":["User Profile Settings"],"operationId":"updateUserProfileSettings","summary":"Update current user profile settings","description":"Updates the profile settings for the authenticated user.","security":[{"bearerAuth":[]}],"requestBody":{"description":"Profile settings to update","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateProfileSettings"}}}},"responses":{"200":{"description":"Profile settings updated","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/ProfileSettings"}},"required":["value"],"description":"Updated profile settings"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[400]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Bad request error - invalid input or validation failed","example":{"error":"Bad Request","message":"Validation failed","statusCode":400,"requestId":"req-123-abc-456"}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"404":{"description":"User not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/user-profile-settings/email-options":{"get":{"tags":["User Profile Settings"],"operationId":"getUserEmailOptions","summary":"Get user email options","description":"Retrieves the email options and preferences for the authenticated user.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Email options retrieved","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/EmailOptions"}},"required":["value"],"description":"Email options"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"404":{"description":"User not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}},"post":{"tags":["User Profile Settings"],"operationId":"updateUserEmailOptions","summary":"Update user email options","description":"Updates the email options and preferences for the authenticated user.","security":[{"bearerAuth":[]}],"requestBody":{"description":"Email options to update","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEmailOptions"}}}},"responses":{"200":{"description":"Email options updated","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/EmailOptions"}},"required":["value"],"description":"Updated email options"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[400]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Bad request error - invalid input or validation failed","example":{"error":"Bad Request","message":"Validation failed","statusCode":400,"requestId":"req-123-abc-456"}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"404":{"description":"User not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/user-password-change":{"post":{"tags":["User Profile Settings"],"summary":"Change user password","description":"Changes the password for the authenticated user.","operationId":"changePassword","security":[{"bearerAuth":[]}],"requestBody":{"description":"Password change details","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChangePassword"}}}},"responses":{"200":{"description":"Password changed successfully","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}},"required":["success","message"]}}}},"400":{"description":"Invalid password or request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[400]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Bad request error - invalid input or validation failed","example":{"error":"Bad Request","message":"Validation failed","statusCode":400,"requestId":"req-123-abc-456"}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}}}}},"/v2/user-profile-settings/deactivate":{"delete":{"tags":["User Profile Settings"],"operationId":"deactivateUserAccount","summary":"Deactivate user account","description":"Deactivates the authenticated user account. This action is irreversible.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Account deactivated","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}},"required":["success","message"]}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}}}}},"/v2/people/{organizationId}/{peopleId}":{"post":{"tags":["People V2"],"summary":"Update people","description":"Updates a person's information in an organization. Requires admin permissions.","operationId":"updatePeople","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Organization ID","example":"550e8400-e29b-41d4-a716-446655440000"},"required":true,"description":"Organization ID","name":"organizationId","in":"path"},{"schema":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"People (User) ID","example":"550e8400-e29b-41d4-a716-446655440001"},"required":true,"description":"People (User) ID","name":"peopleId","in":"path"}],"requestBody":{"description":"Person data to update","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePeople"}}}},"responses":{"200":{"description":"Person updated successfully","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/People"}},"required":["value"],"description":"Updated person"}}}},"400":{"description":"Invalid request data or cannot downgrade self from owner","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[400]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Bad request error - invalid input or validation failed","example":{"error":"Bad Request","message":"Validation failed","statusCode":400,"requestId":"req-123-abc-456"}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Organization or person not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}},"delete":{"tags":["People V2"],"summary":"Delete people","description":"Removes a person from an organization. Requires admin permissions.","operationId":"deletePeople","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"Organization ID","example":"550e8400-e29b-41d4-a716-446655440000"},"required":true,"description":"Organization ID","name":"organizationId","in":"path"},{"schema":{"type":"string","format":"uuid","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i","description":"People (User) ID","example":"550e8400-e29b-41d4-a716-446655440001"},"required":true,"description":"People (User) ID","name":"peopleId","in":"path"}],"responses":{"200":{"description":"Person removed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteSuccess"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Organization or person not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/organization/{organizationName}/invite":{"post":{"tags":["People V2","Organization V2"],"summary":"Invite people to organization","description":"Invites a new person to join an organization. Requires admin permissions.","operationId":"invitePeople","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization slug/name","example":"zephyr-cloud"},"required":true,"description":"Organization slug/name","name":"organizationName","in":"path"}],"requestBody":{"description":"Person invitation data","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NewPeople"}}}},"responses":{"201":{"description":"Person invited successfully","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/People"}},"required":["value"],"description":"Invited person"}}}},"400":{"description":"Invalid request data or seats limit reached","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[400]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Bad request error - invalid input or validation failed","example":{"error":"Bad Request","message":"Validation failed","statusCode":400,"requestId":"req-123-abc-456"}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Organization not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}},"409":{"description":"User already exists in organization","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Conflict"],"default":"Conflict"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[409]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource conflict - duplicate or conflicting operation","example":{"error":"Conflict","message":"A resource with this name already exists","statusCode":409,"requestId":"req-123-abc-456"}}}}}}}},"/v2/organization/{organizationName}/people-list":{"get":{"tags":["People V2","Organization V2"],"summary":"Get organization people list","description":"Returns a paginated list of people in an organization.","operationId":"getPeopleList","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization slug/name","example":"zephyr-cloud"},"required":true,"description":"Organization slug/name","name":"organizationName","in":"path"},{"schema":{"type":"integer","minimum":1,"default":1,"description":"Page number","example":1},"required":false,"description":"Page number","name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Items per page","example":20},"required":false,"description":"Items per page","name":"perPage","in":"query"},{"schema":{"type":"string","description":"Filter by name or email (partial match)","example":"john"},"required":false,"description":"Filter by name or email (partial match)","name":"name","in":"query"}],"responses":{"200":{"description":"People list retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PeopleListResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Organization not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/validate-authn-token":{"get":{"tags":["Auth"],"summary":"Validate authentication token","description":"Validates the JWT token and returns current user information","operationId":"validateAuthToken","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Current user info","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/CurrentUserInfo"}},"required":["value"],"description":"Single value response wrapper"}}}},"401":{"description":"Invalid or expired token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}}}}},"/v2/auth/login":{"get":{"tags":["Auth"],"summary":"Login redirect (deprecated)","description":"Redirects to the legacy login page. Use the new login flow instead.","operationId":"authLogin","deprecated":true,"parameters":[{"schema":{"type":"string","description":"OAuth state parameter"},"required":true,"description":"OAuth state parameter","name":"state","in":"query"},{"schema":{"type":"string","enum":["cli","sidepanel","web"],"default":"cli","description":"Origin of the login request"},"required":false,"description":"Origin of the login request","name":"origin","in":"query"},{"schema":{"type":"string","format":"uri","description":"Custom redirect URL after login"},"required":false,"description":"Custom redirect URL after login","name":"redirect-url","in":"query"}],"responses":{"302":{"description":"Redirect to legacy login"},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[400]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Bad request error - invalid input or validation failed","example":{"error":"Bad Request","message":"Validation failed","statusCode":400,"requestId":"req-123-abc-456"}}}}}}}},"/v2/authorize-link":{"get":{"tags":["Auth"],"summary":"Get authorize link (deprecated)","description":"Returns the authorization URL for the confirmation page. Use the new login flow instead.","operationId":"getAuthorizeLink","deprecated":true,"parameters":[{"schema":{"type":"string","description":"OAuth state parameter"},"required":true,"description":"OAuth state parameter","name":"state","in":"query"},{"schema":{"type":"string","enum":["cli","sidepanel","web"],"default":"cli","description":"Origin of the login request"},"required":false,"description":"Origin of the login request","name":"origin","in":"query"},{"schema":{"type":"string","format":"uri","description":"Custom redirect URL after login"},"required":false,"description":"Custom redirect URL after login","name":"redirect-url","in":"query"}],"responses":{"200":{"description":"Authorization URL string","content":{"text/plain":{"schema":{"type":"string"}}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[400]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Bad request error - invalid input or validation failed","example":{"error":"Bad Request","message":"Validation failed","statusCode":400,"requestId":"req-123-abc-456"}}}}}}}},"/v2/authorize-with-user-info":{"get":{"tags":["Auth"],"summary":"Get authorize link with user info (deprecated)","description":"Returns authorization URL with pre-filled user info. Use the new login flow instead.","operationId":"getAuthorizeWithUserInfo","deprecated":true,"parameters":[{"schema":{"type":"string","description":"OAuth state parameter"},"required":true,"description":"OAuth state parameter","name":"state","in":"query"},{"schema":{"type":"string","format":"email","description":"User email"},"required":false,"description":"User email","name":"email","in":"query"},{"schema":{"type":"string","description":"User name"},"required":false,"description":"User name","name":"name","in":"query"},{"schema":{"type":"string","enum":["cli","sidepanel","web"],"default":"cli","description":"Origin of the login request"},"required":false,"description":"Origin of the login request","name":"origin","in":"query"}],"responses":{"200":{"description":"Authorization URL with user info","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthorizeLinkResponse"}}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[400]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Bad request error - invalid input or validation failed","example":{"error":"Bad Request","message":"Validation failed","statusCode":400,"requestId":"req-123-abc-456"}}}}}}}},"/v2/authorize":{"get":{"tags":["Auth"],"summary":"OAuth callback handler (deprecated)","description":"Handles the legacy OAuth callback and redirects to frontend. Use the new login flow instead.","operationId":"authorizeCallback","deprecated":true,"parameters":[{"schema":{"type":"string","description":"Authorization code from the identity provider"},"required":false,"description":"Authorization code from the identity provider","name":"code","in":"query"},{"schema":{"type":"string","description":"OAuth state parameter"},"required":false,"description":"OAuth state parameter","name":"state","in":"query"},{"schema":{"type":"string","description":"Error code from the identity provider"},"required":false,"description":"Error code from the identity provider","name":"error","in":"query"},{"schema":{"type":"string","description":"Error description from the identity provider"},"required":false,"description":"Error description from the identity provider","name":"error_description","in":"query"},{"schema":{"type":"string","enum":["cli","sidepanel","web"],"default":"sidepanel","description":"Origin of the login request"},"required":false,"description":"Origin of the login request","name":"origin","in":"query"},{"schema":{"type":"boolean","nullable":true,"description":"Use legacy redirect routes"},"required":false,"description":"Use legacy redirect routes","name":"useLegacyRoutes","in":"query"}],"responses":{"302":{"description":"Redirect to frontend success/failure page"},"400":{"description":"Invalid callback parameters","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[400]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Bad request error - invalid input or validation failed","example":{"error":"Bad Request","message":"Validation failed","statusCode":400,"requestId":"req-123-abc-456"}}}}}}}},"/dns/check":{"get":{"tags":["DNS"],"summary":"Check domain status","description":"Checks domain registration status, expiration, and DNS configuration","operationId":"checkDomain","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Domain name to check","example":"example.com"},"required":true,"description":"Domain name to check","name":"domain","in":"query"}],"responses":{"200":{"description":"Domain check result","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/DnsCheckResultDto"}},"required":["value"],"description":"Single value response wrapper"}}}},"400":{"description":"Invalid domain parameter","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[400]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Bad request error - invalid input or validation failed","example":{"error":"Bad Request","message":"Validation failed","statusCode":400,"requestId":"req-123-abc-456"}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}}}}},"/v2/organization/{organization}/deployment-integration/entri/config":{"get":{"tags":["Entri","Deployment Integrations"],"summary":"Get Entri configuration","description":"Returns Entri application configuration including access token","operationId":"getEntriConfig","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization unique name (URL-safe slug)","example":"zephyr-cloud"},"required":true,"description":"Organization unique name (URL-safe slug)","name":"organization","in":"path"}],"responses":{"200":{"description":"Entri configuration","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/EntriConfig"}},"required":["value"],"description":"Single value response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Organization not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/organization/{organization}/deployment-integration/entri/connect-url":{"get":{"tags":["Entri","Deployment Integrations"],"summary":"Get Entri connect URL","description":"Returns a URL to configure DNS via Entri for the specified domain","operationId":"getEntriConnectUrl","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization unique name (URL-safe slug)","example":"zephyr-cloud"},"required":true,"description":"Organization unique name (URL-safe slug)","name":"organization","in":"path"},{"schema":{"type":"string","description":"Host to configure","example":"www.example.com"},"required":true,"description":"Host to configure","name":"host","in":"query"},{"schema":{"type":"string","description":"Domain to configure","example":"example.com"},"required":true,"description":"Domain to configure","name":"domain","in":"query"}],"responses":{"200":{"description":"Entri connect URL","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/EntriConnectUrl"}},"required":["value"],"description":"Single value response wrapper"}}}},"400":{"description":"Invalid parameters","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[400]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Bad request error - invalid input or validation failed","example":{"error":"Bad Request","message":"Validation failed","statusCode":400,"requestId":"req-123-abc-456"}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}}}}},"/v2/organization/{organization}/deployment-integration/entri/domain-eligibility":{"get":{"tags":["Entri","Deployment Integrations"],"summary":"Check domain eligibility","description":"Checks if a domain is eligible for Entri power configuration","operationId":"getEntriDomainEligibility","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization unique name (URL-safe slug)","example":"zephyr-cloud"},"required":true,"description":"Organization unique name (URL-safe slug)","name":"organization","in":"path"},{"schema":{"type":"string","description":"Domain to check eligibility for","example":"app.example.com"},"required":true,"description":"Domain to check eligibility for","name":"domain","in":"query"}],"responses":{"200":{"description":"Domain eligibility status","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/EntriEligibleResponse"}},"required":["value"],"description":"Single value response wrapper"}}}},"400":{"description":"Invalid domain parameter","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[400]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Bad request error - invalid input or validation failed","example":{"error":"Bad Request","message":"Validation failed","statusCode":400,"requestId":"req-123-abc-456"}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}}}}},"/v2/organization/{organization}/deployment-integration/entri/power-domain":{"post":{"tags":["Entri","Deployment Integrations"],"summary":"Power a domain","description":"Configures a domain to be powered via Entri","operationId":"entriPowerDomain","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization unique name (URL-safe slug)","example":"zephyr-cloud"},"required":true,"description":"Organization unique name (URL-safe slug)","name":"organization","in":"path"}],"requestBody":{"description":"Power domain configuration","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntriPowerDomainRequest"}}}},"responses":{"200":{"description":"Domain powered successfully","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/EntriPowerDomainResponse"}},"required":["value"],"description":"Single value response wrapper"}}}},"400":{"description":"Invalid request body","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[400]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Bad request error - invalid input or validation failed","example":{"error":"Bad Request","message":"Validation failed","statusCode":400,"requestId":"req-123-abc-456"}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}}}}},"/v2/organization/{organization}/deployment-integration/entri/update-powered-domain":{"post":{"tags":["Entri","Deployment Integrations"],"summary":"Update powered domain","description":"Updates the configuration of an already powered domain","operationId":"entriUpdatePoweredDomain","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":50,"pattern":"^[a-z0-9_-]+$","description":"Organization unique name (URL-safe slug)","example":"zephyr-cloud"},"required":true,"description":"Organization unique name (URL-safe slug)","name":"organization","in":"path"}],"requestBody":{"description":"Updated domain configuration","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntriPowerDomainRequest"}}}},"responses":{"200":{"description":"Domain updated successfully","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/EntriPowerDomainResponse"}},"required":["value"],"description":"Single value response wrapper"}}}},"400":{"description":"Invalid request body","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[400]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Bad request error - invalid input or validation failed","example":{"error":"Bad Request","message":"Validation failed","statusCode":400,"requestId":"req-123-abc-456"}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}}}}},"/v2/organization/{organization}/deployment-integration/entri/power-domain/{domain}":{"delete":{"tags":["Entri","Deployment Integrations"],"summary":"Remove powered domain","description":"Removes the power configuration from a domain","operationId":"entriRemovePoweredDomain","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Organization slug","example":"zephyr-cloud"},"required":true,"description":"Organization slug","name":"organization","in":"path"},{"schema":{"type":"string","description":"Domain name","example":"app.example.com"},"required":true,"description":"Domain name","name":"domain","in":"path"}],"responses":{"200":{"description":"Domain power removed successfully","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/EntriPowerDomainResponse"}},"required":["value"],"description":"Single value response wrapper"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[403]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Access denied - insufficient permissions","example":{"error":"Forbidden","message":"You do not have permission to access this resource","statusCode":403,"requestId":"req-123-abc-456"}}}}},"404":{"description":"Domain not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[404]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Resource not found","example":{"error":"Not Found","message":"The requested resource was not found","statusCode":404,"requestId":"req-123-abc-456"}}}}}}}},"/v2/worker-version/list":{"get":{"tags":["Worker Versions"],"operationId":"getWorkerVersionList","summary":"Get worker versions list","description":"Returns all available worker versions grouped by deployment platform type","responses":{"200":{"description":"Worker versions map by type","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"worker-version-123","description":"Worker version unique identifier"},"type":{"type":"string","example":"cloudflare","description":"Deployment integration platform type"},"version":{"type":"string","example":"1.0.0","description":"Semantic version of the worker"},"createdAt":{"type":"string","example":"2025-01-01T00:00:00.000Z","description":"When the worker version was created"},"updatedAt":{"type":"string","example":"2025-01-01T00:00:00.000Z","description":"When the worker version was last updated"}},"required":["id","type","version","createdAt","updatedAt"]}},"example":{"cloudflare":[{"id":"worker-version-123","type":"cloudflare","version":"1.0.0","createdAt":"2025-01-01T00:00:00.000Z","updatedAt":"2025-01-01T00:00:00.000Z"}]},"description":"Map of platform types to their available worker versions"}}}}}}},"/fdr/{app_uid}":{"get":{"tags":["Federation Dependency Resolution"],"operationId":"getFdr","summary":"Get latest application version","description":"Returns the latest version information for the given application UID","parameters":[{"schema":{"type":"string","example":"app.project.org","description":"Application unique identifier"},"required":true,"description":"Application unique identifier","name":"app_uid","in":"path"}],"responses":{"200":{"description":"Application UID response","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"string","example":"app.project.org","description":"Application UID"}},"required":["value"]}}}},"404":{"description":"Application not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"example":{"message":"Application not found"}}}}}}}},"/v2/builder-public-api/resolve":{"get":{"tags":["Builder Public API"],"operationId":"resolveDependency","summary":"Resolve dependency","description":"Resolve a remote dependency by name and version","security":[],"parameters":[{"schema":{"type":"string","example":"my-remote-app","description":"Name of the dependency to resolve"},"required":true,"description":"Name of the dependency to resolve","name":"name","in":"query"},{"schema":{"type":"string","example":"1.0.0","description":"Version of the dependency to resolve"},"required":true,"description":"Version of the dependency to resolve","name":"version","in":"query"},{"schema":{"type":"string","example":"production","description":"Build context for dependency resolution"},"required":false,"description":"Build context for dependency resolution","name":"build_context","in":"query"},{"schema":{"type":"string","enum":["selector","version"],"example":"version","description":"Return mutable selector URLs (default) or immutable URLs for the selected application version"},"required":false,"description":"Return mutable selector URLs (default) or immutable URLs for the selected application version","name":"url_mode","in":"query"}],"responses":{"200":{"description":"Resolved dependency","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"object","nullable":true,"properties":{"success":{"type":"boolean","enum":[true],"example":true,"description":"Whether the dependency was successfully resolved"},"name":{"type":"string","example":"my-remote-app","description":"Name of the resolved dependency"},"default_url":{"type":"string","nullable":true,"example":"https://cdn.example.com/my-remote-app/remoteEntry.js","description":"Default URL for the remote entry"},"application_uid":{"type":"string","example":"app.project.org","description":"Application unique identifier"},"remote_entry_url":{"type":"string","nullable":true,"example":"https://cdn.example.com/my-remote-app/remoteEntry.js","description":"Remote entry URL"},"manifest_url":{"type":"string","nullable":true,"example":"https://cdn.example.com/my-remote-app/mf-manifest.json","description":"URL of the MF2 manifest asset (null when the remote did not emit one)"},"library_type":{"type":"string","example":"var","description":"Library type used by the resolved remote build"},"entity_type":{"type":"string","enum":["version","tag","environment"],"example":"version","description":"Type of entity resolved"},"entity_id":{"type":"string","example":"550e8400-e29b-41d4-a716-446655440000","description":"UUID of the resolved entity"}},"required":["success","name","default_url","application_uid","remote_entry_url","manifest_url","library_type","entity_type","entity_id"]}},"required":["value"]}}}},"404":{"description":"Dependency not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"No versions found for application","description":"Error message"},"description":{"type":"string","example":"{\n  \"context\": \"Remote Dependency Resolution\",\n  \"code\": \"NOT_FOUND_SEMVER_VERSION\"\n}","description":"Detailed error information"}},"required":["message"]}}}}}}},"/v2/builder-packages-api/application-config":{"get":{"tags":["Builder Packages API"],"operationId":"getApplicationConfig","summary":"Get application configuration","description":"Returns the deployment configuration for a specific application","parameters":[{"schema":{"type":"string","minLength":1,"description":"Application unique identifier","example":"app.project.org"},"required":true,"description":"Application unique identifier","name":"application-uid","in":"query"}],"responses":{"200":{"description":"Application configuration","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"object","properties":{"application_uid":{"type":"string"},"BUILD_ID_ENDPOINT":{"type":"string"},"EDGE_URL":{"type":"string"},"DELIMITER":{"type":"string"},"PLATFORM":{"type":"string"},"fetched_at":{"type":"number"},"ENVIRONMENTS":{"type":"object","additionalProperties":{"type":"object","properties":{"kind":{"type":"string"},"type":{"type":"string"},"edgeUrl":{"type":"string","nullable":true},"delimiter":{"type":"string","nullable":true},"name":{"type":"string"},"remote_host":{"type":"string"},"id":{"type":"string"},"integrationConfig":{"type":"object","additionalProperties":{"nullable":true}}},"required":["kind","type"]}},"email":{"type":"string"},"jwt":{"type":"string"},"user_uuid":{"type":"string"},"username":{"type":"string"},"_metadata":{"type":"object","properties":{"isPrimary":{"type":"boolean"},"integrationName":{"type":"string"},"integrationId":{"type":"string"}},"required":["isPrimary"]}},"required":["application_uid","BUILD_ID_ENDPOINT","EDGE_URL","DELIMITER","PLATFORM","email","jwt","user_uuid","username"]}},"required":["value"]}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"example":{"message":"Missing application-uid"}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"example":{"message":"Authentication required"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"example":{"message":"Configuration not found"}}}}}}}},"/v2/builder-packages-api/application-configs":{"get":{"tags":["Builder Packages API"],"operationId":"getApplicationConfigs","summary":"Get multiple application configurations","description":"Returns all deployment configurations for a specific application (useful for multi-CDN setups)","parameters":[{"schema":{"type":"string","minLength":1,"description":"Application unique identifier","example":"app.project.org"},"required":true,"description":"Application unique identifier","name":"application-uid","in":"query"}],"responses":{"200":{"description":"Application configurations","content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"type":"object","properties":{"application_uid":{"type":"string"},"BUILD_ID_ENDPOINT":{"type":"string"},"EDGE_URL":{"type":"string"},"DELIMITER":{"type":"string"},"PLATFORM":{"type":"string"},"fetched_at":{"type":"number"},"ENVIRONMENTS":{"type":"object","additionalProperties":{"type":"object","properties":{"kind":{"type":"string"},"type":{"type":"string"},"edgeUrl":{"type":"string","nullable":true},"delimiter":{"type":"string","nullable":true},"name":{"type":"string"},"remote_host":{"type":"string"},"id":{"type":"string"},"integrationConfig":{"type":"object","additionalProperties":{"nullable":true}}},"required":["kind","type"]}},"email":{"type":"string"},"jwt":{"type":"string"},"user_uuid":{"type":"string"},"username":{"type":"string"},"_metadata":{"type":"object","properties":{"isPrimary":{"type":"boolean"},"integrationName":{"type":"string"},"integrationId":{"type":"string"}},"required":["isPrimary"]}},"required":["application_uid","BUILD_ID_ENDPOINT","EDGE_URL","DELIMITER","PLATFORM","email","jwt","user_uuid","username"]}}},"required":["entities"]}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"example":{"message":"Missing application-uid"}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"example":{"message":"Authentication required"}}}}}}}},"/v2/builder-packages-api/deployed-tags/{application_uid}":{"get":{"tags":["Builder Packages API"],"operationId":"getDeployedTags","summary":"Get deployed tags","description":"Returns all deployed tags for a specific application","parameters":[{"schema":{"type":"string","minLength":1,"description":"Application unique identifier","example":"app.project.org"},"required":true,"description":"Application unique identifier","name":"application_uid","in":"path"}],"responses":{"200":{"description":"Deployed tags","content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"type":"object","properties":{"application_uid":{"type":"string","minLength":1,"description":"Application unique identifier (app.project.org)","example":"app.project.org"},"remote_host":{"type":"string","nullable":true}},"required":["application_uid","remote_host"]}}},"required":["entities"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"example":{"message":"Authentication required"}}}}}}}},"/v2/builder-packages-api/cleanup-tests/{application_uid}":{"post":{"tags":["Builder Packages API"],"operationId":"cleanupTests","summary":"Cleanup test data","description":"Removes all test data for a specific application (preview environments only)","parameters":[{"schema":{"type":"string","minLength":1,"description":"Application unique identifier","example":"app.project.org"},"required":true,"description":"Application unique identifier","name":"application_uid","in":"path"}],"responses":{"200":{"description":"Cleanup successful","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"nullable":true}},"required":["value"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"example":{"message":"Authentication required"}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"example":{"message":"Preview environment required"}}}}}}}},"/v2/builder-packages-api/seed-test-versions":{"post":{"tags":["Builder Packages API"],"operationId":"seedTestVersions","summary":"Seed test versions","description":"Creates fake application versions directly in the DB for E2E test setup. Not available in production.","security":[{"bearerAuth":[]}],"requestBody":{"description":"Seed versions request","content":{"application/json":{"schema":{"type":"object","properties":{"organization":{"type":"string","example":"my-org","description":"Organization name"},"project":{"type":"string","example":"my-project","description":"Project name"},"application":{"type":"string","example":"my-app","description":"Application name"},"count":{"type":"integer","minimum":1,"maximum":10,"default":1,"example":1,"description":"Number of versions to create"}},"required":["organization","project","application"]}}}},"responses":{"200":{"description":"Versions seeded","content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"snapshot_id":{"type":"string"}},"required":["id","snapshot_id"]}}},"required":["entities"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"example":{"message":"Authentication required"}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"example":{"message":"Preview environment required"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"example":{"message":"Application not found"}}}}}}}},"/v2/builder-packages-api/seed-target-deployments":{"post":{"tags":["Builder Packages API"],"operationId":"seedTargetDeployments","summary":"Seed target deployment history","description":"Writes versionHistory records directly in the DB and assigns the latest version to a tag or environment. Bypasses gateway publish. Not available in production.","security":[{"bearerAuth":[]}],"requestBody":{"description":"Seed target deployments request","content":{"application/json":{"schema":{"type":"object","properties":{"targetType":{"type":"string","enum":["tag","environment"]},"targetId":{"type":"string","format":"uuid"},"versionIds":{"type":"array","items":{"type":"string"},"minItems":1,"maxItems":20,"description":"Version IDs in chronological order; last entry becomes the current version"}},"required":["targetType","targetId","versionIds"]}}}},"responses":{"200":{"description":"History seeded","content":{"application/json":{"schema":{"type":"object","properties":{"seeded":{"type":"number"}},"required":["seeded"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"example":{"message":"Authentication required"}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"example":{"message":"Production environment"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"example":{"message":"Target not found"}}}}}}}},"/v2/builder-packages-api/mark-as-failed/{snapshot_id}":{"post":{"tags":["Builder Packages API"],"operationId":"markVersionAsFailed","summary":"Mark version as failed","description":"Marks a specific version as failed with a reason","parameters":[{"schema":{"type":"string","example":"snapshot-123","description":"Snapshot identifier"},"required":true,"description":"Snapshot identifier","name":"snapshot_id","in":"path"},{"schema":{"type":"string","example":"Deployment failed","description":"Reason for failure"},"required":true,"description":"Reason for failure","name":"reason","in":"query"}],"responses":{"200":{"description":"Version marked as failed","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"nullable":true}},"required":["value"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"example":{"message":"Authentication required"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"example":{"message":"Version not found"}}}}}}}},"/v2/builder-packages-api/mark-as-unavailable/{snapshot_id}":{"post":{"tags":["Builder Packages API"],"operationId":"markVersionAsUnavailable","summary":"Mark version as unavailable","description":"Marks a specific version as unavailable with a reason","parameters":[{"schema":{"type":"string","example":"snapshot-123","description":"Snapshot identifier"},"required":true,"description":"Snapshot identifier","name":"snapshot_id","in":"path"},{"schema":{"type":"string","example":"Version is no longer supported","description":"Reason for unavailability"},"required":true,"description":"Reason for unavailability","name":"reason","in":"query"}],"responses":{"200":{"description":"Version marked as unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"nullable":true}},"required":["value"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"example":{"message":"Authentication required"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"example":{"message":"Version not found"}}}}}}}},"/v2/builder-packages-api/mark-as-deprecated/{snapshot_id}":{"post":{"tags":["Builder Packages API"],"operationId":"markVersionAsDeprecated","summary":"Mark version as deprecated","description":"Marks a specific version as deprecated with an expiration date","parameters":[{"schema":{"type":"string","example":"snapshot-123","description":"Snapshot identifier"},"required":true,"description":"Snapshot identifier","name":"snapshot_id","in":"path"},{"schema":{"type":"string","example":"2025-12-31T23:59:59.000Z","description":"Date until the version remains available"},"required":true,"description":"Date until the version remains available","name":"available-till","in":"query"}],"responses":{"200":{"description":"Version marked as deprecated","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"nullable":true}},"required":["value"]}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"example":{"message":"Missing available-till parameter"}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"example":{"message":"Authentication required"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"example":{"message":"Version not found"}}}}}}}},"/v2/builder-packages-api/mark-deploy-failed":{"post":{"tags":["Builder Packages API"],"operationId":"markDeployFailed","summary":"Mark deploy as failed","description":"Marks a deployment as failed (public endpoint for CI/CD pipelines)","security":[],"parameters":[{"schema":{"type":"string","example":"app.project.org","description":"Application unique identifier"},"required":true,"description":"Application unique identifier","name":"application-uid","in":"query"},{"schema":{"type":"string","example":"Build failed","description":"Reason for failure"},"required":true,"description":"Reason for failure","name":"reason","in":"query"},{"schema":{"type":"string","example":"123","description":"Zephyr build ID"},"required":true,"description":"Zephyr build ID","name":"ze-build-id","in":"query"},{"schema":{"type":"string","example":"main","description":"Git branch name"},"required":true,"description":"Git branch name","name":"branch","in":"query"},{"schema":{"type":"string","example":"user@example.com","description":"User email address"},"required":false,"description":"User email address","name":"user-email","in":"query"},{"schema":{"type":"string","example":"user-uuid","description":"User ID"},"required":false,"description":"User ID","name":"user-id","in":"query"}],"responses":{"200":{"description":"Deploy marked as failed","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"nullable":true}},"required":["value"]}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"example":{"message":"Invalid request"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"example":{"message":"User or version not found"}}}}}}}},"/v2/builder-packages-api/upload-from-dashboard-plugin":{"post":{"tags":["Builder Packages API"],"operationId":"uploadFromDashboardPlugin","summary":"Upload from dashboard plugin","description":"Uploads a new application version from the dashboard plugin.","security":[{"bearerAuth":[]}],"requestBody":{"description":"Upload request body","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","example":"app.project.org","description":"Canonical application ID derived from app.name, app.project, and app.org."},"app":{"type":"object","properties":{"name":{"type":"string","minLength":1},"org":{"type":"string","minLength":1},"project":{"type":"string","minLength":1}},"required":["name","org","project"],"additionalProperties":{"nullable":true},"description":"Source application coordinate used to derive and verify id. New projects are persisted using the canonical UID segment; existing project names are preserved."},"snapshot_id":{"type":"string","minLength":1,"maxLength":512,"example":"snapshot-123","description":"Canonical immutable snapshot ID."},"version":{"type":"string","minLength":1,"maxLength":512,"example":"snapshot-123","description":"Legacy snapshot-ID alias."},"build_target":{"type":"string","enum":["web","ios","android","tap-app"],"example":"tap-app","description":"Runtime target emitted by the builder"},"mf_manifest":{"type":"string","example":"mf-manifest.json","description":"Module Federation manifest asset filename"},"library_type":{"type":"string","example":"module","description":"Module Federation container library type"}},"required":["id","app"],"additionalProperties":{"nullable":true}}}}},"responses":{"200":{"description":"Upload successful","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"object","properties":{"snapshot_id":{"type":"string"},"remote_host":{"type":"string"}},"required":["snapshot_id"]}},"required":["value"]}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"example":{"message":"Invalid request"}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"example":{"message":"Authentication required"}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"example":{"message":"Insufficient permissions"}}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"example":{"message":"Application identity conflict"}}}}}}}},"/v3/permissions/check":{"post":{"operationId":"checkPermissions","tags":["Permissions","SDK"],"summary":"Check resource permissions","description":"Evaluate multiple Cerbos policy actions for a resource. The server resolves resource attributes from the database and builds the ABAC principal from the authenticated user.","security":[{"bearerAuth":[]}],"requestBody":{"description":"Permission check request","required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"resourceKind":{"type":"string","enum":["organization","project","application","subscription","team","people"],"description":"Cerbos resource kind","example":"organization"},"resourceId":{"type":"string","minLength":1,"description":"Resource identifier (UUID or slug)","example":"my-org"},"organizationId":{"type":"string","minLength":1,"description":"Organization UUID or slug. Required when resourceId is a name (not UUID) for project, application, or team resources to avoid cross-org ambiguity.","example":"my-org"},"actions":{"type":"array","items":{"type":"string","minLength":1},"minItems":1,"maxItems":20,"description":"Actions to check","example":["update_organization","delete_organization"]},"peopleContext":{"type":"object","properties":{"targetUserId":{"type":"string","description":"Target user being managed"},"targetRole":{"type":"string","description":"New role being assigned"},"peopleLimitExceeded":{"type":"boolean","description":"Whether the org seat limit is exceeded"}},"description":"Additional context for people resource kind permission checks"}},"required":["resourceKind","resourceId","actions"]}}}},"responses":{"200":{"description":"Permission check results","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"object","properties":{"results":{"type":"object","additionalProperties":{"type":"boolean"},"description":"Map of action to allowed status","example":{"update_organization":true,"delete_organization":false}}},"required":["results"]}},"required":["value"]}}}},"400":{"description":"Invalid request body","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[400]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Bad request error - invalid input or validation failed","example":{"error":"Bad Request","message":"Validation failed","statusCode":400,"requestId":"req-123-abc-456"}}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["Unauthorized"],"default":"Unauthorized"},"message":{"type":"string"},"statusCode":{"type":"number","enum":[401]},"requestId":{"type":"string"},"details":{"type":"object","additionalProperties":{"nullable":true}}},"required":["message","statusCode"],"description":"Authentication required","example":{"error":"Unauthorized","message":"Invalid or expired authentication token","statusCode":401,"requestId":"req-123-abc-456"}}}}}}}}}}