{"openapi":"3.0.3","info":{"title":"Gessa Generation API","version":"1.0.0","description":"The stable Gessa Generation API: prompt or reference image in, production-ready game asset out.\n\nAuthenticate with an `x-api-key` (`gp_...`) or `x-capability-token` (`gpc_...`). Discover capability keys and input schemas at `GET /api/generation/capabilities`; do not hardcode provider-specific keys.\n\nTypical lifecycle: quote the request, create the job with `x-idempotency-key`, then poll the job or consume its event stream. Credits are reserved at creation and charged only on success. JSON successes use `{ ok: true, data }`; JSON failures use `{ ok: false, error: { code, message, ... } }`.\n\nRate-limit state is returned in structured `RateLimit` / `RateLimit-Policy` fields and legacy `RateLimit-*` / `X-RateLimit-*` headers. A 429 also includes `Retry-After`.","termsOfService":"https://gessa.ai/terms/","contact":{"name":"Gessa developer support","email":"support@gessa.ai","url":"https://gessa.ai/developers/"}},"externalDocs":{"description":"Gessa developer guide and API lifecycle policy","url":"https://gessa.ai/developers/"},"servers":[{"url":"https://api.gessa.ai","description":"Production"}],"tags":[{"name":"Generation","description":"Quote, submit, observe, and cancel asset-generation jobs."}],"security":[{"ApiKeyAuth":[]},{"CapabilityTokenAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"x-api-key","description":"Organization-scoped machine API key (`gp_...`)."},"CapabilityTokenAuth":{"type":"apiKey","in":"header","name":"x-capability-token","description":"Short-lived, tenant-scoped capability token (`gpc_...`)."}},"parameters":{"ApiVersion":{"name":"x-api-version","in":"header","required":false,"description":"Pins the stable public contract major version. Omit for the current default (v1).","schema":{"type":"string","enum":["1"],"default":"1"}},"JobId":{"name":"jobId","in":"path","required":true,"description":"Generation job UUID.","schema":{"type":"string","format":"uuid"}},"IdempotencyKey":{"name":"x-idempotency-key","in":"header","required":true,"description":"Caller-generated key used to make this mutation safe to retry.","schema":{"type":"string","minLength":1,"maxLength":255}},"OrganizationIdQuery":{"name":"organizationId","in":"query","required":false,"schema":{"type":"string","format":"uuid"}},"WorkspaceIdQuery":{"name":"workspaceId","in":"query","required":false,"schema":{"type":"string","format":"uuid"}},"GameIdQuery":{"name":"gameId","in":"query","required":false,"schema":{"type":"string","format":"uuid"}},"CapabilityKeyQuery":{"name":"capabilityKey","in":"query","required":false,"schema":{"type":"string","maxLength":160}},"JobStatusQuery":{"name":"status","in":"query","required":false,"schema":{"type":"string","enum":["submitted","gated","queued","claimed","running","finalizing","succeeded","failed_retryable","failed_terminal","finalization_failed","settlement_failed","blocked_policy","blocked_budget","cancelled","expired"]}},"CreatedAfterQuery":{"name":"createdAfter","in":"query","required":false,"schema":{"type":"string","format":"date-time"}},"CreatedBeforeQuery":{"name":"createdBefore","in":"query","required":false,"schema":{"type":"string","format":"date-time"}},"LimitQuery":{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":250,"default":50}}},"headers":{"RateLimit":{"description":"Structured rate-limit status with remaining requests (`r`) and seconds until reset (`t`).","schema":{"type":"string","example":"\"authenticated_read\";r=1799;t=60"}},"RateLimitPolicy":{"description":"Structured policy name, quota (`q`), and window in seconds (`w`).","schema":{"type":"string","example":"\"authenticated_read\";q=1800;w=60"}},"RateLimitLimit":{"description":"Maximum requests in the current window.","schema":{"type":"integer"}},"RateLimitRemaining":{"description":"Requests remaining in the current window.","schema":{"type":"integer"}},"RateLimitReset":{"description":"Unix timestamp in seconds when the current window resets.","schema":{"type":"integer"}},"RetryAfter":{"description":"Seconds to wait before retrying a rate-limited request.","schema":{"type":"integer","minimum":1}}},"responses":{"BadRequest":{"description":"The request was malformed, failed validation, or omitted a required idempotency key.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiFailure"}}}},"Unauthenticated":{"description":"No valid machine credential was supplied.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiFailure"}}}},"Forbidden":{"description":"The credential does not have permission for the requested scope or resource.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiFailure"}}}},"NotFound":{"description":"The requested resource was not found or is intentionally undisclosed to this credential.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiFailure"}}}},"Conflict":{"description":"The request conflicts with current state or with an earlier idempotent request.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiFailure"}}}},"EntitlementDenied":{"description":"The organization does not currently have enough credits or plan entitlement.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiFailure"}}}},"RateLimited":{"description":"The applicable request budget is exhausted for the current window.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiFailure"}}}},"InternalError":{"description":"The server could not complete the request.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiFailure"}}}},"Unavailable":{"description":"A required service is temporarily unavailable; retry with backoff.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiFailure"}}}}},"schemas":{"ApiError":{"type":"object","required":["code","message"],"additionalProperties":true,"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Safe human-readable explanation."},"type":{"type":"string"},"requestId":{"type":"string"},"param":{"type":"string"},"retryable":{"type":"boolean"},"details":{"type":"object","additionalProperties":true}}},"ApiFailure":{"type":"object","required":["ok","error"],"additionalProperties":false,"properties":{"ok":{"type":"boolean","enum":[false]},"error":{"$ref":"#/components/schemas/ApiError"}}},"GenerationScope":{"oneOf":[{"type":"object","required":["kind","organizationId"],"additionalProperties":false,"properties":{"kind":{"type":"string","enum":["organization"]},"organizationId":{"type":"string","format":"uuid"}}},{"type":"object","required":["kind","workspaceId"],"additionalProperties":false,"properties":{"kind":{"type":"string","enum":["workspace"]},"workspaceId":{"type":"string","format":"uuid"}}},{"type":"object","required":["kind","gameId"],"additionalProperties":false,"properties":{"kind":{"type":"string","enum":["game"]},"gameId":{"type":"string","format":"uuid"}}},{"type":"object","required":["kind"],"additionalProperties":false,"properties":{"kind":{"type":"string","enum":["platform"]}}}],"discriminator":{"propertyName":"kind"}},"GenerationTarget":{"type":"object","additionalProperties":false,"properties":{"assetAlias":{"type":"string","minLength":1,"maxLength":160},"gameId":{"type":"string","format":"uuid"},"workspaceResourceId":{"type":"string","format":"uuid"},"importOnSuccess":{"type":"boolean","default":false},"metadata":{"type":"object","additionalProperties":true,"default":{}}}},"GenerationOrigin":{"type":"object","additionalProperties":false,"properties":{"surface":{"type":"string","enum":["model_generator","image_generator","texture_generator","audio_generator","chat","ai_orchestra","mcp","public_api","admin","system"],"default":"public_api"},"traceId":{"type":"string","maxLength":256},"requestId":{"type":"string","maxLength":256},"sessionId":{"type":"string","maxLength":256},"parentJobId":{"type":"string","format":"uuid"},"metadata":{"type":"object","additionalProperties":true,"default":{}}}},"GenerationBudget":{"type":"object","additionalProperties":false,"properties":{"maxCreditMinor":{"type":"integer","minimum":0},"maxProviderCostUsdMicros":{"type":"string","pattern":"^\\d+$"},"maxRuntimeSeconds":{"type":"integer","minimum":1}}},"GenerationJobRequest":{"type":"object","required":["capabilityKey","scope"],"additionalProperties":false,"properties":{"capabilityKey":{"type":"string","minLength":1,"maxLength":160},"capabilityVersion":{"type":"string","minLength":1,"maxLength":80},"lane":{"type":"string","enum":["normal","fast"],"default":"normal"},"input":{"type":"object","additionalProperties":true,"default":{}},"scope":{"$ref":"#/components/schemas/GenerationScope"},"target":{"$ref":"#/components/schemas/GenerationTarget"},"origin":{"$ref":"#/components/schemas/GenerationOrigin"},"priority":{"type":"integer","minimum":0,"maximum":100,"default":50},"maxAttempts":{"type":"integer","minimum":1,"maximum":10},"budget":{"$ref":"#/components/schemas/GenerationBudget"},"clientMetadata":{"type":"object","additionalProperties":true,"default":{}}}},"CancelGenerationJobRequest":{"type":"object","additionalProperties":false,"properties":{"reason":{"type":"string","minLength":1,"maxLength":500,"default":"cancelled by requester"}}},"GenerationCapability":{"type":"object","required":["key","version","displayName","description","modality","defaultEstimatedCreditMinor","maxEstimatedCreditMinor","inputJsonSchema","outputFormats","tags"],"additionalProperties":false,"properties":{"key":{"type":"string"},"version":{"type":"string"},"displayName":{"type":"string"},"description":{"type":"string"},"modality":{"type":"string"},"outputAssetKind":{"type":"string"},"defaultEstimatedCreditMinor":{"type":"integer","minimum":0},"maxEstimatedCreditMinor":{"type":"integer","minimum":0},"inputJsonSchema":{"type":"object","additionalProperties":true},"outputFormats":{"type":"array","items":{"type":"string"}},"referenceImages":{"type":"object","additionalProperties":true},"presentation":{"type":"object","additionalProperties":true},"stageBaseline":{"type":"object","additionalProperties":true},"tags":{"type":"array","items":{"type":"string"}}}},"GenerationJob":{"type":"object","required":["id","capabilityKey","prompt","assetKind","quality","status","estimatedCreditMinor","outputFormats","createdAt","updatedAt"],"additionalProperties":false,"properties":{"id":{"type":"string","format":"uuid"},"capabilityKey":{"type":"string"},"prompt":{"type":"string"},"assetKind":{"type":"string"},"quality":{"type":"string"},"status":{"type":"string","enum":["submitted","gated","queued","claimed","running","finalizing","succeeded","failed_retryable","failed_terminal","finalization_failed","settlement_failed","blocked_policy","blocked_budget","cancelled","expired"]},"progress":{"type":"number","minimum":0,"maximum":1},"queuePosition":{"type":"integer","minimum":1},"estimatedCreditMinor":{"type":"integer","minimum":0},"outputFormats":{"type":"array","items":{"type":"string"}},"modelExportFormats":{"type":"array","items":{"type":"string"}},"error":{"type":"string"},"workspaceResourceId":{"type":"string","format":"uuid"},"projectAssetId":{"type":"string","format":"uuid"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"GenerationJobEvent":{"type":"object","required":["id","jobId","sequence","eventType","createdAt"],"additionalProperties":false,"properties":{"id":{"type":"string","format":"uuid"},"jobId":{"type":"string","format":"uuid"},"sequence":{"type":"integer","minimum":0},"eventType":{"type":"string"},"createdAt":{"type":"string","format":"date-time"}}},"GenerationQuote":{"type":"object","additionalProperties":false,"properties":{"lane":{"type":"string"},"estimatedCreditMinor":{"type":"integer"},"maxEstimatedCreditMinor":{"type":"integer"},"priceCardVersion":{"type":"integer"},"accepted":{"type":"boolean"},"rejectionReason":{"type":"string"},"capability":{"$ref":"#/components/schemas/GenerationCapability"}}},"GenerationJobMutation":{"type":"object","required":["job"],"additionalProperties":false,"properties":{"replayed":{"type":"boolean"},"usage":{"type":"object","additionalProperties":true},"dispatch":{"type":"object","additionalProperties":true},"job":{"$ref":"#/components/schemas/GenerationJob"}}},"GenerationCapabilitiesResponse":{"type":"object","required":["ok","data"],"additionalProperties":false,"properties":{"ok":{"type":"boolean","enum":[true]},"data":{"type":"array","items":{"$ref":"#/components/schemas/GenerationCapability"}}}},"GenerationQuoteResponse":{"type":"object","required":["ok","data"],"additionalProperties":false,"properties":{"ok":{"type":"boolean","enum":[true]},"data":{"$ref":"#/components/schemas/GenerationQuote"}}},"GenerationJobMutationResponse":{"type":"object","required":["ok","data"],"additionalProperties":false,"properties":{"ok":{"type":"boolean","enum":[true]},"data":{"$ref":"#/components/schemas/GenerationJobMutation"}}},"GenerationJobsResponse":{"type":"object","required":["ok","data"],"additionalProperties":false,"properties":{"ok":{"type":"boolean","enum":[true]},"data":{"type":"array","items":{"$ref":"#/components/schemas/GenerationJob"}}}},"GenerationJobDetailResponse":{"type":"object","required":["ok","data"],"additionalProperties":false,"properties":{"ok":{"type":"boolean","enum":[true]},"data":{"type":"object","required":["job"],"additionalProperties":false,"properties":{"job":{"$ref":"#/components/schemas/GenerationJob"}}}}},"GenerationJobEventsResponse":{"type":"object","required":["ok","data"],"additionalProperties":false,"properties":{"ok":{"type":"boolean","enum":[true]},"data":{"type":"array","items":{"$ref":"#/components/schemas/GenerationJobEvent"}}}},"GenerationJobResponse":{"type":"object","required":["ok","data"],"additionalProperties":false,"properties":{"ok":{"type":"boolean","enum":[true]},"data":{"$ref":"#/components/schemas/GenerationJob"}}}}},"paths":{"/api/generation/capabilities":{"get":{"responses":{"200":{"description":"The caller-visible generation capability catalog.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerationCapabilitiesResponse"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthenticated"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"409":{"$ref":"#/components/responses/Conflict"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/Unavailable"}},"tags":["Generation"],"operationId":"listGenerationCapabilities","summary":"List available generation capabilities","description":"Returns capabilities visible to the caller, including the authoritative input JSON Schema, output formats, credit estimates, and stable public key for each generator.","security":[{"ApiKeyAuth":[]},{"CapabilityTokenAuth":[]}],"parameters":[{"$ref":"#/components/parameters/ApiVersion"}]}},"/api/generation/quote":{"post":{"responses":{"200":{"description":"The accepted quote and current credit estimate.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerationQuoteResponse"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthenticated"},"402":{"$ref":"#/components/responses/EntitlementDenied"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"409":{"$ref":"#/components/responses/Conflict"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/Unavailable"}},"tags":["Generation"],"operationId":"quoteGenerationJob","summary":"Quote a generation job","description":"Validates a proposed generation request and returns its current credit estimate before any job is created or credits are reserved. The request must include an idempotency key.","security":[{"ApiKeyAuth":[]},{"CapabilityTokenAuth":[]}],"parameters":[{"$ref":"#/components/parameters/ApiVersion"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerationJobRequest"}}}}}},"/api/generation/jobs":{"get":{"responses":{"200":{"description":"A bounded list of caller-visible generation jobs.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerationJobsResponse"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthenticated"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"409":{"$ref":"#/components/responses/Conflict"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/Unavailable"}},"tags":["Generation"],"operationId":"listGenerationJobs","summary":"List generation jobs","description":"Lists jobs visible to the authenticated principal. Scope filters are enforced against the credential, and results are returned with a bounded page size.","security":[{"ApiKeyAuth":[]},{"CapabilityTokenAuth":[]}],"parameters":[{"$ref":"#/components/parameters/ApiVersion"},{"$ref":"#/components/parameters/OrganizationIdQuery"},{"$ref":"#/components/parameters/WorkspaceIdQuery"},{"$ref":"#/components/parameters/GameIdQuery"},{"$ref":"#/components/parameters/CapabilityKeyQuery"},{"$ref":"#/components/parameters/JobStatusQuery"},{"$ref":"#/components/parameters/CreatedAfterQuery"},{"$ref":"#/components/parameters/CreatedBeforeQuery"},{"$ref":"#/components/parameters/LimitQuery"}]},"post":{"responses":{"200":{"description":"The created or idempotently replayed generation job.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerationJobMutationResponse"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthenticated"},"402":{"$ref":"#/components/responses/EntitlementDenied"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"409":{"$ref":"#/components/responses/Conflict"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/Unavailable"}},"tags":["Generation"],"operationId":"createGenerationJob","summary":"Create a generation job","description":"Creates a generation job, reserves the quoted credits, and safely replays the original result when the same idempotency key and request are submitted again.","security":[{"ApiKeyAuth":[]},{"CapabilityTokenAuth":[]}],"parameters":[{"$ref":"#/components/parameters/ApiVersion"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerationJobRequest"}}}}}},"/api/generation/jobs/{jobId}":{"get":{"parameters":[{"$ref":"#/components/parameters/ApiVersion"},{"$ref":"#/components/parameters/JobId"}],"responses":{"200":{"description":"The current caller-visible job state.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerationJobDetailResponse"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthenticated"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"409":{"$ref":"#/components/responses/Conflict"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/Unavailable"}},"tags":["Generation"],"operationId":"getGenerationJob","summary":"Get a generation job","description":"Returns the current client-safe state of one generation job, including status, progress, estimated credits, outputs, and stable workspace resource identifiers when available.","security":[{"ApiKeyAuth":[]},{"CapabilityTokenAuth":[]}]}},"/api/generation/jobs/{jobId}/events":{"get":{"parameters":[{"$ref":"#/components/parameters/ApiVersion"},{"$ref":"#/components/parameters/JobId"}],"responses":{"200":{"description":"The ordered client-safe job event history.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerationJobEventsResponse"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthenticated"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"409":{"$ref":"#/components/responses/Conflict"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/Unavailable"}},"tags":["Generation"],"operationId":"listGenerationJobEvents","summary":"List generation job events","description":"Returns the persisted, ordered event history for one generation job. Use this endpoint when polling or recovering after an interrupted event stream.","security":[{"ApiKeyAuth":[]},{"CapabilityTokenAuth":[]}]}},"/api/generation/jobs/{jobId}/events/stream":{"get":{"parameters":[{"$ref":"#/components/parameters/ApiVersion"},{"$ref":"#/components/parameters/JobId"}],"responses":{"200":{"description":"A Server-Sent Events stream containing snapshot and job-event events.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}},"content":{"text/event-stream":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthenticated"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"409":{"$ref":"#/components/responses/Conflict"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/Unavailable"}},"tags":["Generation"],"operationId":"streamGenerationJobEvents","summary":"Stream generation job events","description":"Opens a Server-Sent Events stream for one job. The stream begins with a snapshot event and then emits ordered job-event records until the connection closes.","security":[{"ApiKeyAuth":[]},{"CapabilityTokenAuth":[]}]}},"/api/generation/jobs/{jobId}/draft":{"get":{"parameters":[{"$ref":"#/components/parameters/ApiVersion"},{"$ref":"#/components/parameters/JobId"}],"responses":{"200":{"description":"The current binary draft artifact.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}},"content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthenticated"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"409":{"$ref":"#/components/responses/Conflict"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/Unavailable"}},"tags":["Generation"],"operationId":"downloadGenerationJobDraft","summary":"Download a generation draft","description":"Downloads the current private draft artifact for a job when one exists. The response media type is the artifact's actual MIME type and the body is binary.","security":[{"ApiKeyAuth":[]},{"CapabilityTokenAuth":[]}]}},"/api/generation/jobs/{jobId}/cancel":{"post":{"parameters":[{"$ref":"#/components/parameters/ApiVersion"},{"$ref":"#/components/parameters/JobId"},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"The updated cancelled or cancellation-pending job.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerationJobResponse"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthenticated"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"409":{"$ref":"#/components/responses/Conflict"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/Unavailable"}},"tags":["Generation"],"operationId":"cancelGenerationJob","summary":"Cancel a generation job","description":"Requests cancellation of a caller-visible job and returns its updated state. Repeating the request with the same idempotency key is safe.","security":[{"ApiKeyAuth":[]},{"CapabilityTokenAuth":[]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelGenerationJobRequest"}}}}}}}}