{"openapi":"3.1.0","info":{"title":"Auvryn API","version":"v1","description":"The Auvryn Developer API: models, validation, sandbox, areas, cost estimates, executions, results and usage. Authenticate with an API key (`Authorization: Bearer auv_…`), created in Workspace → Developer → API keys. Documentation: https://auvrynspace.com/developers."},"servers":[{"url":"/"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"http","scheme":"bearer","bearerFormat":"auv_<key id>_<secret>","description":"An Auvryn API key, created in Workspace → Developer → API keys."}},"schemas":{"ApiError":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["AUTHENTICATION_REQUIRED","INVALID_AUTHENTICATION","INSUFFICIENT_SCOPE","INSUFFICIENT_ROLE","ENTITLEMENT_REQUIRED","ENTITLEMENT_EXPIRED","WORKSPACE_LIMIT_REACHED","CONCURRENT_RUN_LIMIT_REACHED","SAMPLE_RUN_LIMIT_REACHED","RATE_LIMITED","IDEMPOTENCY_CONFLICT","IDEMPOTENCY_IN_PROGRESS","API_KEY_NOT_FOUND","VALIDATION_FAILED","BAD_REQUEST","NOT_FOUND","ORGANIZATION_NOT_FOUND","PROJECT_NOT_FOUND","ORGANIZATION_SLUG_CONFLICT","PROJECT_SLUG_CONFLICT","MEMBER_NOT_FOUND","LAST_OWNER_REQUIRED","WORKSPACE_HAS_ACTIVE_EXECUTIONS","WORKSPACE_DELETED","INVITATION_NOT_FOUND","INVITATION_EXPIRED","INVITATION_ALREADY_USED","INVITATION_EMAIL_MISMATCH","ALREADY_A_MEMBER","MODEL_NOT_FOUND","MODEL_VERSION_NOT_FOUND","MODEL_SLUG_CONFLICT","INVALID_MODEL_FORMAT","MODEL_ARTIFACT_NOT_FOUND","MODEL_ARTIFACT_ALREADY_UPLOADED","MODEL_ARTIFACT_NOT_UPLOADED","MODEL_ARTIFACT_VERIFICATION_FAILED","MODEL_ARTIFACT_TOO_LARGE","UNSUPPORTED_MODEL_ARTIFACT_FILE","OBJECT_STORAGE_UNAVAILABLE","MODEL_VALIDATION_NOT_FOUND","MODEL_VALIDATION_UNAVAILABLE","MODEL_NOT_VALIDATED","SANDBOX_RUN_NOT_FOUND","SANDBOX_UNAVAILABLE","AREA_OF_INTEREST_NOT_FOUND","INVALID_AOI_GEOMETRY","AOI_TOO_LARGE","EXECUTION_JOB_NOT_FOUND","EXECUTION_JOB_NOT_CANCELLABLE","EXECUTION_CANCELLATION_UNSUPPORTED","RESULT_NOT_FOUND","RESULT_ARTIFACT_NOT_FOUND","PROVIDER_NOT_FOUND","COST_ESTIMATE_NOT_FOUND","COST_ESTIMATE_EXPIRED","COST_ESTIMATION_UNAVAILABLE","PROVIDER_COST_ESTIMATION_UNSUPPORTED","PROVIDER_INCOMPATIBLE","PROVIDER_COMPATIBILITY_UNKNOWN","INTERNAL_ERROR"]},"message":{"type":"string","minLength":1},"requestId":{"type":"string","minLength":1},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message","requestId","details"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}},"paths":{"/api/v1/me":{"get":{"operationId":"getMe","summary":"Who is calling: the user, or the API key and the member it acts for","tags":["Identity"],"description":"Any valid API key.","parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"user":{"type":"object","properties":{"id":{"type":"string","pattern":"^usr_[0-9a-z]{26}$"},"email":{"type":["string","null"]},"emailVerified":{"type":"boolean"},"displayName":{"type":["string","null"]}},"required":["id","email","emailVerified","displayName"],"additionalProperties":false},"principal":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"user"},"identityProvider":{"type":"string","minLength":1},"email":{"type":["string","null"]},"emailVerified":{"type":"boolean"},"displayName":{"type":["string","null"]}},"required":["kind","identityProvider","email","emailVerified","displayName"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"api-key"},"apiKeyId":{"type":"string","pattern":"^key_[0-9a-z]{26}$"},"organizationId":{"type":"string","pattern":"^org_[0-9a-z]{26}$"},"projectId":{"anyOf":[{"type":"string","pattern":"^prj_[0-9a-z]{26}$"},{"type":"null"}]},"scopes":{"type":"array","items":{"type":"string","enum":["projects:read","models:read","models:write","areas:read","areas:write","estimates:read","estimates:write","executions:read","executions:write","results:read","usage:read","events:read"]}}},"required":["kind","apiKeyId","organizationId","projectId","scopes"],"additionalProperties":false}]},"session":{"type":"object","properties":{"authenticatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"expiresAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]}},"required":["authenticatedAt","expiresAt"],"additionalProperties":false}},"required":["user","principal","session"],"additionalProperties":false}}}},"400":{"description":"The request is invalid (`VALIDATION_FAILED`, `BAD_REQUEST`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing, invalid, expired or revoked credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Not allowed: the API key lacks the scope (`INSUFFICIENT_SCOPE`), the role of the member does not allow it (`INSUFFICIENT_ROLE`), or the workspace lacks a capability (`ENTITLEMENT_REQUIRED`, `ENTITLEMENT_EXPIRED`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found, or not accessible to the caller (indistinguishable).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited (`RATE_LIMITED`); retry after `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"5XX":{"description":"Unexpected or unavailable (`INTERNAL_ERROR`, `*_UNAVAILABLE`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/organizations":{"get":{"operationId":"listOrganizations","summary":"List the organizations of the caller (for an API key: its own)","tags":["Organizations"],"description":"Required API key scope: `projects:read`.","x-auvryn-scope":"projects:read","parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"organizations":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^org_[0-9a-z]{26}$"},"name":{"type":"string"},"slug":{"type":"string"},"role":{"type":"string","enum":["owner","admin","member","viewer"]},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["id","name","slug","role","createdAt"],"additionalProperties":false}}},"required":["organizations"],"additionalProperties":false}}}},"400":{"description":"The request is invalid (`VALIDATION_FAILED`, `BAD_REQUEST`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing, invalid, expired or revoked credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Not allowed: the API key lacks the scope (`INSUFFICIENT_SCOPE`), the role of the member does not allow it (`INSUFFICIENT_ROLE`), or the workspace lacks a capability (`ENTITLEMENT_REQUIRED`, `ENTITLEMENT_EXPIRED`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found, or not accessible to the caller (indistinguishable).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited (`RATE_LIMITED`); retry after `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"5XX":{"description":"Unexpected or unavailable (`INTERNAL_ERROR`, `*_UNAVAILABLE`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/organizations/{organizationId}":{"get":{"operationId":"getOrganization","summary":"Get an organization","tags":["Organizations"],"description":"Required API key scope: `projects:read`.","x-auvryn-scope":"projects:read","parameters":[{"name":"organizationId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","pattern":"^org_[0-9a-z]{26}$"},"name":{"type":"string"},"slug":{"type":"string"},"role":{"type":"string","enum":["owner","admin","member","viewer"]},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["id","name","slug","role","createdAt"],"additionalProperties":false}}}},"400":{"description":"The request is invalid (`VALIDATION_FAILED`, `BAD_REQUEST`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing, invalid, expired or revoked credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Not allowed: the API key lacks the scope (`INSUFFICIENT_SCOPE`), the role of the member does not allow it (`INSUFFICIENT_ROLE`), or the workspace lacks a capability (`ENTITLEMENT_REQUIRED`, `ENTITLEMENT_EXPIRED`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found, or not accessible to the caller (indistinguishable).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited (`RATE_LIMITED`); retry after `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"5XX":{"description":"Unexpected or unavailable (`INTERNAL_ERROR`, `*_UNAVAILABLE`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/organizations/{organizationId}/entitlements":{"get":{"operationId":"getWorkspaceEntitlements","summary":"Get the workspace's capabilities and its limits with current usage","tags":["Organizations"],"description":"Required API key scope: `projects:read`.","x-auvryn-scope":"projects:read","parameters":[{"name":"organizationId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"capabilities":{"type":"array","items":{"type":"object","properties":{"capability":{"type":"string","enum":["own-model-upload","sample-workload","development-execution","external-provider","orbital-execution","smart-router"]},"status":{"type":"string","enum":["enabled","disabled","expired"]},"expiresAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]}},"required":["capability","status","expiresAt"],"additionalProperties":false}},"limits":{"type":"array","items":{"type":"object","properties":{"limit":{"type":"string","enum":["projects","models","api-keys","concurrent-runs","sample-runs-per-day"]},"max":{"type":"integer","minimum":0,"maximum":9007199254740991},"used":{"type":"integer","minimum":0,"maximum":9007199254740991},"remaining":{"type":"integer","minimum":0,"maximum":9007199254740991},"status":{"type":"string","enum":["available","reached"]}},"required":["limit","max","used","remaining","status"],"additionalProperties":false}}},"required":["capabilities","limits"],"additionalProperties":false}}}},"400":{"description":"The request is invalid (`VALIDATION_FAILED`, `BAD_REQUEST`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing, invalid, expired or revoked credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Not allowed: the API key lacks the scope (`INSUFFICIENT_SCOPE`), the role of the member does not allow it (`INSUFFICIENT_ROLE`), or the workspace lacks a capability (`ENTITLEMENT_REQUIRED`, `ENTITLEMENT_EXPIRED`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found, or not accessible to the caller (indistinguishable).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited (`RATE_LIMITED`); retry after `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"5XX":{"description":"Unexpected or unavailable (`INTERNAL_ERROR`, `*_UNAVAILABLE`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/organizations/{organizationId}/events":{"get":{"operationId":"listWorkspaceEvents","summary":"List the workspace's events (activation; audit for owners and admins)","tags":["Organizations"],"description":"Required API key scope: `events:read`.","x-auvryn-scope":"events:read","x-auvryn-paginated":true,"parameters":[{"name":"organizationId","in":"path","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"default":50,"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[A-Za-z0-9_-]+$"}},{"name":"category","in":"query","required":false,"schema":{"type":"string","enum":["audit","activation"]}},{"name":"type","in":"query","required":false,"schema":{"type":"string","enum":["SIGNUP_COMPLETED","IDENTITY_DELETED","WORKSPACE_CREATED","WORKSPACE_RENAMED","WORKSPACE_DELETED","PROJECT_CREATED","MODEL_CREATED","MODEL_VERSION_CREATED","MODEL_UPLOAD_COMPLETED","MODEL_VALIDATION_STARTED","MODEL_VALIDATED","MODEL_VALIDATION_FAILED","SAMPLE_RUN_STARTED","SAMPLE_RUN_COMPLETED","SAMPLE_RUN_FAILED","RUN_CREATED","RUN_STARTED","RUN_COMPLETED","RUN_FAILED","RUN_CANCELLED","API_KEY_CREATED","API_KEY_REVOKED","MEMBER_INVITED","INVITATION_REVOKED","INVITATION_ACCEPTED","MEMBER_ROLE_CHANGED","MEMBER_REMOVED","OWNERSHIP_TRANSFERRED","ENTITLEMENT_GRANTED","ENTITLEMENT_REVOKED","ENTITLEMENT_EXPIRATION_CHANGED","WORKSPACE_LIMIT_CHANGED","LIMIT_REACHED"]}},{"name":"resourceId","in":"query","required":false,"schema":{"type":"string","maxLength":100}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"events":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^evt_[0-9a-z]{26}$"},"type":{"type":"string","enum":["SIGNUP_COMPLETED","IDENTITY_DELETED","WORKSPACE_CREATED","WORKSPACE_RENAMED","WORKSPACE_DELETED","PROJECT_CREATED","MODEL_CREATED","MODEL_VERSION_CREATED","MODEL_UPLOAD_COMPLETED","MODEL_VALIDATION_STARTED","MODEL_VALIDATED","MODEL_VALIDATION_FAILED","SAMPLE_RUN_STARTED","SAMPLE_RUN_COMPLETED","SAMPLE_RUN_FAILED","RUN_CREATED","RUN_STARTED","RUN_COMPLETED","RUN_FAILED","RUN_CANCELLED","API_KEY_CREATED","API_KEY_REVOKED","MEMBER_INVITED","INVITATION_REVOKED","INVITATION_ACCEPTED","MEMBER_ROLE_CHANGED","MEMBER_REMOVED","OWNERSHIP_TRANSFERRED","ENTITLEMENT_GRANTED","ENTITLEMENT_REVOKED","ENTITLEMENT_EXPIRATION_CHANGED","WORKSPACE_LIMIT_CHANGED","LIMIT_REACHED"]},"category":{"type":"string","enum":["audit","activation"]},"occurredAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"actor":{"type":"object","properties":{"type":{"type":"string","enum":["user","api_key","system","operator"]},"userId":{"anyOf":[{"type":"string","pattern":"^usr_[0-9a-z]{26}$"},{"type":"null"}]},"apiKeyId":{"anyOf":[{"type":"string","pattern":"^key_[0-9a-z]{26}$"},{"type":"null"}]}},"required":["type","userId","apiKeyId"],"additionalProperties":false},"source":{"type":"string","enum":["web","api","worker","webhook","operator"]},"organizationId":{"type":"string","pattern":"^org_[0-9a-z]{26}$"},"projectId":{"anyOf":[{"type":"string","pattern":"^prj_[0-9a-z]{26}$"},{"type":"null"}]},"resource":{"type":"object","properties":{"type":{"type":"string","enum":["user","organization","project","model","modelVersion","executionJob","apiKey","invitation"]},"id":{"type":"string","pattern":"^[a-z]+_[0-9a-z]{26}$"}},"required":["type","id"],"additionalProperties":false},"metadata":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"},{"type":"array","items":{"type":"string"}}]}}},"required":["id","type","category","occurredAt","actor","source","organizationId","projectId","resource","metadata"],"additionalProperties":false}},"nextCursor":{"anyOf":[{"type":"string","minLength":1,"maxLength":200,"pattern":"^[A-Za-z0-9_-]+$"},{"type":"null"}]}},"required":["events","nextCursor"],"additionalProperties":false}}}},"400":{"description":"The request is invalid (`VALIDATION_FAILED`, `BAD_REQUEST`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing, invalid, expired or revoked credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Not allowed: the API key lacks the scope (`INSUFFICIENT_SCOPE`), the role of the member does not allow it (`INSUFFICIENT_ROLE`), or the workspace lacks a capability (`ENTITLEMENT_REQUIRED`, `ENTITLEMENT_EXPIRED`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found, or not accessible to the caller (indistinguishable).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited (`RATE_LIMITED`); retry after `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"5XX":{"description":"Unexpected or unavailable (`INTERNAL_ERROR`, `*_UNAVAILABLE`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/organizations/{organizationId}/projects":{"get":{"operationId":"listProjects","summary":"List the projects of an organization (for a project-restricted key: that project)","tags":["Projects"],"description":"Required API key scope: `projects:read`.","x-auvryn-scope":"projects:read","parameters":[{"name":"organizationId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"projects":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^prj_[0-9a-z]{26}$"},"organizationId":{"type":"string","pattern":"^org_[0-9a-z]{26}$"},"name":{"type":"string"},"slug":{"type":"string"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["id","organizationId","name","slug","createdAt"],"additionalProperties":false}}},"required":["projects"],"additionalProperties":false}}}},"400":{"description":"The request is invalid (`VALIDATION_FAILED`, `BAD_REQUEST`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing, invalid, expired or revoked credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Not allowed: the API key lacks the scope (`INSUFFICIENT_SCOPE`), the role of the member does not allow it (`INSUFFICIENT_ROLE`), or the workspace lacks a capability (`ENTITLEMENT_REQUIRED`, `ENTITLEMENT_EXPIRED`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found, or not accessible to the caller (indistinguishable).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited (`RATE_LIMITED`); retry after `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"5XX":{"description":"Unexpected or unavailable (`INTERNAL_ERROR`, `*_UNAVAILABLE`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/organizations/{organizationId}/projects/{projectId}":{"get":{"operationId":"getProject","summary":"Get a project","tags":["Projects"],"description":"Required API key scope: `projects:read`.","x-auvryn-scope":"projects:read","parameters":[{"name":"organizationId","in":"path","required":true,"schema":{"type":"string"}},{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","pattern":"^prj_[0-9a-z]{26}$"},"organizationId":{"type":"string","pattern":"^org_[0-9a-z]{26}$"},"name":{"type":"string"},"slug":{"type":"string"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["id","organizationId","name","slug","createdAt"],"additionalProperties":false}}}},"400":{"description":"The request is invalid (`VALIDATION_FAILED`, `BAD_REQUEST`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing, invalid, expired or revoked credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Not allowed: the API key lacks the scope (`INSUFFICIENT_SCOPE`), the role of the member does not allow it (`INSUFFICIENT_ROLE`), or the workspace lacks a capability (`ENTITLEMENT_REQUIRED`, `ENTITLEMENT_EXPIRED`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found, or not accessible to the caller (indistinguishable).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited (`RATE_LIMITED`); retry after `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"5XX":{"description":"Unexpected or unavailable (`INTERNAL_ERROR`, `*_UNAVAILABLE`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/organizations/{organizationId}/projects/{projectId}/areas-of-interest":{"get":{"operationId":"listAreasOfInterest","summary":"List the areas of interest of a project","tags":["Areas"],"description":"Required API key scope: `areas:read`.","x-auvryn-scope":"areas:read","x-auvryn-paginated":true,"parameters":[{"name":"organizationId","in":"path","required":true,"schema":{"type":"string"}},{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"default":100,"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[A-Za-z0-9_-]+$"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"areasOfInterest":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^aoi_[0-9a-z]{26}$"},"projectId":{"type":"string","pattern":"^prj_[0-9a-z]{26}$"},"name":{"type":"string"},"description":{"type":["string","null"]},"geometry":{"type":"object","properties":{"type":{"type":"string","const":"MultiPolygon"},"coordinates":{"minItems":1,"type":"array","items":{"minItems":1,"type":"array","items":{"minItems":4,"type":"array","items":{"type":"array","prefixItems":[{"type":"number","minimum":-180,"maximum":180},{"type":"number","minimum":-90,"maximum":90}],"items":false,"minItems":2,"maxItems":2}}}}},"required":["type","coordinates"],"additionalProperties":false},"areaSquareMeters":{"type":"number","exclusiveMinimum":0},"bbox":{"type":"object","properties":{"west":{"type":"number","minimum":-180,"maximum":180},"south":{"type":"number","minimum":-90,"maximum":90},"east":{"type":"number","minimum":-180,"maximum":180},"north":{"type":"number","minimum":-90,"maximum":90}},"required":["west","south","east","north"],"additionalProperties":false},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["id","projectId","name","description","geometry","areaSquareMeters","bbox","createdAt","updatedAt"],"additionalProperties":false}},"nextCursor":{"anyOf":[{"type":"string","minLength":1,"maxLength":200,"pattern":"^[A-Za-z0-9_-]+$"},{"type":"null"}]}},"required":["areasOfInterest","nextCursor"],"additionalProperties":false}}}},"400":{"description":"The request is invalid (`VALIDATION_FAILED`, `BAD_REQUEST`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing, invalid, expired or revoked credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Not allowed: the API key lacks the scope (`INSUFFICIENT_SCOPE`), the role of the member does not allow it (`INSUFFICIENT_ROLE`), or the workspace lacks a capability (`ENTITLEMENT_REQUIRED`, `ENTITLEMENT_EXPIRED`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found, or not accessible to the caller (indistinguishable).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited (`RATE_LIMITED`); retry after `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"5XX":{"description":"Unexpected or unavailable (`INTERNAL_ERROR`, `*_UNAVAILABLE`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"post":{"operationId":"createAreaOfInterest","summary":"Create an area of interest (GeoJSON Polygon or MultiPolygon)","tags":["Areas"],"description":"Required API key scope: `areas:write`.","x-auvryn-scope":"areas:write","x-auvryn-idempotent-operation":"areas-of-interest.create","parameters":[{"name":"organizationId","in":"path","required":true,"schema":{"type":"string"}},{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"Makes retries safe: the same key and request return the same response for 24 hours.","schema":{"type":"string","pattern":"^[!-~]{1,255}$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","maxLength":200},"description":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}]},"geometry":{}},"required":["name","geometry"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","pattern":"^aoi_[0-9a-z]{26}$"},"projectId":{"type":"string","pattern":"^prj_[0-9a-z]{26}$"},"name":{"type":"string"},"description":{"type":["string","null"]},"geometry":{"type":"object","properties":{"type":{"type":"string","const":"MultiPolygon"},"coordinates":{"minItems":1,"type":"array","items":{"minItems":1,"type":"array","items":{"minItems":4,"type":"array","items":{"type":"array","prefixItems":[{"type":"number","minimum":-180,"maximum":180},{"type":"number","minimum":-90,"maximum":90}],"items":false,"minItems":2,"maxItems":2}}}}},"required":["type","coordinates"],"additionalProperties":false},"areaSquareMeters":{"type":"number","exclusiveMinimum":0},"bbox":{"type":"object","properties":{"west":{"type":"number","minimum":-180,"maximum":180},"south":{"type":"number","minimum":-90,"maximum":90},"east":{"type":"number","minimum":-180,"maximum":180},"north":{"type":"number","minimum":-90,"maximum":90}},"required":["west","south","east","north"],"additionalProperties":false},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["id","projectId","name","description","geometry","areaSquareMeters","bbox","createdAt","updatedAt"],"additionalProperties":false}}}},"400":{"description":"The request is invalid (`VALIDATION_FAILED`, `BAD_REQUEST`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing, invalid, expired or revoked credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Not allowed: the API key lacks the scope (`INSUFFICIENT_SCOPE`), the role of the member does not allow it (`INSUFFICIENT_ROLE`), or the workspace lacks a capability (`ENTITLEMENT_REQUIRED`, `ENTITLEMENT_EXPIRED`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found, or not accessible to the caller (indistinguishable).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflicts with the current state (e.g. `MODEL_SLUG_CONFLICT`, `MODEL_NOT_VALIDATED`), a workspace limit reached (`WORKSPACE_LIMIT_REACHED`, `CONCURRENT_RUN_LIMIT_REACHED`, `SAMPLE_RUN_LIMIT_REACHED`), or `Idempotency-Key` reused with another request (`IDEMPOTENCY_CONFLICT`) or still in progress (`IDEMPOTENCY_IN_PROGRESS`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Well-formed but rejected content (e.g. `MODEL_ARTIFACT_VERIFICATION_FAILED`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited (`RATE_LIMITED`); retry after `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"5XX":{"description":"Unexpected or unavailable (`INTERNAL_ERROR`, `*_UNAVAILABLE`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/organizations/{organizationId}/projects/{projectId}/areas-of-interest/{aoiId}":{"get":{"operationId":"getAreaOfInterest","summary":"Get an area of interest","tags":["Areas"],"description":"Required API key scope: `areas:read`.","x-auvryn-scope":"areas:read","parameters":[{"name":"organizationId","in":"path","required":true,"schema":{"type":"string"}},{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"aoiId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","pattern":"^aoi_[0-9a-z]{26}$"},"projectId":{"type":"string","pattern":"^prj_[0-9a-z]{26}$"},"name":{"type":"string"},"description":{"type":["string","null"]},"geometry":{"type":"object","properties":{"type":{"type":"string","const":"MultiPolygon"},"coordinates":{"minItems":1,"type":"array","items":{"minItems":1,"type":"array","items":{"minItems":4,"type":"array","items":{"type":"array","prefixItems":[{"type":"number","minimum":-180,"maximum":180},{"type":"number","minimum":-90,"maximum":90}],"items":false,"minItems":2,"maxItems":2}}}}},"required":["type","coordinates"],"additionalProperties":false},"areaSquareMeters":{"type":"number","exclusiveMinimum":0},"bbox":{"type":"object","properties":{"west":{"type":"number","minimum":-180,"maximum":180},"south":{"type":"number","minimum":-90,"maximum":90},"east":{"type":"number","minimum":-180,"maximum":180},"north":{"type":"number","minimum":-90,"maximum":90}},"required":["west","south","east","north"],"additionalProperties":false},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["id","projectId","name","description","geometry","areaSquareMeters","bbox","createdAt","updatedAt"],"additionalProperties":false}}}},"400":{"description":"The request is invalid (`VALIDATION_FAILED`, `BAD_REQUEST`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing, invalid, expired or revoked credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Not allowed: the API key lacks the scope (`INSUFFICIENT_SCOPE`), the role of the member does not allow it (`INSUFFICIENT_ROLE`), or the workspace lacks a capability (`ENTITLEMENT_REQUIRED`, `ENTITLEMENT_EXPIRED`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found, or not accessible to the caller (indistinguishable).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited (`RATE_LIMITED`); retry after `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"5XX":{"description":"Unexpected or unavailable (`INTERNAL_ERROR`, `*_UNAVAILABLE`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"patch":{"operationId":"updateAreaOfInterest","summary":"Rename an area or replace its description or geometry","tags":["Areas"],"description":"Required API key scope: `areas:write`.","x-auvryn-scope":"areas:write","parameters":[{"name":"organizationId","in":"path","required":true,"schema":{"type":"string"}},{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"aoiId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","maxLength":200},"description":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}]},"geometry":{}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","pattern":"^aoi_[0-9a-z]{26}$"},"projectId":{"type":"string","pattern":"^prj_[0-9a-z]{26}$"},"name":{"type":"string"},"description":{"type":["string","null"]},"geometry":{"type":"object","properties":{"type":{"type":"string","const":"MultiPolygon"},"coordinates":{"minItems":1,"type":"array","items":{"minItems":1,"type":"array","items":{"minItems":4,"type":"array","items":{"type":"array","prefixItems":[{"type":"number","minimum":-180,"maximum":180},{"type":"number","minimum":-90,"maximum":90}],"items":false,"minItems":2,"maxItems":2}}}}},"required":["type","coordinates"],"additionalProperties":false},"areaSquareMeters":{"type":"number","exclusiveMinimum":0},"bbox":{"type":"object","properties":{"west":{"type":"number","minimum":-180,"maximum":180},"south":{"type":"number","minimum":-90,"maximum":90},"east":{"type":"number","minimum":-180,"maximum":180},"north":{"type":"number","minimum":-90,"maximum":90}},"required":["west","south","east","north"],"additionalProperties":false},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["id","projectId","name","description","geometry","areaSquareMeters","bbox","createdAt","updatedAt"],"additionalProperties":false}}}},"400":{"description":"The request is invalid (`VALIDATION_FAILED`, `BAD_REQUEST`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing, invalid, expired or revoked credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Not allowed: the API key lacks the scope (`INSUFFICIENT_SCOPE`), the role of the member does not allow it (`INSUFFICIENT_ROLE`), or the workspace lacks a capability (`ENTITLEMENT_REQUIRED`, `ENTITLEMENT_EXPIRED`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found, or not accessible to the caller (indistinguishable).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflicts with the current state (e.g. `MODEL_ARTIFACT_NOT_UPLOADED`, `EXECUTION_JOB_NOT_CANCELLABLE`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Well-formed but rejected content (e.g. `MODEL_ARTIFACT_VERIFICATION_FAILED`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited (`RATE_LIMITED`); retry after `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"5XX":{"description":"Unexpected or unavailable (`INTERNAL_ERROR`, `*_UNAVAILABLE`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/organizations/{organizationId}/projects/{projectId}/cost-estimates":{"get":{"operationId":"listCostEstimates","summary":"List the cost estimates of a project","tags":["Cost estimates"],"description":"Required API key scope: `estimates:read`.","x-auvryn-scope":"estimates:read","x-auvryn-paginated":true,"parameters":[{"name":"organizationId","in":"path","required":true,"schema":{"type":"string"}},{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"default":100,"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[A-Za-z0-9_-]+$"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"costEstimates":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^est_[0-9a-z]{26}$"},"projectId":{"type":"string","pattern":"^prj_[0-9a-z]{26}$"},"modelId":{"type":"string","pattern":"^mdl_[0-9a-z]{26}$"},"modelVersionId":{"type":"string","pattern":"^mdlver_[0-9a-z]{26}$"},"areaOfInterestId":{"anyOf":[{"type":"string","pattern":"^aoi_[0-9a-z]{26}$"},{"type":"null"}]},"providerId":{"type":"string","minLength":2,"maxLength":40,"pattern":"^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"},"providerAdapterVersion":{"type":"string","minLength":1,"maxLength":64},"providerApiVersion":{"anyOf":[{"type":"string","minLength":1,"maxLength":64},{"type":"null"}]},"pricingVersion":{"anyOf":[{"type":"string","minLength":1,"maxLength":64},{"type":"null"}]},"currency":{"type":"string","pattern":"^[A-Z]{3}$"},"amountMinor":{"type":"string"},"breakdown":{"type":"object","properties":{"version":{"type":"number","const":1},"items":{"minItems":1,"maxItems":32,"type":"array","items":{"type":"object","properties":{"code":{"type":"string","pattern":"^[A-Z][A-Z0-9_]{1,63}$"},"label":{"type":"string","minLength":1,"maxLength":100},"amountMinor":{"type":"string"}},"required":["code","label","amountMinor"],"additionalProperties":false}}},"required":["version","items"],"additionalProperties":false},"assumptions":{"type":"object","properties":{"version":{"type":"number","const":1},"inputKind":{"type":"string","enum":["generated"]},"modelFormat":{"type":"string","enum":["onnx"]},"artifactSizeBytes":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"areaSquareMeters":{"anyOf":[{"type":"number","exclusiveMinimum":0},{"type":"null"}]}},"required":["version","inputKind","modelFormat","artifactSizeBytes","areaSquareMeters"],"additionalProperties":false},"area":{"anyOf":[{"type":"object","properties":{"areaSquareMeters":{"type":"number","exclusiveMinimum":0},"bbox":{"type":"object","properties":{"west":{"type":"number","minimum":-180,"maximum":180},"south":{"type":"number","minimum":-90,"maximum":90},"east":{"type":"number","minimum":-180,"maximum":180},"north":{"type":"number","minimum":-90,"maximum":90}},"required":["west","south","east","north"],"additionalProperties":false}},"required":["areaSquareMeters","bbox"],"additionalProperties":false},{"type":"null"}]},"expiresAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["id","projectId","modelId","modelVersionId","areaOfInterestId","providerId","providerAdapterVersion","providerApiVersion","pricingVersion","currency","amountMinor","breakdown","assumptions","area","expiresAt","createdAt"],"additionalProperties":false}},"nextCursor":{"anyOf":[{"type":"string","minLength":1,"maxLength":200,"pattern":"^[A-Za-z0-9_-]+$"},{"type":"null"}]}},"required":["costEstimates","nextCursor"],"additionalProperties":false}}}},"400":{"description":"The request is invalid (`VALIDATION_FAILED`, `BAD_REQUEST`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing, invalid, expired or revoked credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Not allowed: the API key lacks the scope (`INSUFFICIENT_SCOPE`), the role of the member does not allow it (`INSUFFICIENT_ROLE`), or the workspace lacks a capability (`ENTITLEMENT_REQUIRED`, `ENTITLEMENT_EXPIRED`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found, or not accessible to the caller (indistinguishable).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited (`RATE_LIMITED`); retry after `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"5XX":{"description":"Unexpected or unavailable (`INTERNAL_ERROR`, `*_UNAVAILABLE`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"post":{"operationId":"createCostEstimate","summary":"Ask a provider to quote a workload (the provider sets the price)","tags":["Cost estimates"],"description":"Required API key scope: `estimates:write`.","x-auvryn-scope":"estimates:write","x-auvryn-idempotent-operation":"cost-estimates.create","parameters":[{"name":"organizationId","in":"path","required":true,"schema":{"type":"string"}},{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"Makes retries safe: the same key and request return the same response for 24 hours.","schema":{"type":"string","pattern":"^[!-~]{1,255}$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"modelVersionId":{"type":"string","maxLength":100},"areaOfInterestId":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}]},"providerId":{"type":"string","maxLength":100}},"required":["modelVersionId","providerId"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","pattern":"^est_[0-9a-z]{26}$"},"projectId":{"type":"string","pattern":"^prj_[0-9a-z]{26}$"},"modelId":{"type":"string","pattern":"^mdl_[0-9a-z]{26}$"},"modelVersionId":{"type":"string","pattern":"^mdlver_[0-9a-z]{26}$"},"areaOfInterestId":{"anyOf":[{"type":"string","pattern":"^aoi_[0-9a-z]{26}$"},{"type":"null"}]},"providerId":{"type":"string","minLength":2,"maxLength":40,"pattern":"^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"},"providerAdapterVersion":{"type":"string","minLength":1,"maxLength":64},"providerApiVersion":{"anyOf":[{"type":"string","minLength":1,"maxLength":64},{"type":"null"}]},"pricingVersion":{"anyOf":[{"type":"string","minLength":1,"maxLength":64},{"type":"null"}]},"currency":{"type":"string","pattern":"^[A-Z]{3}$"},"amountMinor":{"type":"string"},"breakdown":{"type":"object","properties":{"version":{"type":"number","const":1},"items":{"minItems":1,"maxItems":32,"type":"array","items":{"type":"object","properties":{"code":{"type":"string","pattern":"^[A-Z][A-Z0-9_]{1,63}$"},"label":{"type":"string","minLength":1,"maxLength":100},"amountMinor":{"type":"string"}},"required":["code","label","amountMinor"],"additionalProperties":false}}},"required":["version","items"],"additionalProperties":false},"assumptions":{"type":"object","properties":{"version":{"type":"number","const":1},"inputKind":{"type":"string","enum":["generated"]},"modelFormat":{"type":"string","enum":["onnx"]},"artifactSizeBytes":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"areaSquareMeters":{"anyOf":[{"type":"number","exclusiveMinimum":0},{"type":"null"}]}},"required":["version","inputKind","modelFormat","artifactSizeBytes","areaSquareMeters"],"additionalProperties":false},"area":{"anyOf":[{"type":"object","properties":{"areaSquareMeters":{"type":"number","exclusiveMinimum":0},"bbox":{"type":"object","properties":{"west":{"type":"number","minimum":-180,"maximum":180},"south":{"type":"number","minimum":-90,"maximum":90},"east":{"type":"number","minimum":-180,"maximum":180},"north":{"type":"number","minimum":-90,"maximum":90}},"required":["west","south","east","north"],"additionalProperties":false}},"required":["areaSquareMeters","bbox"],"additionalProperties":false},{"type":"null"}]},"expiresAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["id","projectId","modelId","modelVersionId","areaOfInterestId","providerId","providerAdapterVersion","providerApiVersion","pricingVersion","currency","amountMinor","breakdown","assumptions","area","expiresAt","createdAt"],"additionalProperties":false}}}},"400":{"description":"The request is invalid (`VALIDATION_FAILED`, `BAD_REQUEST`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing, invalid, expired or revoked credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Not allowed: the API key lacks the scope (`INSUFFICIENT_SCOPE`), the role of the member does not allow it (`INSUFFICIENT_ROLE`), or the workspace lacks a capability (`ENTITLEMENT_REQUIRED`, `ENTITLEMENT_EXPIRED`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found, or not accessible to the caller (indistinguishable).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflicts with the current state (e.g. `MODEL_SLUG_CONFLICT`, `MODEL_NOT_VALIDATED`), a workspace limit reached (`WORKSPACE_LIMIT_REACHED`, `CONCURRENT_RUN_LIMIT_REACHED`, `SAMPLE_RUN_LIMIT_REACHED`), or `Idempotency-Key` reused with another request (`IDEMPOTENCY_CONFLICT`) or still in progress (`IDEMPOTENCY_IN_PROGRESS`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Well-formed but rejected content (e.g. `MODEL_ARTIFACT_VERIFICATION_FAILED`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited (`RATE_LIMITED`); retry after `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"5XX":{"description":"Unexpected or unavailable (`INTERNAL_ERROR`, `*_UNAVAILABLE`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/organizations/{organizationId}/projects/{projectId}/cost-estimates/{estimateId}":{"get":{"operationId":"getCostEstimate","summary":"Get a cost estimate","tags":["Cost estimates"],"description":"Required API key scope: `estimates:read`.","x-auvryn-scope":"estimates:read","parameters":[{"name":"organizationId","in":"path","required":true,"schema":{"type":"string"}},{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"estimateId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","pattern":"^est_[0-9a-z]{26}$"},"projectId":{"type":"string","pattern":"^prj_[0-9a-z]{26}$"},"modelId":{"type":"string","pattern":"^mdl_[0-9a-z]{26}$"},"modelVersionId":{"type":"string","pattern":"^mdlver_[0-9a-z]{26}$"},"areaOfInterestId":{"anyOf":[{"type":"string","pattern":"^aoi_[0-9a-z]{26}$"},{"type":"null"}]},"providerId":{"type":"string","minLength":2,"maxLength":40,"pattern":"^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"},"providerAdapterVersion":{"type":"string","minLength":1,"maxLength":64},"providerApiVersion":{"anyOf":[{"type":"string","minLength":1,"maxLength":64},{"type":"null"}]},"pricingVersion":{"anyOf":[{"type":"string","minLength":1,"maxLength":64},{"type":"null"}]},"currency":{"type":"string","pattern":"^[A-Z]{3}$"},"amountMinor":{"type":"string"},"breakdown":{"type":"object","properties":{"version":{"type":"number","const":1},"items":{"minItems":1,"maxItems":32,"type":"array","items":{"type":"object","properties":{"code":{"type":"string","pattern":"^[A-Z][A-Z0-9_]{1,63}$"},"label":{"type":"string","minLength":1,"maxLength":100},"amountMinor":{"type":"string"}},"required":["code","label","amountMinor"],"additionalProperties":false}}},"required":["version","items"],"additionalProperties":false},"assumptions":{"type":"object","properties":{"version":{"type":"number","const":1},"inputKind":{"type":"string","enum":["generated"]},"modelFormat":{"type":"string","enum":["onnx"]},"artifactSizeBytes":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"areaSquareMeters":{"anyOf":[{"type":"number","exclusiveMinimum":0},{"type":"null"}]}},"required":["version","inputKind","modelFormat","artifactSizeBytes","areaSquareMeters"],"additionalProperties":false},"area":{"anyOf":[{"type":"object","properties":{"areaSquareMeters":{"type":"number","exclusiveMinimum":0},"bbox":{"type":"object","properties":{"west":{"type":"number","minimum":-180,"maximum":180},"south":{"type":"number","minimum":-90,"maximum":90},"east":{"type":"number","minimum":-180,"maximum":180},"north":{"type":"number","minimum":-90,"maximum":90}},"required":["west","south","east","north"],"additionalProperties":false}},"required":["areaSquareMeters","bbox"],"additionalProperties":false},{"type":"null"}]},"expiresAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["id","projectId","modelId","modelVersionId","areaOfInterestId","providerId","providerAdapterVersion","providerApiVersion","pricingVersion","currency","amountMinor","breakdown","assumptions","area","expiresAt","createdAt"],"additionalProperties":false}}}},"400":{"description":"The request is invalid (`VALIDATION_FAILED`, `BAD_REQUEST`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing, invalid, expired or revoked credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Not allowed: the API key lacks the scope (`INSUFFICIENT_SCOPE`), the role of the member does not allow it (`INSUFFICIENT_ROLE`), or the workspace lacks a capability (`ENTITLEMENT_REQUIRED`, `ENTITLEMENT_EXPIRED`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found, or not accessible to the caller (indistinguishable).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited (`RATE_LIMITED`); retry after `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"5XX":{"description":"Unexpected or unavailable (`INTERNAL_ERROR`, `*_UNAVAILABLE`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/organizations/{organizationId}/projects/{projectId}/execution-jobs":{"get":{"operationId":"listExecutionJobs","summary":"List the executions of a project","tags":["Executions"],"description":"Required API key scope: `executions:read`.","x-auvryn-scope":"executions:read","x-auvryn-paginated":true,"parameters":[{"name":"organizationId","in":"path","required":true,"schema":{"type":"string"}},{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"default":100,"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[A-Za-z0-9_-]+$"}},{"name":"status","in":"query","required":false,"schema":{"type":"string","maxLength":200}},{"name":"providerId","in":"query","required":false,"schema":{"type":"string","minLength":2,"maxLength":40,"pattern":"^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"}},{"name":"modelVersionId","in":"query","required":false,"schema":{"type":"string","maxLength":100}},{"name":"createdAfter","in":"query","required":false,"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},{"name":"createdBefore","in":"query","required":false,"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"executionJobs":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^job_[0-9a-z]{26}$"},"projectId":{"type":"string","pattern":"^prj_[0-9a-z]{26}$"},"modelId":{"type":"string","pattern":"^mdl_[0-9a-z]{26}$"},"modelVersionId":{"type":"string","pattern":"^mdlver_[0-9a-z]{26}$"},"areaOfInterestId":{"anyOf":[{"type":"string","pattern":"^aoi_[0-9a-z]{26}$"},{"type":"null"}]},"costEstimateId":{"anyOf":[{"type":"string","pattern":"^est_[0-9a-z]{26}$"},{"type":"null"}]},"providerId":{"type":"string","minLength":2,"maxLength":40,"pattern":"^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"},"status":{"type":"string","enum":["created","validating","ready","estimating","scheduled","running","downlink","processing","completed","failed","cancelled"]},"inputKind":{"type":"string","enum":["generated"]},"workloadKind":{"type":"string","enum":["custom","sample"]},"area":{"anyOf":[{"type":"object","properties":{"areaSquareMeters":{"type":"number","exclusiveMinimum":0},"bbox":{"type":"object","properties":{"west":{"type":"number","minimum":-180,"maximum":180},"south":{"type":"number","minimum":-90,"maximum":90},"east":{"type":"number","minimum":-180,"maximum":180},"north":{"type":"number","minimum":-90,"maximum":90}},"required":["west","south","east","north"],"additionalProperties":false}},"required":["areaSquareMeters","bbox"],"additionalProperties":false},{"type":"null"}]},"providerExternalExecutionId":{"type":["string","null"]},"cancellationRequested":{"type":"boolean"},"failure":{"anyOf":[{"type":"object","properties":{"code":{"type":"string","enum":["PROVIDER_NOT_FOUND","PROVIDER_INCOMPATIBLE","PROVIDER_COMPATIBILITY_UNKNOWN","PROVIDER_SUBMISSION_FAILED","PROVIDER_EXECUTION_FAILED","PROVIDER_EXECUTION_LOST","PROVIDER_UNAVAILABLE","PROVIDER_ERROR","ORCHESTRATION_FAILED","PROVIDER_RESULT_UNAVAILABLE","PROVIDER_RESULT_LOST","PROVIDER_RESULT_INVALID","RESULT_PERSISTENCE_FAILED"]},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"validatedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"submittedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"startedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"completedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"failedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"cancelledAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"telemetry":{"anyOf":[{"type":"object","properties":{"outcome":{"type":"string","enum":["succeeded","failed","cancelled"]},"provenance":{"type":"object","properties":{"provider":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[a-z0-9][a-z0-9._-]*$"},"kind":{"type":"string","enum":["development","sample","external"]},"types":{"minItems":1,"maxItems":6,"type":"array","items":{"type":"string","enum":["compute","storage","connectivity","sensor","power","ground"]}},"adapterVersion":{"type":"string","minLength":1,"maxLength":64},"apiVersion":{"anyOf":[{"type":"string","minLength":1,"maxLength":64},{"type":"null"}]}},"required":["id","kind","types","adapterVersion","apiVersion"],"additionalProperties":false},"executionEnvironment":{"anyOf":[{"type":"string","enum":["orbital","cloud","edge","ground","simulated"]},{"type":"null"}]},"simulated":{"type":"boolean"},"security":{"type":"object","properties":{"value":{"type":"object","propertyNames":{"type":"string","enum":["encryption-at-rest","encryption-in-transit","isolated-runtime","secure-boot","attestation","post-quantum-cryptography"]},"additionalProperties":{"type":"string","enum":["supported","not-supported"]}},"source":{"type":"string","const":"reported_by_provider"}},"required":["value","source"],"additionalProperties":false},"jurisdiction":{"type":"object","properties":{"value":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"country"},"code":{"type":"string","pattern":"^[A-Z]{2}$"}},"required":["kind","code"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"region"},"code":{"type":"string","enum":["EU","EEA"]}},"required":["kind","code"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"provider-defined"},"code":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[a-z0-9][a-z0-9._-]*$"},"name":{"type":"string","minLength":1,"maxLength":100}},"required":["kind","code"],"additionalProperties":false}]},"source":{"type":"string","const":"operator_configured"}},"required":["value","source"],"additionalProperties":false},"dataResidency":{"type":"object","properties":{"value":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"country"},"code":{"type":"string","pattern":"^[A-Z]{2}$"}},"required":["kind","code"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"region"},"code":{"type":"string","enum":["EU","EEA"]}},"required":["kind","code"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"provider-defined"},"code":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[a-z0-9][a-z0-9._-]*$"},"name":{"type":"string","minLength":1,"maxLength":100}},"required":["kind","code"],"additionalProperties":false}]},"source":{"type":"string","const":"operator_configured"}},"required":["value","source"],"additionalProperties":false},"region":{"type":"object","properties":{"value":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[a-z0-9][a-z0-9._-]*$"},"source":{"type":"string","enum":["operator_configured","reported_by_provider"]}},"required":["value","source"],"additionalProperties":false},"hardware":{"type":"object","properties":{"value":{"type":"object","properties":{"architecture":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[a-z0-9][a-z0-9._-]*$"},"accelerator":{"type":"string","minLength":1,"maxLength":100},"model":{"type":"string","minLength":1,"maxLength":100}},"additionalProperties":false},"source":{"type":"string","const":"reported_by_provider"}},"required":["value","source"],"additionalProperties":false},"runtime":{"type":"object","properties":{"value":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[a-z0-9][a-z0-9._-]*$"},"version":{"type":"string","minLength":1,"maxLength":64}},"required":["name","version"],"additionalProperties":false},"source":{"type":"string","const":"reported_by_provider"}},"required":["value","source"],"additionalProperties":false},"network":{"type":"object","properties":{"value":{"type":"string","minLength":1,"maxLength":100},"source":{"type":"string","const":"reported_by_provider"}},"required":["value","source"],"additionalProperties":false}},"required":["provider","executionEnvironment","simulated"],"additionalProperties":false},"metrics":{"maxItems":64,"type":"array","items":{"type":"object","properties":{"metric":{"type":"string","enum":["queue_time_ms","execution_time_ms","total_latency_ms","estimated_cost","data_in_bytes","data_out_bytes","quality"]},"label":{"anyOf":[{"type":"string","minLength":1,"maxLength":64},{"type":"null"}]},"value":{"type":"number"},"unit":{"type":"string","minLength":1,"maxLength":32},"source":{"type":"string","enum":["reported_by_provider","measured_by_auvryn","derived"]}},"required":["metric","label","value","unit","source"],"additionalProperties":false}},"recordedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["outcome","provenance","metrics","recordedAt"],"additionalProperties":false},{"type":"null"}]}},"required":["id","projectId","modelId","modelVersionId","areaOfInterestId","costEstimateId","providerId","status","inputKind","workloadKind","area","providerExternalExecutionId","cancellationRequested","failure","createdAt","updatedAt","validatedAt","submittedAt","startedAt","completedAt","failedAt","cancelledAt"],"additionalProperties":false}},"nextCursor":{"anyOf":[{"type":"string","minLength":1,"maxLength":200,"pattern":"^[A-Za-z0-9_-]+$"},{"type":"null"}]}},"required":["executionJobs","nextCursor"],"additionalProperties":false}}}},"400":{"description":"The request is invalid (`VALIDATION_FAILED`, `BAD_REQUEST`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing, invalid, expired or revoked credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Not allowed: the API key lacks the scope (`INSUFFICIENT_SCOPE`), the role of the member does not allow it (`INSUFFICIENT_ROLE`), or the workspace lacks a capability (`ENTITLEMENT_REQUIRED`, `ENTITLEMENT_EXPIRED`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found, or not accessible to the caller (indistinguishable).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited (`RATE_LIMITED`); retry after `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"5XX":{"description":"Unexpected or unavailable (`INTERNAL_ERROR`, `*_UNAVAILABLE`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"post":{"operationId":"createExecutionJob","summary":"Run a workload: from a cost estimate (preferred) or directly (202; poll the job)","tags":["Executions"],"description":"Required API key scope: `executions:write`.","x-auvryn-scope":"executions:write","x-auvryn-idempotent-operation":"execution-jobs.create","parameters":[{"name":"organizationId","in":"path","required":true,"schema":{"type":"string"}},{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"Makes retries safe: the same key and request return the same response for 24 hours.","schema":{"type":"string","pattern":"^[!-~]{1,255}$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"costEstimateId":{"type":"string","maxLength":100}},"required":["costEstimateId"],"additionalProperties":false},{"type":"object","properties":{"modelVersionId":{"type":"string","maxLength":100},"areaOfInterestId":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}]},"providerId":{"type":"string","maxLength":100}},"required":["modelVersionId","providerId"],"additionalProperties":false}]}}}},"responses":{"202":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","pattern":"^job_[0-9a-z]{26}$"},"projectId":{"type":"string","pattern":"^prj_[0-9a-z]{26}$"},"modelId":{"type":"string","pattern":"^mdl_[0-9a-z]{26}$"},"modelVersionId":{"type":"string","pattern":"^mdlver_[0-9a-z]{26}$"},"areaOfInterestId":{"anyOf":[{"type":"string","pattern":"^aoi_[0-9a-z]{26}$"},{"type":"null"}]},"costEstimateId":{"anyOf":[{"type":"string","pattern":"^est_[0-9a-z]{26}$"},{"type":"null"}]},"providerId":{"type":"string","minLength":2,"maxLength":40,"pattern":"^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"},"status":{"type":"string","enum":["created","validating","ready","estimating","scheduled","running","downlink","processing","completed","failed","cancelled"]},"inputKind":{"type":"string","enum":["generated"]},"workloadKind":{"type":"string","enum":["custom","sample"]},"area":{"anyOf":[{"type":"object","properties":{"areaSquareMeters":{"type":"number","exclusiveMinimum":0},"bbox":{"type":"object","properties":{"west":{"type":"number","minimum":-180,"maximum":180},"south":{"type":"number","minimum":-90,"maximum":90},"east":{"type":"number","minimum":-180,"maximum":180},"north":{"type":"number","minimum":-90,"maximum":90}},"required":["west","south","east","north"],"additionalProperties":false}},"required":["areaSquareMeters","bbox"],"additionalProperties":false},{"type":"null"}]},"providerExternalExecutionId":{"type":["string","null"]},"cancellationRequested":{"type":"boolean"},"failure":{"anyOf":[{"type":"object","properties":{"code":{"type":"string","enum":["PROVIDER_NOT_FOUND","PROVIDER_INCOMPATIBLE","PROVIDER_COMPATIBILITY_UNKNOWN","PROVIDER_SUBMISSION_FAILED","PROVIDER_EXECUTION_FAILED","PROVIDER_EXECUTION_LOST","PROVIDER_UNAVAILABLE","PROVIDER_ERROR","ORCHESTRATION_FAILED","PROVIDER_RESULT_UNAVAILABLE","PROVIDER_RESULT_LOST","PROVIDER_RESULT_INVALID","RESULT_PERSISTENCE_FAILED"]},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"validatedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"submittedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"startedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"completedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"failedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"cancelledAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"telemetry":{"anyOf":[{"type":"object","properties":{"outcome":{"type":"string","enum":["succeeded","failed","cancelled"]},"provenance":{"type":"object","properties":{"provider":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[a-z0-9][a-z0-9._-]*$"},"kind":{"type":"string","enum":["development","sample","external"]},"types":{"minItems":1,"maxItems":6,"type":"array","items":{"type":"string","enum":["compute","storage","connectivity","sensor","power","ground"]}},"adapterVersion":{"type":"string","minLength":1,"maxLength":64},"apiVersion":{"anyOf":[{"type":"string","minLength":1,"maxLength":64},{"type":"null"}]}},"required":["id","kind","types","adapterVersion","apiVersion"],"additionalProperties":false},"executionEnvironment":{"anyOf":[{"type":"string","enum":["orbital","cloud","edge","ground","simulated"]},{"type":"null"}]},"simulated":{"type":"boolean"},"security":{"type":"object","properties":{"value":{"type":"object","propertyNames":{"type":"string","enum":["encryption-at-rest","encryption-in-transit","isolated-runtime","secure-boot","attestation","post-quantum-cryptography"]},"additionalProperties":{"type":"string","enum":["supported","not-supported"]}},"source":{"type":"string","const":"reported_by_provider"}},"required":["value","source"],"additionalProperties":false},"jurisdiction":{"type":"object","properties":{"value":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"country"},"code":{"type":"string","pattern":"^[A-Z]{2}$"}},"required":["kind","code"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"region"},"code":{"type":"string","enum":["EU","EEA"]}},"required":["kind","code"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"provider-defined"},"code":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[a-z0-9][a-z0-9._-]*$"},"name":{"type":"string","minLength":1,"maxLength":100}},"required":["kind","code"],"additionalProperties":false}]},"source":{"type":"string","const":"operator_configured"}},"required":["value","source"],"additionalProperties":false},"dataResidency":{"type":"object","properties":{"value":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"country"},"code":{"type":"string","pattern":"^[A-Z]{2}$"}},"required":["kind","code"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"region"},"code":{"type":"string","enum":["EU","EEA"]}},"required":["kind","code"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"provider-defined"},"code":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[a-z0-9][a-z0-9._-]*$"},"name":{"type":"string","minLength":1,"maxLength":100}},"required":["kind","code"],"additionalProperties":false}]},"source":{"type":"string","const":"operator_configured"}},"required":["value","source"],"additionalProperties":false},"region":{"type":"object","properties":{"value":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[a-z0-9][a-z0-9._-]*$"},"source":{"type":"string","enum":["operator_configured","reported_by_provider"]}},"required":["value","source"],"additionalProperties":false},"hardware":{"type":"object","properties":{"value":{"type":"object","properties":{"architecture":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[a-z0-9][a-z0-9._-]*$"},"accelerator":{"type":"string","minLength":1,"maxLength":100},"model":{"type":"string","minLength":1,"maxLength":100}},"additionalProperties":false},"source":{"type":"string","const":"reported_by_provider"}},"required":["value","source"],"additionalProperties":false},"runtime":{"type":"object","properties":{"value":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[a-z0-9][a-z0-9._-]*$"},"version":{"type":"string","minLength":1,"maxLength":64}},"required":["name","version"],"additionalProperties":false},"source":{"type":"string","const":"reported_by_provider"}},"required":["value","source"],"additionalProperties":false},"network":{"type":"object","properties":{"value":{"type":"string","minLength":1,"maxLength":100},"source":{"type":"string","const":"reported_by_provider"}},"required":["value","source"],"additionalProperties":false}},"required":["provider","executionEnvironment","simulated"],"additionalProperties":false},"metrics":{"maxItems":64,"type":"array","items":{"type":"object","properties":{"metric":{"type":"string","enum":["queue_time_ms","execution_time_ms","total_latency_ms","estimated_cost","data_in_bytes","data_out_bytes","quality"]},"label":{"anyOf":[{"type":"string","minLength":1,"maxLength":64},{"type":"null"}]},"value":{"type":"number"},"unit":{"type":"string","minLength":1,"maxLength":32},"source":{"type":"string","enum":["reported_by_provider","measured_by_auvryn","derived"]}},"required":["metric","label","value","unit","source"],"additionalProperties":false}},"recordedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["outcome","provenance","metrics","recordedAt"],"additionalProperties":false},{"type":"null"}]},"dispatch":{"type":"string","enum":["queued","deferred"]}},"required":["id","projectId","modelId","modelVersionId","areaOfInterestId","costEstimateId","providerId","status","inputKind","workloadKind","area","providerExternalExecutionId","cancellationRequested","failure","createdAt","updatedAt","validatedAt","submittedAt","startedAt","completedAt","failedAt","cancelledAt","dispatch"],"additionalProperties":false}}}},"400":{"description":"The request is invalid (`VALIDATION_FAILED`, `BAD_REQUEST`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing, invalid, expired or revoked credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Not allowed: the API key lacks the scope (`INSUFFICIENT_SCOPE`), the role of the member does not allow it (`INSUFFICIENT_ROLE`), or the workspace lacks a capability (`ENTITLEMENT_REQUIRED`, `ENTITLEMENT_EXPIRED`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found, or not accessible to the caller (indistinguishable).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflicts with the current state (e.g. `MODEL_SLUG_CONFLICT`, `MODEL_NOT_VALIDATED`), a workspace limit reached (`WORKSPACE_LIMIT_REACHED`, `CONCURRENT_RUN_LIMIT_REACHED`, `SAMPLE_RUN_LIMIT_REACHED`), or `Idempotency-Key` reused with another request (`IDEMPOTENCY_CONFLICT`) or still in progress (`IDEMPOTENCY_IN_PROGRESS`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Well-formed but rejected content (e.g. `MODEL_ARTIFACT_VERIFICATION_FAILED`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited (`RATE_LIMITED`); retry after `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"5XX":{"description":"Unexpected or unavailable (`INTERNAL_ERROR`, `*_UNAVAILABLE`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/organizations/{organizationId}/projects/{projectId}/execution-jobs/{jobId}":{"get":{"operationId":"getExecutionJob","summary":"Get an execution and its state","tags":["Executions"],"description":"Required API key scope: `executions:read`.","x-auvryn-scope":"executions:read","parameters":[{"name":"organizationId","in":"path","required":true,"schema":{"type":"string"}},{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"jobId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","pattern":"^job_[0-9a-z]{26}$"},"projectId":{"type":"string","pattern":"^prj_[0-9a-z]{26}$"},"modelId":{"type":"string","pattern":"^mdl_[0-9a-z]{26}$"},"modelVersionId":{"type":"string","pattern":"^mdlver_[0-9a-z]{26}$"},"areaOfInterestId":{"anyOf":[{"type":"string","pattern":"^aoi_[0-9a-z]{26}$"},{"type":"null"}]},"costEstimateId":{"anyOf":[{"type":"string","pattern":"^est_[0-9a-z]{26}$"},{"type":"null"}]},"providerId":{"type":"string","minLength":2,"maxLength":40,"pattern":"^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"},"status":{"type":"string","enum":["created","validating","ready","estimating","scheduled","running","downlink","processing","completed","failed","cancelled"]},"inputKind":{"type":"string","enum":["generated"]},"workloadKind":{"type":"string","enum":["custom","sample"]},"area":{"anyOf":[{"type":"object","properties":{"areaSquareMeters":{"type":"number","exclusiveMinimum":0},"bbox":{"type":"object","properties":{"west":{"type":"number","minimum":-180,"maximum":180},"south":{"type":"number","minimum":-90,"maximum":90},"east":{"type":"number","minimum":-180,"maximum":180},"north":{"type":"number","minimum":-90,"maximum":90}},"required":["west","south","east","north"],"additionalProperties":false}},"required":["areaSquareMeters","bbox"],"additionalProperties":false},{"type":"null"}]},"providerExternalExecutionId":{"type":["string","null"]},"cancellationRequested":{"type":"boolean"},"failure":{"anyOf":[{"type":"object","properties":{"code":{"type":"string","enum":["PROVIDER_NOT_FOUND","PROVIDER_INCOMPATIBLE","PROVIDER_COMPATIBILITY_UNKNOWN","PROVIDER_SUBMISSION_FAILED","PROVIDER_EXECUTION_FAILED","PROVIDER_EXECUTION_LOST","PROVIDER_UNAVAILABLE","PROVIDER_ERROR","ORCHESTRATION_FAILED","PROVIDER_RESULT_UNAVAILABLE","PROVIDER_RESULT_LOST","PROVIDER_RESULT_INVALID","RESULT_PERSISTENCE_FAILED"]},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"validatedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"submittedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"startedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"completedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"failedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"cancelledAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"telemetry":{"anyOf":[{"type":"object","properties":{"outcome":{"type":"string","enum":["succeeded","failed","cancelled"]},"provenance":{"type":"object","properties":{"provider":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[a-z0-9][a-z0-9._-]*$"},"kind":{"type":"string","enum":["development","sample","external"]},"types":{"minItems":1,"maxItems":6,"type":"array","items":{"type":"string","enum":["compute","storage","connectivity","sensor","power","ground"]}},"adapterVersion":{"type":"string","minLength":1,"maxLength":64},"apiVersion":{"anyOf":[{"type":"string","minLength":1,"maxLength":64},{"type":"null"}]}},"required":["id","kind","types","adapterVersion","apiVersion"],"additionalProperties":false},"executionEnvironment":{"anyOf":[{"type":"string","enum":["orbital","cloud","edge","ground","simulated"]},{"type":"null"}]},"simulated":{"type":"boolean"},"security":{"type":"object","properties":{"value":{"type":"object","propertyNames":{"type":"string","enum":["encryption-at-rest","encryption-in-transit","isolated-runtime","secure-boot","attestation","post-quantum-cryptography"]},"additionalProperties":{"type":"string","enum":["supported","not-supported"]}},"source":{"type":"string","const":"reported_by_provider"}},"required":["value","source"],"additionalProperties":false},"jurisdiction":{"type":"object","properties":{"value":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"country"},"code":{"type":"string","pattern":"^[A-Z]{2}$"}},"required":["kind","code"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"region"},"code":{"type":"string","enum":["EU","EEA"]}},"required":["kind","code"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"provider-defined"},"code":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[a-z0-9][a-z0-9._-]*$"},"name":{"type":"string","minLength":1,"maxLength":100}},"required":["kind","code"],"additionalProperties":false}]},"source":{"type":"string","const":"operator_configured"}},"required":["value","source"],"additionalProperties":false},"dataResidency":{"type":"object","properties":{"value":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"country"},"code":{"type":"string","pattern":"^[A-Z]{2}$"}},"required":["kind","code"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"region"},"code":{"type":"string","enum":["EU","EEA"]}},"required":["kind","code"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"provider-defined"},"code":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[a-z0-9][a-z0-9._-]*$"},"name":{"type":"string","minLength":1,"maxLength":100}},"required":["kind","code"],"additionalProperties":false}]},"source":{"type":"string","const":"operator_configured"}},"required":["value","source"],"additionalProperties":false},"region":{"type":"object","properties":{"value":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[a-z0-9][a-z0-9._-]*$"},"source":{"type":"string","enum":["operator_configured","reported_by_provider"]}},"required":["value","source"],"additionalProperties":false},"hardware":{"type":"object","properties":{"value":{"type":"object","properties":{"architecture":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[a-z0-9][a-z0-9._-]*$"},"accelerator":{"type":"string","minLength":1,"maxLength":100},"model":{"type":"string","minLength":1,"maxLength":100}},"additionalProperties":false},"source":{"type":"string","const":"reported_by_provider"}},"required":["value","source"],"additionalProperties":false},"runtime":{"type":"object","properties":{"value":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[a-z0-9][a-z0-9._-]*$"},"version":{"type":"string","minLength":1,"maxLength":64}},"required":["name","version"],"additionalProperties":false},"source":{"type":"string","const":"reported_by_provider"}},"required":["value","source"],"additionalProperties":false},"network":{"type":"object","properties":{"value":{"type":"string","minLength":1,"maxLength":100},"source":{"type":"string","const":"reported_by_provider"}},"required":["value","source"],"additionalProperties":false}},"required":["provider","executionEnvironment","simulated"],"additionalProperties":false},"metrics":{"maxItems":64,"type":"array","items":{"type":"object","properties":{"metric":{"type":"string","enum":["queue_time_ms","execution_time_ms","total_latency_ms","estimated_cost","data_in_bytes","data_out_bytes","quality"]},"label":{"anyOf":[{"type":"string","minLength":1,"maxLength":64},{"type":"null"}]},"value":{"type":"number"},"unit":{"type":"string","minLength":1,"maxLength":32},"source":{"type":"string","enum":["reported_by_provider","measured_by_auvryn","derived"]}},"required":["metric","label","value","unit","source"],"additionalProperties":false}},"recordedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["outcome","provenance","metrics","recordedAt"],"additionalProperties":false},{"type":"null"}]}},"required":["id","projectId","modelId","modelVersionId","areaOfInterestId","costEstimateId","providerId","status","inputKind","workloadKind","area","providerExternalExecutionId","cancellationRequested","failure","createdAt","updatedAt","validatedAt","submittedAt","startedAt","completedAt","failedAt","cancelledAt"],"additionalProperties":false}}}},"400":{"description":"The request is invalid (`VALIDATION_FAILED`, `BAD_REQUEST`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing, invalid, expired or revoked credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Not allowed: the API key lacks the scope (`INSUFFICIENT_SCOPE`), the role of the member does not allow it (`INSUFFICIENT_ROLE`), or the workspace lacks a capability (`ENTITLEMENT_REQUIRED`, `ENTITLEMENT_EXPIRED`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found, or not accessible to the caller (indistinguishable).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited (`RATE_LIMITED`); retry after `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"5XX":{"description":"Unexpected or unavailable (`INTERNAL_ERROR`, `*_UNAVAILABLE`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/organizations/{organizationId}/projects/{projectId}/execution-jobs/{jobId}/cancel":{"post":{"operationId":"cancelExecutionJob","summary":"Request cancellation of an active execution","tags":["Executions"],"description":"Required API key scope: `executions:write`.","x-auvryn-scope":"executions:write","parameters":[{"name":"organizationId","in":"path","required":true,"schema":{"type":"string"}},{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"jobId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","pattern":"^job_[0-9a-z]{26}$"},"projectId":{"type":"string","pattern":"^prj_[0-9a-z]{26}$"},"modelId":{"type":"string","pattern":"^mdl_[0-9a-z]{26}$"},"modelVersionId":{"type":"string","pattern":"^mdlver_[0-9a-z]{26}$"},"areaOfInterestId":{"anyOf":[{"type":"string","pattern":"^aoi_[0-9a-z]{26}$"},{"type":"null"}]},"costEstimateId":{"anyOf":[{"type":"string","pattern":"^est_[0-9a-z]{26}$"},{"type":"null"}]},"providerId":{"type":"string","minLength":2,"maxLength":40,"pattern":"^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"},"status":{"type":"string","enum":["created","validating","ready","estimating","scheduled","running","downlink","processing","completed","failed","cancelled"]},"inputKind":{"type":"string","enum":["generated"]},"workloadKind":{"type":"string","enum":["custom","sample"]},"area":{"anyOf":[{"type":"object","properties":{"areaSquareMeters":{"type":"number","exclusiveMinimum":0},"bbox":{"type":"object","properties":{"west":{"type":"number","minimum":-180,"maximum":180},"south":{"type":"number","minimum":-90,"maximum":90},"east":{"type":"number","minimum":-180,"maximum":180},"north":{"type":"number","minimum":-90,"maximum":90}},"required":["west","south","east","north"],"additionalProperties":false}},"required":["areaSquareMeters","bbox"],"additionalProperties":false},{"type":"null"}]},"providerExternalExecutionId":{"type":["string","null"]},"cancellationRequested":{"type":"boolean"},"failure":{"anyOf":[{"type":"object","properties":{"code":{"type":"string","enum":["PROVIDER_NOT_FOUND","PROVIDER_INCOMPATIBLE","PROVIDER_COMPATIBILITY_UNKNOWN","PROVIDER_SUBMISSION_FAILED","PROVIDER_EXECUTION_FAILED","PROVIDER_EXECUTION_LOST","PROVIDER_UNAVAILABLE","PROVIDER_ERROR","ORCHESTRATION_FAILED","PROVIDER_RESULT_UNAVAILABLE","PROVIDER_RESULT_LOST","PROVIDER_RESULT_INVALID","RESULT_PERSISTENCE_FAILED"]},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"validatedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"submittedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"startedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"completedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"failedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"cancelledAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"telemetry":{"anyOf":[{"type":"object","properties":{"outcome":{"type":"string","enum":["succeeded","failed","cancelled"]},"provenance":{"type":"object","properties":{"provider":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[a-z0-9][a-z0-9._-]*$"},"kind":{"type":"string","enum":["development","sample","external"]},"types":{"minItems":1,"maxItems":6,"type":"array","items":{"type":"string","enum":["compute","storage","connectivity","sensor","power","ground"]}},"adapterVersion":{"type":"string","minLength":1,"maxLength":64},"apiVersion":{"anyOf":[{"type":"string","minLength":1,"maxLength":64},{"type":"null"}]}},"required":["id","kind","types","adapterVersion","apiVersion"],"additionalProperties":false},"executionEnvironment":{"anyOf":[{"type":"string","enum":["orbital","cloud","edge","ground","simulated"]},{"type":"null"}]},"simulated":{"type":"boolean"},"security":{"type":"object","properties":{"value":{"type":"object","propertyNames":{"type":"string","enum":["encryption-at-rest","encryption-in-transit","isolated-runtime","secure-boot","attestation","post-quantum-cryptography"]},"additionalProperties":{"type":"string","enum":["supported","not-supported"]}},"source":{"type":"string","const":"reported_by_provider"}},"required":["value","source"],"additionalProperties":false},"jurisdiction":{"type":"object","properties":{"value":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"country"},"code":{"type":"string","pattern":"^[A-Z]{2}$"}},"required":["kind","code"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"region"},"code":{"type":"string","enum":["EU","EEA"]}},"required":["kind","code"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"provider-defined"},"code":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[a-z0-9][a-z0-9._-]*$"},"name":{"type":"string","minLength":1,"maxLength":100}},"required":["kind","code"],"additionalProperties":false}]},"source":{"type":"string","const":"operator_configured"}},"required":["value","source"],"additionalProperties":false},"dataResidency":{"type":"object","properties":{"value":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"country"},"code":{"type":"string","pattern":"^[A-Z]{2}$"}},"required":["kind","code"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"region"},"code":{"type":"string","enum":["EU","EEA"]}},"required":["kind","code"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"provider-defined"},"code":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[a-z0-9][a-z0-9._-]*$"},"name":{"type":"string","minLength":1,"maxLength":100}},"required":["kind","code"],"additionalProperties":false}]},"source":{"type":"string","const":"operator_configured"}},"required":["value","source"],"additionalProperties":false},"region":{"type":"object","properties":{"value":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[a-z0-9][a-z0-9._-]*$"},"source":{"type":"string","enum":["operator_configured","reported_by_provider"]}},"required":["value","source"],"additionalProperties":false},"hardware":{"type":"object","properties":{"value":{"type":"object","properties":{"architecture":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[a-z0-9][a-z0-9._-]*$"},"accelerator":{"type":"string","minLength":1,"maxLength":100},"model":{"type":"string","minLength":1,"maxLength":100}},"additionalProperties":false},"source":{"type":"string","const":"reported_by_provider"}},"required":["value","source"],"additionalProperties":false},"runtime":{"type":"object","properties":{"value":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[a-z0-9][a-z0-9._-]*$"},"version":{"type":"string","minLength":1,"maxLength":64}},"required":["name","version"],"additionalProperties":false},"source":{"type":"string","const":"reported_by_provider"}},"required":["value","source"],"additionalProperties":false},"network":{"type":"object","properties":{"value":{"type":"string","minLength":1,"maxLength":100},"source":{"type":"string","const":"reported_by_provider"}},"required":["value","source"],"additionalProperties":false}},"required":["provider","executionEnvironment","simulated"],"additionalProperties":false},"metrics":{"maxItems":64,"type":"array","items":{"type":"object","properties":{"metric":{"type":"string","enum":["queue_time_ms","execution_time_ms","total_latency_ms","estimated_cost","data_in_bytes","data_out_bytes","quality"]},"label":{"anyOf":[{"type":"string","minLength":1,"maxLength":64},{"type":"null"}]},"value":{"type":"number"},"unit":{"type":"string","minLength":1,"maxLength":32},"source":{"type":"string","enum":["reported_by_provider","measured_by_auvryn","derived"]}},"required":["metric","label","value","unit","source"],"additionalProperties":false}},"recordedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["outcome","provenance","metrics","recordedAt"],"additionalProperties":false},{"type":"null"}]}},"required":["id","projectId","modelId","modelVersionId","areaOfInterestId","costEstimateId","providerId","status","inputKind","workloadKind","area","providerExternalExecutionId","cancellationRequested","failure","createdAt","updatedAt","validatedAt","submittedAt","startedAt","completedAt","failedAt","cancelledAt"],"additionalProperties":false}}}},"400":{"description":"The request is invalid (`VALIDATION_FAILED`, `BAD_REQUEST`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing, invalid, expired or revoked credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Not allowed: the API key lacks the scope (`INSUFFICIENT_SCOPE`), the role of the member does not allow it (`INSUFFICIENT_ROLE`), or the workspace lacks a capability (`ENTITLEMENT_REQUIRED`, `ENTITLEMENT_EXPIRED`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found, or not accessible to the caller (indistinguishable).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflicts with the current state (e.g. `MODEL_ARTIFACT_NOT_UPLOADED`, `EXECUTION_JOB_NOT_CANCELLABLE`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Well-formed but rejected content (e.g. `MODEL_ARTIFACT_VERIFICATION_FAILED`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited (`RATE_LIMITED`); retry after `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"5XX":{"description":"Unexpected or unavailable (`INTERNAL_ERROR`, `*_UNAVAILABLE`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/organizations/{organizationId}/projects/{projectId}/execution-jobs/{jobId}/result":{"get":{"operationId":"getExecutionJobResult","summary":"Get the result of a completed execution and its artifacts","tags":["Results"],"description":"Required API key scope: `results:read`.","x-auvryn-scope":"results:read","parameters":[{"name":"organizationId","in":"path","required":true,"schema":{"type":"string"}},{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"jobId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","pattern":"^res_[0-9a-z]{26}$"},"executionJobId":{"type":"string","pattern":"^job_[0-9a-z]{26}$"},"projectId":{"type":"string","pattern":"^prj_[0-9a-z]{26}$"},"providerId":{"type":"string","minLength":2,"maxLength":40,"pattern":"^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"},"providerExternalExecutionId":{"type":"string"},"providerAdapterVersion":{"type":"string","minLength":1,"maxLength":64},"providerApiVersion":{"anyOf":[{"type":"string","minLength":1,"maxLength":64},{"type":"null"}]},"providerCompletedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"summary":{"type":"object","properties":{"artifactCount":{"type":"integer","minimum":0,"maximum":100},"totalSizeBytes":{"type":"integer","minimum":0,"maximum":9007199254740991},"kinds":{"type":"object","propertyNames":{"type":"string","enum":["json","geojson","image","tensor","csv","text","binary"]},"additionalProperties":{"type":"integer","minimum":1,"maximum":9007199254740991}}},"required":["artifactCount","totalSizeBytes","kinds"],"additionalProperties":false},"artifacts":{"maxItems":100,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^rart_[0-9a-z]{26}$"},"kind":{"type":"string","enum":["json","geojson","image","tensor","csv","text","binary"]},"name":{"type":"string","minLength":1,"maxLength":128},"mediaType":{"type":"string","maxLength":127},"sizeBytes":{"type":"integer","minimum":0,"maximum":9007199254740991},"sha256":{"type":"string","pattern":"^[0-9a-f]{64}$"},"contentAvailable":{"type":"boolean"}},"required":["id","kind","name","mediaType","sizeBytes","sha256","contentAvailable"],"additionalProperties":false}},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["id","executionJobId","projectId","providerId","providerExternalExecutionId","providerAdapterVersion","providerApiVersion","providerCompletedAt","summary","artifacts","createdAt"],"additionalProperties":false}}}},"400":{"description":"The request is invalid (`VALIDATION_FAILED`, `BAD_REQUEST`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing, invalid, expired or revoked credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Not allowed: the API key lacks the scope (`INSUFFICIENT_SCOPE`), the role of the member does not allow it (`INSUFFICIENT_ROLE`), or the workspace lacks a capability (`ENTITLEMENT_REQUIRED`, `ENTITLEMENT_EXPIRED`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found, or not accessible to the caller (indistinguishable).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited (`RATE_LIMITED`); retry after `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"5XX":{"description":"Unexpected or unavailable (`INTERNAL_ERROR`, `*_UNAVAILABLE`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/organizations/{organizationId}/projects/{projectId}/execution-jobs/{jobId}/result/artifacts/{artifactId}":{"get":{"operationId":"getResultArtifact","summary":"Get the metadata of a result artifact","tags":["Results"],"description":"Required API key scope: `results:read`.","x-auvryn-scope":"results:read","parameters":[{"name":"organizationId","in":"path","required":true,"schema":{"type":"string"}},{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"jobId","in":"path","required":true,"schema":{"type":"string"}},{"name":"artifactId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","pattern":"^rart_[0-9a-z]{26}$"},"kind":{"type":"string","enum":["json","geojson","image","tensor","csv","text","binary"]},"name":{"type":"string","minLength":1,"maxLength":128},"mediaType":{"type":"string","maxLength":127},"sizeBytes":{"type":"integer","minimum":0,"maximum":9007199254740991},"sha256":{"type":"string","pattern":"^[0-9a-f]{64}$"},"contentAvailable":{"type":"boolean"}},"required":["id","kind","name","mediaType","sizeBytes","sha256","contentAvailable"],"additionalProperties":false}}}},"400":{"description":"The request is invalid (`VALIDATION_FAILED`, `BAD_REQUEST`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing, invalid, expired or revoked credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Not allowed: the API key lacks the scope (`INSUFFICIENT_SCOPE`), the role of the member does not allow it (`INSUFFICIENT_ROLE`), or the workspace lacks a capability (`ENTITLEMENT_REQUIRED`, `ENTITLEMENT_EXPIRED`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found, or not accessible to the caller (indistinguishable).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited (`RATE_LIMITED`); retry after `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"5XX":{"description":"Unexpected or unavailable (`INTERNAL_ERROR`, `*_UNAVAILABLE`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/organizations/{organizationId}/projects/{projectId}/execution-jobs/{jobId}/result/artifacts/{artifactId}/content":{"get":{"operationId":"downloadResultArtifact","summary":"Download the content of a result artifact (streamed from Auvryn storage)","tags":["Results"],"description":"Required API key scope: `results:read`.","x-auvryn-scope":"results:read","parameters":[{"name":"organizationId","in":"path","required":true,"schema":{"type":"string"}},{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"jobId","in":"path","required":true,"schema":{"type":"string"}},{"name":"artifactId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The artifact content (its media type, `Content-Disposition: attachment`).","content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"The request is invalid (`VALIDATION_FAILED`, `BAD_REQUEST`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing, invalid, expired or revoked credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Not allowed: the API key lacks the scope (`INSUFFICIENT_SCOPE`), the role of the member does not allow it (`INSUFFICIENT_ROLE`), or the workspace lacks a capability (`ENTITLEMENT_REQUIRED`, `ENTITLEMENT_EXPIRED`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found, or not accessible to the caller (indistinguishable).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited (`RATE_LIMITED`); retry after `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"5XX":{"description":"Unexpected or unavailable (`INTERNAL_ERROR`, `*_UNAVAILABLE`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/organizations/{organizationId}/projects/{projectId}/ledger-entries":{"get":{"operationId":"listLedgerEntries","summary":"List ledger entries (estimated provider cost), with totals per currency","tags":["Usage"],"description":"Required API key scope: `usage:read`.","x-auvryn-scope":"usage:read","x-auvryn-paginated":true,"parameters":[{"name":"organizationId","in":"path","required":true,"schema":{"type":"string"}},{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"default":100,"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[A-Za-z0-9_-]+$"}},{"name":"executionJobId","in":"query","required":false,"schema":{"type":"string","maxLength":100}},{"name":"entryType","in":"query","required":false,"schema":{"type":"string","enum":["PROVIDER_COST_ESTIMATE"]}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"ledgerEntries":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^led_[0-9a-z]{26}$"},"organizationId":{"type":"string","pattern":"^org_[0-9a-z]{26}$"},"projectId":{"type":"string","pattern":"^prj_[0-9a-z]{26}$"},"executionJobId":{"anyOf":[{"type":"string","pattern":"^job_[0-9a-z]{26}$"},{"type":"null"}]},"costEstimateId":{"anyOf":[{"type":"string","pattern":"^est_[0-9a-z]{26}$"},{"type":"null"}]},"entryType":{"type":"string","enum":["PROVIDER_COST_ESTIMATE"]},"costBasis":{"type":"string","enum":["estimate","actual","adjustment"]},"providerId":{"type":"string","minLength":2,"maxLength":40,"pattern":"^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"},"pricingVersion":{"anyOf":[{"type":"string","minLength":1,"maxLength":64},{"type":"null"}]},"currency":{"type":"string","pattern":"^[A-Z]{3}$"},"amountMinor":{"type":"string","pattern":"^-?(0|[1-9][0-9]{0,18})$"},"occurredAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["id","organizationId","projectId","executionJobId","costEstimateId","entryType","costBasis","providerId","pricingVersion","currency","amountMinor","occurredAt","createdAt"],"additionalProperties":false}},"totals":{"type":"array","items":{"type":"object","properties":{"entryType":{"type":"string","enum":["PROVIDER_COST_ESTIMATE"]},"costBasis":{"type":"string","enum":["estimate","actual","adjustment"]},"currency":{"type":"string","pattern":"^[A-Z]{3}$"},"amountMinor":{"type":"string","pattern":"^-?[0-9]+$"},"entryCount":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["entryType","costBasis","currency","amountMinor","entryCount"],"additionalProperties":false}},"nextCursor":{"anyOf":[{"type":"string","minLength":1,"maxLength":200,"pattern":"^[A-Za-z0-9_-]+$"},{"type":"null"}]}},"required":["ledgerEntries","totals","nextCursor"],"additionalProperties":false}}}},"400":{"description":"The request is invalid (`VALIDATION_FAILED`, `BAD_REQUEST`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing, invalid, expired or revoked credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Not allowed: the API key lacks the scope (`INSUFFICIENT_SCOPE`), the role of the member does not allow it (`INSUFFICIENT_ROLE`), or the workspace lacks a capability (`ENTITLEMENT_REQUIRED`, `ENTITLEMENT_EXPIRED`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found, or not accessible to the caller (indistinguishable).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited (`RATE_LIMITED`); retry after `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"5XX":{"description":"Unexpected or unavailable (`INTERNAL_ERROR`, `*_UNAVAILABLE`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/organizations/{organizationId}/projects/{projectId}/models":{"get":{"operationId":"listModels","summary":"List the models of a project","tags":["Models"],"description":"Required API key scope: `models:read`.","x-auvryn-scope":"models:read","x-auvryn-paginated":true,"parameters":[{"name":"organizationId","in":"path","required":true,"schema":{"type":"string"}},{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"default":100,"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[A-Za-z0-9_-]+$"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"models":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^mdl_[0-9a-z]{26}$"},"projectId":{"type":"string","pattern":"^prj_[0-9a-z]{26}$"},"name":{"type":"string"},"slug":{"type":"string"},"description":{"type":["string","null"]},"kind":{"type":"string","enum":["own","sample"]},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["id","projectId","name","slug","description","kind","createdAt","updatedAt"],"additionalProperties":false}},"nextCursor":{"anyOf":[{"type":"string","minLength":1,"maxLength":200,"pattern":"^[A-Za-z0-9_-]+$"},{"type":"null"}]}},"required":["models","nextCursor"],"additionalProperties":false}}}},"400":{"description":"The request is invalid (`VALIDATION_FAILED`, `BAD_REQUEST`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing, invalid, expired or revoked credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Not allowed: the API key lacks the scope (`INSUFFICIENT_SCOPE`), the role of the member does not allow it (`INSUFFICIENT_ROLE`), or the workspace lacks a capability (`ENTITLEMENT_REQUIRED`, `ENTITLEMENT_EXPIRED`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found, or not accessible to the caller (indistinguishable).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited (`RATE_LIMITED`); retry after `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"5XX":{"description":"Unexpected or unavailable (`INTERNAL_ERROR`, `*_UNAVAILABLE`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"post":{"operationId":"createModel","summary":"Register a model","tags":["Models"],"description":"Required API key scope: `models:write`.","x-auvryn-scope":"models:write","x-auvryn-idempotent-operation":"models.create","parameters":[{"name":"organizationId","in":"path","required":true,"schema":{"type":"string"}},{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"Makes retries safe: the same key and request return the same response for 24 hours.","schema":{"type":"string","pattern":"^[!-~]{1,255}$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","maxLength":200},"slug":{"type":"string","maxLength":100},"description":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}]}},"required":["name"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","pattern":"^mdl_[0-9a-z]{26}$"},"projectId":{"type":"string","pattern":"^prj_[0-9a-z]{26}$"},"name":{"type":"string"},"slug":{"type":"string"},"description":{"type":["string","null"]},"kind":{"type":"string","enum":["own","sample"]},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["id","projectId","name","slug","description","kind","createdAt","updatedAt"],"additionalProperties":false}}}},"400":{"description":"The request is invalid (`VALIDATION_FAILED`, `BAD_REQUEST`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing, invalid, expired or revoked credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Not allowed: the API key lacks the scope (`INSUFFICIENT_SCOPE`), the role of the member does not allow it (`INSUFFICIENT_ROLE`), or the workspace lacks a capability (`ENTITLEMENT_REQUIRED`, `ENTITLEMENT_EXPIRED`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found, or not accessible to the caller (indistinguishable).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflicts with the current state (e.g. `MODEL_SLUG_CONFLICT`, `MODEL_NOT_VALIDATED`), a workspace limit reached (`WORKSPACE_LIMIT_REACHED`, `CONCURRENT_RUN_LIMIT_REACHED`, `SAMPLE_RUN_LIMIT_REACHED`), or `Idempotency-Key` reused with another request (`IDEMPOTENCY_CONFLICT`) or still in progress (`IDEMPOTENCY_IN_PROGRESS`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Well-formed but rejected content (e.g. `MODEL_ARTIFACT_VERIFICATION_FAILED`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited (`RATE_LIMITED`); retry after `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"5XX":{"description":"Unexpected or unavailable (`INTERNAL_ERROR`, `*_UNAVAILABLE`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/organizations/{organizationId}/projects/{projectId}/models/{modelId}":{"get":{"operationId":"getModel","summary":"Get a model","tags":["Models"],"description":"Required API key scope: `models:read`.","x-auvryn-scope":"models:read","parameters":[{"name":"organizationId","in":"path","required":true,"schema":{"type":"string"}},{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"modelId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","pattern":"^mdl_[0-9a-z]{26}$"},"projectId":{"type":"string","pattern":"^prj_[0-9a-z]{26}$"},"name":{"type":"string"},"slug":{"type":"string"},"description":{"type":["string","null"]},"kind":{"type":"string","enum":["own","sample"]},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["id","projectId","name","slug","description","kind","createdAt","updatedAt"],"additionalProperties":false}}}},"400":{"description":"The request is invalid (`VALIDATION_FAILED`, `BAD_REQUEST`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing, invalid, expired or revoked credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Not allowed: the API key lacks the scope (`INSUFFICIENT_SCOPE`), the role of the member does not allow it (`INSUFFICIENT_ROLE`), or the workspace lacks a capability (`ENTITLEMENT_REQUIRED`, `ENTITLEMENT_EXPIRED`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found, or not accessible to the caller (indistinguishable).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited (`RATE_LIMITED`); retry after `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"5XX":{"description":"Unexpected or unavailable (`INTERNAL_ERROR`, `*_UNAVAILABLE`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/organizations/{organizationId}/projects/{projectId}/models/{modelId}/versions":{"get":{"operationId":"listModelVersions","summary":"List the versions of a model, with their readiness","tags":["Models"],"description":"Required API key scope: `models:read`.","x-auvryn-scope":"models:read","parameters":[{"name":"organizationId","in":"path","required":true,"schema":{"type":"string"}},{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"modelId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"versions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^mdlver_[0-9a-z]{26}$"},"modelId":{"type":"string","pattern":"^mdl_[0-9a-z]{26}$"},"version":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"format":{"type":"string","enum":["onnx"]},"framework":{"type":"string","enum":["pytorch","tensorflow","scikit-learn","custom","unknown"]},"description":{"type":["string","null"]},"readiness":{"type":"object","properties":{"artifact":{"anyOf":[{"type":"string","const":"none"},{"type":"string","enum":["pending","uploaded"]}]},"validation":{"anyOf":[{"type":"string","const":"none"},{"type":"string","enum":["pending","running","valid","invalid","failed"]}]}},"required":["artifact","validation"],"additionalProperties":false},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["id","modelId","version","format","framework","description","readiness","createdAt"],"additionalProperties":false}}},"required":["versions"],"additionalProperties":false}}}},"400":{"description":"The request is invalid (`VALIDATION_FAILED`, `BAD_REQUEST`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing, invalid, expired or revoked credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Not allowed: the API key lacks the scope (`INSUFFICIENT_SCOPE`), the role of the member does not allow it (`INSUFFICIENT_ROLE`), or the workspace lacks a capability (`ENTITLEMENT_REQUIRED`, `ENTITLEMENT_EXPIRED`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found, or not accessible to the caller (indistinguishable).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited (`RATE_LIMITED`); retry after `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"5XX":{"description":"Unexpected or unavailable (`INTERNAL_ERROR`, `*_UNAVAILABLE`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"post":{"operationId":"createModelVersion","summary":"Create the next version of a model","tags":["Models"],"description":"Required API key scope: `models:write`.","x-auvryn-scope":"models:write","x-auvryn-idempotent-operation":"model-versions.create","parameters":[{"name":"organizationId","in":"path","required":true,"schema":{"type":"string"}},{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"modelId","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"Makes retries safe: the same key and request return the same response for 24 hours.","schema":{"type":"string","pattern":"^[!-~]{1,255}$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"format":{"type":"string","maxLength":50},"framework":{"type":"string","enum":["pytorch","tensorflow","scikit-learn","custom","unknown"]},"description":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}]}},"required":["format"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","pattern":"^mdlver_[0-9a-z]{26}$"},"modelId":{"type":"string","pattern":"^mdl_[0-9a-z]{26}$"},"version":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"format":{"type":"string","enum":["onnx"]},"framework":{"type":"string","enum":["pytorch","tensorflow","scikit-learn","custom","unknown"]},"description":{"type":["string","null"]},"readiness":{"type":"object","properties":{"artifact":{"anyOf":[{"type":"string","const":"none"},{"type":"string","enum":["pending","uploaded"]}]},"validation":{"anyOf":[{"type":"string","const":"none"},{"type":"string","enum":["pending","running","valid","invalid","failed"]}]}},"required":["artifact","validation"],"additionalProperties":false},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["id","modelId","version","format","framework","description","readiness","createdAt"],"additionalProperties":false}}}},"400":{"description":"The request is invalid (`VALIDATION_FAILED`, `BAD_REQUEST`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing, invalid, expired or revoked credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Not allowed: the API key lacks the scope (`INSUFFICIENT_SCOPE`), the role of the member does not allow it (`INSUFFICIENT_ROLE`), or the workspace lacks a capability (`ENTITLEMENT_REQUIRED`, `ENTITLEMENT_EXPIRED`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found, or not accessible to the caller (indistinguishable).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflicts with the current state (e.g. `MODEL_SLUG_CONFLICT`, `MODEL_NOT_VALIDATED`), a workspace limit reached (`WORKSPACE_LIMIT_REACHED`, `CONCURRENT_RUN_LIMIT_REACHED`, `SAMPLE_RUN_LIMIT_REACHED`), or `Idempotency-Key` reused with another request (`IDEMPOTENCY_CONFLICT`) or still in progress (`IDEMPOTENCY_IN_PROGRESS`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Well-formed but rejected content (e.g. `MODEL_ARTIFACT_VERIFICATION_FAILED`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited (`RATE_LIMITED`); retry after `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"5XX":{"description":"Unexpected or unavailable (`INTERNAL_ERROR`, `*_UNAVAILABLE`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/organizations/{organizationId}/projects/{projectId}/models/{modelId}/versions/{versionId}":{"get":{"operationId":"getModelVersion","summary":"Get a model version and its readiness","tags":["Models"],"description":"Required API key scope: `models:read`.","x-auvryn-scope":"models:read","parameters":[{"name":"organizationId","in":"path","required":true,"schema":{"type":"string"}},{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"modelId","in":"path","required":true,"schema":{"type":"string"}},{"name":"versionId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","pattern":"^mdlver_[0-9a-z]{26}$"},"modelId":{"type":"string","pattern":"^mdl_[0-9a-z]{26}$"},"version":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"format":{"type":"string","enum":["onnx"]},"framework":{"type":"string","enum":["pytorch","tensorflow","scikit-learn","custom","unknown"]},"description":{"type":["string","null"]},"readiness":{"type":"object","properties":{"artifact":{"anyOf":[{"type":"string","const":"none"},{"type":"string","enum":["pending","uploaded"]}]},"validation":{"anyOf":[{"type":"string","const":"none"},{"type":"string","enum":["pending","running","valid","invalid","failed"]}]}},"required":["artifact","validation"],"additionalProperties":false},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["id","modelId","version","format","framework","description","readiness","createdAt"],"additionalProperties":false}}}},"400":{"description":"The request is invalid (`VALIDATION_FAILED`, `BAD_REQUEST`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing, invalid, expired or revoked credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Not allowed: the API key lacks the scope (`INSUFFICIENT_SCOPE`), the role of the member does not allow it (`INSUFFICIENT_ROLE`), or the workspace lacks a capability (`ENTITLEMENT_REQUIRED`, `ENTITLEMENT_EXPIRED`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found, or not accessible to the caller (indistinguishable).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited (`RATE_LIMITED`); retry after `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"5XX":{"description":"Unexpected or unavailable (`INTERNAL_ERROR`, `*_UNAVAILABLE`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/organizations/{organizationId}/projects/{projectId}/models/{modelId}/versions/{versionId}/artifact":{"get":{"operationId":"getModelArtifact","summary":"Get the artifact (model file) of a version","tags":["Models"],"description":"Required API key scope: `models:read`.","x-auvryn-scope":"models:read","parameters":[{"name":"organizationId","in":"path","required":true,"schema":{"type":"string"}},{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"modelId","in":"path","required":true,"schema":{"type":"string"}},{"name":"versionId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","pattern":"^art_[0-9a-z]{26}$"},"modelVersionId":{"type":"string","pattern":"^mdlver_[0-9a-z]{26}$"},"status":{"type":"string","enum":["pending","uploaded"]},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"checksumSha256":{"type":"string","pattern":"^[0-9a-f]{64}$"},"uploadedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["id","modelVersionId","status","filename","contentType","sizeBytes","checksumSha256","uploadedAt","createdAt","updatedAt"],"additionalProperties":false}}}},"400":{"description":"The request is invalid (`VALIDATION_FAILED`, `BAD_REQUEST`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing, invalid, expired or revoked credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Not allowed: the API key lacks the scope (`INSUFFICIENT_SCOPE`), the role of the member does not allow it (`INSUFFICIENT_ROLE`), or the workspace lacks a capability (`ENTITLEMENT_REQUIRED`, `ENTITLEMENT_EXPIRED`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found, or not accessible to the caller (indistinguishable).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited (`RATE_LIMITED`); retry after `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"5XX":{"description":"Unexpected or unavailable (`INTERNAL_ERROR`, `*_UNAVAILABLE`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/organizations/{organizationId}/projects/{projectId}/models/{modelId}/versions/{versionId}/artifact/complete":{"post":{"operationId":"completeModelArtifactUpload","summary":"Verify the uploaded file (size and SHA-256) and mark it uploaded","tags":["Models"],"description":"Required API key scope: `models:write`.","x-auvryn-scope":"models:write","parameters":[{"name":"organizationId","in":"path","required":true,"schema":{"type":"string"}},{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"modelId","in":"path","required":true,"schema":{"type":"string"}},{"name":"versionId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","pattern":"^art_[0-9a-z]{26}$"},"modelVersionId":{"type":"string","pattern":"^mdlver_[0-9a-z]{26}$"},"status":{"type":"string","enum":["pending","uploaded"]},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"checksumSha256":{"type":"string","pattern":"^[0-9a-f]{64}$"},"uploadedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["id","modelVersionId","status","filename","contentType","sizeBytes","checksumSha256","uploadedAt","createdAt","updatedAt"],"additionalProperties":false}}}},"400":{"description":"The request is invalid (`VALIDATION_FAILED`, `BAD_REQUEST`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing, invalid, expired or revoked credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Not allowed: the API key lacks the scope (`INSUFFICIENT_SCOPE`), the role of the member does not allow it (`INSUFFICIENT_ROLE`), or the workspace lacks a capability (`ENTITLEMENT_REQUIRED`, `ENTITLEMENT_EXPIRED`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found, or not accessible to the caller (indistinguishable).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflicts with the current state (e.g. `MODEL_ARTIFACT_NOT_UPLOADED`, `EXECUTION_JOB_NOT_CANCELLABLE`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Well-formed but rejected content (e.g. `MODEL_ARTIFACT_VERIFICATION_FAILED`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited (`RATE_LIMITED`); retry after `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"5XX":{"description":"Unexpected or unavailable (`INTERNAL_ERROR`, `*_UNAVAILABLE`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/organizations/{organizationId}/projects/{projectId}/models/{modelId}/versions/{versionId}/artifact/upload":{"post":{"operationId":"requestModelArtifactUpload","summary":"Get a signed URL to upload the model file directly to storage","tags":["Models"],"description":"Required API key scope: `models:write`.","x-auvryn-scope":"models:write","parameters":[{"name":"organizationId","in":"path","required":true,"schema":{"type":"string"}},{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"modelId","in":"path","required":true,"schema":{"type":"string"}},{"name":"versionId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"filename":{"type":"string","minLength":1,"maxLength":1000},"sizeBytes":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"checksumSha256":{"type":"string","pattern":"^[0-9a-f]{64}$"}},"required":["filename","sizeBytes","checksumSha256"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"artifact":{"type":"object","properties":{"id":{"type":"string","pattern":"^art_[0-9a-z]{26}$"},"modelVersionId":{"type":"string","pattern":"^mdlver_[0-9a-z]{26}$"},"status":{"type":"string","enum":["pending","uploaded"]},"filename":{"type":"string"},"contentType":{"type":"string"},"sizeBytes":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"checksumSha256":{"type":"string","pattern":"^[0-9a-f]{64}$"},"uploadedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["id","modelVersionId","status","filename","contentType","sizeBytes","checksumSha256","uploadedAt","createdAt","updatedAt"],"additionalProperties":false},"upload":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"method":{"type":"string","const":"PUT"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"expiresAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["url","method","headers","expiresAt"],"additionalProperties":false}},"required":["artifact","upload"],"additionalProperties":false}}}},"400":{"description":"The request is invalid (`VALIDATION_FAILED`, `BAD_REQUEST`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing, invalid, expired or revoked credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Not allowed: the API key lacks the scope (`INSUFFICIENT_SCOPE`), the role of the member does not allow it (`INSUFFICIENT_ROLE`), or the workspace lacks a capability (`ENTITLEMENT_REQUIRED`, `ENTITLEMENT_EXPIRED`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found, or not accessible to the caller (indistinguishable).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflicts with the current state (e.g. `MODEL_ARTIFACT_NOT_UPLOADED`, `EXECUTION_JOB_NOT_CANCELLABLE`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Well-formed but rejected content (e.g. `MODEL_ARTIFACT_VERIFICATION_FAILED`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited (`RATE_LIMITED`); retry after `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"5XX":{"description":"Unexpected or unavailable (`INTERNAL_ERROR`, `*_UNAVAILABLE`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/organizations/{organizationId}/projects/{projectId}/models/{modelId}/versions/{versionId}/artifact/validation":{"get":{"operationId":"getModelValidation","summary":"Get the validation of a version","tags":["Models"],"description":"Required API key scope: `models:read`.","x-auvryn-scope":"models:read","parameters":[{"name":"organizationId","in":"path","required":true,"schema":{"type":"string"}},{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"modelId","in":"path","required":true,"schema":{"type":"string"}},{"name":"versionId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","pattern":"^val_[0-9a-z]{26}$"},"artifactId":{"type":"string","pattern":"^art_[0-9a-z]{26}$"},"status":{"type":"string","enum":["pending","running","valid","invalid","failed"]},"validatorVersion":{"type":["string","null"]},"metadataVersion":{"anyOf":[{"type":"number","const":1},{"type":"null"}]},"metadata":{"anyOf":[{"type":"object","properties":{"irVersion":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"opsetImports":{"type":"array","items":{"type":"object","properties":{"domain":{"type":"string","maxLength":256},"version":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["domain","version"],"additionalProperties":false}},"producerName":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}]},"producerVersion":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}]},"domain":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}]},"modelVersion":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"graph":{"type":"object","properties":{"name":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}]},"nodeCount":{"type":"integer","minimum":0,"maximum":9007199254740991},"initializerCount":{"type":"integer","minimum":0,"maximum":9007199254740991},"inputCount":{"type":"integer","minimum":0,"maximum":9007199254740991},"outputCount":{"type":"integer","minimum":0,"maximum":9007199254740991},"inputs":{"maxItems":64,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":256},"type":{"type":"string","enum":["tensor","sparse_tensor","sequence","map","optional","unknown"]},"elementType":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}]},"shape":{"anyOf":[{"maxItems":64,"type":"array","items":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"fixed"},"value":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["kind","value"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"symbolic"},"name":{"type":"string","maxLength":256}},"required":["kind","name"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"unknown"}},"required":["kind"],"additionalProperties":false}]}},{"type":"null"}]}},"required":["name","type","elementType","shape"],"additionalProperties":false}},"outputs":{"maxItems":64,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":256},"type":{"type":"string","enum":["tensor","sparse_tensor","sequence","map","optional","unknown"]},"elementType":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}]},"shape":{"anyOf":[{"maxItems":64,"type":"array","items":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"fixed"},"value":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["kind","value"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"symbolic"},"name":{"type":"string","maxLength":256}},"required":["kind","name"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"unknown"}},"required":["kind"],"additionalProperties":false}]}},{"type":"null"}]}},"required":["name","type","elementType","shape"],"additionalProperties":false}},"operatorTypes":{"maxItems":200,"type":"array","items":{"type":"string","maxLength":256}}},"required":["name","nodeCount","initializerCount","inputCount","outputCount","inputs","outputs","operatorTypes"],"additionalProperties":false}},"required":["irVersion","opsetImports","producerName","producerVersion","domain","modelVersion","graph"],"additionalProperties":false},{"type":"null"}]},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"startedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"completedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["id","artifactId","status","validatorVersion","metadataVersion","metadata","error","startedAt","completedAt","createdAt","updatedAt"],"additionalProperties":false}}}},"400":{"description":"The request is invalid (`VALIDATION_FAILED`, `BAD_REQUEST`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing, invalid, expired or revoked credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Not allowed: the API key lacks the scope (`INSUFFICIENT_SCOPE`), the role of the member does not allow it (`INSUFFICIENT_ROLE`), or the workspace lacks a capability (`ENTITLEMENT_REQUIRED`, `ENTITLEMENT_EXPIRED`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found, or not accessible to the caller (indistinguishable).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited (`RATE_LIMITED`); retry after `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"5XX":{"description":"Unexpected or unavailable (`INTERNAL_ERROR`, `*_UNAVAILABLE`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"post":{"operationId":"requestModelValidation","summary":"Request validation of the uploaded file (202 while pending, 200 with a result)","tags":["Models"],"description":"Required API key scope: `models:write`.","x-auvryn-scope":"models:write","parameters":[{"name":"organizationId","in":"path","required":true,"schema":{"type":"string"}},{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"modelId","in":"path","required":true,"schema":{"type":"string"}},{"name":"versionId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"202":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","pattern":"^val_[0-9a-z]{26}$"},"artifactId":{"type":"string","pattern":"^art_[0-9a-z]{26}$"},"status":{"type":"string","enum":["pending","running","valid","invalid","failed"]},"validatorVersion":{"type":["string","null"]},"metadataVersion":{"anyOf":[{"type":"number","const":1},{"type":"null"}]},"metadata":{"anyOf":[{"type":"object","properties":{"irVersion":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"opsetImports":{"type":"array","items":{"type":"object","properties":{"domain":{"type":"string","maxLength":256},"version":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["domain","version"],"additionalProperties":false}},"producerName":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}]},"producerVersion":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}]},"domain":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}]},"modelVersion":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"graph":{"type":"object","properties":{"name":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}]},"nodeCount":{"type":"integer","minimum":0,"maximum":9007199254740991},"initializerCount":{"type":"integer","minimum":0,"maximum":9007199254740991},"inputCount":{"type":"integer","minimum":0,"maximum":9007199254740991},"outputCount":{"type":"integer","minimum":0,"maximum":9007199254740991},"inputs":{"maxItems":64,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":256},"type":{"type":"string","enum":["tensor","sparse_tensor","sequence","map","optional","unknown"]},"elementType":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}]},"shape":{"anyOf":[{"maxItems":64,"type":"array","items":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"fixed"},"value":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["kind","value"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"symbolic"},"name":{"type":"string","maxLength":256}},"required":["kind","name"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"unknown"}},"required":["kind"],"additionalProperties":false}]}},{"type":"null"}]}},"required":["name","type","elementType","shape"],"additionalProperties":false}},"outputs":{"maxItems":64,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":256},"type":{"type":"string","enum":["tensor","sparse_tensor","sequence","map","optional","unknown"]},"elementType":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}]},"shape":{"anyOf":[{"maxItems":64,"type":"array","items":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"fixed"},"value":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["kind","value"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"symbolic"},"name":{"type":"string","maxLength":256}},"required":["kind","name"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"unknown"}},"required":["kind"],"additionalProperties":false}]}},{"type":"null"}]}},"required":["name","type","elementType","shape"],"additionalProperties":false}},"operatorTypes":{"maxItems":200,"type":"array","items":{"type":"string","maxLength":256}}},"required":["name","nodeCount","initializerCount","inputCount","outputCount","inputs","outputs","operatorTypes"],"additionalProperties":false}},"required":["irVersion","opsetImports","producerName","producerVersion","domain","modelVersion","graph"],"additionalProperties":false},{"type":"null"}]},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"startedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"completedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["id","artifactId","status","validatorVersion","metadataVersion","metadata","error","startedAt","completedAt","createdAt","updatedAt"],"additionalProperties":false}}}},"400":{"description":"The request is invalid (`VALIDATION_FAILED`, `BAD_REQUEST`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing, invalid, expired or revoked credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Not allowed: the API key lacks the scope (`INSUFFICIENT_SCOPE`), the role of the member does not allow it (`INSUFFICIENT_ROLE`), or the workspace lacks a capability (`ENTITLEMENT_REQUIRED`, `ENTITLEMENT_EXPIRED`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found, or not accessible to the caller (indistinguishable).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflicts with the current state (e.g. `MODEL_ARTIFACT_NOT_UPLOADED`, `EXECUTION_JOB_NOT_CANCELLABLE`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Well-formed but rejected content (e.g. `MODEL_ARTIFACT_VERIFICATION_FAILED`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited (`RATE_LIMITED`); retry after `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"5XX":{"description":"Unexpected or unavailable (`INTERNAL_ERROR`, `*_UNAVAILABLE`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/organizations/{organizationId}/projects/{projectId}/models/{modelId}/versions/{versionId}/sandbox-runs":{"get":{"operationId":"listSandboxRuns","summary":"List the sandbox runs of a version","tags":["Sandbox"],"description":"Required API key scope: `models:read`.","x-auvryn-scope":"models:read","parameters":[{"name":"organizationId","in":"path","required":true,"schema":{"type":"string"}},{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"modelId","in":"path","required":true,"schema":{"type":"string"}},{"name":"versionId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"sandboxRuns":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^sbox_[0-9a-z]{26}$"},"modelVersionId":{"type":"string","pattern":"^mdlver_[0-9a-z]{26}$"},"validationId":{"type":"string","pattern":"^val_[0-9a-z]{26}$"},"status":{"type":"string","enum":["pending","running","completed","failed"]},"runtime":{"type":["string","null"]},"runtimeVersion":{"type":["string","null"]},"summaryVersion":{"anyOf":[{"type":"number","const":1},{"type":"null"}]},"inputSummary":{"anyOf":[{"type":"object","properties":{"inputs":{"maxItems":64,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":256},"elementType":{"type":"string","maxLength":256},"shape":{"maxItems":64,"type":"array","items":{"type":"integer","minimum":0,"maximum":9007199254740991}},"generated":{"type":"string","const":"zeros"},"resolvedDimensions":{"maxItems":64,"type":"array","items":{"type":"string","maxLength":256}}},"required":["name","elementType","shape","generated","resolvedDimensions"],"additionalProperties":false}}},"required":["inputs"],"additionalProperties":false},{"type":"null"}]},"outputSummary":{"anyOf":[{"type":"object","properties":{"outputs":{"maxItems":64,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":256},"type":{"type":"string","enum":["tensor","other"]},"elementType":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}]},"shape":{"anyOf":[{"maxItems":64,"type":"array","items":{"type":"integer","minimum":0,"maximum":9007199254740991}},{"type":"null"}]},"valueCount":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"sampleValues":{"maxItems":256,"type":"array","items":{"anyOf":[{"type":"number"},{"type":"boolean"},{"type":"string","enum":["NaN","Infinity","-Infinity"]},{"type":"null"}]}},"truncated":{"type":"boolean"}},"required":["name","type","elementType","shape","valueCount","sampleValues","truncated"],"additionalProperties":false}}},"required":["outputs"],"additionalProperties":false},{"type":"null"}]},"metrics":{"anyOf":[{"type":"object","properties":{"loadDurationMs":{"type":"number","minimum":0},"executionDurationMs":{"type":"number","minimum":0},"artifactSizeBytes":{"type":"integer","minimum":0,"maximum":9007199254740991},"inputTensorCount":{"type":"integer","minimum":0,"maximum":9007199254740991},"outputTensorCount":{"type":"integer","minimum":0,"maximum":9007199254740991},"peakMemoryMb":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}]}},"required":["loadDurationMs","executionDurationMs","artifactSizeBytes","inputTensorCount","outputTensorCount","peakMemoryMb"],"additionalProperties":false},{"type":"null"}]},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"startedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"completedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["id","modelVersionId","validationId","status","runtime","runtimeVersion","summaryVersion","inputSummary","outputSummary","metrics","error","startedAt","completedAt","createdAt","updatedAt"],"additionalProperties":false}}},"required":["sandboxRuns"],"additionalProperties":false}}}},"400":{"description":"The request is invalid (`VALIDATION_FAILED`, `BAD_REQUEST`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing, invalid, expired or revoked credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Not allowed: the API key lacks the scope (`INSUFFICIENT_SCOPE`), the role of the member does not allow it (`INSUFFICIENT_ROLE`), or the workspace lacks a capability (`ENTITLEMENT_REQUIRED`, `ENTITLEMENT_EXPIRED`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found, or not accessible to the caller (indistinguishable).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited (`RATE_LIMITED`); retry after `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"5XX":{"description":"Unexpected or unavailable (`INTERNAL_ERROR`, `*_UNAVAILABLE`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"post":{"operationId":"createSandboxRun","summary":"Run a validated version once in the sandbox (202; poll the run)","tags":["Sandbox"],"description":"Required API key scope: `models:write`.","x-auvryn-scope":"models:write","x-auvryn-idempotent-operation":"sandbox-runs.create","parameters":[{"name":"organizationId","in":"path","required":true,"schema":{"type":"string"}},{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"modelId","in":"path","required":true,"schema":{"type":"string"}},{"name":"versionId","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"Makes retries safe: the same key and request return the same response for 24 hours.","schema":{"type":"string","pattern":"^[!-~]{1,255}$"}}],"responses":{"202":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","pattern":"^sbox_[0-9a-z]{26}$"},"modelVersionId":{"type":"string","pattern":"^mdlver_[0-9a-z]{26}$"},"validationId":{"type":"string","pattern":"^val_[0-9a-z]{26}$"},"status":{"type":"string","enum":["pending","running","completed","failed"]},"runtime":{"type":["string","null"]},"runtimeVersion":{"type":["string","null"]},"summaryVersion":{"anyOf":[{"type":"number","const":1},{"type":"null"}]},"inputSummary":{"anyOf":[{"type":"object","properties":{"inputs":{"maxItems":64,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":256},"elementType":{"type":"string","maxLength":256},"shape":{"maxItems":64,"type":"array","items":{"type":"integer","minimum":0,"maximum":9007199254740991}},"generated":{"type":"string","const":"zeros"},"resolvedDimensions":{"maxItems":64,"type":"array","items":{"type":"string","maxLength":256}}},"required":["name","elementType","shape","generated","resolvedDimensions"],"additionalProperties":false}}},"required":["inputs"],"additionalProperties":false},{"type":"null"}]},"outputSummary":{"anyOf":[{"type":"object","properties":{"outputs":{"maxItems":64,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":256},"type":{"type":"string","enum":["tensor","other"]},"elementType":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}]},"shape":{"anyOf":[{"maxItems":64,"type":"array","items":{"type":"integer","minimum":0,"maximum":9007199254740991}},{"type":"null"}]},"valueCount":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"sampleValues":{"maxItems":256,"type":"array","items":{"anyOf":[{"type":"number"},{"type":"boolean"},{"type":"string","enum":["NaN","Infinity","-Infinity"]},{"type":"null"}]}},"truncated":{"type":"boolean"}},"required":["name","type","elementType","shape","valueCount","sampleValues","truncated"],"additionalProperties":false}}},"required":["outputs"],"additionalProperties":false},{"type":"null"}]},"metrics":{"anyOf":[{"type":"object","properties":{"loadDurationMs":{"type":"number","minimum":0},"executionDurationMs":{"type":"number","minimum":0},"artifactSizeBytes":{"type":"integer","minimum":0,"maximum":9007199254740991},"inputTensorCount":{"type":"integer","minimum":0,"maximum":9007199254740991},"outputTensorCount":{"type":"integer","minimum":0,"maximum":9007199254740991},"peakMemoryMb":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}]}},"required":["loadDurationMs","executionDurationMs","artifactSizeBytes","inputTensorCount","outputTensorCount","peakMemoryMb"],"additionalProperties":false},{"type":"null"}]},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"startedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"completedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["id","modelVersionId","validationId","status","runtime","runtimeVersion","summaryVersion","inputSummary","outputSummary","metrics","error","startedAt","completedAt","createdAt","updatedAt"],"additionalProperties":false}}}},"400":{"description":"The request is invalid (`VALIDATION_FAILED`, `BAD_REQUEST`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing, invalid, expired or revoked credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Not allowed: the API key lacks the scope (`INSUFFICIENT_SCOPE`), the role of the member does not allow it (`INSUFFICIENT_ROLE`), or the workspace lacks a capability (`ENTITLEMENT_REQUIRED`, `ENTITLEMENT_EXPIRED`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found, or not accessible to the caller (indistinguishable).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflicts with the current state (e.g. `MODEL_SLUG_CONFLICT`, `MODEL_NOT_VALIDATED`), a workspace limit reached (`WORKSPACE_LIMIT_REACHED`, `CONCURRENT_RUN_LIMIT_REACHED`, `SAMPLE_RUN_LIMIT_REACHED`), or `Idempotency-Key` reused with another request (`IDEMPOTENCY_CONFLICT`) or still in progress (`IDEMPOTENCY_IN_PROGRESS`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Well-formed but rejected content (e.g. `MODEL_ARTIFACT_VERIFICATION_FAILED`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited (`RATE_LIMITED`); retry after `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"5XX":{"description":"Unexpected or unavailable (`INTERNAL_ERROR`, `*_UNAVAILABLE`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/organizations/{organizationId}/projects/{projectId}/models/{modelId}/versions/{versionId}/sandbox-runs/{sandboxRunId}":{"get":{"operationId":"getSandboxRun","summary":"Get a sandbox run","tags":["Sandbox"],"description":"Required API key scope: `models:read`.","x-auvryn-scope":"models:read","parameters":[{"name":"organizationId","in":"path","required":true,"schema":{"type":"string"}},{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"modelId","in":"path","required":true,"schema":{"type":"string"}},{"name":"versionId","in":"path","required":true,"schema":{"type":"string"}},{"name":"sandboxRunId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","pattern":"^sbox_[0-9a-z]{26}$"},"modelVersionId":{"type":"string","pattern":"^mdlver_[0-9a-z]{26}$"},"validationId":{"type":"string","pattern":"^val_[0-9a-z]{26}$"},"status":{"type":"string","enum":["pending","running","completed","failed"]},"runtime":{"type":["string","null"]},"runtimeVersion":{"type":["string","null"]},"summaryVersion":{"anyOf":[{"type":"number","const":1},{"type":"null"}]},"inputSummary":{"anyOf":[{"type":"object","properties":{"inputs":{"maxItems":64,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":256},"elementType":{"type":"string","maxLength":256},"shape":{"maxItems":64,"type":"array","items":{"type":"integer","minimum":0,"maximum":9007199254740991}},"generated":{"type":"string","const":"zeros"},"resolvedDimensions":{"maxItems":64,"type":"array","items":{"type":"string","maxLength":256}}},"required":["name","elementType","shape","generated","resolvedDimensions"],"additionalProperties":false}}},"required":["inputs"],"additionalProperties":false},{"type":"null"}]},"outputSummary":{"anyOf":[{"type":"object","properties":{"outputs":{"maxItems":64,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":256},"type":{"type":"string","enum":["tensor","other"]},"elementType":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}]},"shape":{"anyOf":[{"maxItems":64,"type":"array","items":{"type":"integer","minimum":0,"maximum":9007199254740991}},{"type":"null"}]},"valueCount":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"sampleValues":{"maxItems":256,"type":"array","items":{"anyOf":[{"type":"number"},{"type":"boolean"},{"type":"string","enum":["NaN","Infinity","-Infinity"]},{"type":"null"}]}},"truncated":{"type":"boolean"}},"required":["name","type","elementType","shape","valueCount","sampleValues","truncated"],"additionalProperties":false}}},"required":["outputs"],"additionalProperties":false},{"type":"null"}]},"metrics":{"anyOf":[{"type":"object","properties":{"loadDurationMs":{"type":"number","minimum":0},"executionDurationMs":{"type":"number","minimum":0},"artifactSizeBytes":{"type":"integer","minimum":0,"maximum":9007199254740991},"inputTensorCount":{"type":"integer","minimum":0,"maximum":9007199254740991},"outputTensorCount":{"type":"integer","minimum":0,"maximum":9007199254740991},"peakMemoryMb":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}]}},"required":["loadDurationMs","executionDurationMs","artifactSizeBytes","inputTensorCount","outputTensorCount","peakMemoryMb"],"additionalProperties":false},{"type":"null"}]},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"startedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"completedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["id","modelVersionId","validationId","status","runtime","runtimeVersion","summaryVersion","inputSummary","outputSummary","metrics","error","startedAt","completedAt","createdAt","updatedAt"],"additionalProperties":false}}}},"400":{"description":"The request is invalid (`VALIDATION_FAILED`, `BAD_REQUEST`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing, invalid, expired or revoked credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Not allowed: the API key lacks the scope (`INSUFFICIENT_SCOPE`), the role of the member does not allow it (`INSUFFICIENT_ROLE`), or the workspace lacks a capability (`ENTITLEMENT_REQUIRED`, `ENTITLEMENT_EXPIRED`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found, or not accessible to the caller (indistinguishable).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited (`RATE_LIMITED`); retry after `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"5XX":{"description":"Unexpected or unavailable (`INTERNAL_ERROR`, `*_UNAVAILABLE`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/organizations/{organizationId}/projects/{projectId}/sample-workloads":{"post":{"operationId":"startSampleWorkload","summary":"Run Auvryn's sample model on the Sample Environment (simulated; 202, poll the job)","tags":["Executions"],"description":"Starts Auvryn's sample model on the Sample Environment and returns the execution job at once (202); follow it with `GET …/execution-jobs/{jobId}`. The execution is **simulated**: no model runs on real hardware, and the job's provenance reports `simulated: true` and `executionEnvironment: simulated`. The body is empty (`{}`): a model or a provider in it is refused (400), so it never runs your own models and never reaches another provider. Needs the workspace capability `sample-workload` (otherwise 403 `ENTITLEMENT_REQUIRED`) and counts toward the daily limit `sample-runs-per-day` (409 `SAMPLE_RUN_LIMIT_REACHED`).\n\nRequired API key scope: `executions:write`.","x-auvryn-scope":"executions:write","x-auvryn-idempotent-operation":"sample-workloads.create","parameters":[{"name":"organizationId","in":"path","required":true,"schema":{"type":"string"}},{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"Makes retries safe: the same key and request return the same response for 24 hours.","schema":{"type":"string","pattern":"^[!-~]{1,255}$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":false}}}},"responses":{"202":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","pattern":"^job_[0-9a-z]{26}$"},"projectId":{"type":"string","pattern":"^prj_[0-9a-z]{26}$"},"modelId":{"type":"string","pattern":"^mdl_[0-9a-z]{26}$"},"modelVersionId":{"type":"string","pattern":"^mdlver_[0-9a-z]{26}$"},"areaOfInterestId":{"anyOf":[{"type":"string","pattern":"^aoi_[0-9a-z]{26}$"},{"type":"null"}]},"costEstimateId":{"anyOf":[{"type":"string","pattern":"^est_[0-9a-z]{26}$"},{"type":"null"}]},"providerId":{"type":"string","minLength":2,"maxLength":40,"pattern":"^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"},"status":{"type":"string","enum":["created","validating","ready","estimating","scheduled","running","downlink","processing","completed","failed","cancelled"]},"inputKind":{"type":"string","enum":["generated"]},"workloadKind":{"type":"string","enum":["custom","sample"]},"area":{"anyOf":[{"type":"object","properties":{"areaSquareMeters":{"type":"number","exclusiveMinimum":0},"bbox":{"type":"object","properties":{"west":{"type":"number","minimum":-180,"maximum":180},"south":{"type":"number","minimum":-90,"maximum":90},"east":{"type":"number","minimum":-180,"maximum":180},"north":{"type":"number","minimum":-90,"maximum":90}},"required":["west","south","east","north"],"additionalProperties":false}},"required":["areaSquareMeters","bbox"],"additionalProperties":false},{"type":"null"}]},"providerExternalExecutionId":{"type":["string","null"]},"cancellationRequested":{"type":"boolean"},"failure":{"anyOf":[{"type":"object","properties":{"code":{"type":"string","enum":["PROVIDER_NOT_FOUND","PROVIDER_INCOMPATIBLE","PROVIDER_COMPATIBILITY_UNKNOWN","PROVIDER_SUBMISSION_FAILED","PROVIDER_EXECUTION_FAILED","PROVIDER_EXECUTION_LOST","PROVIDER_UNAVAILABLE","PROVIDER_ERROR","ORCHESTRATION_FAILED","PROVIDER_RESULT_UNAVAILABLE","PROVIDER_RESULT_LOST","PROVIDER_RESULT_INVALID","RESULT_PERSISTENCE_FAILED"]},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"validatedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"submittedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"startedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"completedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"failedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"cancelledAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"telemetry":{"anyOf":[{"type":"object","properties":{"outcome":{"type":"string","enum":["succeeded","failed","cancelled"]},"provenance":{"type":"object","properties":{"provider":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[a-z0-9][a-z0-9._-]*$"},"kind":{"type":"string","enum":["development","sample","external"]},"types":{"minItems":1,"maxItems":6,"type":"array","items":{"type":"string","enum":["compute","storage","connectivity","sensor","power","ground"]}},"adapterVersion":{"type":"string","minLength":1,"maxLength":64},"apiVersion":{"anyOf":[{"type":"string","minLength":1,"maxLength":64},{"type":"null"}]}},"required":["id","kind","types","adapterVersion","apiVersion"],"additionalProperties":false},"executionEnvironment":{"anyOf":[{"type":"string","enum":["orbital","cloud","edge","ground","simulated"]},{"type":"null"}]},"simulated":{"type":"boolean"},"security":{"type":"object","properties":{"value":{"type":"object","propertyNames":{"type":"string","enum":["encryption-at-rest","encryption-in-transit","isolated-runtime","secure-boot","attestation","post-quantum-cryptography"]},"additionalProperties":{"type":"string","enum":["supported","not-supported"]}},"source":{"type":"string","const":"reported_by_provider"}},"required":["value","source"],"additionalProperties":false},"jurisdiction":{"type":"object","properties":{"value":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"country"},"code":{"type":"string","pattern":"^[A-Z]{2}$"}},"required":["kind","code"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"region"},"code":{"type":"string","enum":["EU","EEA"]}},"required":["kind","code"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"provider-defined"},"code":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[a-z0-9][a-z0-9._-]*$"},"name":{"type":"string","minLength":1,"maxLength":100}},"required":["kind","code"],"additionalProperties":false}]},"source":{"type":"string","const":"operator_configured"}},"required":["value","source"],"additionalProperties":false},"dataResidency":{"type":"object","properties":{"value":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"country"},"code":{"type":"string","pattern":"^[A-Z]{2}$"}},"required":["kind","code"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"region"},"code":{"type":"string","enum":["EU","EEA"]}},"required":["kind","code"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"provider-defined"},"code":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[a-z0-9][a-z0-9._-]*$"},"name":{"type":"string","minLength":1,"maxLength":100}},"required":["kind","code"],"additionalProperties":false}]},"source":{"type":"string","const":"operator_configured"}},"required":["value","source"],"additionalProperties":false},"region":{"type":"object","properties":{"value":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[a-z0-9][a-z0-9._-]*$"},"source":{"type":"string","enum":["operator_configured","reported_by_provider"]}},"required":["value","source"],"additionalProperties":false},"hardware":{"type":"object","properties":{"value":{"type":"object","properties":{"architecture":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[a-z0-9][a-z0-9._-]*$"},"accelerator":{"type":"string","minLength":1,"maxLength":100},"model":{"type":"string","minLength":1,"maxLength":100}},"additionalProperties":false},"source":{"type":"string","const":"reported_by_provider"}},"required":["value","source"],"additionalProperties":false},"runtime":{"type":"object","properties":{"value":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[a-z0-9][a-z0-9._-]*$"},"version":{"type":"string","minLength":1,"maxLength":64}},"required":["name","version"],"additionalProperties":false},"source":{"type":"string","const":"reported_by_provider"}},"required":["value","source"],"additionalProperties":false},"network":{"type":"object","properties":{"value":{"type":"string","minLength":1,"maxLength":100},"source":{"type":"string","const":"reported_by_provider"}},"required":["value","source"],"additionalProperties":false}},"required":["provider","executionEnvironment","simulated"],"additionalProperties":false},"metrics":{"maxItems":64,"type":"array","items":{"type":"object","properties":{"metric":{"type":"string","enum":["queue_time_ms","execution_time_ms","total_latency_ms","estimated_cost","data_in_bytes","data_out_bytes","quality"]},"label":{"anyOf":[{"type":"string","minLength":1,"maxLength":64},{"type":"null"}]},"value":{"type":"number"},"unit":{"type":"string","minLength":1,"maxLength":32},"source":{"type":"string","enum":["reported_by_provider","measured_by_auvryn","derived"]}},"required":["metric","label","value","unit","source"],"additionalProperties":false}},"recordedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["outcome","provenance","metrics","recordedAt"],"additionalProperties":false},{"type":"null"}]},"dispatch":{"type":"string","enum":["queued","deferred"]}},"required":["id","projectId","modelId","modelVersionId","areaOfInterestId","costEstimateId","providerId","status","inputKind","workloadKind","area","providerExternalExecutionId","cancellationRequested","failure","createdAt","updatedAt","validatedAt","submittedAt","startedAt","completedAt","failedAt","cancelledAt","dispatch"],"additionalProperties":false}}}},"400":{"description":"The request is invalid (`VALIDATION_FAILED`, `BAD_REQUEST`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing, invalid, expired or revoked credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Not allowed: the API key lacks the scope (`INSUFFICIENT_SCOPE`), the role of the member does not allow it (`INSUFFICIENT_ROLE`), or the workspace lacks a capability (`ENTITLEMENT_REQUIRED`, `ENTITLEMENT_EXPIRED`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found, or not accessible to the caller (indistinguishable).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflicts with the current state (e.g. `MODEL_SLUG_CONFLICT`, `MODEL_NOT_VALIDATED`), a workspace limit reached (`WORKSPACE_LIMIT_REACHED`, `CONCURRENT_RUN_LIMIT_REACHED`, `SAMPLE_RUN_LIMIT_REACHED`), or `Idempotency-Key` reused with another request (`IDEMPOTENCY_CONFLICT`) or still in progress (`IDEMPOTENCY_IN_PROGRESS`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Well-formed but rejected content (e.g. `MODEL_ARTIFACT_VERIFICATION_FAILED`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited (`RATE_LIMITED`); retry after `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"5XX":{"description":"Unexpected or unavailable (`INTERNAL_ERROR`, `*_UNAVAILABLE`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/organizations/{organizationId}/projects/{projectId}/usage-events":{"get":{"operationId":"listUsageEvents","summary":"List usage events, with exact totals per metric","tags":["Usage"],"description":"Required API key scope: `usage:read`.","x-auvryn-scope":"usage:read","x-auvryn-paginated":true,"parameters":[{"name":"organizationId","in":"path","required":true,"schema":{"type":"string"}},{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"default":100,"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[A-Za-z0-9_-]+$"}},{"name":"executionJobId","in":"query","required":false,"schema":{"type":"string","maxLength":100}},{"name":"metric","in":"query","required":false,"schema":{"type":"string","enum":["MODEL_ARTIFACT_BYTES","AOI_AREA_SQUARE_METERS","PROVIDER_EXECUTION_DURATION_MS","RESULT_STORAGE_BYTES","RESULT_ARTIFACT_COUNT"]}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"usageEvents":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^use_[0-9a-z]{26}$"},"organizationId":{"type":"string","pattern":"^org_[0-9a-z]{26}$"},"projectId":{"type":"string","pattern":"^prj_[0-9a-z]{26}$"},"executionJobId":{"anyOf":[{"type":"string","pattern":"^job_[0-9a-z]{26}$"},{"type":"null"}]},"providerId":{"anyOf":[{"type":"string","minLength":2,"maxLength":40,"pattern":"^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"},{"type":"null"}]},"metric":{"type":"string","enum":["MODEL_ARTIFACT_BYTES","AOI_AREA_SQUARE_METERS","PROVIDER_EXECUTION_DURATION_MS","RESULT_STORAGE_BYTES","RESULT_ARTIFACT_COUNT"]},"quantity":{"type":"string"},"unit":{"type":"string","enum":["byte","count","square_meter","millisecond"]},"source":{"type":"string","enum":["provider","auvryn"]},"dimensions":{"type":"object","properties":{"providerId":{"type":"string","maxLength":40},"modelFormat":{"type":"string","maxLength":32},"inputKind":{"type":"string","maxLength":32}},"additionalProperties":false},"occurredAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["id","organizationId","projectId","executionJobId","providerId","metric","quantity","unit","source","dimensions","occurredAt","createdAt"],"additionalProperties":false}},"totals":{"type":"array","items":{"type":"object","properties":{"metric":{"type":"string","enum":["MODEL_ARTIFACT_BYTES","AOI_AREA_SQUARE_METERS","PROVIDER_EXECUTION_DURATION_MS","RESULT_STORAGE_BYTES","RESULT_ARTIFACT_COUNT"]},"unit":{"type":"string","enum":["byte","count","square_meter","millisecond"]},"quantity":{"type":"string"},"eventCount":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["metric","unit","quantity","eventCount"],"additionalProperties":false}},"nextCursor":{"anyOf":[{"type":"string","minLength":1,"maxLength":200,"pattern":"^[A-Za-z0-9_-]+$"},{"type":"null"}]}},"required":["usageEvents","totals","nextCursor"],"additionalProperties":false}}}},"400":{"description":"The request is invalid (`VALIDATION_FAILED`, `BAD_REQUEST`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing, invalid, expired or revoked credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Not allowed: the API key lacks the scope (`INSUFFICIENT_SCOPE`), the role of the member does not allow it (`INSUFFICIENT_ROLE`), or the workspace lacks a capability (`ENTITLEMENT_REQUIRED`, `ENTITLEMENT_EXPIRED`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found, or not accessible to the caller (indistinguishable).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited (`RATE_LIMITED`); retry after `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"5XX":{"description":"Unexpected or unavailable (`INTERNAL_ERROR`, `*_UNAVAILABLE`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/providers":{"get":{"operationId":"listProviders","summary":"List the providers this workspace can use in this environment","tags":["Providers"],"description":"Lists only the providers this workspace can use; it is not a catalog of commercial offers. Providers on real infrastructure appear only to a workspace granted access to them; for any other workspace they do not exist, and naming one in a cost estimate or an execution answers `404 PROVIDER_NOT_FOUND`, exactly like an unknown ID. The Sample Environment (`kind: sample`) is simulated. Each provider lists the workspace capabilities it requires (`requiredCapabilities`).\n\nAny valid API key.","parameters":[{"name":"organizationId","in":"query","required":false,"description":"The workspace whose providers to list (one you belong to). An API key lists its own workspace's providers without it.","schema":{"type":"string","pattern":"^org_[0-9a-z]{26}$"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"providers":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":2,"maxLength":40,"pattern":"^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"},"name":{"type":"string","minLength":1,"maxLength":100},"kind":{"type":"string","enum":["development","sample","external"]},"requiredCapabilities":{"type":"array","items":{"type":"string","enum":["own-model-upload","sample-workload","development-execution","external-provider","orbital-execution","smart-router"]}},"types":{"minItems":1,"type":"array","items":{"type":"string","enum":["compute","storage","connectivity","sensor","power","ground"]}},"executionEnvironment":{"anyOf":[{"type":"string","enum":["orbital","cloud","edge","ground","simulated"]},{"type":"null"}]},"security":{"type":"object","propertyNames":{"type":"string","enum":["encryption-at-rest","encryption-in-transit","isolated-runtime","secure-boot","attestation","post-quantum-cryptography"]},"additionalProperties":{"type":"string","enum":["supported","not-supported"]}},"jurisdiction":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"country"},"code":{"type":"string","pattern":"^[A-Z]{2}$"}},"required":["kind","code"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"region"},"code":{"type":"string","enum":["EU","EEA"]}},"required":["kind","code"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"provider-defined"},"code":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[a-z0-9][a-z0-9._-]*$"},"name":{"type":"string","minLength":1,"maxLength":100}},"required":["kind","code"],"additionalProperties":false}]},"dataResidency":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"country"},"code":{"type":"string","pattern":"^[A-Z]{2}$"}},"required":["kind","code"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"region"},"code":{"type":"string","enum":["EU","EEA"]}},"required":["kind","code"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"provider-defined"},"code":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[a-z0-9][a-z0-9._-]*$"},"name":{"type":"string","minLength":1,"maxLength":100}},"required":["kind","code"],"additionalProperties":false}]},"region":{"type":"string","minLength":1,"maxLength":64}},"required":["id","name","kind","requiredCapabilities","types","executionEnvironment","security"],"additionalProperties":false}}},"required":["providers"],"additionalProperties":false}}}},"400":{"description":"The request is invalid (`VALIDATION_FAILED`, `BAD_REQUEST`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing, invalid, expired or revoked credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Not allowed: the API key lacks the scope (`INSUFFICIENT_SCOPE`), the role of the member does not allow it (`INSUFFICIENT_ROLE`), or the workspace lacks a capability (`ENTITLEMENT_REQUIRED`, `ENTITLEMENT_EXPIRED`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found, or not accessible to the caller (indistinguishable).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited (`RATE_LIMITED`); retry after `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"5XX":{"description":"Unexpected or unavailable (`INTERNAL_ERROR`, `*_UNAVAILABLE`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}}}}