> For the complete documentation index, see [llms.txt](https://knowledgebase.fabricdata.com/studio/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://knowledgebase.fabricdata.com/studio/integrations-and-apis/origin-studio-production-api/models.md).

# Models

## The WriteRequestMeta object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"WriteRequestMeta":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IWriteRequestMeta","description":"Optional audit metadata for a write request. `audit.source` is the issuing surface/channel (e.g. studio-web, mcp, api, system); `audit.reason` is a free-text justification. Both are optional and length-capped.","type":"object","additionalProperties":false,"properties":{"audit":{"type":"object","additionalProperties":false,"properties":{"source":{"type":"string","maxLength":64},"reason":{"type":"string","maxLength":256}}}}}}}}
```

## The AuditQueryCreateOneRequest object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"AuditQueryCreateOneRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IAuditQueryCreateOneRequest","description":"JSON:API request body to start a new audit query.","type":"object","additionalProperties":false,"required":["data"],"properties":{"meta":{"$ref":"#/components/schemas/WriteRequestMeta"},"data":{"type":"object","additionalProperties":false,"required":["type","attributes"],"properties":{"type":{"type":"string","enum":["auditQueries"]},"attributes":{"type":"object","additionalProperties":false,"required":["dateFrom","dateTo"],"properties":{"dateFrom":{"type":"string","format":"date","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Start of the date range (inclusive), YYYY-MM-DD"},"dateTo":{"type":"string","format":"date","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"End of the date range (inclusive), YYYY-MM-DD"},"resourceTypes":{"type":"array","items":{"type":"string","pattern":"^KS::[A-Za-z]+$"},"description":"Optional list of KS:: resource type keys to filter by (OR semantics)"},"search":{"type":"string","maxLength":200,"description":"Optional search string — matched against resourceName (LIKE) or rootEntityId (exact)"}}}}}}},"WriteRequestMeta":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IWriteRequestMeta","description":"Optional audit metadata for a write request. `audit.source` is the issuing surface/channel (e.g. studio-web, mcp, api, system); `audit.reason` is a free-text justification. Both are optional and length-capped.","type":"object","additionalProperties":false,"properties":{"audit":{"type":"object","additionalProperties":false,"properties":{"source":{"type":"string","maxLength":64},"reason":{"type":"string","maxLength":256}}}}}}}}
```

## The AuditQueryCreateOneResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"AuditQueryCreateOneResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IAuditQueryCreateOneResponse","description":"202 response returned when an audit query is successfully started. Poll GET /auditQueries/{id} for results.","type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"type":"object","additionalProperties":false,"required":["id","type","attributes"],"properties":{"id":{"type":"string","description":"Query execution ID — use as path param to poll results"},"type":{"type":"string","enum":["auditQueries"]},"attributes":{"type":"object","additionalProperties":false,"required":["status"],"properties":{"status":{"type":"string","enum":["RUNNING"],"description":"Always RUNNING for a freshly started query"}}}}}}}}}}
```

## The Error object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"Error":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IError","description":"A single JSON:API error object. `status` is the HTTP status code as a string. `title` is a short, human-readable summary. `detail` provides optional context. `meta` may include structured conflict or authorization details.","type":"object","additionalProperties":false,"required":["status","title"],"properties":{"status":{"type":"string"},"title":{"type":"string"},"detail":{"type":"string"},"source":{"type":"object","description":"A JSON Pointer to the request field that caused the error (e.g. `/data/attributes/title`).","properties":{"pointer":{"type":"string"}}},"meta":{"type":"object","additionalProperties":true,"properties":{"stack":{"type":"string","description":"Error stack trace. Only present in non-production environments."},"conflictItems":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"}}}},"unauthorizedItems":{"type":"array","items":{"type":"string"}}}}}}}}}
```

## The ErrorResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"ErrorResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IErrorResponse","description":"Standard JSON:API error response returned when a request fails. Contains an `errors` array with one or more error objects (status, title, and optional detail).","type":"object","required":["errors"],"additionalProperties":false,"properties":{"errors":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}},"Error":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IError","description":"A single JSON:API error object. `status` is the HTTP status code as a string. `title` is a short, human-readable summary. `detail` provides optional context. `meta` may include structured conflict or authorization details.","type":"object","additionalProperties":false,"required":["status","title"],"properties":{"status":{"type":"string"},"title":{"type":"string"},"detail":{"type":"string"},"source":{"type":"object","description":"A JSON Pointer to the request field that caused the error (e.g. `/data/attributes/title`).","properties":{"pointer":{"type":"string"}}},"meta":{"type":"object","additionalProperties":true,"properties":{"stack":{"type":"string","description":"Error stack trace. Only present in non-production environments."},"conflictItems":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"}}}},"unauthorizedItems":{"type":"array","items":{"type":"string"}}}}}}}}}
```

## The AuditEventAttributes object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"AuditEventAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IAuditEventAttributes","description":"Attributes of a single audit event captured from a Keystone entity change","type":"object","additionalProperties":false,"required":["rootEntityId","tenantId","timestamp","actorId","actorName","actorType","action","resourceType","resourceId","resourceName"],"properties":{"rootEntityId":{"type":"string","description":"ID of the root entity this event is grouped under"},"tenantId":{"type":"string","description":"Tenant that owns this event"},"timestamp":{"type":"string","description":"ISO 8601 timestamp of when the event occurred"},"actorId":{"type":"string","description":"ID of the user or system that triggered the change"},"actorName":{"type":"string","description":"Display name of the actor"},"actorType":{"type":"string","description":"Type of actor (e.g. user, system)"},"action":{"type":"string","description":"Cedar action that was performed (e.g. updateRecord)"},"changeSource":{"type":"string","description":"Source system or surface that triggered the change"},"changeReason":{"type":"string","description":"Optional free-text reason provided by the actor"},"resourceType":{"type":"string","description":"KS:: prefixed entity type (e.g. KS::Record)"},"resourceId":{"type":"string","description":"ID of the specific resource that changed"},"resourceName":{"type":"string","description":"Display name of the resource at the time of the event"},"changesJson":{"type":"string","description":"JSON-encoded diff of the changes made"}}}}}}
```

## The AuditEvent object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"AuditEvent":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IAuditEvent","description":"JSON:API resource object for a single audit event","type":"object","additionalProperties":false,"required":["id","type","attributes"],"properties":{"id":{"type":"string","description":"Unique event ID"},"type":{"type":"string","enum":["auditEvents"]},"attributes":{"$ref":"#/components/schemas/AuditEventAttributes"}}},"AuditEventAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IAuditEventAttributes","description":"Attributes of a single audit event captured from a Keystone entity change","type":"object","additionalProperties":false,"required":["rootEntityId","tenantId","timestamp","actorId","actorName","actorType","action","resourceType","resourceId","resourceName"],"properties":{"rootEntityId":{"type":"string","description":"ID of the root entity this event is grouped under"},"tenantId":{"type":"string","description":"Tenant that owns this event"},"timestamp":{"type":"string","description":"ISO 8601 timestamp of when the event occurred"},"actorId":{"type":"string","description":"ID of the user or system that triggered the change"},"actorName":{"type":"string","description":"Display name of the actor"},"actorType":{"type":"string","description":"Type of actor (e.g. user, system)"},"action":{"type":"string","description":"Cedar action that was performed (e.g. updateRecord)"},"changeSource":{"type":"string","description":"Source system or surface that triggered the change"},"changeReason":{"type":"string","description":"Optional free-text reason provided by the actor"},"resourceType":{"type":"string","description":"KS:: prefixed entity type (e.g. KS::Record)"},"resourceId":{"type":"string","description":"ID of the specific resource that changed"},"resourceName":{"type":"string","description":"Display name of the resource at the time of the event"},"changesJson":{"type":"string","description":"JSON-encoded diff of the changes made"}}}}}}
```

## The AuditQueryFindOneResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"AuditQueryFindOneResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IAuditQueryFindOneResponse","description":"Response when polling an audit query. 202 while RUNNING or FAILED; 200 with events in data[] when SUCCEEDED.","type":"object","additionalProperties":false,"required":["data","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/AuditEvent"},"description":"Audit event resources. Populated only when status is SUCCEEDED."},"meta":{"type":"object","additionalProperties":false,"required":["status"],"properties":{"status":{"type":"string","enum":["QUEUED","RUNNING","SUCCEEDED","FAILED"],"description":"Current query execution state"},"hasMore":{"type":"boolean","description":"True when the result set exceeds 1,000 events. Refine filters to see all results."}}}}},"AuditEvent":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IAuditEvent","description":"JSON:API resource object for a single audit event","type":"object","additionalProperties":false,"required":["id","type","attributes"],"properties":{"id":{"type":"string","description":"Unique event ID"},"type":{"type":"string","enum":["auditEvents"]},"attributes":{"$ref":"#/components/schemas/AuditEventAttributes"}}},"AuditEventAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IAuditEventAttributes","description":"Attributes of a single audit event captured from a Keystone entity change","type":"object","additionalProperties":false,"required":["rootEntityId","tenantId","timestamp","actorId","actorName","actorType","action","resourceType","resourceId","resourceName"],"properties":{"rootEntityId":{"type":"string","description":"ID of the root entity this event is grouped under"},"tenantId":{"type":"string","description":"Tenant that owns this event"},"timestamp":{"type":"string","description":"ISO 8601 timestamp of when the event occurred"},"actorId":{"type":"string","description":"ID of the user or system that triggered the change"},"actorName":{"type":"string","description":"Display name of the actor"},"actorType":{"type":"string","description":"Type of actor (e.g. user, system)"},"action":{"type":"string","description":"Cedar action that was performed (e.g. updateRecord)"},"changeSource":{"type":"string","description":"Source system or surface that triggered the change"},"changeReason":{"type":"string","description":"Optional free-text reason provided by the actor"},"resourceType":{"type":"string","description":"KS:: prefixed entity type (e.g. KS::Record)"},"resourceId":{"type":"string","description":"ID of the specific resource that changed"},"resourceName":{"type":"string","description":"Display name of the resource at the time of the event"},"changesJson":{"type":"string","description":"JSON-encoded diff of the changes made"}}}}}}
```

## The BaseResourceAttributes object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"BaseResourceAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResourceAttributes","description":"Common timestamps present on all resource attribute objects. `created` is the ISO 8601 date-time when the resource was first created; `updated` is the date-time of the most recent modification.","type":"object","additionalProperties":false,"required":["created","updated"],"properties":{"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}}}}}
```

## The BackgroundJobStatus object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"BackgroundJobStatus":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBackgroundJobStatus","description":"Status of a background job: ABORTED, FAILED, PENDING_REDRIVE, RUNNING, SUCCEEDED, or TIMED_OUT.","type":"string","enum":["ABORTED","FAILED","PENDING_REDRIVE","RUNNING","SUCCEEDED","TIMED_OUT"]}}}}
```

## The BackgroundJobAttributes object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"BackgroundJobAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBackgroundJobAttributes","description":"Attributes for a background job. Background jobs represent long-running asynchronous operations (e.g. contributor deletion, tenant data export). Includes current status, job type, parameters, optional output on completion, optional error details on failure, and optional item progress counts for batch jobs.","type":"object","allOf":[{"$ref":"#/components/schemas/BaseResourceAttributes"},{"type":"object","properties":{"type":{"type":"string"},"parameters":{"type":"object"},"status":{"$ref":"#/components/schemas/BackgroundJobStatus"},"output":{"type":"object"},"totalItemsCount":{"type":"integer","minimum":0,"description":"Total number of items in a batch job, when applicable."},"successItemsCount":{"type":"integer","minimum":0,"description":"Number of items processed successfully in a batch job, when applicable."},"failedItemsCount":{"type":"integer","minimum":0,"description":"Number of items that failed in a batch job, when applicable."},"error":{"type":"object","properties":{"message":{"type":"string"},"code":{"type":"string"}},"required":["message","code"],"additionalProperties":false}},"required":["type","parameters","status"],"additionalProperties":false}],"additionalProperties":false},"BaseResourceAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResourceAttributes","description":"Common timestamps present on all resource attribute objects. `created` is the ISO 8601 date-time when the resource was first created; `updated` is the date-time of the most recent modification.","type":"object","additionalProperties":false,"required":["created","updated"],"properties":{"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}},"BackgroundJobStatus":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBackgroundJobStatus","description":"Status of a background job: ABORTED, FAILED, PENDING_REDRIVE, RUNNING, SUCCEEDED, or TIMED_OUT.","type":"string","enum":["ABORTED","FAILED","PENDING_REDRIVE","RUNNING","SUCCEEDED","TIMED_OUT"]}}}}
```

## The LinksRelated object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"LinksRelated":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILinks","description":"A JSON:API links object with an absolute or relative 'related' link","type":"object","required":["related"],"properties":{"related":{"type":"string"}},"additionalProperties":false}}}}
```

## The TenantRelationship object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"TenantRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantRelationship","description":"A relationship to a tenant","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tenants"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data","links"],"additionalProperties":false},"LinksRelated":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILinks","description":"A JSON:API links object with an absolute or relative 'related' link","type":"object","required":["related"],"properties":{"related":{"type":"string"}},"additionalProperties":false}}}}
```

## The UserRelationship object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"UserRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IUserRelationship","description":"A relationship to the actor behind a write (e.g. `author`, `updatedBy`). `data.meta.type` is the actor type — a human user, an API key, or an internal service — and `links.related` is only present for human users, since API keys and services have no user resource to link to.","type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["users"]},"meta":{"type":"object","properties":{"tenantId":{"type":"string"},"type":{"type":"string"},"displayName":{"type":"string"}},"required":["tenantId","type","displayName"],"additionalProperties":false}},"required":["id","type","meta"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data"],"additionalProperties":false},"LinksRelated":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILinks","description":"A JSON:API links object with an absolute or relative 'related' link","type":"object","required":["related"],"properties":{"related":{"type":"string"}},"additionalProperties":false}}}}
```

## The BackgroundJobFindManyResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"BackgroundJobFindManyResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBackgroundJobFindManyResponse","description":"JSON:API response for listing background jobs for the caller's tenant.","type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["backgroundJobs"]},"attributes":{"$ref":"#/components/schemas/BackgroundJobAttributes"},"links":{"type":"object","properties":{"self":{"type":"string"}},"additionalProperties":false},"relationships":{"type":"object","properties":{"tenant":{"$ref":"#/components/schemas/TenantRelationship"},"author":{"$ref":"#/components/schemas/UserRelationship"}},"additionalProperties":false}},"required":["id","type","attributes"],"additionalProperties":false}},"meta":{"type":"object","properties":{"cursor":{"type":"string","description":"The cursor to use to get the next page of results"}},"additionalProperties":false}},"required":["data"],"additionalProperties":false},"BackgroundJobAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBackgroundJobAttributes","description":"Attributes for a background job. Background jobs represent long-running asynchronous operations (e.g. contributor deletion, tenant data export). Includes current status, job type, parameters, optional output on completion, optional error details on failure, and optional item progress counts for batch jobs.","type":"object","allOf":[{"$ref":"#/components/schemas/BaseResourceAttributes"},{"type":"object","properties":{"type":{"type":"string"},"parameters":{"type":"object"},"status":{"$ref":"#/components/schemas/BackgroundJobStatus"},"output":{"type":"object"},"totalItemsCount":{"type":"integer","minimum":0,"description":"Total number of items in a batch job, when applicable."},"successItemsCount":{"type":"integer","minimum":0,"description":"Number of items processed successfully in a batch job, when applicable."},"failedItemsCount":{"type":"integer","minimum":0,"description":"Number of items that failed in a batch job, when applicable."},"error":{"type":"object","properties":{"message":{"type":"string"},"code":{"type":"string"}},"required":["message","code"],"additionalProperties":false}},"required":["type","parameters","status"],"additionalProperties":false}],"additionalProperties":false},"BaseResourceAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResourceAttributes","description":"Common timestamps present on all resource attribute objects. `created` is the ISO 8601 date-time when the resource was first created; `updated` is the date-time of the most recent modification.","type":"object","additionalProperties":false,"required":["created","updated"],"properties":{"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}},"BackgroundJobStatus":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBackgroundJobStatus","description":"Status of a background job: ABORTED, FAILED, PENDING_REDRIVE, RUNNING, SUCCEEDED, or TIMED_OUT.","type":"string","enum":["ABORTED","FAILED","PENDING_REDRIVE","RUNNING","SUCCEEDED","TIMED_OUT"]},"TenantRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantRelationship","description":"A relationship to a tenant","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tenants"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data","links"],"additionalProperties":false},"LinksRelated":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILinks","description":"A JSON:API links object with an absolute or relative 'related' link","type":"object","required":["related"],"properties":{"related":{"type":"string"}},"additionalProperties":false},"UserRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IUserRelationship","description":"A relationship to the actor behind a write (e.g. `author`, `updatedBy`). `data.meta.type` is the actor type — a human user, an API key, or an internal service — and `links.related` is only present for human users, since API keys and services have no user resource to link to.","type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["users"]},"meta":{"type":"object","properties":{"tenantId":{"type":"string"},"type":{"type":"string"},"displayName":{"type":"string"}},"required":["tenantId","type","displayName"],"additionalProperties":false}},"required":["id","type","meta"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data"],"additionalProperties":false}}}}
```

## The BackgroundJobFindOneResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"BackgroundJobFindOneResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBackgroundJobFindOneResponse","description":"JSON:API response for a single background job.","type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["backgroundJobs"]},"attributes":{"$ref":"#/components/schemas/BackgroundJobAttributes"},"links":{"type":"object","properties":{"self":{"type":"string"}},"additionalProperties":false},"relationships":{"type":"object","properties":{"tenant":{"$ref":"#/components/schemas/TenantRelationship"},"author":{"$ref":"#/components/schemas/UserRelationship"}},"additionalProperties":false}},"required":["id","type","attributes"],"additionalProperties":false}},"required":["data"],"additionalProperties":false},"BackgroundJobAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBackgroundJobAttributes","description":"Attributes for a background job. Background jobs represent long-running asynchronous operations (e.g. contributor deletion, tenant data export). Includes current status, job type, parameters, optional output on completion, optional error details on failure, and optional item progress counts for batch jobs.","type":"object","allOf":[{"$ref":"#/components/schemas/BaseResourceAttributes"},{"type":"object","properties":{"type":{"type":"string"},"parameters":{"type":"object"},"status":{"$ref":"#/components/schemas/BackgroundJobStatus"},"output":{"type":"object"},"totalItemsCount":{"type":"integer","minimum":0,"description":"Total number of items in a batch job, when applicable."},"successItemsCount":{"type":"integer","minimum":0,"description":"Number of items processed successfully in a batch job, when applicable."},"failedItemsCount":{"type":"integer","minimum":0,"description":"Number of items that failed in a batch job, when applicable."},"error":{"type":"object","properties":{"message":{"type":"string"},"code":{"type":"string"}},"required":["message","code"],"additionalProperties":false}},"required":["type","parameters","status"],"additionalProperties":false}],"additionalProperties":false},"BaseResourceAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResourceAttributes","description":"Common timestamps present on all resource attribute objects. `created` is the ISO 8601 date-time when the resource was first created; `updated` is the date-time of the most recent modification.","type":"object","additionalProperties":false,"required":["created","updated"],"properties":{"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}},"BackgroundJobStatus":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBackgroundJobStatus","description":"Status of a background job: ABORTED, FAILED, PENDING_REDRIVE, RUNNING, SUCCEEDED, or TIMED_OUT.","type":"string","enum":["ABORTED","FAILED","PENDING_REDRIVE","RUNNING","SUCCEEDED","TIMED_OUT"]},"TenantRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantRelationship","description":"A relationship to a tenant","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tenants"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data","links"],"additionalProperties":false},"LinksRelated":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILinks","description":"A JSON:API links object with an absolute or relative 'related' link","type":"object","required":["related"],"properties":{"related":{"type":"string"}},"additionalProperties":false},"UserRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IUserRelationship","description":"A relationship to the actor behind a write (e.g. `author`, `updatedBy`). `data.meta.type` is the actor type — a human user, an API key, or an internal service — and `links.related` is only present for human users, since API keys and services have no user resource to link to.","type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["users"]},"meta":{"type":"object","properties":{"tenantId":{"type":"string"},"type":{"type":"string"},"displayName":{"type":"string"}},"required":["tenantId","type","displayName"],"additionalProperties":false}},"required":["id","type","meta"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data"],"additionalProperties":false}}}}
```

## The BackgroundJobGetErrorsResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"BackgroundJobGetErrorsResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBackgroundJobGetErrorsResponse","description":"Response containing a presigned URL to download a zipped archive of a background job's per-item error files","type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"type":"object","required":["url","expiresInSeconds"],"additionalProperties":false,"properties":{"url":{"type":"string","format":"uri","description":"Presigned S3 URL to download the zipped error archive"},"expiresInSeconds":{"type":"integer","description":"Number of seconds until the presigned URL expires"}}}}}}}}
```

## The relationship object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"relationship":{"type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"type":"object","additionalProperties":false,"required":["type","id"],"properties":{"type":{"type":"string"},"id":{"type":"string"}}},"links":{"type":"object","additionalProperties":false,"properties":{"related":{"type":"string"}}}}}}}}
```

## The BackgroundJobItemFailure object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"BackgroundJobItemFailure":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBackgroundJobItemFailure","description":"One failed item of a background job, as a JSON:API resource. `id` is the producer's item key: the source index for data ingress (also the S3 error-file name), the record id for bulk edit. Each `errors` entry is one cause, shaped after the JSON:API error object: the underlying error's `status`/`title`/`detail` written verbatim (bulk edit), plus an optional `code` where the producer has a real vocabulary (ingress: IngressErrorType). Only `detail` is always present. `stage` names the pipeline stage that stopped the item for multi-stage producers (ingress: enumeration | mapping | recordWrite); single-stage producers omit it.","type":"object","additionalProperties":false,"required":["type","id","attributes"],"definitions":{"relationship":{"type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"type":"object","additionalProperties":false,"required":["type","id"],"properties":{"type":{"type":"string"},"id":{"type":"string"}}},"links":{"type":"object","additionalProperties":false,"properties":{"related":{"type":"string"}}}}}},"properties":{"type":{"type":"string","enum":["backgroundJobItemFailures"]},"id":{"type":"string"},"attributes":{"type":"object","additionalProperties":false,"required":["timestamp","errors"],"properties":{"label":{"type":"string","description":"Optional human-readable handle for the item (e.g. the upstream id)"},"timestamp":{"type":"string","description":"ISO 8601 timestamp of when the failure was recorded"},"stage":{"type":"string","description":"Pipeline stage that stopped the item; omitted by single-stage producers"},"errors":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["detail"],"properties":{"status":{"type":"integer","description":"HTTP status code of the underlying error, when the failure came from one"},"code":{"type":"string","description":"Machine-readable code, where the producer has a real vocabulary (ingress: IngressErrorType)"},"title":{"type":"string","description":"Short human-readable summary of the error class"},"detail":{"type":"string","description":"Human-readable explanation of the failure"}}}}}},"relationships":{"type":"object","additionalProperties":false,"properties":{"job":{"$ref":"#/components/schemas/relationship"},"tenant":{"$ref":"#/components/schemas/relationship"},"record":{"$ref":"#/components/schemas/relationship"}}}}},"relationship":{"type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"type":"object","additionalProperties":false,"required":["type","id"],"properties":{"type":{"type":"string"},"id":{"type":"string"}}},"links":{"type":"object","additionalProperties":false,"properties":{"related":{"type":"string"}}}}}}}}
```

## The BackgroundJobFailuresFindManyResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"BackgroundJobFailuresFindManyResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBackgroundJobFailuresFindManyResponse","description":"JSON:API listing of a background job's per-item failures — the S3 error files' data members with their resource meta omitted (the per-item debug detail travels via the downloadable archive, not the listing). Cursor-paginated via meta.cursor, matching the background-jobs listing; there is no backwards cursor (the underlying S3 listing cannot page backwards).","type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/BackgroundJobItemFailure"}},"meta":{"type":"object","properties":{"cursor":{"type":"string","description":"The cursor to use to get the next page of results"}},"additionalProperties":false}}},"BackgroundJobItemFailure":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBackgroundJobItemFailure","description":"One failed item of a background job, as a JSON:API resource. `id` is the producer's item key: the source index for data ingress (also the S3 error-file name), the record id for bulk edit. Each `errors` entry is one cause, shaped after the JSON:API error object: the underlying error's `status`/`title`/`detail` written verbatim (bulk edit), plus an optional `code` where the producer has a real vocabulary (ingress: IngressErrorType). Only `detail` is always present. `stage` names the pipeline stage that stopped the item for multi-stage producers (ingress: enumeration | mapping | recordWrite); single-stage producers omit it.","type":"object","additionalProperties":false,"required":["type","id","attributes"],"definitions":{"relationship":{"type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"type":"object","additionalProperties":false,"required":["type","id"],"properties":{"type":{"type":"string"},"id":{"type":"string"}}},"links":{"type":"object","additionalProperties":false,"properties":{"related":{"type":"string"}}}}}},"properties":{"type":{"type":"string","enum":["backgroundJobItemFailures"]},"id":{"type":"string"},"attributes":{"type":"object","additionalProperties":false,"required":["timestamp","errors"],"properties":{"label":{"type":"string","description":"Optional human-readable handle for the item (e.g. the upstream id)"},"timestamp":{"type":"string","description":"ISO 8601 timestamp of when the failure was recorded"},"stage":{"type":"string","description":"Pipeline stage that stopped the item; omitted by single-stage producers"},"errors":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["detail"],"properties":{"status":{"type":"integer","description":"HTTP status code of the underlying error, when the failure came from one"},"code":{"type":"string","description":"Machine-readable code, where the producer has a real vocabulary (ingress: IngressErrorType)"},"title":{"type":"string","description":"Short human-readable summary of the error class"},"detail":{"type":"string","description":"Human-readable explanation of the failure"}}}}}},"relationships":{"type":"object","additionalProperties":false,"properties":{"job":{"$ref":"#/components/schemas/relationship"},"tenant":{"$ref":"#/components/schemas/relationship"},"record":{"$ref":"#/components/schemas/relationship"}}}}},"relationship":{"type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"type":"object","additionalProperties":false,"required":["type","id"],"properties":{"type":{"type":"string"},"id":{"type":"string"}}},"links":{"type":"object","additionalProperties":false,"properties":{"related":{"type":"string"}}}}}}}}
```

## The ContributorResourceType object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"ContributorResourceType":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorResourceType","description":"JSON:API type discriminator for contributor resources. The `type` field is always `\"contributors\"`. Used as a base for contributor request and response shapes to enforce correct JSON:API resource typing.","type":"object","required":["type"],"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["contributors"]}}}}}}
```

## The ContributorAttributeName object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"ContributorAttributeName":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeName","description":"The contributor's display name. For most contributors this is their full name (e.g., 'John Doe'). Required when creating a contributor.","type":"string"}}}}
```

## The ContributorAttributeGender object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"ContributorAttributeGender":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeGender","description":"The contributor's gender. Sourced from the external metadata provider when the contributor originates from Origin.","type":"string","enum":["male","female"]}}}}
```

## The ContributorAttributeOriginRating object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"ContributorAttributeOriginRating":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeOriginRating","description":"A normalized popularity or relevance score for the contributor as provided by the Origin metadata provider. Higher values indicate greater prominence.","type":"number"}}}}
```

## The ContributorAttributeBirthDate object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"ContributorAttributeBirthDate":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeBirthDate","description":"The contributor's date of birth. Stored as a string to accommodate partial dates (year-only or year-month) as well as full ISO 8601 dates.","type":"string"}}}}
```

## The ContributorAttributeBirthName object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"ContributorAttributeBirthName":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeBirthName","description":"The contributor's birth name or legal name, if different from their primary display name (e.g., a stage name or alias is used as the primary name).","type":"string"}}}}
```

## The ContributorAttributeImage object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"ContributorAttributeImage":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeImage","description":"A profile image for the contributor. Contains the image URL and its pixel dimensions.","type":"object","required":["url","width","height"],"additionalProperties":false,"properties":{"url":{"type":"string","format":"uri","description":"The fully qualified URL of the profile image."},"width":{"type":"number","description":"The image width in pixels."},"height":{"type":"number","description":"The image height in pixels."}}}}}}
```

## The ContributorAttributeOriginNexusId object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"ContributorAttributeOriginNexusId":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeOriginNexusId","description":"The contributor's unique identifier in Origin Nexus. Used to link Origin Studio contributors to their corresponding Origin Nexus records and to sync updates.","type":"string"}}}}
```

## The ContributorAttributeImdbId object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"ContributorAttributeImdbId":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeImdbId","description":"The contributor's IMDb person ID (e.g., 'nm0000093'). Used for cross-referencing with the Internet Movie Database.","type":"string"}}}}
```

## The ContributorAttributeDataSource object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"ContributorAttributeDataSource":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeDataSource","description":"Indicates the origin of the contributor's data. `originNexus` means the record was ingested from Origin Nexus and may be updated by automated sync jobs. `custom` means the record was created manually by the tenant and is not subject to automated overwrites.","type":"string","enum":["originNexus","custom"]}}}}
```

## The ContributorAttributesInput object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"ContributorAttributesInput":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributesInput","description":"Editable attributes for a contributor, used as the base for both create and update request bodies. All fields are optional to support partial updates. Includes personal metadata (name, gender, birth details), cross-platform identifiers (IMDb, TMDB, Origin, Wikidata, social handles), profile image, localized descriptions, and data source indicator.","type":"object","required":[],"additionalProperties":false,"properties":{"name":{"$ref":"#/components/schemas/ContributorAttributeName"},"gender":{"$ref":"#/components/schemas/ContributorAttributeGender"},"originRating":{"$ref":"#/components/schemas/ContributorAttributeOriginRating"},"birthDate":{"$ref":"#/components/schemas/ContributorAttributeBirthDate"},"deathDate":{"type":"string","description":"The contributor's date of death, if applicable. Stored as a string to accommodate partial dates (year-only or year-month) as well as full ISO 8601 dates."},"birthName":{"$ref":"#/components/schemas/ContributorAttributeBirthName"},"image":{"$ref":"#/components/schemas/ContributorAttributeImage"},"altNames":{"type":"array","description":"A list of alternative names or known aliases for the contributor (e.g., stage names, maiden names, transliterations). Each value must be unique within the array.","items":{"type":"string"},"uniqueItems":true},"originNexusId":{"$ref":"#/components/schemas/ContributorAttributeOriginNexusId"},"tmdbId":{"type":"string","description":"The contributor's ID in The Movie Database (TMDB). Used for cross-referencing with TMDB person records."},"imdbId":{"$ref":"#/components/schemas/ContributorAttributeImdbId"},"facebookId":{"type":"string","description":"The contributor's Facebook profile identifier or username."},"instagramId":{"type":"string","description":"The contributor's Instagram handle or profile identifier."},"twitterId":{"type":"string","description":"The contributor's Twitter/X handle or profile identifier."},"freebaseMidId":{"type":"string","description":"The contributor's Freebase machine ID (MID), a stable identifier from the Freebase knowledge graph."},"freebaseId":{"type":"string","description":"The contributor's Freebase topic ID, a human-readable identifier from the Freebase knowledge graph."},"tvRageId":{"type":"string","description":"The contributor's ID on the TVRage database."},"tvMediaId":{"type":"string","description":"The contributor's ID in the TV Media database."},"wikiDataId":{"type":"string","description":"The contributor's Wikidata entity ID (e.g., `Q12345`). Used for cross-referencing with the Wikidata knowledge base."},"wikiMediaId":{"type":"string","description":"The contributor's Wikimedia Commons identifier, typically used for linking to media files hosted on Wikimedia."},"handIdentityId":{"type":"string","description":"The contributor's identifier in the HAND (Hollywood Accounting Network Database) system."},"descriptions":{"type":"array","description":"A list of localized biographical descriptions for the contributor, sourced from external providers. Each entry is keyed by a unique identifier and scoped to a locale.","items":{"type":"object","required":["key","value","locale","attribution"],"additionalProperties":false,"properties":{"key":{"type":"string","description":"A unique key identifying this description entry, typically the locale code or a provider-specific identifier."},"value":{"type":"string","description":"The biographical text content for this description."},"locale":{"type":"string","description":"BCP 47 language tag for the description's language (e.g., `en`, `fr`, `es`)."},"attribution":{"type":"string","description":"The name or identifier of the source providing this description (e.g., a data provider name)."}}}},"dataSource":{"$ref":"#/components/schemas/ContributorAttributeDataSource"}}},"ContributorAttributeName":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeName","description":"The contributor's display name. For most contributors this is their full name (e.g., 'John Doe'). Required when creating a contributor.","type":"string"},"ContributorAttributeGender":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeGender","description":"The contributor's gender. Sourced from the external metadata provider when the contributor originates from Origin.","type":"string","enum":["male","female"]},"ContributorAttributeOriginRating":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeOriginRating","description":"A normalized popularity or relevance score for the contributor as provided by the Origin metadata provider. Higher values indicate greater prominence.","type":"number"},"ContributorAttributeBirthDate":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeBirthDate","description":"The contributor's date of birth. Stored as a string to accommodate partial dates (year-only or year-month) as well as full ISO 8601 dates.","type":"string"},"ContributorAttributeBirthName":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeBirthName","description":"The contributor's birth name or legal name, if different from their primary display name (e.g., a stage name or alias is used as the primary name).","type":"string"},"ContributorAttributeImage":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeImage","description":"A profile image for the contributor. Contains the image URL and its pixel dimensions.","type":"object","required":["url","width","height"],"additionalProperties":false,"properties":{"url":{"type":"string","format":"uri","description":"The fully qualified URL of the profile image."},"width":{"type":"number","description":"The image width in pixels."},"height":{"type":"number","description":"The image height in pixels."}}},"ContributorAttributeOriginNexusId":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeOriginNexusId","description":"The contributor's unique identifier in Origin Nexus. Used to link Origin Studio contributors to their corresponding Origin Nexus records and to sync updates.","type":"string"},"ContributorAttributeImdbId":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeImdbId","description":"The contributor's IMDb person ID (e.g., 'nm0000093'). Used for cross-referencing with the Internet Movie Database.","type":"string"},"ContributorAttributeDataSource":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeDataSource","description":"Indicates the origin of the contributor's data. `originNexus` means the record was ingested from Origin Nexus and may be updated by automated sync jobs. `custom` means the record was created manually by the tenant and is not subject to automated overwrites.","type":"string","enum":["originNexus","custom"]}}}}
```

## The ContributorCreateOneRequest object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"ContributorCreateOneRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorCreateOneRequest","description":"Request body for creating a new contributor. Follows the JSON:API resource creation format with `type: 'contributors'` and an `attributes` object. The `name` field is required; all other attributes are optional. Set `dataSource` to `'custom'` for manually created contributors.","type":"object","properties":{"meta":{"$ref":"#/components/schemas/WriteRequestMeta"},"data":{"allOf":[{"$ref":"#/components/schemas/ContributorResourceType"},{"type":"object","required":["attributes"],"additionalProperties":false,"properties":{"attributes":{"allOf":[{"$ref":"#/components/schemas/ContributorAttributesInput"},{"type":"object","required":["name"],"additionalProperties":false,"properties":{"name":{"$ref":"#/components/schemas/ContributorAttributeName"},"dataSource":{"$ref":"#/components/schemas/ContributorAttributeDataSource"}}}]}}}]}},"required":["data"],"additionalProperties":false},"WriteRequestMeta":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IWriteRequestMeta","description":"Optional audit metadata for a write request. `audit.source` is the issuing surface/channel (e.g. studio-web, mcp, api, system); `audit.reason` is a free-text justification. Both are optional and length-capped.","type":"object","additionalProperties":false,"properties":{"audit":{"type":"object","additionalProperties":false,"properties":{"source":{"type":"string","maxLength":64},"reason":{"type":"string","maxLength":256}}}}},"ContributorResourceType":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorResourceType","description":"JSON:API type discriminator for contributor resources. The `type` field is always `\"contributors\"`. Used as a base for contributor request and response shapes to enforce correct JSON:API resource typing.","type":"object","required":["type"],"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["contributors"]}}},"ContributorAttributesInput":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributesInput","description":"Editable attributes for a contributor, used as the base for both create and update request bodies. All fields are optional to support partial updates. Includes personal metadata (name, gender, birth details), cross-platform identifiers (IMDb, TMDB, Origin, Wikidata, social handles), profile image, localized descriptions, and data source indicator.","type":"object","required":[],"additionalProperties":false,"properties":{"name":{"$ref":"#/components/schemas/ContributorAttributeName"},"gender":{"$ref":"#/components/schemas/ContributorAttributeGender"},"originRating":{"$ref":"#/components/schemas/ContributorAttributeOriginRating"},"birthDate":{"$ref":"#/components/schemas/ContributorAttributeBirthDate"},"deathDate":{"type":"string","description":"The contributor's date of death, if applicable. Stored as a string to accommodate partial dates (year-only or year-month) as well as full ISO 8601 dates."},"birthName":{"$ref":"#/components/schemas/ContributorAttributeBirthName"},"image":{"$ref":"#/components/schemas/ContributorAttributeImage"},"altNames":{"type":"array","description":"A list of alternative names or known aliases for the contributor (e.g., stage names, maiden names, transliterations). Each value must be unique within the array.","items":{"type":"string"},"uniqueItems":true},"originNexusId":{"$ref":"#/components/schemas/ContributorAttributeOriginNexusId"},"tmdbId":{"type":"string","description":"The contributor's ID in The Movie Database (TMDB). Used for cross-referencing with TMDB person records."},"imdbId":{"$ref":"#/components/schemas/ContributorAttributeImdbId"},"facebookId":{"type":"string","description":"The contributor's Facebook profile identifier or username."},"instagramId":{"type":"string","description":"The contributor's Instagram handle or profile identifier."},"twitterId":{"type":"string","description":"The contributor's Twitter/X handle or profile identifier."},"freebaseMidId":{"type":"string","description":"The contributor's Freebase machine ID (MID), a stable identifier from the Freebase knowledge graph."},"freebaseId":{"type":"string","description":"The contributor's Freebase topic ID, a human-readable identifier from the Freebase knowledge graph."},"tvRageId":{"type":"string","description":"The contributor's ID on the TVRage database."},"tvMediaId":{"type":"string","description":"The contributor's ID in the TV Media database."},"wikiDataId":{"type":"string","description":"The contributor's Wikidata entity ID (e.g., `Q12345`). Used for cross-referencing with the Wikidata knowledge base."},"wikiMediaId":{"type":"string","description":"The contributor's Wikimedia Commons identifier, typically used for linking to media files hosted on Wikimedia."},"handIdentityId":{"type":"string","description":"The contributor's identifier in the HAND (Hollywood Accounting Network Database) system."},"descriptions":{"type":"array","description":"A list of localized biographical descriptions for the contributor, sourced from external providers. Each entry is keyed by a unique identifier and scoped to a locale.","items":{"type":"object","required":["key","value","locale","attribution"],"additionalProperties":false,"properties":{"key":{"type":"string","description":"A unique key identifying this description entry, typically the locale code or a provider-specific identifier."},"value":{"type":"string","description":"The biographical text content for this description."},"locale":{"type":"string","description":"BCP 47 language tag for the description's language (e.g., `en`, `fr`, `es`)."},"attribution":{"type":"string","description":"The name or identifier of the source providing this description (e.g., a data provider name)."}}}},"dataSource":{"$ref":"#/components/schemas/ContributorAttributeDataSource"}}},"ContributorAttributeName":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeName","description":"The contributor's display name. For most contributors this is their full name (e.g., 'John Doe'). Required when creating a contributor.","type":"string"},"ContributorAttributeGender":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeGender","description":"The contributor's gender. Sourced from the external metadata provider when the contributor originates from Origin.","type":"string","enum":["male","female"]},"ContributorAttributeOriginRating":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeOriginRating","description":"A normalized popularity or relevance score for the contributor as provided by the Origin metadata provider. Higher values indicate greater prominence.","type":"number"},"ContributorAttributeBirthDate":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeBirthDate","description":"The contributor's date of birth. Stored as a string to accommodate partial dates (year-only or year-month) as well as full ISO 8601 dates.","type":"string"},"ContributorAttributeBirthName":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeBirthName","description":"The contributor's birth name or legal name, if different from their primary display name (e.g., a stage name or alias is used as the primary name).","type":"string"},"ContributorAttributeImage":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeImage","description":"A profile image for the contributor. Contains the image URL and its pixel dimensions.","type":"object","required":["url","width","height"],"additionalProperties":false,"properties":{"url":{"type":"string","format":"uri","description":"The fully qualified URL of the profile image."},"width":{"type":"number","description":"The image width in pixels."},"height":{"type":"number","description":"The image height in pixels."}}},"ContributorAttributeOriginNexusId":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeOriginNexusId","description":"The contributor's unique identifier in Origin Nexus. Used to link Origin Studio contributors to their corresponding Origin Nexus records and to sync updates.","type":"string"},"ContributorAttributeImdbId":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeImdbId","description":"The contributor's IMDb person ID (e.g., 'nm0000093'). Used for cross-referencing with the Internet Movie Database.","type":"string"},"ContributorAttributeDataSource":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeDataSource","description":"Indicates the origin of the contributor's data. `originNexus` means the record was ingested from Origin Nexus and may be updated by automated sync jobs. `custom` means the record was created manually by the tenant and is not subject to automated overwrites.","type":"string","enum":["originNexus","custom"]}}}}
```

## The ContributorAttributeStatus object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"ContributorAttributeStatus":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeStatus","description":"Lifecycle status of the contributor. `active` means the contributor is available for use. `pendingDeletion` means a delete job has been initiated and the contributor will be removed once all associated credits are cleaned up.","type":"string","enum":["active","pendingDeletion"]}}}}
```

## The ContributorAttributes object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"ContributorAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributes","description":"Full set of attributes for a stored contributor, combining all editable input fields with system-managed fields (status, dataSource) and base resource timestamps. Returned in contributor read and write responses.","allOf":[{"$ref":"#/components/schemas/ContributorAttributesInput"},{"$ref":"#/components/schemas/BaseResourceAttributes"},{"type":"object","required":["status"],"additionalProperties":false,"properties":{"status":{"$ref":"#/components/schemas/ContributorAttributeStatus"},"dataSource":{"$ref":"#/components/schemas/ContributorAttributeDataSource"}}}]},"ContributorAttributesInput":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributesInput","description":"Editable attributes for a contributor, used as the base for both create and update request bodies. All fields are optional to support partial updates. Includes personal metadata (name, gender, birth details), cross-platform identifiers (IMDb, TMDB, Origin, Wikidata, social handles), profile image, localized descriptions, and data source indicator.","type":"object","required":[],"additionalProperties":false,"properties":{"name":{"$ref":"#/components/schemas/ContributorAttributeName"},"gender":{"$ref":"#/components/schemas/ContributorAttributeGender"},"originRating":{"$ref":"#/components/schemas/ContributorAttributeOriginRating"},"birthDate":{"$ref":"#/components/schemas/ContributorAttributeBirthDate"},"deathDate":{"type":"string","description":"The contributor's date of death, if applicable. Stored as a string to accommodate partial dates (year-only or year-month) as well as full ISO 8601 dates."},"birthName":{"$ref":"#/components/schemas/ContributorAttributeBirthName"},"image":{"$ref":"#/components/schemas/ContributorAttributeImage"},"altNames":{"type":"array","description":"A list of alternative names or known aliases for the contributor (e.g., stage names, maiden names, transliterations). Each value must be unique within the array.","items":{"type":"string"},"uniqueItems":true},"originNexusId":{"$ref":"#/components/schemas/ContributorAttributeOriginNexusId"},"tmdbId":{"type":"string","description":"The contributor's ID in The Movie Database (TMDB). Used for cross-referencing with TMDB person records."},"imdbId":{"$ref":"#/components/schemas/ContributorAttributeImdbId"},"facebookId":{"type":"string","description":"The contributor's Facebook profile identifier or username."},"instagramId":{"type":"string","description":"The contributor's Instagram handle or profile identifier."},"twitterId":{"type":"string","description":"The contributor's Twitter/X handle or profile identifier."},"freebaseMidId":{"type":"string","description":"The contributor's Freebase machine ID (MID), a stable identifier from the Freebase knowledge graph."},"freebaseId":{"type":"string","description":"The contributor's Freebase topic ID, a human-readable identifier from the Freebase knowledge graph."},"tvRageId":{"type":"string","description":"The contributor's ID on the TVRage database."},"tvMediaId":{"type":"string","description":"The contributor's ID in the TV Media database."},"wikiDataId":{"type":"string","description":"The contributor's Wikidata entity ID (e.g., `Q12345`). Used for cross-referencing with the Wikidata knowledge base."},"wikiMediaId":{"type":"string","description":"The contributor's Wikimedia Commons identifier, typically used for linking to media files hosted on Wikimedia."},"handIdentityId":{"type":"string","description":"The contributor's identifier in the HAND (Hollywood Accounting Network Database) system."},"descriptions":{"type":"array","description":"A list of localized biographical descriptions for the contributor, sourced from external providers. Each entry is keyed by a unique identifier and scoped to a locale.","items":{"type":"object","required":["key","value","locale","attribution"],"additionalProperties":false,"properties":{"key":{"type":"string","description":"A unique key identifying this description entry, typically the locale code or a provider-specific identifier."},"value":{"type":"string","description":"The biographical text content for this description."},"locale":{"type":"string","description":"BCP 47 language tag for the description's language (e.g., `en`, `fr`, `es`)."},"attribution":{"type":"string","description":"The name or identifier of the source providing this description (e.g., a data provider name)."}}}},"dataSource":{"$ref":"#/components/schemas/ContributorAttributeDataSource"}}},"ContributorAttributeName":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeName","description":"The contributor's display name. For most contributors this is their full name (e.g., 'John Doe'). Required when creating a contributor.","type":"string"},"ContributorAttributeGender":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeGender","description":"The contributor's gender. Sourced from the external metadata provider when the contributor originates from Origin.","type":"string","enum":["male","female"]},"ContributorAttributeOriginRating":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeOriginRating","description":"A normalized popularity or relevance score for the contributor as provided by the Origin metadata provider. Higher values indicate greater prominence.","type":"number"},"ContributorAttributeBirthDate":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeBirthDate","description":"The contributor's date of birth. Stored as a string to accommodate partial dates (year-only or year-month) as well as full ISO 8601 dates.","type":"string"},"ContributorAttributeBirthName":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeBirthName","description":"The contributor's birth name or legal name, if different from their primary display name (e.g., a stage name or alias is used as the primary name).","type":"string"},"ContributorAttributeImage":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeImage","description":"A profile image for the contributor. Contains the image URL and its pixel dimensions.","type":"object","required":["url","width","height"],"additionalProperties":false,"properties":{"url":{"type":"string","format":"uri","description":"The fully qualified URL of the profile image."},"width":{"type":"number","description":"The image width in pixels."},"height":{"type":"number","description":"The image height in pixels."}}},"ContributorAttributeOriginNexusId":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeOriginNexusId","description":"The contributor's unique identifier in Origin Nexus. Used to link Origin Studio contributors to their corresponding Origin Nexus records and to sync updates.","type":"string"},"ContributorAttributeImdbId":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeImdbId","description":"The contributor's IMDb person ID (e.g., 'nm0000093'). Used for cross-referencing with the Internet Movie Database.","type":"string"},"ContributorAttributeDataSource":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeDataSource","description":"Indicates the origin of the contributor's data. `originNexus` means the record was ingested from Origin Nexus and may be updated by automated sync jobs. `custom` means the record was created manually by the tenant and is not subject to automated overwrites.","type":"string","enum":["originNexus","custom"]},"BaseResourceAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResourceAttributes","description":"Common timestamps present on all resource attribute objects. `created` is the ISO 8601 date-time when the resource was first created; `updated` is the date-time of the most recent modification.","type":"object","additionalProperties":false,"required":["created","updated"],"properties":{"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}},"ContributorAttributeStatus":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeStatus","description":"Lifecycle status of the contributor. `active` means the contributor is available for use. `pendingDeletion` means a delete job has been initiated and the contributor will be removed once all associated credits are cleaned up.","type":"string","enum":["active","pendingDeletion"]}}}}
```

## The ContributorRelationships object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"ContributorRelationships":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorRelationships","description":"JSON:API relationship links for a contributor resource. Currently contains the owning tenant relationship.","type":"object","properties":{"tenant":{"$ref":"#/components/schemas/TenantRelationship"}},"required":["tenant"],"additionalProperties":false},"TenantRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantRelationship","description":"A relationship to a tenant","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tenants"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data","links"],"additionalProperties":false},"LinksRelated":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILinks","description":"A JSON:API links object with an absolute or relative 'related' link","type":"object","required":["related"],"properties":{"related":{"type":"string"}},"additionalProperties":false}}}}
```

## The LinksSelf object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"LinksSelf":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILinksSelf","description":"A JSON:API links object with an absolute or relative 'self' link","type":"object","required":["self"],"properties":{"self":{"type":"string"}},"additionalProperties":false}}}}
```

## The ContributorCreateOneResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"ContributorCreateOneResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorCreateOneResponse","description":"Response returned after successfully creating a contributor. Contains the new contributor's ID, type, full attribute set, and relationship links to the owning tenant.","type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"allOf":[{"$ref":"#/components/schemas/ContributorResourceType"},{"type":"object","required":["id","type","attributes","relationships"],"additionalProperties":false,"properties":{"id":{"type":"string"},"attributes":{"$ref":"#/components/schemas/ContributorAttributes"},"relationships":{"$ref":"#/components/schemas/ContributorRelationships"},"links":{"$ref":"#/components/schemas/LinksSelf"}}}]}}},"ContributorResourceType":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorResourceType","description":"JSON:API type discriminator for contributor resources. The `type` field is always `\"contributors\"`. Used as a base for contributor request and response shapes to enforce correct JSON:API resource typing.","type":"object","required":["type"],"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["contributors"]}}},"ContributorAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributes","description":"Full set of attributes for a stored contributor, combining all editable input fields with system-managed fields (status, dataSource) and base resource timestamps. Returned in contributor read and write responses.","allOf":[{"$ref":"#/components/schemas/ContributorAttributesInput"},{"$ref":"#/components/schemas/BaseResourceAttributes"},{"type":"object","required":["status"],"additionalProperties":false,"properties":{"status":{"$ref":"#/components/schemas/ContributorAttributeStatus"},"dataSource":{"$ref":"#/components/schemas/ContributorAttributeDataSource"}}}]},"ContributorAttributesInput":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributesInput","description":"Editable attributes for a contributor, used as the base for both create and update request bodies. All fields are optional to support partial updates. Includes personal metadata (name, gender, birth details), cross-platform identifiers (IMDb, TMDB, Origin, Wikidata, social handles), profile image, localized descriptions, and data source indicator.","type":"object","required":[],"additionalProperties":false,"properties":{"name":{"$ref":"#/components/schemas/ContributorAttributeName"},"gender":{"$ref":"#/components/schemas/ContributorAttributeGender"},"originRating":{"$ref":"#/components/schemas/ContributorAttributeOriginRating"},"birthDate":{"$ref":"#/components/schemas/ContributorAttributeBirthDate"},"deathDate":{"type":"string","description":"The contributor's date of death, if applicable. Stored as a string to accommodate partial dates (year-only or year-month) as well as full ISO 8601 dates."},"birthName":{"$ref":"#/components/schemas/ContributorAttributeBirthName"},"image":{"$ref":"#/components/schemas/ContributorAttributeImage"},"altNames":{"type":"array","description":"A list of alternative names or known aliases for the contributor (e.g., stage names, maiden names, transliterations). Each value must be unique within the array.","items":{"type":"string"},"uniqueItems":true},"originNexusId":{"$ref":"#/components/schemas/ContributorAttributeOriginNexusId"},"tmdbId":{"type":"string","description":"The contributor's ID in The Movie Database (TMDB). Used for cross-referencing with TMDB person records."},"imdbId":{"$ref":"#/components/schemas/ContributorAttributeImdbId"},"facebookId":{"type":"string","description":"The contributor's Facebook profile identifier or username."},"instagramId":{"type":"string","description":"The contributor's Instagram handle or profile identifier."},"twitterId":{"type":"string","description":"The contributor's Twitter/X handle or profile identifier."},"freebaseMidId":{"type":"string","description":"The contributor's Freebase machine ID (MID), a stable identifier from the Freebase knowledge graph."},"freebaseId":{"type":"string","description":"The contributor's Freebase topic ID, a human-readable identifier from the Freebase knowledge graph."},"tvRageId":{"type":"string","description":"The contributor's ID on the TVRage database."},"tvMediaId":{"type":"string","description":"The contributor's ID in the TV Media database."},"wikiDataId":{"type":"string","description":"The contributor's Wikidata entity ID (e.g., `Q12345`). Used for cross-referencing with the Wikidata knowledge base."},"wikiMediaId":{"type":"string","description":"The contributor's Wikimedia Commons identifier, typically used for linking to media files hosted on Wikimedia."},"handIdentityId":{"type":"string","description":"The contributor's identifier in the HAND (Hollywood Accounting Network Database) system."},"descriptions":{"type":"array","description":"A list of localized biographical descriptions for the contributor, sourced from external providers. Each entry is keyed by a unique identifier and scoped to a locale.","items":{"type":"object","required":["key","value","locale","attribution"],"additionalProperties":false,"properties":{"key":{"type":"string","description":"A unique key identifying this description entry, typically the locale code or a provider-specific identifier."},"value":{"type":"string","description":"The biographical text content for this description."},"locale":{"type":"string","description":"BCP 47 language tag for the description's language (e.g., `en`, `fr`, `es`)."},"attribution":{"type":"string","description":"The name or identifier of the source providing this description (e.g., a data provider name)."}}}},"dataSource":{"$ref":"#/components/schemas/ContributorAttributeDataSource"}}},"ContributorAttributeName":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeName","description":"The contributor's display name. For most contributors this is their full name (e.g., 'John Doe'). Required when creating a contributor.","type":"string"},"ContributorAttributeGender":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeGender","description":"The contributor's gender. Sourced from the external metadata provider when the contributor originates from Origin.","type":"string","enum":["male","female"]},"ContributorAttributeOriginRating":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeOriginRating","description":"A normalized popularity or relevance score for the contributor as provided by the Origin metadata provider. Higher values indicate greater prominence.","type":"number"},"ContributorAttributeBirthDate":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeBirthDate","description":"The contributor's date of birth. Stored as a string to accommodate partial dates (year-only or year-month) as well as full ISO 8601 dates.","type":"string"},"ContributorAttributeBirthName":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeBirthName","description":"The contributor's birth name or legal name, if different from their primary display name (e.g., a stage name or alias is used as the primary name).","type":"string"},"ContributorAttributeImage":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeImage","description":"A profile image for the contributor. Contains the image URL and its pixel dimensions.","type":"object","required":["url","width","height"],"additionalProperties":false,"properties":{"url":{"type":"string","format":"uri","description":"The fully qualified URL of the profile image."},"width":{"type":"number","description":"The image width in pixels."},"height":{"type":"number","description":"The image height in pixels."}}},"ContributorAttributeOriginNexusId":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeOriginNexusId","description":"The contributor's unique identifier in Origin Nexus. Used to link Origin Studio contributors to their corresponding Origin Nexus records and to sync updates.","type":"string"},"ContributorAttributeImdbId":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeImdbId","description":"The contributor's IMDb person ID (e.g., 'nm0000093'). Used for cross-referencing with the Internet Movie Database.","type":"string"},"ContributorAttributeDataSource":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeDataSource","description":"Indicates the origin of the contributor's data. `originNexus` means the record was ingested from Origin Nexus and may be updated by automated sync jobs. `custom` means the record was created manually by the tenant and is not subject to automated overwrites.","type":"string","enum":["originNexus","custom"]},"BaseResourceAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResourceAttributes","description":"Common timestamps present on all resource attribute objects. `created` is the ISO 8601 date-time when the resource was first created; `updated` is the date-time of the most recent modification.","type":"object","additionalProperties":false,"required":["created","updated"],"properties":{"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}},"ContributorAttributeStatus":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeStatus","description":"Lifecycle status of the contributor. `active` means the contributor is available for use. `pendingDeletion` means a delete job has been initiated and the contributor will be removed once all associated credits are cleaned up.","type":"string","enum":["active","pendingDeletion"]},"ContributorRelationships":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorRelationships","description":"JSON:API relationship links for a contributor resource. Currently contains the owning tenant relationship.","type":"object","properties":{"tenant":{"$ref":"#/components/schemas/TenantRelationship"}},"required":["tenant"],"additionalProperties":false},"TenantRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantRelationship","description":"A relationship to a tenant","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tenants"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data","links"],"additionalProperties":false},"LinksRelated":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILinks","description":"A JSON:API links object with an absolute or relative 'related' link","type":"object","required":["related"],"properties":{"related":{"type":"string"}},"additionalProperties":false},"LinksSelf":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILinksSelf","description":"A JSON:API links object with an absolute or relative 'self' link","type":"object","required":["self"],"properties":{"self":{"type":"string"}},"additionalProperties":false}}}}
```

## The ContributorFindOneResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"ContributorFindOneResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorFindOneResponse","description":"Response returned when retrieving a single contributor by ID. Contains the full contributor resource including all attributes (name, identifiers, biography descriptions, image) and relationship links to the owning tenant.","type":"object","additionalProperties":false,"required":["data","links"],"properties":{"data":{"type":"object","required":["id","type","attributes","relationships"],"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"$ref":"#/components/schemas/ContributorResourceType"},"attributes":{"$ref":"#/components/schemas/ContributorAttributes"},"relationships":{"$ref":"#/components/schemas/ContributorRelationships"}}},"links":{"$ref":"#/components/schemas/LinksSelf"}}},"ContributorResourceType":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorResourceType","description":"JSON:API type discriminator for contributor resources. The `type` field is always `\"contributors\"`. Used as a base for contributor request and response shapes to enforce correct JSON:API resource typing.","type":"object","required":["type"],"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["contributors"]}}},"ContributorAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributes","description":"Full set of attributes for a stored contributor, combining all editable input fields with system-managed fields (status, dataSource) and base resource timestamps. Returned in contributor read and write responses.","allOf":[{"$ref":"#/components/schemas/ContributorAttributesInput"},{"$ref":"#/components/schemas/BaseResourceAttributes"},{"type":"object","required":["status"],"additionalProperties":false,"properties":{"status":{"$ref":"#/components/schemas/ContributorAttributeStatus"},"dataSource":{"$ref":"#/components/schemas/ContributorAttributeDataSource"}}}]},"ContributorAttributesInput":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributesInput","description":"Editable attributes for a contributor, used as the base for both create and update request bodies. All fields are optional to support partial updates. Includes personal metadata (name, gender, birth details), cross-platform identifiers (IMDb, TMDB, Origin, Wikidata, social handles), profile image, localized descriptions, and data source indicator.","type":"object","required":[],"additionalProperties":false,"properties":{"name":{"$ref":"#/components/schemas/ContributorAttributeName"},"gender":{"$ref":"#/components/schemas/ContributorAttributeGender"},"originRating":{"$ref":"#/components/schemas/ContributorAttributeOriginRating"},"birthDate":{"$ref":"#/components/schemas/ContributorAttributeBirthDate"},"deathDate":{"type":"string","description":"The contributor's date of death, if applicable. Stored as a string to accommodate partial dates (year-only or year-month) as well as full ISO 8601 dates."},"birthName":{"$ref":"#/components/schemas/ContributorAttributeBirthName"},"image":{"$ref":"#/components/schemas/ContributorAttributeImage"},"altNames":{"type":"array","description":"A list of alternative names or known aliases for the contributor (e.g., stage names, maiden names, transliterations). Each value must be unique within the array.","items":{"type":"string"},"uniqueItems":true},"originNexusId":{"$ref":"#/components/schemas/ContributorAttributeOriginNexusId"},"tmdbId":{"type":"string","description":"The contributor's ID in The Movie Database (TMDB). Used for cross-referencing with TMDB person records."},"imdbId":{"$ref":"#/components/schemas/ContributorAttributeImdbId"},"facebookId":{"type":"string","description":"The contributor's Facebook profile identifier or username."},"instagramId":{"type":"string","description":"The contributor's Instagram handle or profile identifier."},"twitterId":{"type":"string","description":"The contributor's Twitter/X handle or profile identifier."},"freebaseMidId":{"type":"string","description":"The contributor's Freebase machine ID (MID), a stable identifier from the Freebase knowledge graph."},"freebaseId":{"type":"string","description":"The contributor's Freebase topic ID, a human-readable identifier from the Freebase knowledge graph."},"tvRageId":{"type":"string","description":"The contributor's ID on the TVRage database."},"tvMediaId":{"type":"string","description":"The contributor's ID in the TV Media database."},"wikiDataId":{"type":"string","description":"The contributor's Wikidata entity ID (e.g., `Q12345`). Used for cross-referencing with the Wikidata knowledge base."},"wikiMediaId":{"type":"string","description":"The contributor's Wikimedia Commons identifier, typically used for linking to media files hosted on Wikimedia."},"handIdentityId":{"type":"string","description":"The contributor's identifier in the HAND (Hollywood Accounting Network Database) system."},"descriptions":{"type":"array","description":"A list of localized biographical descriptions for the contributor, sourced from external providers. Each entry is keyed by a unique identifier and scoped to a locale.","items":{"type":"object","required":["key","value","locale","attribution"],"additionalProperties":false,"properties":{"key":{"type":"string","description":"A unique key identifying this description entry, typically the locale code or a provider-specific identifier."},"value":{"type":"string","description":"The biographical text content for this description."},"locale":{"type":"string","description":"BCP 47 language tag for the description's language (e.g., `en`, `fr`, `es`)."},"attribution":{"type":"string","description":"The name or identifier of the source providing this description (e.g., a data provider name)."}}}},"dataSource":{"$ref":"#/components/schemas/ContributorAttributeDataSource"}}},"ContributorAttributeName":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeName","description":"The contributor's display name. For most contributors this is their full name (e.g., 'John Doe'). Required when creating a contributor.","type":"string"},"ContributorAttributeGender":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeGender","description":"The contributor's gender. Sourced from the external metadata provider when the contributor originates from Origin.","type":"string","enum":["male","female"]},"ContributorAttributeOriginRating":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeOriginRating","description":"A normalized popularity or relevance score for the contributor as provided by the Origin metadata provider. Higher values indicate greater prominence.","type":"number"},"ContributorAttributeBirthDate":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeBirthDate","description":"The contributor's date of birth. Stored as a string to accommodate partial dates (year-only or year-month) as well as full ISO 8601 dates.","type":"string"},"ContributorAttributeBirthName":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeBirthName","description":"The contributor's birth name or legal name, if different from their primary display name (e.g., a stage name or alias is used as the primary name).","type":"string"},"ContributorAttributeImage":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeImage","description":"A profile image for the contributor. Contains the image URL and its pixel dimensions.","type":"object","required":["url","width","height"],"additionalProperties":false,"properties":{"url":{"type":"string","format":"uri","description":"The fully qualified URL of the profile image."},"width":{"type":"number","description":"The image width in pixels."},"height":{"type":"number","description":"The image height in pixels."}}},"ContributorAttributeOriginNexusId":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeOriginNexusId","description":"The contributor's unique identifier in Origin Nexus. Used to link Origin Studio contributors to their corresponding Origin Nexus records and to sync updates.","type":"string"},"ContributorAttributeImdbId":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeImdbId","description":"The contributor's IMDb person ID (e.g., 'nm0000093'). Used for cross-referencing with the Internet Movie Database.","type":"string"},"ContributorAttributeDataSource":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeDataSource","description":"Indicates the origin of the contributor's data. `originNexus` means the record was ingested from Origin Nexus and may be updated by automated sync jobs. `custom` means the record was created manually by the tenant and is not subject to automated overwrites.","type":"string","enum":["originNexus","custom"]},"BaseResourceAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResourceAttributes","description":"Common timestamps present on all resource attribute objects. `created` is the ISO 8601 date-time when the resource was first created; `updated` is the date-time of the most recent modification.","type":"object","additionalProperties":false,"required":["created","updated"],"properties":{"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}},"ContributorAttributeStatus":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeStatus","description":"Lifecycle status of the contributor. `active` means the contributor is available for use. `pendingDeletion` means a delete job has been initiated and the contributor will be removed once all associated credits are cleaned up.","type":"string","enum":["active","pendingDeletion"]},"ContributorRelationships":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorRelationships","description":"JSON:API relationship links for a contributor resource. Currently contains the owning tenant relationship.","type":"object","properties":{"tenant":{"$ref":"#/components/schemas/TenantRelationship"}},"required":["tenant"],"additionalProperties":false},"TenantRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantRelationship","description":"A relationship to a tenant","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tenants"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data","links"],"additionalProperties":false},"LinksRelated":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILinks","description":"A JSON:API links object with an absolute or relative 'related' link","type":"object","required":["related"],"properties":{"related":{"type":"string"}},"additionalProperties":false},"LinksSelf":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILinksSelf","description":"A JSON:API links object with an absolute or relative 'self' link","type":"object","required":["self"],"properties":{"self":{"type":"string"}},"additionalProperties":false}}}}
```

## The ContributorUpdateOneRequest object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"ContributorUpdateOneRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorUpdateOneRequest","description":"Request body for partially updating an existing contributor. All attribute fields are optional; only the fields present in the request body are modified. Follows the JSON:API PATCH format with `type: 'contributors'`.","type":"object","properties":{"meta":{"$ref":"#/components/schemas/WriteRequestMeta"},"data":{"allOf":[{"$ref":"#/components/schemas/ContributorResourceType"},{"type":"object","required":["attributes"],"additionalProperties":false,"properties":{"attributes":{"$ref":"#/components/schemas/ContributorAttributesInput"}}}]}},"required":["data"],"additionalProperties":false},"WriteRequestMeta":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IWriteRequestMeta","description":"Optional audit metadata for a write request. `audit.source` is the issuing surface/channel (e.g. studio-web, mcp, api, system); `audit.reason` is a free-text justification. Both are optional and length-capped.","type":"object","additionalProperties":false,"properties":{"audit":{"type":"object","additionalProperties":false,"properties":{"source":{"type":"string","maxLength":64},"reason":{"type":"string","maxLength":256}}}}},"ContributorResourceType":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorResourceType","description":"JSON:API type discriminator for contributor resources. The `type` field is always `\"contributors\"`. Used as a base for contributor request and response shapes to enforce correct JSON:API resource typing.","type":"object","required":["type"],"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["contributors"]}}},"ContributorAttributesInput":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributesInput","description":"Editable attributes for a contributor, used as the base for both create and update request bodies. All fields are optional to support partial updates. Includes personal metadata (name, gender, birth details), cross-platform identifiers (IMDb, TMDB, Origin, Wikidata, social handles), profile image, localized descriptions, and data source indicator.","type":"object","required":[],"additionalProperties":false,"properties":{"name":{"$ref":"#/components/schemas/ContributorAttributeName"},"gender":{"$ref":"#/components/schemas/ContributorAttributeGender"},"originRating":{"$ref":"#/components/schemas/ContributorAttributeOriginRating"},"birthDate":{"$ref":"#/components/schemas/ContributorAttributeBirthDate"},"deathDate":{"type":"string","description":"The contributor's date of death, if applicable. Stored as a string to accommodate partial dates (year-only or year-month) as well as full ISO 8601 dates."},"birthName":{"$ref":"#/components/schemas/ContributorAttributeBirthName"},"image":{"$ref":"#/components/schemas/ContributorAttributeImage"},"altNames":{"type":"array","description":"A list of alternative names or known aliases for the contributor (e.g., stage names, maiden names, transliterations). Each value must be unique within the array.","items":{"type":"string"},"uniqueItems":true},"originNexusId":{"$ref":"#/components/schemas/ContributorAttributeOriginNexusId"},"tmdbId":{"type":"string","description":"The contributor's ID in The Movie Database (TMDB). Used for cross-referencing with TMDB person records."},"imdbId":{"$ref":"#/components/schemas/ContributorAttributeImdbId"},"facebookId":{"type":"string","description":"The contributor's Facebook profile identifier or username."},"instagramId":{"type":"string","description":"The contributor's Instagram handle or profile identifier."},"twitterId":{"type":"string","description":"The contributor's Twitter/X handle or profile identifier."},"freebaseMidId":{"type":"string","description":"The contributor's Freebase machine ID (MID), a stable identifier from the Freebase knowledge graph."},"freebaseId":{"type":"string","description":"The contributor's Freebase topic ID, a human-readable identifier from the Freebase knowledge graph."},"tvRageId":{"type":"string","description":"The contributor's ID on the TVRage database."},"tvMediaId":{"type":"string","description":"The contributor's ID in the TV Media database."},"wikiDataId":{"type":"string","description":"The contributor's Wikidata entity ID (e.g., `Q12345`). Used for cross-referencing with the Wikidata knowledge base."},"wikiMediaId":{"type":"string","description":"The contributor's Wikimedia Commons identifier, typically used for linking to media files hosted on Wikimedia."},"handIdentityId":{"type":"string","description":"The contributor's identifier in the HAND (Hollywood Accounting Network Database) system."},"descriptions":{"type":"array","description":"A list of localized biographical descriptions for the contributor, sourced from external providers. Each entry is keyed by a unique identifier and scoped to a locale.","items":{"type":"object","required":["key","value","locale","attribution"],"additionalProperties":false,"properties":{"key":{"type":"string","description":"A unique key identifying this description entry, typically the locale code or a provider-specific identifier."},"value":{"type":"string","description":"The biographical text content for this description."},"locale":{"type":"string","description":"BCP 47 language tag for the description's language (e.g., `en`, `fr`, `es`)."},"attribution":{"type":"string","description":"The name or identifier of the source providing this description (e.g., a data provider name)."}}}},"dataSource":{"$ref":"#/components/schemas/ContributorAttributeDataSource"}}},"ContributorAttributeName":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeName","description":"The contributor's display name. For most contributors this is their full name (e.g., 'John Doe'). Required when creating a contributor.","type":"string"},"ContributorAttributeGender":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeGender","description":"The contributor's gender. Sourced from the external metadata provider when the contributor originates from Origin.","type":"string","enum":["male","female"]},"ContributorAttributeOriginRating":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeOriginRating","description":"A normalized popularity or relevance score for the contributor as provided by the Origin metadata provider. Higher values indicate greater prominence.","type":"number"},"ContributorAttributeBirthDate":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeBirthDate","description":"The contributor's date of birth. Stored as a string to accommodate partial dates (year-only or year-month) as well as full ISO 8601 dates.","type":"string"},"ContributorAttributeBirthName":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeBirthName","description":"The contributor's birth name or legal name, if different from their primary display name (e.g., a stage name or alias is used as the primary name).","type":"string"},"ContributorAttributeImage":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeImage","description":"A profile image for the contributor. Contains the image URL and its pixel dimensions.","type":"object","required":["url","width","height"],"additionalProperties":false,"properties":{"url":{"type":"string","format":"uri","description":"The fully qualified URL of the profile image."},"width":{"type":"number","description":"The image width in pixels."},"height":{"type":"number","description":"The image height in pixels."}}},"ContributorAttributeOriginNexusId":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeOriginNexusId","description":"The contributor's unique identifier in Origin Nexus. Used to link Origin Studio contributors to their corresponding Origin Nexus records and to sync updates.","type":"string"},"ContributorAttributeImdbId":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeImdbId","description":"The contributor's IMDb person ID (e.g., 'nm0000093'). Used for cross-referencing with the Internet Movie Database.","type":"string"},"ContributorAttributeDataSource":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeDataSource","description":"Indicates the origin of the contributor's data. `originNexus` means the record was ingested from Origin Nexus and may be updated by automated sync jobs. `custom` means the record was created manually by the tenant and is not subject to automated overwrites.","type":"string","enum":["originNexus","custom"]}}}}
```

## The IContributorOperator object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"IContributorOperator":{"type":"string","description":"The operator to use for a search condition. eq — exact match. ne — exact exclusion; a record with NO value for the field satisfies ne. contains — substring/token match. not_contains — negation of contains, with the same 'no value satisfies the negation' semantics as ne. starts_with — prefix match. lt/lte/gt/gte — numeric or date range comparisons. exists — field has any non-null value. not_exists — field is absent or null.","enum":["eq","ne","contains","not_contains","starts_with","lt","lte","gt","gte","exists","not_exists"]}}}}
```

## The IContributorCondition object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"IContributorCondition":{"type":"object","properties":{"field":{"type":"string","enum":["id","name","gender","originRating","birthDate","birthName","originNexusId","imdbId","status","dataSource"]},"operator":{"$ref":"#/components/schemas/IContributorOperator"},"value":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"}]}},"required":["field","operator"],"additionalProperties":false},"IContributorOperator":{"type":"string","description":"The operator to use for a search condition. eq — exact match. ne — exact exclusion; a record with NO value for the field satisfies ne. contains — substring/token match. not_contains — negation of contains, with the same 'no value satisfies the negation' semantics as ne. starts_with — prefix match. lt/lte/gt/gte — numeric or date range comparisons. exists — field has any non-null value. not_exists — field is absent or null.","enum":["eq","ne","contains","not_contains","starts_with","lt","lte","gt","gte","exists","not_exists"]}}}}
```

## The IContributorQueryGroup object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"IContributorQueryGroup":{"type":"object","properties":{"operator":{"type":"string","enum":["AND","OR","NOT"]},"conditions":{"type":"array","items":{"$ref":"#/components/schemas/IContributorCondition"}},"groups":{"type":"array","items":{"$ref":"#/components/schemas/IContributorQueryGroup"}}},"required":["operator"],"anyOf":[{"required":["conditions"]},{"required":["groups"]}],"additionalProperties":false},"IContributorCondition":{"type":"object","properties":{"field":{"type":"string","enum":["id","name","gender","originRating","birthDate","birthName","originNexusId","imdbId","status","dataSource"]},"operator":{"$ref":"#/components/schemas/IContributorOperator"},"value":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"}]}},"required":["field","operator"],"additionalProperties":false},"IContributorOperator":{"type":"string","description":"The operator to use for a search condition. eq — exact match. ne — exact exclusion; a record with NO value for the field satisfies ne. contains — substring/token match. not_contains — negation of contains, with the same 'no value satisfies the negation' semantics as ne. starts_with — prefix match. lt/lte/gt/gte — numeric or date range comparisons. exists — field has any non-null value. not_exists — field is absent or null.","enum":["eq","ne","contains","not_contains","starts_with","lt","lte","gt","gte","exists","not_exists"]}}}}
```

## The ContributorSearchRequest object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"ContributorSearchRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorSearchRequest","description":"Request body for searching contributors. Queries are expressed as a tree of condition groups combined with boolean operators (AND, OR, NOT). Each leaf condition targets a specific contributor field using a comparison operator and value. Nested groups allow for arbitrarily complex query logic.","type":"object","properties":{"meta":{"$ref":"#/components/schemas/WriteRequestMeta"},"data":{"type":"object","properties":{"type":{"type":"string","enum":["searchQueries"]},"attributes":{"type":"object","properties":{"group":{"$ref":"#/components/schemas/IContributorQueryGroup"}},"required":["group"],"additionalProperties":false}},"required":["type","attributes"],"additionalProperties":false}},"required":["data"],"additionalProperties":false,"definitions":{"IContributorOperator":{"type":"string","description":"The operator to use for a search condition. eq — exact match. ne — exact exclusion; a record with NO value for the field satisfies ne. contains — substring/token match. not_contains — negation of contains, with the same 'no value satisfies the negation' semantics as ne. starts_with — prefix match. lt/lte/gt/gte — numeric or date range comparisons. exists — field has any non-null value. not_exists — field is absent or null.","enum":["eq","ne","contains","not_contains","starts_with","lt","lte","gt","gte","exists","not_exists"]},"IContributorCondition":{"type":"object","properties":{"field":{"type":"string","enum":["id","name","gender","originRating","birthDate","birthName","originNexusId","imdbId","status","dataSource"]},"operator":{"$ref":"#/components/schemas/IContributorOperator"},"value":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"}]}},"required":["field","operator"],"additionalProperties":false},"IContributorQueryGroup":{"type":"object","properties":{"operator":{"type":"string","enum":["AND","OR","NOT"]},"conditions":{"type":"array","items":{"$ref":"#/components/schemas/IContributorCondition"}},"groups":{"type":"array","items":{"$ref":"#/components/schemas/IContributorQueryGroup"}}},"required":["operator"],"anyOf":[{"required":["conditions"]},{"required":["groups"]}],"additionalProperties":false}}},"WriteRequestMeta":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IWriteRequestMeta","description":"Optional audit metadata for a write request. `audit.source` is the issuing surface/channel (e.g. studio-web, mcp, api, system); `audit.reason` is a free-text justification. Both are optional and length-capped.","type":"object","additionalProperties":false,"properties":{"audit":{"type":"object","additionalProperties":false,"properties":{"source":{"type":"string","maxLength":64},"reason":{"type":"string","maxLength":256}}}}},"IContributorQueryGroup":{"type":"object","properties":{"operator":{"type":"string","enum":["AND","OR","NOT"]},"conditions":{"type":"array","items":{"$ref":"#/components/schemas/IContributorCondition"}},"groups":{"type":"array","items":{"$ref":"#/components/schemas/IContributorQueryGroup"}}},"required":["operator"],"anyOf":[{"required":["conditions"]},{"required":["groups"]}],"additionalProperties":false},"IContributorCondition":{"type":"object","properties":{"field":{"type":"string","enum":["id","name","gender","originRating","birthDate","birthName","originNexusId","imdbId","status","dataSource"]},"operator":{"$ref":"#/components/schemas/IContributorOperator"},"value":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"}]}},"required":["field","operator"],"additionalProperties":false},"IContributorOperator":{"type":"string","description":"The operator to use for a search condition. eq — exact match. ne — exact exclusion; a record with NO value for the field satisfies ne. contains — substring/token match. not_contains — negation of contains, with the same 'no value satisfies the negation' semantics as ne. starts_with — prefix match. lt/lte/gt/gte — numeric or date range comparisons. exists — field has any non-null value. not_exists — field is absent or null.","enum":["eq","ne","contains","not_contains","starts_with","lt","lte","gt","gte","exists","not_exists"]}}}}
```

## The ContributorAttributesOpenSearchResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"ContributorAttributesOpenSearchResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributesOpenSearchResponse","description":"Contributor attribute fields returned in search results. Contains the core contributor metadata fields (name, gender, dates, identifiers, status) as indexed by the search engine. Used as the `attributes` object within each search result item.","allOf":[{"type":"object","required":["name","status","dataSource"],"additionalProperties":false,"properties":{"name":{"$ref":"#/components/schemas/ContributorAttributeName"},"gender":{"$ref":"#/components/schemas/ContributorAttributeGender"},"originRating":{"$ref":"#/components/schemas/ContributorAttributeOriginRating"},"birthDate":{"$ref":"#/components/schemas/ContributorAttributeBirthDate"},"birthName":{"$ref":"#/components/schemas/ContributorAttributeBirthName"},"originNexusId":{"$ref":"#/components/schemas/ContributorAttributeOriginNexusId"},"imdbId":{"$ref":"#/components/schemas/ContributorAttributeImdbId"},"status":{"$ref":"#/components/schemas/ContributorAttributeStatus"},"dataSource":{"$ref":"#/components/schemas/ContributorAttributeDataSource"},"image":{"$ref":"#/components/schemas/ContributorAttributeImage"}}}]},"ContributorAttributeName":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeName","description":"The contributor's display name. For most contributors this is their full name (e.g., 'John Doe'). Required when creating a contributor.","type":"string"},"ContributorAttributeGender":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeGender","description":"The contributor's gender. Sourced from the external metadata provider when the contributor originates from Origin.","type":"string","enum":["male","female"]},"ContributorAttributeOriginRating":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeOriginRating","description":"A normalized popularity or relevance score for the contributor as provided by the Origin metadata provider. Higher values indicate greater prominence.","type":"number"},"ContributorAttributeBirthDate":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeBirthDate","description":"The contributor's date of birth. Stored as a string to accommodate partial dates (year-only or year-month) as well as full ISO 8601 dates.","type":"string"},"ContributorAttributeBirthName":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeBirthName","description":"The contributor's birth name or legal name, if different from their primary display name (e.g., a stage name or alias is used as the primary name).","type":"string"},"ContributorAttributeOriginNexusId":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeOriginNexusId","description":"The contributor's unique identifier in Origin Nexus. Used to link Origin Studio contributors to their corresponding Origin Nexus records and to sync updates.","type":"string"},"ContributorAttributeImdbId":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeImdbId","description":"The contributor's IMDb person ID (e.g., 'nm0000093'). Used for cross-referencing with the Internet Movie Database.","type":"string"},"ContributorAttributeStatus":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeStatus","description":"Lifecycle status of the contributor. `active` means the contributor is available for use. `pendingDeletion` means a delete job has been initiated and the contributor will be removed once all associated credits are cleaned up.","type":"string","enum":["active","pendingDeletion"]},"ContributorAttributeDataSource":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeDataSource","description":"Indicates the origin of the contributor's data. `originNexus` means the record was ingested from Origin Nexus and may be updated by automated sync jobs. `custom` means the record was created manually by the tenant and is not subject to automated overwrites.","type":"string","enum":["originNexus","custom"]},"ContributorAttributeImage":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeImage","description":"A profile image for the contributor. Contains the image URL and its pixel dimensions.","type":"object","required":["url","width","height"],"additionalProperties":false,"properties":{"url":{"type":"string","format":"uri","description":"The fully qualified URL of the profile image."},"width":{"type":"number","description":"The image width in pixels."},"height":{"type":"number","description":"The image height in pixels."}}}}}}
```

## The ContributorSearchResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"ContributorSearchResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorSearchResponse","description":"Response returned by the contributor search endpoint. Contains a paginated array of JSON:API contributor resources with their search-indexed attributes and relationships. The `meta` object includes pagination details (total count, current page, per-page size) and optional relevance scoring metadata.","type":"object","properties":{"data":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/ContributorResourceType"},{"type":"object","required":["id","attributes","relationships"],"additionalProperties":false,"properties":{"id":{"type":"string"},"attributes":{"$ref":"#/components/schemas/ContributorAttributesOpenSearchResponse"},"relationships":{"$ref":"#/components/schemas/ContributorRelationships"}}}],"additionalProperties":false},"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"},"next":{"type":["string","null"]},"prev":{"type":["string","null"]}},"additionalProperties":false},"meta":{"type":"object","properties":{"total":{"type":"integer"},"page":{"type":"integer"},"perPage":{"type":"integer"},"openSearch":{"type":"object","additionalProperties":false,"properties":{"_id":{"type":"string"},"_index":{"type":"string"},"_score":{"type":"number"}}}},"required":["total","page","perPage"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false},"ContributorResourceType":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorResourceType","description":"JSON:API type discriminator for contributor resources. The `type` field is always `\"contributors\"`. Used as a base for contributor request and response shapes to enforce correct JSON:API resource typing.","type":"object","required":["type"],"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["contributors"]}}},"ContributorAttributesOpenSearchResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributesOpenSearchResponse","description":"Contributor attribute fields returned in search results. Contains the core contributor metadata fields (name, gender, dates, identifiers, status) as indexed by the search engine. Used as the `attributes` object within each search result item.","allOf":[{"type":"object","required":["name","status","dataSource"],"additionalProperties":false,"properties":{"name":{"$ref":"#/components/schemas/ContributorAttributeName"},"gender":{"$ref":"#/components/schemas/ContributorAttributeGender"},"originRating":{"$ref":"#/components/schemas/ContributorAttributeOriginRating"},"birthDate":{"$ref":"#/components/schemas/ContributorAttributeBirthDate"},"birthName":{"$ref":"#/components/schemas/ContributorAttributeBirthName"},"originNexusId":{"$ref":"#/components/schemas/ContributorAttributeOriginNexusId"},"imdbId":{"$ref":"#/components/schemas/ContributorAttributeImdbId"},"status":{"$ref":"#/components/schemas/ContributorAttributeStatus"},"dataSource":{"$ref":"#/components/schemas/ContributorAttributeDataSource"},"image":{"$ref":"#/components/schemas/ContributorAttributeImage"}}}]},"ContributorAttributeName":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeName","description":"The contributor's display name. For most contributors this is their full name (e.g., 'John Doe'). Required when creating a contributor.","type":"string"},"ContributorAttributeGender":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeGender","description":"The contributor's gender. Sourced from the external metadata provider when the contributor originates from Origin.","type":"string","enum":["male","female"]},"ContributorAttributeOriginRating":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeOriginRating","description":"A normalized popularity or relevance score for the contributor as provided by the Origin metadata provider. Higher values indicate greater prominence.","type":"number"},"ContributorAttributeBirthDate":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeBirthDate","description":"The contributor's date of birth. Stored as a string to accommodate partial dates (year-only or year-month) as well as full ISO 8601 dates.","type":"string"},"ContributorAttributeBirthName":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeBirthName","description":"The contributor's birth name or legal name, if different from their primary display name (e.g., a stage name or alias is used as the primary name).","type":"string"},"ContributorAttributeOriginNexusId":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeOriginNexusId","description":"The contributor's unique identifier in Origin Nexus. Used to link Origin Studio contributors to their corresponding Origin Nexus records and to sync updates.","type":"string"},"ContributorAttributeImdbId":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeImdbId","description":"The contributor's IMDb person ID (e.g., 'nm0000093'). Used for cross-referencing with the Internet Movie Database.","type":"string"},"ContributorAttributeStatus":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeStatus","description":"Lifecycle status of the contributor. `active` means the contributor is available for use. `pendingDeletion` means a delete job has been initiated and the contributor will be removed once all associated credits are cleaned up.","type":"string","enum":["active","pendingDeletion"]},"ContributorAttributeDataSource":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeDataSource","description":"Indicates the origin of the contributor's data. `originNexus` means the record was ingested from Origin Nexus and may be updated by automated sync jobs. `custom` means the record was created manually by the tenant and is not subject to automated overwrites.","type":"string","enum":["originNexus","custom"]},"ContributorAttributeImage":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorAttributeImage","description":"A profile image for the contributor. Contains the image URL and its pixel dimensions.","type":"object","required":["url","width","height"],"additionalProperties":false,"properties":{"url":{"type":"string","format":"uri","description":"The fully qualified URL of the profile image."},"width":{"type":"number","description":"The image width in pixels."},"height":{"type":"number","description":"The image height in pixels."}}},"ContributorRelationships":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorRelationships","description":"JSON:API relationship links for a contributor resource. Currently contains the owning tenant relationship.","type":"object","properties":{"tenant":{"$ref":"#/components/schemas/TenantRelationship"}},"required":["tenant"],"additionalProperties":false},"TenantRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantRelationship","description":"A relationship to a tenant","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tenants"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data","links"],"additionalProperties":false},"LinksRelated":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILinks","description":"A JSON:API links object with an absolute or relative 'related' link","type":"object","required":["related"],"properties":{"related":{"type":"string"}},"additionalProperties":false}}}}
```

## The BaseCreateRequest object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"BaseCreateRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseCreateRequest","description":"Base JSON:API shape for create requests. The `type` field is required and must match the target resource type. The `id` field is optional; if omitted, the server generates a unique ID for the new resource.","type":"object","additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"type":"string"}},"required":["type"]}}}}
```

## The ContributorDeleteJobParameters object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"ContributorDeleteJobParameters":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorDeleteJobParameters","description":"Parameters for the `deleteContributor` background job. Specifies the unique ID of the contributor to be permanently deleted along with all associated credits.","type":"object","properties":{"contributorId":{"type":"string"}},"required":["contributorId"],"additionalProperties":false}}}}
```

## The ContributorJobCreateOneRequest object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"ContributorJobCreateOneRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorJobCreateOneRequest","description":"Request body for creating a new contributor background job. Currently supports only the `deleteContributor` job type, which accepts the target contributor's ID as a parameter.","type":"object","properties":{"meta":{"$ref":"#/components/schemas/WriteRequestMeta"},"data":{"allOf":[{"$ref":"#/components/schemas/BaseCreateRequest"},{"type":"object","properties":{"attributes":{"type":"object","properties":{"type":{"type":"string","enum":["deleteContributor"]},"parameters":{"$ref":"#/components/schemas/ContributorDeleteJobParameters"}},"required":["type","parameters"],"additionalProperties":false}},"required":["attributes"],"additionalProperties":false}]}},"required":["data"],"additionalProperties":false},"WriteRequestMeta":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IWriteRequestMeta","description":"Optional audit metadata for a write request. `audit.source` is the issuing surface/channel (e.g. studio-web, mcp, api, system); `audit.reason` is a free-text justification. Both are optional and length-capped.","type":"object","additionalProperties":false,"properties":{"audit":{"type":"object","additionalProperties":false,"properties":{"source":{"type":"string","maxLength":64},"reason":{"type":"string","maxLength":256}}}}},"BaseCreateRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseCreateRequest","description":"Base JSON:API shape for create requests. The `type` field is required and must match the target resource type. The `id` field is optional; if omitted, the server generates a unique ID for the new resource.","type":"object","additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"type":"string"}},"required":["type"]},"ContributorDeleteJobParameters":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorDeleteJobParameters","description":"Parameters for the `deleteContributor` background job. Specifies the unique ID of the contributor to be permanently deleted along with all associated credits.","type":"object","properties":{"contributorId":{"type":"string"}},"required":["contributorId"],"additionalProperties":false}}}}
```

## The ContributorJobAttributes object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"ContributorJobAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorJobAttributes","description":"Attributes of a contributor background job. Currently the only supported job type is `deleteContributor`, which asynchronously removes a contributor and all associated credit records. Extends base background job attributes with job type and parameters.","type":"object","allOf":[{"$ref":"#/components/schemas/BackgroundJobAttributes"},{"type":"object","properties":{"type":{"type":"string","enum":["deleteContributor"]},"parameters":{"type":"object","properties":{"contributorId":{"type":"string","description":"The ID of the contributor being deleted."},"tenantId":{"type":"string","description":"The ID of the tenant that owns the contributor."},"subject":{"type":"string","description":"Human-readable label for the job's target contributor (its name), captured server-side at job creation so the UI can display it even after the contributor is deleted. Purely presentational — not used by job processing."}},"required":["contributorId","tenantId"],"additionalProperties":false}},"required":["type","parameters"],"additionalProperties":false}],"required":["status","created","updated","type","parameters"],"additionalProperties":false},"BackgroundJobAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBackgroundJobAttributes","description":"Attributes for a background job. Background jobs represent long-running asynchronous operations (e.g. contributor deletion, tenant data export). Includes current status, job type, parameters, optional output on completion, optional error details on failure, and optional item progress counts for batch jobs.","type":"object","allOf":[{"$ref":"#/components/schemas/BaseResourceAttributes"},{"type":"object","properties":{"type":{"type":"string"},"parameters":{"type":"object"},"status":{"$ref":"#/components/schemas/BackgroundJobStatus"},"output":{"type":"object"},"totalItemsCount":{"type":"integer","minimum":0,"description":"Total number of items in a batch job, when applicable."},"successItemsCount":{"type":"integer","minimum":0,"description":"Number of items processed successfully in a batch job, when applicable."},"failedItemsCount":{"type":"integer","minimum":0,"description":"Number of items that failed in a batch job, when applicable."},"error":{"type":"object","properties":{"message":{"type":"string"},"code":{"type":"string"}},"required":["message","code"],"additionalProperties":false}},"required":["type","parameters","status"],"additionalProperties":false}],"additionalProperties":false},"BaseResourceAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResourceAttributes","description":"Common timestamps present on all resource attribute objects. `created` is the ISO 8601 date-time when the resource was first created; `updated` is the date-time of the most recent modification.","type":"object","additionalProperties":false,"required":["created","updated"],"properties":{"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}},"BackgroundJobStatus":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBackgroundJobStatus","description":"Status of a background job: ABORTED, FAILED, PENDING_REDRIVE, RUNNING, SUCCEEDED, or TIMED_OUT.","type":"string","enum":["ABORTED","FAILED","PENDING_REDRIVE","RUNNING","SUCCEEDED","TIMED_OUT"]}}}}
```

## The ContributorJobCreateOneResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"ContributorJobCreateOneResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorJobCreateOneResponse","description":"Response returned after successfully creating a contributor background job. Contains the new job's ID and its initial attributes (status, ARN, type, parameters). Poll the job status using the returned ID.","type":"object","properties":{"data":{"allOf":[{"$ref":"#/components/schemas/BaseCreateRequest"},{"additionalProperties":false,"properties":{"id":{"type":"string"},"attributes":{"$ref":"#/components/schemas/ContributorJobAttributes"}},"required":["id","attributes"]}]}},"required":["data"],"additionalProperties":false},"BaseCreateRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseCreateRequest","description":"Base JSON:API shape for create requests. The `type` field is required and must match the target resource type. The `id` field is optional; if omitted, the server generates a unique ID for the new resource.","type":"object","additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"type":"string"}},"required":["type"]},"ContributorJobAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorJobAttributes","description":"Attributes of a contributor background job. Currently the only supported job type is `deleteContributor`, which asynchronously removes a contributor and all associated credit records. Extends base background job attributes with job type and parameters.","type":"object","allOf":[{"$ref":"#/components/schemas/BackgroundJobAttributes"},{"type":"object","properties":{"type":{"type":"string","enum":["deleteContributor"]},"parameters":{"type":"object","properties":{"contributorId":{"type":"string","description":"The ID of the contributor being deleted."},"tenantId":{"type":"string","description":"The ID of the tenant that owns the contributor."},"subject":{"type":"string","description":"Human-readable label for the job's target contributor (its name), captured server-side at job creation so the UI can display it even after the contributor is deleted. Purely presentational — not used by job processing."}},"required":["contributorId","tenantId"],"additionalProperties":false}},"required":["type","parameters"],"additionalProperties":false}],"required":["status","created","updated","type","parameters"],"additionalProperties":false},"BackgroundJobAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBackgroundJobAttributes","description":"Attributes for a background job. Background jobs represent long-running asynchronous operations (e.g. contributor deletion, tenant data export). Includes current status, job type, parameters, optional output on completion, optional error details on failure, and optional item progress counts for batch jobs.","type":"object","allOf":[{"$ref":"#/components/schemas/BaseResourceAttributes"},{"type":"object","properties":{"type":{"type":"string"},"parameters":{"type":"object"},"status":{"$ref":"#/components/schemas/BackgroundJobStatus"},"output":{"type":"object"},"totalItemsCount":{"type":"integer","minimum":0,"description":"Total number of items in a batch job, when applicable."},"successItemsCount":{"type":"integer","minimum":0,"description":"Number of items processed successfully in a batch job, when applicable."},"failedItemsCount":{"type":"integer","minimum":0,"description":"Number of items that failed in a batch job, when applicable."},"error":{"type":"object","properties":{"message":{"type":"string"},"code":{"type":"string"}},"required":["message","code"],"additionalProperties":false}},"required":["type","parameters","status"],"additionalProperties":false}],"additionalProperties":false},"BaseResourceAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResourceAttributes","description":"Common timestamps present on all resource attribute objects. `created` is the ISO 8601 date-time when the resource was first created; `updated` is the date-time of the most recent modification.","type":"object","additionalProperties":false,"required":["created","updated"],"properties":{"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}},"BackgroundJobStatus":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBackgroundJobStatus","description":"Status of a background job: ABORTED, FAILED, PENDING_REDRIVE, RUNNING, SUCCEEDED, or TIMED_OUT.","type":"string","enum":["ABORTED","FAILED","PENDING_REDRIVE","RUNNING","SUCCEEDED","TIMED_OUT"]}}}}
```

## The CreditsListAttributes object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"CreditsListAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ICreditsListAttributes","description":"Attributes of a credits list. A credits list is a named, ordered collection of credit entries for a specific record. `name` is the display name. `ranking` controls ordering when multiple lists exist. `isDefault` identifies the primary credits list for the record.","type":"object","required":["name"],"additionalProperties":false,"properties":{"name":{"type":"string","description":"Display name for the credit list. For example, `\"Main Credits\"` or `\"International Credits\"`."},"ranking":{"type":"number","description":"Numeric ordering value used to sort credit lists when a record has more than one. Lower values appear first. If omitted, the list is appended after existing lists."},"isDefault":{"type":"boolean","description":"When `true`, this credit list is treated as the primary credits for the record. Only one credit list per record should be designated as the default."}}}}}}
```

## The CreditsListRelationships object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"CreditsListRelationships":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ICreditsListRelationships","description":"JSON:API relationship links for a credits list resource. Contains links to the owning tenant and the record this credits list is associated with.","type":"object","properties":{"tenant":{"$ref":"#/components/schemas/TenantRelationship"},"record":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["records"]},"id":{"type":"string"}},"required":["type","id"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data","links"],"additionalProperties":false}},"required":["tenant","record"],"additionalProperties":false},"TenantRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantRelationship","description":"A relationship to a tenant","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tenants"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data","links"],"additionalProperties":false},"LinksRelated":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILinks","description":"A JSON:API links object with an absolute or relative 'related' link","type":"object","required":["related"],"properties":{"related":{"type":"string"}},"additionalProperties":false}}}}
```

## The CreditsListFindOneResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"CreditsListFindOneResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ICreditsListFindOneResponse","description":"Response returned when retrieving a single credit list by ID. Contains the list's attributes (name, ranking, isDefault) combined with base timestamps (created, updated), plus relationship links to the owning tenant and parent record.","type":"object","additionalProperties":false,"required":["data","links"],"properties":{"data":{"type":"object","required":["id","type","attributes","relationships"],"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["creditsLists"]},"attributes":{"allOf":[{"$ref":"#/components/schemas/BaseResourceAttributes"},{"$ref":"#/components/schemas/CreditsListAttributes","required":["name"]}]},"relationships":{"$ref":"#/components/schemas/CreditsListRelationships"}}},"links":{"$ref":"#/components/schemas/LinksRelated"}}},"BaseResourceAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResourceAttributes","description":"Common timestamps present on all resource attribute objects. `created` is the ISO 8601 date-time when the resource was first created; `updated` is the date-time of the most recent modification.","type":"object","additionalProperties":false,"required":["created","updated"],"properties":{"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}},"CreditsListAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ICreditsListAttributes","description":"Attributes of a credits list. A credits list is a named, ordered collection of credit entries for a specific record. `name` is the display name. `ranking` controls ordering when multiple lists exist. `isDefault` identifies the primary credits list for the record.","type":"object","required":["name"],"additionalProperties":false,"properties":{"name":{"type":"string","description":"Display name for the credit list. For example, `\"Main Credits\"` or `\"International Credits\"`."},"ranking":{"type":"number","description":"Numeric ordering value used to sort credit lists when a record has more than one. Lower values appear first. If omitted, the list is appended after existing lists."},"isDefault":{"type":"boolean","description":"When `true`, this credit list is treated as the primary credits for the record. Only one credit list per record should be designated as the default."}}},"CreditsListRelationships":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ICreditsListRelationships","description":"JSON:API relationship links for a credits list resource. Contains links to the owning tenant and the record this credits list is associated with.","type":"object","properties":{"tenant":{"$ref":"#/components/schemas/TenantRelationship"},"record":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["records"]},"id":{"type":"string"}},"required":["type","id"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data","links"],"additionalProperties":false}},"required":["tenant","record"],"additionalProperties":false},"TenantRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantRelationship","description":"A relationship to a tenant","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tenants"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data","links"],"additionalProperties":false},"LinksRelated":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILinks","description":"A JSON:API links object with an absolute or relative 'related' link","type":"object","required":["related"],"properties":{"related":{"type":"string"}},"additionalProperties":false}}}}
```

## The CreditsListUpdateOneRequest object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"CreditsListUpdateOneRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ICreditsListUpdateOneRequest","description":"Request body for partially updating a credits list. Only the attributes included in the request are modified. Supports updating the list's `name`, `ranking`, and `isDefault` flag.","type":"object","properties":{"meta":{"$ref":"#/components/schemas/WriteRequestMeta"},"data":{"allOf":[{"type":"object","required":["type"],"additionalProperties":false,"properties":{"type":{"type":"string","enum":["creditsLists"]}}},{"type":"object","required":["attributes"],"additionalProperties":false,"properties":{"attributes":{"$ref":"#/components/schemas/CreditsListAttributes"}}}]}},"required":["data"],"additionalProperties":false},"WriteRequestMeta":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IWriteRequestMeta","description":"Optional audit metadata for a write request. `audit.source` is the issuing surface/channel (e.g. studio-web, mcp, api, system); `audit.reason` is a free-text justification. Both are optional and length-capped.","type":"object","additionalProperties":false,"properties":{"audit":{"type":"object","additionalProperties":false,"properties":{"source":{"type":"string","maxLength":64},"reason":{"type":"string","maxLength":256}}}}},"CreditsListAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ICreditsListAttributes","description":"Attributes of a credits list. A credits list is a named, ordered collection of credit entries for a specific record. `name` is the display name. `ranking` controls ordering when multiple lists exist. `isDefault` identifies the primary credits list for the record.","type":"object","required":["name"],"additionalProperties":false,"properties":{"name":{"type":"string","description":"Display name for the credit list. For example, `\"Main Credits\"` or `\"International Credits\"`."},"ranking":{"type":"number","description":"Numeric ordering value used to sort credit lists when a record has more than one. Lower values appear first. If omitted, the list is appended after existing lists."},"isDefault":{"type":"boolean","description":"When `true`, this credit list is treated as the primary credits for the record. Only one credit list per record should be designated as the default."}}}}}}
```

## The CreditsListCreateOneResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"CreditsListCreateOneResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ICreditsListCreateOneResponse","description":"Response returned after successfully creating a credit list. Contains the new resource's ID, type, and relationship links to the owning tenant and parent record. Use the returned ID to fetch the full credit list with its attributes.","type":"object","additionalProperties":false,"required":["data","links"],"properties":{"data":{"type":"object","required":["id","type","relationships"],"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["creditsLists"]},"relationships":{"additionalProperties":false,"required":["tenant","record"],"properties":{"tenant":{"type":"object","required":["data","links"],"properties":{"data":{"type":"object","required":["id","type"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tenants"]}},"additionalProperties":false},"links":{"$ref":"#/components/schemas/LinksRelated"}},"additionalProperties":false},"record":{"type":"object","required":["data","links"],"properties":{"data":{"type":"object","required":["id","type"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["records"]}},"additionalProperties":false},"links":{"$ref":"#/components/schemas/LinksRelated"}},"additionalProperties":false}}}}},"links":{"$ref":"#/components/schemas/LinksRelated"}}},"LinksRelated":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILinks","description":"A JSON:API links object with an absolute or relative 'related' link","type":"object","required":["related"],"properties":{"related":{"type":"string"}},"additionalProperties":false}}}}
```

## The CreditsListFindManyResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"CreditsListFindManyResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ICreditsListFindManyResponse","description":"Response returned when listing all credit lists for a record. The `data` array contains zero or more credit list resources, each with its name, ranking, and isDefault flag. The `meta.filters` object echoes back the applied `isDefault` filter value. Use `links` for pagination navigation.","type":"object","additionalProperties":false,"required":["data","meta","links"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","type","attributes","relationships"],"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["creditsLists"]},"attributes":{"allOf":[{"$ref":"#/components/schemas/BaseResourceAttributes"},{"$ref":"#/components/schemas/CreditsListAttributes"}]},"relationships":{"$ref":"#/components/schemas/CreditsListRelationships"},"links":{"$ref":"#/components/schemas/LinksRelated"}}}},"meta":{"type":"object","properties":{"filters":{"type":"object","required":["isDefault"],"properties":{"isDefault":{"type":"boolean"}},"additionalProperties":false}},"additionalProperties":false},"links":{"$ref":"#/components/schemas/LinksRelated"}}},"BaseResourceAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResourceAttributes","description":"Common timestamps present on all resource attribute objects. `created` is the ISO 8601 date-time when the resource was first created; `updated` is the date-time of the most recent modification.","type":"object","additionalProperties":false,"required":["created","updated"],"properties":{"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}},"CreditsListAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ICreditsListAttributes","description":"Attributes of a credits list. A credits list is a named, ordered collection of credit entries for a specific record. `name` is the display name. `ranking` controls ordering when multiple lists exist. `isDefault` identifies the primary credits list for the record.","type":"object","required":["name"],"additionalProperties":false,"properties":{"name":{"type":"string","description":"Display name for the credit list. For example, `\"Main Credits\"` or `\"International Credits\"`."},"ranking":{"type":"number","description":"Numeric ordering value used to sort credit lists when a record has more than one. Lower values appear first. If omitted, the list is appended after existing lists."},"isDefault":{"type":"boolean","description":"When `true`, this credit list is treated as the primary credits for the record. Only one credit list per record should be designated as the default."}}},"CreditsListRelationships":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ICreditsListRelationships","description":"JSON:API relationship links for a credits list resource. Contains links to the owning tenant and the record this credits list is associated with.","type":"object","properties":{"tenant":{"$ref":"#/components/schemas/TenantRelationship"},"record":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["records"]},"id":{"type":"string"}},"required":["type","id"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data","links"],"additionalProperties":false}},"required":["tenant","record"],"additionalProperties":false},"TenantRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantRelationship","description":"A relationship to a tenant","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tenants"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data","links"],"additionalProperties":false},"LinksRelated":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILinks","description":"A JSON:API links object with an absolute or relative 'related' link","type":"object","required":["related"],"properties":{"related":{"type":"string"}},"additionalProperties":false}}}}
```

## The CreditsListCreateOneRequest object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"CreditsListCreateOneRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ICreditsListCreateOneRequest","description":"Request body for creating a new credit list for a record. Requires a `name` for the list. Optionally provide a client-generated `id` (16 lowercase hex characters) to control the list's identifier; re-sending the same `id` for the same record is rejected as a duplicate rather than creating a second list. Omit it to have the server generate one. Optionally set `ranking` to control sort order among multiple lists, and `isDefault` to designate this as the primary credit list for the record. The record association is determined by the `recordId` path parameter.","type":"object","properties":{"meta":{"$ref":"#/components/schemas/WriteRequestMeta"},"data":{"allOf":[{"type":"object","required":["type"],"additionalProperties":false,"properties":{"type":{"type":"string","enum":["creditsLists"]},"id":{"type":"string","pattern":"^[a-f0-9]{16}$","description":"Optional client-generated identifier. Must be 16 lowercase hexadecimal characters. When provided, re-sending the same `id` for the same record is rejected as a duplicate. If omitted, the server generates one."}}},{"type":"object","required":["attributes"],"additionalProperties":false,"properties":{"attributes":{"allOf":[{"$ref":"#/components/schemas/CreditsListAttributes","required":["name"]}]}}}]}},"required":["data"],"additionalProperties":false},"WriteRequestMeta":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IWriteRequestMeta","description":"Optional audit metadata for a write request. `audit.source` is the issuing surface/channel (e.g. studio-web, mcp, api, system); `audit.reason` is a free-text justification. Both are optional and length-capped.","type":"object","additionalProperties":false,"properties":{"audit":{"type":"object","additionalProperties":false,"properties":{"source":{"type":"string","maxLength":64},"reason":{"type":"string","maxLength":256}}}}},"CreditsListAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ICreditsListAttributes","description":"Attributes of a credits list. A credits list is a named, ordered collection of credit entries for a specific record. `name` is the display name. `ranking` controls ordering when multiple lists exist. `isDefault` identifies the primary credits list for the record.","type":"object","required":["name"],"additionalProperties":false,"properties":{"name":{"type":"string","description":"Display name for the credit list. For example, `\"Main Credits\"` or `\"International Credits\"`."},"ranking":{"type":"number","description":"Numeric ordering value used to sort credit lists when a record has more than one. Lower values appear first. If omitted, the list is appended after existing lists."},"isDefault":{"type":"boolean","description":"When `true`, this credit list is treated as the primary credits for the record. Only one credit list per record should be designated as the default."}}}}}}
```

## The dataObject object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"dataObject":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["credits"]},"attributes":{"type":"object","properties":{"job":{"type":"string","enum":["Actor","Director","Executive Producer","Producer","Creator","Writer","Editor"]},"ranking":{"type":"number","minimum":0},"characters":{"type":"array","items":{"type":"string"}}},"required":["job"],"additionalProperties":false},"relationships":{"type":"object","properties":{"contributor":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["contributors"]},"id":{"type":"string"}},"required":["type","id"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}},"required":["contributor"],"additionalProperties":false}},"required":["type","attributes","relationships"],"additionalProperties":false}}}}
```

## The updateRefObject object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"updateRefObject":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["credits"]},"relationship":{"type":"string","enum":["contributors"]}},"required":["id","type","relationship"],"additionalProperties":false}}}}
```

## The removeRefObject object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"removeRefObject":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["credits"]}},"required":["id","type"],"additionalProperties":false}}}}
```

## The CreditsListAtomicOperationsRequest object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"CreditsListAtomicOperationsRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ICreditsListAtomicOperationsRequest","description":"JSON:API Atomic Operations request for managing credits within a credits list. Supports `add` (create a new credit for a contributor), `update` (modify an existing credit's attributes), and `remove` (delete a credit) operations in a single transactional call.","type":"object","properties":{"meta":{"$ref":"#/components/schemas/WriteRequestMeta"},"atomic:operations":{"type":"array","description":"An ordered list of credit operations to apply atomically. Each operation specifies an `op` code (`add`, `update`, or `remove`) and the relevant data or reference. All operations succeed or fail together — no partial updates are applied.","items":{"type":"object","oneOf":[{"description":"Add a new credit entry to the list. Provide the contributor relationship, job role, and optional ranking and character names.","properties":{"op":{"const":"add"},"data":{"$ref":"#/components/schemas/dataObject"}},"required":["op","data"],"additionalProperties":false},{"description":"Update an existing credit entry. Identify the credit to update via `ref` (by ID and type) and supply the new attribute values in `data`.","properties":{"op":{"const":"update"},"ref":{"$ref":"#/components/schemas/updateRefObject"},"data":{"$ref":"#/components/schemas/dataObject"}},"required":["op","data"],"additionalProperties":false},{"description":"Remove an existing credit entry from the list. Identify the credit to delete via `ref` using its ID.","properties":{"op":{"const":"remove"},"ref":{"$ref":"#/components/schemas/removeRefObject"}},"required":["op","ref"],"additionalProperties":false}]}}},"required":["atomic:operations"],"additionalProperties":false,"definitions":{"dataObject":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["credits"]},"attributes":{"type":"object","properties":{"job":{"type":"string","enum":["Actor","Director","Executive Producer","Producer","Creator","Writer","Editor"]},"ranking":{"type":"number","minimum":0},"characters":{"type":"array","items":{"type":"string"}}},"required":["job"],"additionalProperties":false},"relationships":{"type":"object","properties":{"contributor":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["contributors"]},"id":{"type":"string"}},"required":["type","id"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}},"required":["contributor"],"additionalProperties":false}},"required":["type","attributes","relationships"],"additionalProperties":false},"updateRefObject":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["credits"]},"relationship":{"type":"string","enum":["contributors"]}},"required":["id","type","relationship"],"additionalProperties":false},"removeRefObject":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["credits"]}},"required":["id","type"],"additionalProperties":false}}},"WriteRequestMeta":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IWriteRequestMeta","description":"Optional audit metadata for a write request. `audit.source` is the issuing surface/channel (e.g. studio-web, mcp, api, system); `audit.reason` is a free-text justification. Both are optional and length-capped.","type":"object","additionalProperties":false,"properties":{"audit":{"type":"object","additionalProperties":false,"properties":{"source":{"type":"string","maxLength":64},"reason":{"type":"string","maxLength":256}}}}},"dataObject":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["credits"]},"attributes":{"type":"object","properties":{"job":{"type":"string","enum":["Actor","Director","Executive Producer","Producer","Creator","Writer","Editor"]},"ranking":{"type":"number","minimum":0},"characters":{"type":"array","items":{"type":"string"}}},"required":["job"],"additionalProperties":false},"relationships":{"type":"object","properties":{"contributor":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["contributors"]},"id":{"type":"string"}},"required":["type","id"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}},"required":["contributor"],"additionalProperties":false}},"required":["type","attributes","relationships"],"additionalProperties":false},"updateRefObject":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["credits"]},"relationship":{"type":"string","enum":["contributors"]}},"required":["id","type","relationship"],"additionalProperties":false},"removeRefObject":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["credits"]}},"required":["id","type"],"additionalProperties":false}}}}
```

## The CreditsAttributeJob object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"CreditsAttributeJob":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ICreditsAttributeJob","description":"The role or function a contributor performed in the production of a work. Defines the supported credit job types in Origin Studio.","type":"string","enum":["Actor","Director","Executive Producer","Producer","Creator","Writer","Editor"]}}}}
```

## The CreditsAttributes object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"CreditsAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ICreditsAttributes","description":"Attributes of a single credit entry representing a contributor's involvement in a record. `job` is the contributor's role (e.g., Actor, Director). `ranking` is the billing order within the credits list. `characters` lists character names for acting credits.","type":"object","required":["job"],"additionalProperties":false,"properties":{"job":{"$ref":"#/components/schemas/CreditsAttributeJob"},"ranking":{"type":"number","minimum":0,"description":"Billing order of this credit within its job category. Lower values indicate higher prominence (e.g., top-billed Actor). Must be zero or greater."},"characters":{"type":"array","description":"List of character names this contributor portrays in the title. Only relevant for acting credits (e.g., Actor). May be empty for crew roles.","items":{"type":"string","minLength":1}}}},"CreditsAttributeJob":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ICreditsAttributeJob","description":"The role or function a contributor performed in the production of a work. Defines the supported credit job types in Origin Studio.","type":"string","enum":["Actor","Director","Executive Producer","Producer","Creator","Writer","Editor"]}}}}
```

## The ContributorRelationship object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"ContributorRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorRelationship","description":"A relationship to a contributor","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["contributors"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data","links"],"additionalProperties":false},"LinksRelated":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILinks","description":"A JSON:API links object with an absolute or relative 'related' link","type":"object","required":["related"],"properties":{"related":{"type":"string"}},"additionalProperties":false}}}}
```

## The CreditsListRelationship object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"CreditsListRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ICreditsListRelationship","description":"A JSON:API relationship reference to a credit list resource. Contains the credit list's `id` and `type` (always `\"creditsLists\"`), plus a `links.related` URL to fetch the full credit list.","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["creditsLists"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data","links"],"additionalProperties":false},"LinksRelated":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILinks","description":"A JSON:API links object with an absolute or relative 'related' link","type":"object","required":["related"],"properties":{"related":{"type":"string"}},"additionalProperties":false}}}}
```

## The CreditsRelationships object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"CreditsRelationships":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ICreditsRelationships","description":"JSON:API relationship links for a credit resource. Contains links to the owning tenant, the record the credit belongs to, the credits list it appears in, and the contributor being credited.","type":"object","properties":{"tenant":{"$ref":"#/components/schemas/TenantRelationship"},"record":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["records"]},"id":{"type":"string"}},"required":["type","id"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data","links"],"additionalProperties":false},"contributor":{"$ref":"#/components/schemas/ContributorRelationship"},"creditsList":{"$ref":"#/components/schemas/CreditsListRelationship"}},"required":["tenant","record","contributor","creditsList"],"additionalProperties":false},"TenantRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantRelationship","description":"A relationship to a tenant","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tenants"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data","links"],"additionalProperties":false},"LinksRelated":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILinks","description":"A JSON:API links object with an absolute or relative 'related' link","type":"object","required":["related"],"properties":{"related":{"type":"string"}},"additionalProperties":false},"ContributorRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorRelationship","description":"A relationship to a contributor","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["contributors"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data","links"],"additionalProperties":false},"CreditsListRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ICreditsListRelationship","description":"A JSON:API relationship reference to a credit list resource. Contains the credit list's `id` and `type` (always `\"creditsLists\"`), plus a `links.related` URL to fetch the full credit list.","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["creditsLists"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data","links"],"additionalProperties":false}}}}
```

## The CreditsFindManyResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"CreditsFindManyResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ICreditsFindManyResponse","description":"Response returned when listing credits for a credit list. The `data` array contains credit entries for the requested job role, each with ranking, character names (for acting credits), and relationship links to the contributor, record, credit list, and tenant. The `meta.filters` object echoes back the applied job filter. Supports cursor-based pagination via `meta.filters.cursor`.","type":"object","additionalProperties":false,"required":["data","meta","links"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","type","attributes","relationships"],"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["credits"]},"attributes":{"allOf":[{"$ref":"#/components/schemas/BaseResourceAttributes"},{"$ref":"#/components/schemas/CreditsAttributes","required":["job"]}]},"relationships":{"$ref":"#/components/schemas/CreditsRelationships"},"links":{"$ref":"#/components/schemas/LinksRelated"}}}},"meta":{"type":"object","required":["filters"],"properties":{"filters":{"type":"object","description":"Pagination and filter state for the current result set.","required":["job"],"properties":{"job":{"$ref":"#/components/schemas/CreditsAttributeJob"},"cursor":{"type":"string","description":"Opaque cursor value to pass as `page.cursor` in the next request to retrieve the following page of results. Absent when there are no more pages."},"numberOfItems":{"type":"number","description":"Total number of credits matching the filter, if available."},"perPage":{"type":"number","description":"Maximum number of results returned per page."}},"additionalProperties":false}},"additionalProperties":false},"links":{"$ref":"#/components/schemas/LinksRelated"}}},"BaseResourceAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResourceAttributes","description":"Common timestamps present on all resource attribute objects. `created` is the ISO 8601 date-time when the resource was first created; `updated` is the date-time of the most recent modification.","type":"object","additionalProperties":false,"required":["created","updated"],"properties":{"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}},"CreditsAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ICreditsAttributes","description":"Attributes of a single credit entry representing a contributor's involvement in a record. `job` is the contributor's role (e.g., Actor, Director). `ranking` is the billing order within the credits list. `characters` lists character names for acting credits.","type":"object","required":["job"],"additionalProperties":false,"properties":{"job":{"$ref":"#/components/schemas/CreditsAttributeJob"},"ranking":{"type":"number","minimum":0,"description":"Billing order of this credit within its job category. Lower values indicate higher prominence (e.g., top-billed Actor). Must be zero or greater."},"characters":{"type":"array","description":"List of character names this contributor portrays in the title. Only relevant for acting credits (e.g., Actor). May be empty for crew roles.","items":{"type":"string","minLength":1}}}},"CreditsAttributeJob":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ICreditsAttributeJob","description":"The role or function a contributor performed in the production of a work. Defines the supported credit job types in Origin Studio.","type":"string","enum":["Actor","Director","Executive Producer","Producer","Creator","Writer","Editor"]},"CreditsRelationships":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ICreditsRelationships","description":"JSON:API relationship links for a credit resource. Contains links to the owning tenant, the record the credit belongs to, the credits list it appears in, and the contributor being credited.","type":"object","properties":{"tenant":{"$ref":"#/components/schemas/TenantRelationship"},"record":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["records"]},"id":{"type":"string"}},"required":["type","id"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data","links"],"additionalProperties":false},"contributor":{"$ref":"#/components/schemas/ContributorRelationship"},"creditsList":{"$ref":"#/components/schemas/CreditsListRelationship"}},"required":["tenant","record","contributor","creditsList"],"additionalProperties":false},"TenantRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantRelationship","description":"A relationship to a tenant","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tenants"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data","links"],"additionalProperties":false},"LinksRelated":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILinks","description":"A JSON:API links object with an absolute or relative 'related' link","type":"object","required":["related"],"properties":{"related":{"type":"string"}},"additionalProperties":false},"ContributorRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IContributorRelationship","description":"A relationship to a contributor","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["contributors"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data","links"],"additionalProperties":false},"CreditsListRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ICreditsListRelationship","description":"A JSON:API relationship reference to a credit list resource. Contains the credit list's `id` and `type` (always `\"creditsLists\"`), plus a `links.related` URL to fetch the full credit list.","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["creditsLists"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data","links"],"additionalProperties":false}}}}
```

## The DataDeliveryResourceType object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"DataDeliveryResourceType":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataDeliveryResourceType","description":"JSON:API type discriminator for data delivery resources. The `type` field is always `\"dataDeliveries\"`. Used as a base to enforce correct JSON:API resource typing in request bodies.","type":"object","required":["type"],"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["dataDeliveries"]}}}}}}
```

## The DataDeliveryAttributesInput object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"DataDeliveryAttributesInput":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataDeliveryAttributesInput","description":"Editable input attributes for a data delivery. Currently only `name` is user-editable, with a maximum length enforced by the service.","type":"object","required":["name"],"additionalProperties":false,"properties":{"name":{"type":"string","maxLength":250,"description":"Must be kept in sync with MAX_DATA_DELIVERY_NAME_LENGTH in services/data-delivery-service/src/constants/index.ts"}}}}}}
```

## The DataDeliveryAttributeStatus object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"DataDeliveryAttributeStatus":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataDeliveryAttributeStatus","description":"Data Delivery Package Status. Must be kept in sync with DataDeliveryStatusValues in services/data-delivery-service/src/constants/index.ts","type":"string","enum":["IN_PROGRESS","COMPLETED","DELETING"]}}}}
```

## The DataDeliveryState object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"DataDeliveryState":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataDeliveryState","description":"Export/delete job status. PENDING indicates the job is ready to start. RUNNING means the job (export or delete) is in progress. SUCCEEDED, PARTIALLY_SUCCEEDED, FAILED, TIMED_OUT, and ABORTED are terminal states. PARTIALLY_SUCCEEDED means the export completed but at least one record had errors. PENDING_REDRIVE indicates the job is queued for retry.","type":"string","enum":["PENDING","RUNNING","SUCCEEDED","PARTIALLY_SUCCEEDED","FAILED","TIMED_OUT","ABORTED","PENDING_REDRIVE"]}}}}
```

## The DataDeliveryAttributes object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"DataDeliveryAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataDeliveryAttributes","description":"Full attributes of a data delivery. Extends the input attributes with system-managed fields: `recordCount` (number of records in the package), `status` (the delivery's lifecycle state), `exportJobStatus` (the current status of the most recent export job), and timestamps.","allOf":[{"$ref":"#/components/schemas/DataDeliveryAttributesInput"},{"$ref":"#/components/schemas/BaseResourceAttributes"},{"type":"object","required":["recordCount","status","exportJobStatus"],"additionalProperties":false,"properties":{"recordCount":{"type":"number","description":"Total number of records linked to the data delivery package."},"status":{"$ref":"#/components/schemas/DataDeliveryAttributeStatus"},"exportJobStatus":{"$ref":"#/components/schemas/DataDeliveryState"},"archiveParts":{"type":"array","description":"Ordered ZIP archive part results for the exported package.","items":{"type":"object","required":["partNumber","fileName","status"],"additionalProperties":false,"properties":{"partNumber":{"type":"number","description":"One-based archive part number."},"fileName":{"type":"string","description":"Archive file name (for example delivery_package1.zip)."},"status":{"type":"string","enum":["READY","FAILED"],"description":"Part generation status."},"url":{"type":"string","description":"Download URL for READY parts."},"expiresAt":{"type":"string","description":"ISO 8601 date-time when the archive expires (7 days after export)."},"error":{"type":"string","description":"Failure reason for FAILED parts."},"format":{"type":"string","enum":["csv","json"],"description":"Which representation this archive holds. A record-export produces one archive per format so the package can be downloaded as CSV or JSON; single-format deliveries tag their one archive. Absent for legacy/manifest archives."}}}}}}]},"DataDeliveryAttributesInput":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataDeliveryAttributesInput","description":"Editable input attributes for a data delivery. Currently only `name` is user-editable, with a maximum length enforced by the service.","type":"object","required":["name"],"additionalProperties":false,"properties":{"name":{"type":"string","maxLength":250,"description":"Must be kept in sync with MAX_DATA_DELIVERY_NAME_LENGTH in services/data-delivery-service/src/constants/index.ts"}}},"BaseResourceAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResourceAttributes","description":"Common timestamps present on all resource attribute objects. `created` is the ISO 8601 date-time when the resource was first created; `updated` is the date-time of the most recent modification.","type":"object","additionalProperties":false,"required":["created","updated"],"properties":{"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}},"DataDeliveryAttributeStatus":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataDeliveryAttributeStatus","description":"Data Delivery Package Status. Must be kept in sync with DataDeliveryStatusValues in services/data-delivery-service/src/constants/index.ts","type":"string","enum":["IN_PROGRESS","COMPLETED","DELETING"]},"DataDeliveryState":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataDeliveryState","description":"Export/delete job status. PENDING indicates the job is ready to start. RUNNING means the job (export or delete) is in progress. SUCCEEDED, PARTIALLY_SUCCEEDED, FAILED, TIMED_OUT, and ABORTED are terminal states. PARTIALLY_SUCCEEDED means the export completed but at least one record had errors. PENDING_REDRIVE indicates the job is queued for retry.","type":"string","enum":["PENDING","RUNNING","SUCCEEDED","PARTIALLY_SUCCEEDED","FAILED","TIMED_OUT","ABORTED","PENDING_REDRIVE"]}}}}
```

## The data object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["records"]}},"required":["id","type"]}}}}
```

## The DataDeliveryRelationships object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"DataDeliveryRelationships":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataDeliveryRelationships","description":"JSON:API relationship links for a data delivery resource. Contains links to the owning tenant and the collection of records included in the delivery package.","type":"object","properties":{"tenant":{"$ref":"#/components/schemas/TenantRelationship"},"records":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/data"}},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":[],"additionalProperties":false},"author":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["users"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data"],"additionalProperties":false}},"required":["tenant","records","author"],"additionalProperties":false},"TenantRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantRelationship","description":"A relationship to a tenant","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tenants"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data","links"],"additionalProperties":false},"LinksRelated":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILinks","description":"A JSON:API links object with an absolute or relative 'related' link","type":"object","required":["related"],"properties":{"related":{"type":"string"}},"additionalProperties":false},"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["records"]}},"required":["id","type"]}}}}
```

## The DataDeliveryFindManyResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"DataDeliveryFindManyResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataDeliveryFindManyResponse","description":"The response for a data delivery find many request.","type":"object","additionalProperties":false,"required":["data","links"],"properties":{"data":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/DataDeliveryResourceType"},{"type":"object","required":["id","type","attributes","relationships"],"additionalProperties":false,"properties":{"id":{"type":"string"},"attributes":{"$ref":"#/components/schemas/DataDeliveryAttributes"},"relationships":{"$ref":"#/components/schemas/DataDeliveryRelationships"},"links":{"$ref":"#/components/schemas/LinksSelf"}}}]}},"links":{"type":"object","required":["self"],"properties":{"self":{"type":"string"},"next":{"type":["string","null"]}},"additionalProperties":false},"meta":{"type":"object","properties":{"cursor":{"type":"string"},"filters":{"type":"object","properties":{"status":{"$ref":"#/components/schemas/DataDeliveryAttributeStatus"},"exportJobStatus":{"$ref":"#/components/schemas/DataDeliveryState"},"createdAfter":{"type":"string","format":"date-time"},"createdBefore":{"type":"string","format":"date-time"}},"additionalProperties":false}},"additionalProperties":false}}},"DataDeliveryResourceType":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataDeliveryResourceType","description":"JSON:API type discriminator for data delivery resources. The `type` field is always `\"dataDeliveries\"`. Used as a base to enforce correct JSON:API resource typing in request bodies.","type":"object","required":["type"],"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["dataDeliveries"]}}},"DataDeliveryAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataDeliveryAttributes","description":"Full attributes of a data delivery. Extends the input attributes with system-managed fields: `recordCount` (number of records in the package), `status` (the delivery's lifecycle state), `exportJobStatus` (the current status of the most recent export job), and timestamps.","allOf":[{"$ref":"#/components/schemas/DataDeliveryAttributesInput"},{"$ref":"#/components/schemas/BaseResourceAttributes"},{"type":"object","required":["recordCount","status","exportJobStatus"],"additionalProperties":false,"properties":{"recordCount":{"type":"number","description":"Total number of records linked to the data delivery package."},"status":{"$ref":"#/components/schemas/DataDeliveryAttributeStatus"},"exportJobStatus":{"$ref":"#/components/schemas/DataDeliveryState"},"archiveParts":{"type":"array","description":"Ordered ZIP archive part results for the exported package.","items":{"type":"object","required":["partNumber","fileName","status"],"additionalProperties":false,"properties":{"partNumber":{"type":"number","description":"One-based archive part number."},"fileName":{"type":"string","description":"Archive file name (for example delivery_package1.zip)."},"status":{"type":"string","enum":["READY","FAILED"],"description":"Part generation status."},"url":{"type":"string","description":"Download URL for READY parts."},"expiresAt":{"type":"string","description":"ISO 8601 date-time when the archive expires (7 days after export)."},"error":{"type":"string","description":"Failure reason for FAILED parts."},"format":{"type":"string","enum":["csv","json"],"description":"Which representation this archive holds. A record-export produces one archive per format so the package can be downloaded as CSV or JSON; single-format deliveries tag their one archive. Absent for legacy/manifest archives."}}}}}}]},"DataDeliveryAttributesInput":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataDeliveryAttributesInput","description":"Editable input attributes for a data delivery. Currently only `name` is user-editable, with a maximum length enforced by the service.","type":"object","required":["name"],"additionalProperties":false,"properties":{"name":{"type":"string","maxLength":250,"description":"Must be kept in sync with MAX_DATA_DELIVERY_NAME_LENGTH in services/data-delivery-service/src/constants/index.ts"}}},"BaseResourceAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResourceAttributes","description":"Common timestamps present on all resource attribute objects. `created` is the ISO 8601 date-time when the resource was first created; `updated` is the date-time of the most recent modification.","type":"object","additionalProperties":false,"required":["created","updated"],"properties":{"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}},"DataDeliveryAttributeStatus":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataDeliveryAttributeStatus","description":"Data Delivery Package Status. Must be kept in sync with DataDeliveryStatusValues in services/data-delivery-service/src/constants/index.ts","type":"string","enum":["IN_PROGRESS","COMPLETED","DELETING"]},"DataDeliveryState":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataDeliveryState","description":"Export/delete job status. PENDING indicates the job is ready to start. RUNNING means the job (export or delete) is in progress. SUCCEEDED, PARTIALLY_SUCCEEDED, FAILED, TIMED_OUT, and ABORTED are terminal states. PARTIALLY_SUCCEEDED means the export completed but at least one record had errors. PENDING_REDRIVE indicates the job is queued for retry.","type":"string","enum":["PENDING","RUNNING","SUCCEEDED","PARTIALLY_SUCCEEDED","FAILED","TIMED_OUT","ABORTED","PENDING_REDRIVE"]},"DataDeliveryRelationships":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataDeliveryRelationships","description":"JSON:API relationship links for a data delivery resource. Contains links to the owning tenant and the collection of records included in the delivery package.","type":"object","properties":{"tenant":{"$ref":"#/components/schemas/TenantRelationship"},"records":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/data"}},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":[],"additionalProperties":false},"author":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["users"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data"],"additionalProperties":false}},"required":["tenant","records","author"],"additionalProperties":false},"TenantRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantRelationship","description":"A relationship to a tenant","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tenants"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data","links"],"additionalProperties":false},"LinksRelated":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILinks","description":"A JSON:API links object with an absolute or relative 'related' link","type":"object","required":["related"],"properties":{"related":{"type":"string"}},"additionalProperties":false},"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["records"]}},"required":["id","type"]},"LinksSelf":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILinksSelf","description":"A JSON:API links object with an absolute or relative 'self' link","type":"object","required":["self"],"properties":{"self":{"type":"string"}},"additionalProperties":false}}}}
```

## The DataDeliveryCreateOneRequest object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"DataDeliveryCreateOneRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataDeliveryCreateOneRequest","description":"Request body for creating a new data delivery package. Requires a `name` for the delivery. Records can be added to the delivery after creation via the relationship endpoints.","type":"object","properties":{"meta":{"$ref":"#/components/schemas/WriteRequestMeta"},"data":{"type":"object","required":["type","attributes"],"additionalProperties":false,"properties":{"type":{"type":"string","enum":["dataDeliveries"]},"attributes":{"$ref":"#/components/schemas/DataDeliveryAttributesInput"},"relationships":{"type":"object","additionalProperties":false,"properties":{"records":{"type":"object","required":["data"],"additionalProperties":false,"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/data"},"minItems":1,"maxItems":50000}}}}}}}},"required":["data"],"additionalProperties":false},"WriteRequestMeta":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IWriteRequestMeta","description":"Optional audit metadata for a write request. `audit.source` is the issuing surface/channel (e.g. studio-web, mcp, api, system); `audit.reason` is a free-text justification. Both are optional and length-capped.","type":"object","additionalProperties":false,"properties":{"audit":{"type":"object","additionalProperties":false,"properties":{"source":{"type":"string","maxLength":64},"reason":{"type":"string","maxLength":256}}}}},"DataDeliveryAttributesInput":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataDeliveryAttributesInput","description":"Editable input attributes for a data delivery. Currently only `name` is user-editable, with a maximum length enforced by the service.","type":"object","required":["name"],"additionalProperties":false,"properties":{"name":{"type":"string","maxLength":250,"description":"Must be kept in sync with MAX_DATA_DELIVERY_NAME_LENGTH in services/data-delivery-service/src/constants/index.ts"}}},"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["records"]}},"required":["id","type"]}}}}
```

## The DataDeliveryCreateOneResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"DataDeliveryCreateOneResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataDeliveryCreateOneResponse","description":"The response for a data delivery create one request.","type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"allOf":[{"$ref":"#/components/schemas/DataDeliveryResourceType"},{"type":"object","required":["id","type","attributes","relationships"],"additionalProperties":false,"properties":{"id":{"type":"string"},"attributes":{"$ref":"#/components/schemas/DataDeliveryAttributes"},"relationships":{"$ref":"#/components/schemas/DataDeliveryRelationships"},"links":{"$ref":"#/components/schemas/LinksSelf"}}}]}}},"DataDeliveryResourceType":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataDeliveryResourceType","description":"JSON:API type discriminator for data delivery resources. The `type` field is always `\"dataDeliveries\"`. Used as a base to enforce correct JSON:API resource typing in request bodies.","type":"object","required":["type"],"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["dataDeliveries"]}}},"DataDeliveryAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataDeliveryAttributes","description":"Full attributes of a data delivery. Extends the input attributes with system-managed fields: `recordCount` (number of records in the package), `status` (the delivery's lifecycle state), `exportJobStatus` (the current status of the most recent export job), and timestamps.","allOf":[{"$ref":"#/components/schemas/DataDeliveryAttributesInput"},{"$ref":"#/components/schemas/BaseResourceAttributes"},{"type":"object","required":["recordCount","status","exportJobStatus"],"additionalProperties":false,"properties":{"recordCount":{"type":"number","description":"Total number of records linked to the data delivery package."},"status":{"$ref":"#/components/schemas/DataDeliveryAttributeStatus"},"exportJobStatus":{"$ref":"#/components/schemas/DataDeliveryState"},"archiveParts":{"type":"array","description":"Ordered ZIP archive part results for the exported package.","items":{"type":"object","required":["partNumber","fileName","status"],"additionalProperties":false,"properties":{"partNumber":{"type":"number","description":"One-based archive part number."},"fileName":{"type":"string","description":"Archive file name (for example delivery_package1.zip)."},"status":{"type":"string","enum":["READY","FAILED"],"description":"Part generation status."},"url":{"type":"string","description":"Download URL for READY parts."},"expiresAt":{"type":"string","description":"ISO 8601 date-time when the archive expires (7 days after export)."},"error":{"type":"string","description":"Failure reason for FAILED parts."},"format":{"type":"string","enum":["csv","json"],"description":"Which representation this archive holds. A record-export produces one archive per format so the package can be downloaded as CSV or JSON; single-format deliveries tag their one archive. Absent for legacy/manifest archives."}}}}}}]},"DataDeliveryAttributesInput":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataDeliveryAttributesInput","description":"Editable input attributes for a data delivery. Currently only `name` is user-editable, with a maximum length enforced by the service.","type":"object","required":["name"],"additionalProperties":false,"properties":{"name":{"type":"string","maxLength":250,"description":"Must be kept in sync with MAX_DATA_DELIVERY_NAME_LENGTH in services/data-delivery-service/src/constants/index.ts"}}},"BaseResourceAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResourceAttributes","description":"Common timestamps present on all resource attribute objects. `created` is the ISO 8601 date-time when the resource was first created; `updated` is the date-time of the most recent modification.","type":"object","additionalProperties":false,"required":["created","updated"],"properties":{"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}},"DataDeliveryAttributeStatus":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataDeliveryAttributeStatus","description":"Data Delivery Package Status. Must be kept in sync with DataDeliveryStatusValues in services/data-delivery-service/src/constants/index.ts","type":"string","enum":["IN_PROGRESS","COMPLETED","DELETING"]},"DataDeliveryState":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataDeliveryState","description":"Export/delete job status. PENDING indicates the job is ready to start. RUNNING means the job (export or delete) is in progress. SUCCEEDED, PARTIALLY_SUCCEEDED, FAILED, TIMED_OUT, and ABORTED are terminal states. PARTIALLY_SUCCEEDED means the export completed but at least one record had errors. PENDING_REDRIVE indicates the job is queued for retry.","type":"string","enum":["PENDING","RUNNING","SUCCEEDED","PARTIALLY_SUCCEEDED","FAILED","TIMED_OUT","ABORTED","PENDING_REDRIVE"]},"DataDeliveryRelationships":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataDeliveryRelationships","description":"JSON:API relationship links for a data delivery resource. Contains links to the owning tenant and the collection of records included in the delivery package.","type":"object","properties":{"tenant":{"$ref":"#/components/schemas/TenantRelationship"},"records":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/data"}},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":[],"additionalProperties":false},"author":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["users"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data"],"additionalProperties":false}},"required":["tenant","records","author"],"additionalProperties":false},"TenantRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantRelationship","description":"A relationship to a tenant","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tenants"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data","links"],"additionalProperties":false},"LinksRelated":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILinks","description":"A JSON:API links object with an absolute or relative 'related' link","type":"object","required":["related"],"properties":{"related":{"type":"string"}},"additionalProperties":false},"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["records"]}},"required":["id","type"]},"LinksSelf":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILinksSelf","description":"A JSON:API links object with an absolute or relative 'self' link","type":"object","required":["self"],"properties":{"self":{"type":"string"}},"additionalProperties":false}}}}
```

## The DataDeliveryFindOneResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"DataDeliveryFindOneResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataDeliveryFindOneResponse","description":"The response for a data delivery find one request.","type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"allOf":[{"$ref":"#/components/schemas/DataDeliveryResourceType"},{"type":"object","required":["id","type","attributes","relationships"],"additionalProperties":false,"properties":{"id":{"type":"string"},"attributes":{"$ref":"#/components/schemas/DataDeliveryAttributes"},"relationships":{"$ref":"#/components/schemas/DataDeliveryRelationships"},"links":{"$ref":"#/components/schemas/LinksSelf"}}}]}}},"DataDeliveryResourceType":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataDeliveryResourceType","description":"JSON:API type discriminator for data delivery resources. The `type` field is always `\"dataDeliveries\"`. Used as a base to enforce correct JSON:API resource typing in request bodies.","type":"object","required":["type"],"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["dataDeliveries"]}}},"DataDeliveryAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataDeliveryAttributes","description":"Full attributes of a data delivery. Extends the input attributes with system-managed fields: `recordCount` (number of records in the package), `status` (the delivery's lifecycle state), `exportJobStatus` (the current status of the most recent export job), and timestamps.","allOf":[{"$ref":"#/components/schemas/DataDeliveryAttributesInput"},{"$ref":"#/components/schemas/BaseResourceAttributes"},{"type":"object","required":["recordCount","status","exportJobStatus"],"additionalProperties":false,"properties":{"recordCount":{"type":"number","description":"Total number of records linked to the data delivery package."},"status":{"$ref":"#/components/schemas/DataDeliveryAttributeStatus"},"exportJobStatus":{"$ref":"#/components/schemas/DataDeliveryState"},"archiveParts":{"type":"array","description":"Ordered ZIP archive part results for the exported package.","items":{"type":"object","required":["partNumber","fileName","status"],"additionalProperties":false,"properties":{"partNumber":{"type":"number","description":"One-based archive part number."},"fileName":{"type":"string","description":"Archive file name (for example delivery_package1.zip)."},"status":{"type":"string","enum":["READY","FAILED"],"description":"Part generation status."},"url":{"type":"string","description":"Download URL for READY parts."},"expiresAt":{"type":"string","description":"ISO 8601 date-time when the archive expires (7 days after export)."},"error":{"type":"string","description":"Failure reason for FAILED parts."},"format":{"type":"string","enum":["csv","json"],"description":"Which representation this archive holds. A record-export produces one archive per format so the package can be downloaded as CSV or JSON; single-format deliveries tag their one archive. Absent for legacy/manifest archives."}}}}}}]},"DataDeliveryAttributesInput":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataDeliveryAttributesInput","description":"Editable input attributes for a data delivery. Currently only `name` is user-editable, with a maximum length enforced by the service.","type":"object","required":["name"],"additionalProperties":false,"properties":{"name":{"type":"string","maxLength":250,"description":"Must be kept in sync with MAX_DATA_DELIVERY_NAME_LENGTH in services/data-delivery-service/src/constants/index.ts"}}},"BaseResourceAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResourceAttributes","description":"Common timestamps present on all resource attribute objects. `created` is the ISO 8601 date-time when the resource was first created; `updated` is the date-time of the most recent modification.","type":"object","additionalProperties":false,"required":["created","updated"],"properties":{"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}},"DataDeliveryAttributeStatus":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataDeliveryAttributeStatus","description":"Data Delivery Package Status. Must be kept in sync with DataDeliveryStatusValues in services/data-delivery-service/src/constants/index.ts","type":"string","enum":["IN_PROGRESS","COMPLETED","DELETING"]},"DataDeliveryState":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataDeliveryState","description":"Export/delete job status. PENDING indicates the job is ready to start. RUNNING means the job (export or delete) is in progress. SUCCEEDED, PARTIALLY_SUCCEEDED, FAILED, TIMED_OUT, and ABORTED are terminal states. PARTIALLY_SUCCEEDED means the export completed but at least one record had errors. PENDING_REDRIVE indicates the job is queued for retry.","type":"string","enum":["PENDING","RUNNING","SUCCEEDED","PARTIALLY_SUCCEEDED","FAILED","TIMED_OUT","ABORTED","PENDING_REDRIVE"]},"DataDeliveryRelationships":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataDeliveryRelationships","description":"JSON:API relationship links for a data delivery resource. Contains links to the owning tenant and the collection of records included in the delivery package.","type":"object","properties":{"tenant":{"$ref":"#/components/schemas/TenantRelationship"},"records":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/data"}},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":[],"additionalProperties":false},"author":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["users"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data"],"additionalProperties":false}},"required":["tenant","records","author"],"additionalProperties":false},"TenantRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantRelationship","description":"A relationship to a tenant","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tenants"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data","links"],"additionalProperties":false},"LinksRelated":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILinks","description":"A JSON:API links object with an absolute or relative 'related' link","type":"object","required":["related"],"properties":{"related":{"type":"string"}},"additionalProperties":false},"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["records"]}},"required":["id","type"]},"LinksSelf":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILinksSelf","description":"A JSON:API links object with an absolute or relative 'self' link","type":"object","required":["self"],"properties":{"self":{"type":"string"}},"additionalProperties":false}}}}
```

## The DataDeliveryUpdateOneRequest object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"DataDeliveryUpdateOneRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataDeliveryUpdateOneRequest","description":"Request body for updating an existing data delivery. Currently supports updating the delivery `name`. The `data.id` must match the `dataDeliveryId` path parameter.","type":"object","properties":{"meta":{"$ref":"#/components/schemas/WriteRequestMeta"},"data":{"allOf":[{"$ref":"#/components/schemas/DataDeliveryResourceType"},{"type":"object","required":["attributes"],"additionalProperties":false,"properties":{"attributes":{"$ref":"#/components/schemas/DataDeliveryAttributesInput"}}}]}},"required":["data"],"additionalProperties":false},"WriteRequestMeta":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IWriteRequestMeta","description":"Optional audit metadata for a write request. `audit.source` is the issuing surface/channel (e.g. studio-web, mcp, api, system); `audit.reason` is a free-text justification. Both are optional and length-capped.","type":"object","additionalProperties":false,"properties":{"audit":{"type":"object","additionalProperties":false,"properties":{"source":{"type":"string","maxLength":64},"reason":{"type":"string","maxLength":256}}}}},"DataDeliveryResourceType":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataDeliveryResourceType","description":"JSON:API type discriminator for data delivery resources. The `type` field is always `\"dataDeliveries\"`. Used as a base to enforce correct JSON:API resource typing in request bodies.","type":"object","required":["type"],"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["dataDeliveries"]}}},"DataDeliveryAttributesInput":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataDeliveryAttributesInput","description":"Editable input attributes for a data delivery. Currently only `name` is user-editable, with a maximum length enforced by the service.","type":"object","required":["name"],"additionalProperties":false,"properties":{"name":{"type":"string","maxLength":250,"description":"Must be kept in sync with MAX_DATA_DELIVERY_NAME_LENGTH in services/data-delivery-service/src/constants/index.ts"}}}}}}
```

## The DataDeliveryFindRecordsRelationshipResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"DataDeliveryFindRecordsRelationshipResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataDeliveryFindRecordsRelationshipResponse","description":"JSON:API response for GET dataDeliveries/:id/relationships/records - linkage record resource identifiers","type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"type":"array","description":"Resource identifier objects for each record in the relationship","items":{"type":"object","required":["type","id"],"additionalProperties":false,"properties":{"type":{"type":"string","enum":["records"]},"id":{"type":"string"}}}},"links":{"type":"object","description":"JSON:API links","properties":{"self":{"type":"string","description":"Link to this relationship"}},"additionalProperties":false},"meta":{"type":"object","description":"Non-standard meta (e.g. total count)","properties":{"total":{"type":"integer","minimum":0,"description":"Total number of records in the relationship"}},"additionalProperties":false}}}}}}
```

## The DataDeliveryAddRecordsRelationshipRequest object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"DataDeliveryAddRecordsRelationshipRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataDeliveryAddRecordsRelationshipRequest","description":"Request to add records to a data delivery relationship","type":"object","properties":{"meta":{"$ref":"#/components/schemas/WriteRequestMeta"},"data":{"type":"array","items":{"$ref":"#/components/schemas/data"},"minItems":1}},"required":["data"],"additionalProperties":false},"WriteRequestMeta":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IWriteRequestMeta","description":"Optional audit metadata for a write request. `audit.source` is the issuing surface/channel (e.g. studio-web, mcp, api, system); `audit.reason` is a free-text justification. Both are optional and length-capped.","type":"object","additionalProperties":false,"properties":{"audit":{"type":"object","additionalProperties":false,"properties":{"source":{"type":"string","maxLength":64},"reason":{"type":"string","maxLength":256}}}}},"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["records"]}},"required":["id","type"]}}}}
```

## The DataDeliveryRemoveRecordsRelationshipRequest object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"DataDeliveryRemoveRecordsRelationshipRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataDeliveryRemoveRecordsRelationshipRequest","description":"Request to remove records from a data delivery relationship","type":"object","properties":{"meta":{"$ref":"#/components/schemas/WriteRequestMeta"},"data":{"type":"array","items":{"$ref":"#/components/schemas/data"},"minItems":1}},"required":["data"],"additionalProperties":false},"WriteRequestMeta":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IWriteRequestMeta","description":"Optional audit metadata for a write request. `audit.source` is the issuing surface/channel (e.g. studio-web, mcp, api, system); `audit.reason` is a free-text justification. Both are optional and length-capped.","type":"object","additionalProperties":false,"properties":{"audit":{"type":"object","additionalProperties":false,"properties":{"source":{"type":"string","maxLength":64},"reason":{"type":"string","maxLength":256}}}}},"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["records"]}},"required":["id","type"]}}}}
```

## The DataDeliveryExportJobParameters object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"DataDeliveryExportJobParameters":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataDeliveryExportJobParameters","description":"Parameters for a data delivery export job. `dataDeliveryId` specifies the delivery to export. `exportOptions` is an array of content categories (what to export): `metadata` (record fields), `contributors` (cast and crew), `images` (poster and photo assets), and `files` (associated documents and media files). `outputFormats` is the set of representations to produce for the record metadata: `json` (per-record JSON) and/or `csv` (a single flat, re-importable CSV for the bulk-update flow). A record-export requests both so the completed package can be downloaded as either; the pipeline produces one format-tagged archive per entry. Defaults to `[\"json\"]`.","type":"object","properties":{"dataDeliveryId":{"type":"string"},"exportOptions":{"type":"array","items":{"type":"string","enum":["metadata","contributors","images","files"]}},"outputFormats":{"type":"array","items":{"type":"string","enum":["json","csv"]}}},"required":["dataDeliveryId"],"additionalProperties":false}}}}
```

## The DataDeliveryExportJobCreateOneRequest object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"DataDeliveryExportJobCreateOneRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataDeliveryExportJobCreateOneRequest","description":"Request body for creating a data delivery export or delete job. Specify the job type (`exportDataDelivery` or `deleteDataDelivery`) and the target delivery ID in the parameters.","type":"object","properties":{"meta":{"$ref":"#/components/schemas/WriteRequestMeta"},"data":{"allOf":[{"$ref":"#/components/schemas/BaseCreateRequest"},{"type":"object","properties":{"attributes":{"type":"object","properties":{"type":{"type":"string","enum":["exportDataDelivery","deleteDataDelivery"]},"parameters":{"$ref":"#/components/schemas/DataDeliveryExportJobParameters"}},"required":["type","parameters"],"additionalProperties":false}},"required":["attributes"],"additionalProperties":false}]}},"required":["data"],"additionalProperties":false},"WriteRequestMeta":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IWriteRequestMeta","description":"Optional audit metadata for a write request. `audit.source` is the issuing surface/channel (e.g. studio-web, mcp, api, system); `audit.reason` is a free-text justification. Both are optional and length-capped.","type":"object","additionalProperties":false,"properties":{"audit":{"type":"object","additionalProperties":false,"properties":{"source":{"type":"string","maxLength":64},"reason":{"type":"string","maxLength":256}}}}},"BaseCreateRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseCreateRequest","description":"Base JSON:API shape for create requests. The `type` field is required and must match the target resource type. The `id` field is optional; if omitted, the server generates a unique ID for the new resource.","type":"object","additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"type":"string"}},"required":["type"]},"DataDeliveryExportJobParameters":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataDeliveryExportJobParameters","description":"Parameters for a data delivery export job. `dataDeliveryId` specifies the delivery to export. `exportOptions` is an array of content categories (what to export): `metadata` (record fields), `contributors` (cast and crew), `images` (poster and photo assets), and `files` (associated documents and media files). `outputFormats` is the set of representations to produce for the record metadata: `json` (per-record JSON) and/or `csv` (a single flat, re-importable CSV for the bulk-update flow). A record-export requests both so the completed package can be downloaded as either; the pipeline produces one format-tagged archive per entry. Defaults to `[\"json\"]`.","type":"object","properties":{"dataDeliveryId":{"type":"string"},"exportOptions":{"type":"array","items":{"type":"string","enum":["metadata","contributors","images","files"]}},"outputFormats":{"type":"array","items":{"type":"string","enum":["json","csv"]}}},"required":["dataDeliveryId"],"additionalProperties":false}}}}
```

## The DataDeliveryExportJobAttributes object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"DataDeliveryExportJobAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataDeliveryExportJobAttributes","description":"Attributes for a data delivery background job. Extends the base background job with data delivery-specific job types: `exportDataDelivery` (packages and exports all records in the delivery) and `deleteDataDelivery` (permanently removes the delivery and its associated data).","type":"object","allOf":[{"$ref":"#/components/schemas/BackgroundJobAttributes"},{"type":"object","properties":{"type":{"type":"string","enum":["exportDataDelivery","deleteDataDelivery"]},"parameters":{"type":"object","properties":{"dataDeliveryId":{"type":"string"},"tenantId":{"type":"string"},"exportOptions":{"type":"array","items":{"type":"string","enum":["metadata","contributors","images","files"]}},"outputFormats":{"type":"array","items":{"type":"string","enum":["json","csv"]}}},"required":["dataDeliveryId","tenantId"],"additionalProperties":false}},"required":["type","parameters"],"additionalProperties":false}],"required":["arn","status","created","updated","type","parameters"],"additionalProperties":false},"BackgroundJobAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBackgroundJobAttributes","description":"Attributes for a background job. Background jobs represent long-running asynchronous operations (e.g. contributor deletion, tenant data export). Includes current status, job type, parameters, optional output on completion, optional error details on failure, and optional item progress counts for batch jobs.","type":"object","allOf":[{"$ref":"#/components/schemas/BaseResourceAttributes"},{"type":"object","properties":{"type":{"type":"string"},"parameters":{"type":"object"},"status":{"$ref":"#/components/schemas/BackgroundJobStatus"},"output":{"type":"object"},"totalItemsCount":{"type":"integer","minimum":0,"description":"Total number of items in a batch job, when applicable."},"successItemsCount":{"type":"integer","minimum":0,"description":"Number of items processed successfully in a batch job, when applicable."},"failedItemsCount":{"type":"integer","minimum":0,"description":"Number of items that failed in a batch job, when applicable."},"error":{"type":"object","properties":{"message":{"type":"string"},"code":{"type":"string"}},"required":["message","code"],"additionalProperties":false}},"required":["type","parameters","status"],"additionalProperties":false}],"additionalProperties":false},"BaseResourceAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResourceAttributes","description":"Common timestamps present on all resource attribute objects. `created` is the ISO 8601 date-time when the resource was first created; `updated` is the date-time of the most recent modification.","type":"object","additionalProperties":false,"required":["created","updated"],"properties":{"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}},"BackgroundJobStatus":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBackgroundJobStatus","description":"Status of a background job: ABORTED, FAILED, PENDING_REDRIVE, RUNNING, SUCCEEDED, or TIMED_OUT.","type":"string","enum":["ABORTED","FAILED","PENDING_REDRIVE","RUNNING","SUCCEEDED","TIMED_OUT"]}}}}
```

## The DataDeliveryExportJobCreateOneResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"DataDeliveryExportJobCreateOneResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataDeliveryExportJobCreateOneResponse","description":"Response returned after successfully creating a data delivery background job. Contains the new job's ID and initial status attributes. Poll the job status to track export progress.","type":"object","properties":{"data":{"allOf":[{"$ref":"#/components/schemas/BaseCreateRequest"},{"additionalProperties":false,"properties":{"id":{"type":"string"},"attributes":{"$ref":"#/components/schemas/DataDeliveryExportJobAttributes"}},"required":["id","attributes"]}]}},"required":["data"],"additionalProperties":false},"BaseCreateRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseCreateRequest","description":"Base JSON:API shape for create requests. The `type` field is required and must match the target resource type. The `id` field is optional; if omitted, the server generates a unique ID for the new resource.","type":"object","additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"type":"string"}},"required":["type"]},"DataDeliveryExportJobAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataDeliveryExportJobAttributes","description":"Attributes for a data delivery background job. Extends the base background job with data delivery-specific job types: `exportDataDelivery` (packages and exports all records in the delivery) and `deleteDataDelivery` (permanently removes the delivery and its associated data).","type":"object","allOf":[{"$ref":"#/components/schemas/BackgroundJobAttributes"},{"type":"object","properties":{"type":{"type":"string","enum":["exportDataDelivery","deleteDataDelivery"]},"parameters":{"type":"object","properties":{"dataDeliveryId":{"type":"string"},"tenantId":{"type":"string"},"exportOptions":{"type":"array","items":{"type":"string","enum":["metadata","contributors","images","files"]}},"outputFormats":{"type":"array","items":{"type":"string","enum":["json","csv"]}}},"required":["dataDeliveryId","tenantId"],"additionalProperties":false}},"required":["type","parameters"],"additionalProperties":false}],"required":["arn","status","created","updated","type","parameters"],"additionalProperties":false},"BackgroundJobAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBackgroundJobAttributes","description":"Attributes for a background job. Background jobs represent long-running asynchronous operations (e.g. contributor deletion, tenant data export). Includes current status, job type, parameters, optional output on completion, optional error details on failure, and optional item progress counts for batch jobs.","type":"object","allOf":[{"$ref":"#/components/schemas/BaseResourceAttributes"},{"type":"object","properties":{"type":{"type":"string"},"parameters":{"type":"object"},"status":{"$ref":"#/components/schemas/BackgroundJobStatus"},"output":{"type":"object"},"totalItemsCount":{"type":"integer","minimum":0,"description":"Total number of items in a batch job, when applicable."},"successItemsCount":{"type":"integer","minimum":0,"description":"Number of items processed successfully in a batch job, when applicable."},"failedItemsCount":{"type":"integer","minimum":0,"description":"Number of items that failed in a batch job, when applicable."},"error":{"type":"object","properties":{"message":{"type":"string"},"code":{"type":"string"}},"required":["message","code"],"additionalProperties":false}},"required":["type","parameters","status"],"additionalProperties":false}],"additionalProperties":false},"BaseResourceAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResourceAttributes","description":"Common timestamps present on all resource attribute objects. `created` is the ISO 8601 date-time when the resource was first created; `updated` is the date-time of the most recent modification.","type":"object","additionalProperties":false,"required":["created","updated"],"properties":{"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}},"BackgroundJobStatus":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBackgroundJobStatus","description":"Status of a background job: ABORTED, FAILED, PENDING_REDRIVE, RUNNING, SUCCEEDED, or TIMED_OUT.","type":"string","enum":["ABORTED","FAILED","PENDING_REDRIVE","RUNNING","SUCCEEDED","TIMED_OUT"]}}}}
```

## The DataIngressAttributes object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"DataIngressAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataIngressAttributes","description":"Attributes for a data ingress execution","type":"object","additionalProperties":false,"required":["status","sourceAdapterType","totalItems","successCount","failedCount"],"properties":{"status":{"type":"string","enum":["IN_PROGRESS","COMPLETED","FAILED"],"description":"Current status of the ingress execution"},"name":{"type":"string","description":"Optional name for the data ingress execution, useful for identification and tracking purposes"},"sourceAdapterType":{"type":"string","description":"Identifier of the source adapter used (e.g., 'origin-studio-api', 'generic-file')"},"payload":{"type":"object","description":"Adapter-specific configuration payload","additionalProperties":true},"totalItems":{"type":"integer","description":"Total number of items identified for import"},"successCount":{"type":"integer","description":"Number of items successfully imported"},"failedCount":{"type":"integer","description":"Number of items that failed to import"},"executionArn":{"type":"string","description":"Internal execution reference for the workflow processing this data ingress. Provided for diagnostic purposes."},"backgroundJobId":{"type":"string","description":"ID of the background job tracking this data ingress execution. Use it to retrieve the execution's error archive via GET /backgroundJobs/{jobId}/errors."},"output":{"type":"object","description":"Output data including errors and results","additionalProperties":true},"completedAt":{"type":"string","format":"date-time","description":"Timestamp when the execution completed"},"created":{"type":"string","format":"date-time","description":"Creation timestamp"},"updated":{"type":"string","format":"date-time","description":"Last update timestamp"}}}}}}
```

## The DataIngressFindManyResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"DataIngressFindManyResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataIngressFindManyResponse","description":"Response for listing data ingress executions","type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","type","attributes"],"additionalProperties":false,"properties":{"id":{"type":"string","description":"Data ingress execution ID"},"type":{"type":"string","enum":["dataIngress"]},"attributes":{"$ref":"#/components/schemas/DataIngressAttributes"}}}},"meta":{"type":"object","additionalProperties":false,"properties":{"cursor":{"type":"string","description":"Cursor for pagination"}}}}},"DataIngressAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataIngressAttributes","description":"Attributes for a data ingress execution","type":"object","additionalProperties":false,"required":["status","sourceAdapterType","totalItems","successCount","failedCount"],"properties":{"status":{"type":"string","enum":["IN_PROGRESS","COMPLETED","FAILED"],"description":"Current status of the ingress execution"},"name":{"type":"string","description":"Optional name for the data ingress execution, useful for identification and tracking purposes"},"sourceAdapterType":{"type":"string","description":"Identifier of the source adapter used (e.g., 'origin-studio-api', 'generic-file')"},"payload":{"type":"object","description":"Adapter-specific configuration payload","additionalProperties":true},"totalItems":{"type":"integer","description":"Total number of items identified for import"},"successCount":{"type":"integer","description":"Number of items successfully imported"},"failedCount":{"type":"integer","description":"Number of items that failed to import"},"executionArn":{"type":"string","description":"Internal execution reference for the workflow processing this data ingress. Provided for diagnostic purposes."},"backgroundJobId":{"type":"string","description":"ID of the background job tracking this data ingress execution. Use it to retrieve the execution's error archive via GET /backgroundJobs/{jobId}/errors."},"output":{"type":"object","description":"Output data including errors and results","additionalProperties":true},"completedAt":{"type":"string","format":"date-time","description":"Timestamp when the execution completed"},"created":{"type":"string","format":"date-time","description":"Creation timestamp"},"updated":{"type":"string","format":"date-time","description":"Last update timestamp"}}}}}}
```

## The DataIngressCreateOneRequest object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"DataIngressCreateOneRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataIngressCreateOneRequest","description":"Request body for creating a new data ingress execution","type":"object","required":["data"],"additionalProperties":false,"properties":{"meta":{"$ref":"#/components/schemas/WriteRequestMeta"},"data":{"type":"object","required":["type","attributes"],"additionalProperties":false,"properties":{"type":{"type":"string","enum":["dataIngress"]},"attributes":{"type":"object","required":["sourceAdapterType","importType","payload"],"additionalProperties":false,"properties":{"name":{"type":"string","description":"Optional name for the data ingress execution, useful for identification and tracking purposes"},"sourceAdapterType":{"type":"string","description":"Identifier of the source adapter to use (e.g., 'origin-studio-api', 'generic-file')"},"importType":{"type":"string","enum":["file","api"],"description":"Determines the import strategy: 'file' reads items from an S3 file (CSV/JSON/JSONL) using ItemReader, 'api' paginates through an external API in a loop"},"importFileType":{"type":"string","enum":["csv","json","jsonl"],"description":"Specifies the file format when 'importType' is 'file'. Required if 'importType' is 'file', ignored otherwise."},"payload":{"type":"object","description":"Adapter-specific configuration payload","additionalProperties":true}}}}}}},"WriteRequestMeta":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IWriteRequestMeta","description":"Optional audit metadata for a write request. `audit.source` is the issuing surface/channel (e.g. studio-web, mcp, api, system); `audit.reason` is a free-text justification. Both are optional and length-capped.","type":"object","additionalProperties":false,"properties":{"audit":{"type":"object","additionalProperties":false,"properties":{"source":{"type":"string","maxLength":64},"reason":{"type":"string","maxLength":256}}}}}}}}
```

## The DataIngressCreateOneResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"DataIngressCreateOneResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataIngressCreateOneResponse","description":"Response for creating a new data ingress execution","type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"type":"object","required":["id","type","attributes"],"additionalProperties":false,"properties":{"id":{"type":"string","description":"Data ingress execution ID"},"type":{"type":"string","enum":["dataIngress"]},"attributes":{"$ref":"#/components/schemas/DataIngressAttributes"}}}}},"DataIngressAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataIngressAttributes","description":"Attributes for a data ingress execution","type":"object","additionalProperties":false,"required":["status","sourceAdapterType","totalItems","successCount","failedCount"],"properties":{"status":{"type":"string","enum":["IN_PROGRESS","COMPLETED","FAILED"],"description":"Current status of the ingress execution"},"name":{"type":"string","description":"Optional name for the data ingress execution, useful for identification and tracking purposes"},"sourceAdapterType":{"type":"string","description":"Identifier of the source adapter used (e.g., 'origin-studio-api', 'generic-file')"},"payload":{"type":"object","description":"Adapter-specific configuration payload","additionalProperties":true},"totalItems":{"type":"integer","description":"Total number of items identified for import"},"successCount":{"type":"integer","description":"Number of items successfully imported"},"failedCount":{"type":"integer","description":"Number of items that failed to import"},"executionArn":{"type":"string","description":"Internal execution reference for the workflow processing this data ingress. Provided for diagnostic purposes."},"backgroundJobId":{"type":"string","description":"ID of the background job tracking this data ingress execution. Use it to retrieve the execution's error archive via GET /backgroundJobs/{jobId}/errors."},"output":{"type":"object","description":"Output data including errors and results","additionalProperties":true},"completedAt":{"type":"string","format":"date-time","description":"Timestamp when the execution completed"},"created":{"type":"string","format":"date-time","description":"Creation timestamp"},"updated":{"type":"string","format":"date-time","description":"Last update timestamp"}}}}}}
```

## The DataIngressFindOneResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"DataIngressFindOneResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataIngressFindOneResponse","description":"Response for getting a single data ingress execution","type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"type":"object","required":["id","type","attributes"],"additionalProperties":false,"properties":{"id":{"type":"string","description":"Data ingress execution ID"},"type":{"type":"string","enum":["dataIngress"]},"attributes":{"$ref":"#/components/schemas/DataIngressAttributes"}}}}},"DataIngressAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataIngressAttributes","description":"Attributes for a data ingress execution","type":"object","additionalProperties":false,"required":["status","sourceAdapterType","totalItems","successCount","failedCount"],"properties":{"status":{"type":"string","enum":["IN_PROGRESS","COMPLETED","FAILED"],"description":"Current status of the ingress execution"},"name":{"type":"string","description":"Optional name for the data ingress execution, useful for identification and tracking purposes"},"sourceAdapterType":{"type":"string","description":"Identifier of the source adapter used (e.g., 'origin-studio-api', 'generic-file')"},"payload":{"type":"object","description":"Adapter-specific configuration payload","additionalProperties":true},"totalItems":{"type":"integer","description":"Total number of items identified for import"},"successCount":{"type":"integer","description":"Number of items successfully imported"},"failedCount":{"type":"integer","description":"Number of items that failed to import"},"executionArn":{"type":"string","description":"Internal execution reference for the workflow processing this data ingress. Provided for diagnostic purposes."},"backgroundJobId":{"type":"string","description":"ID of the background job tracking this data ingress execution. Use it to retrieve the execution's error archive via GET /backgroundJobs/{jobId}/errors."},"output":{"type":"object","description":"Output data including errors and results","additionalProperties":true},"completedAt":{"type":"string","format":"date-time","description":"Timestamp when the execution completed"},"created":{"type":"string","format":"date-time","description":"Creation timestamp"},"updated":{"type":"string","format":"date-time","description":"Last update timestamp"}}}}}}
```

## The DataIngressGetUploadUrlRequest object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"DataIngressGetUploadUrlRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataIngressGetUploadUrlRequest","description":"Request body for generating a presigned S3 upload URL for data ingress file imports","type":"object","required":["data"],"additionalProperties":false,"properties":{"meta":{"$ref":"#/components/schemas/WriteRequestMeta"},"data":{"type":"object","required":["type","attributes"],"additionalProperties":false,"properties":{"type":{"type":"string","enum":["dataIngress"]},"attributes":{"type":"object","required":["fileName"],"additionalProperties":false,"properties":{"fileName":{"type":"string","description":"Name of the file to upload"},"contentType":{"type":"string","description":"MIME content type of the file (e.g., 'text/csv', 'application/json')","nullable":true}}}}}}},"WriteRequestMeta":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IWriteRequestMeta","description":"Optional audit metadata for a write request. `audit.source` is the issuing surface/channel (e.g. studio-web, mcp, api, system); `audit.reason` is a free-text justification. Both are optional and length-capped.","type":"object","additionalProperties":false,"properties":{"audit":{"type":"object","additionalProperties":false,"properties":{"source":{"type":"string","maxLength":64},"reason":{"type":"string","maxLength":256}}}}}}}}
```

## The DataIngressGetUploadUrlResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"DataIngressGetUploadUrlResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataIngressGetUploadUrlResponse","description":"Response containing a presigned S3 URL for uploading a data ingress file","type":"object","required":["data"],"additionalProperties":false,"properties":{"data":{"type":"object","required":["type","attributes"],"additionalProperties":false,"properties":{"type":{"type":"string","enum":["dataIngressUploadUrl"]},"attributes":{"type":"object","required":["url","key","expiresInSeconds"],"additionalProperties":false,"properties":{"url":{"type":"string","description":"Presigned S3 URL for uploading the file via HTTP PUT"},"key":{"type":"string","description":"S3 object key where the file will be stored"},"expiresInSeconds":{"type":"integer","description":"Number of seconds until the presigned URL expires"}}}}}}}}}}
```

## The DataIngressGetDownloadUrlRequest object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"DataIngressGetDownloadUrlRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataIngressGetDownloadUrlRequest","description":"Request body for generating a presigned S3 download URL for a data ingress file","type":"object","required":["data"],"additionalProperties":false,"properties":{"meta":{"$ref":"#/components/schemas/WriteRequestMeta"},"data":{"type":"object","required":["type","attributes"],"additionalProperties":false,"properties":{"type":{"type":"string","enum":["dataIngress"]},"attributes":{"type":"object","required":["fileName"],"additionalProperties":false,"properties":{"fileName":{"type":"string","description":"Name of the file to download"}}}}}}},"WriteRequestMeta":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IWriteRequestMeta","description":"Optional audit metadata for a write request. `audit.source` is the issuing surface/channel (e.g. studio-web, mcp, api, system); `audit.reason` is a free-text justification. Both are optional and length-capped.","type":"object","additionalProperties":false,"properties":{"audit":{"type":"object","additionalProperties":false,"properties":{"source":{"type":"string","maxLength":64},"reason":{"type":"string","maxLength":256}}}}}}}}
```

## The DataIngressGetDownloadUrlResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"DataIngressGetDownloadUrlResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataIngressGetDownloadUrlResponse","description":"Response containing a presigned S3 URL for downloading a data ingress file","type":"object","required":["data"],"additionalProperties":false,"properties":{"data":{"type":"object","required":["type","attributes"],"additionalProperties":false,"properties":{"type":{"type":"string","enum":["dataIngressDownloadUrl"]},"attributes":{"type":"object","required":["url","key","expiresInSeconds"],"additionalProperties":false,"properties":{"url":{"type":"string","description":"Presigned S3 URL for downloading the file via HTTP GET"},"key":{"type":"string","description":"S3 object key of the file"},"expiresInSeconds":{"type":"integer","description":"Number of seconds until the presigned URL expires"}}}}}}}}}}
```

## The DataIngressScanColumnsRequest object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"DataIngressScanColumnsRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataIngressScanColumnsRequest","description":"Request body for scanning an uploaded file to discover column names and unique categorical values","type":"object","required":["data"],"additionalProperties":false,"properties":{"meta":{"$ref":"#/components/schemas/WriteRequestMeta"},"data":{"type":"object","required":["type","attributes"],"additionalProperties":false,"properties":{"type":{"type":"string","enum":["dataIngress"]},"attributes":{"type":"object","required":["fileName"],"additionalProperties":false,"properties":{"fileName":{"type":"string","minLength":1,"description":"File name only, without any path prefix. Must match the file name used when obtaining the upload URL."}}}}}}},"WriteRequestMeta":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IWriteRequestMeta","description":"Optional audit metadata for a write request. `audit.source` is the issuing surface/channel (e.g. studio-web, mcp, api, system); `audit.reason` is a free-text justification. Both are optional and length-capped.","type":"object","additionalProperties":false,"properties":{"audit":{"type":"object","additionalProperties":false,"properties":{"source":{"type":"string","maxLength":64},"reason":{"type":"string","maxLength":256}}}}}}}}
```

## The DataIngressScanColumnsResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"DataIngressScanColumnsResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataIngressScanColumnsResponse","description":"Response from scanning an uploaded file for column names and unique categorical values","type":"object","required":["data"],"additionalProperties":false,"properties":{"data":{"type":"object","required":["type","attributes"],"additionalProperties":false,"properties":{"type":{"type":"string","enum":["dataIngressScanColumns"]},"attributes":{"type":"object","required":["ok"],"additionalProperties":false,"properties":{"ok":{"type":"boolean","description":"Whether the scan succeeded"},"fileType":{"type":"string","enum":["csv","json","jsonl"],"description":"Format of the uploaded file"},"columns":{"type":"array","items":{"type":"string"},"description":"All column names found in the file header (CSV first row or JSON object keys)"},"uniqueValues":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}},"description":"Map of column name to sorted array of unique values found in that column"},"error":{"type":"string","description":"Error message when ok is false"}}}}}}}}}}
```

## The DataWarehouseSettingsAttributes object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"DataWarehouseSettingsAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataWarehouseSettingsAttributes","description":"Your data export settings","type":"object","additionalProperties":false,"required":["credentialType","format","schedule"],"properties":{"credentialType":{"type":"string","enum":["iam-role","access-key"],"description":"How your exported data is accessed in the storage bucket"},"iamRoleArn":{"type":["string","null"],"description":"The AWS IAM role allowed to read your exported data from the storage bucket. Used when credentialType is 'iam-role'. Removing it turns off exports."},"accessKeyId":{"type":["string","null"],"description":"The access key ID, shown when credentialType is 'access-key'. The matching secret is never shown here."},"format":{"type":"string","enum":["parquet","csv"],"description":"The file format for your exported data"},"schedule":{"type":"string","enum":["once-a-day","twice-a-day"],"description":"How often your data is exported"},"exportLocation":{"type":["string","null"],"description":"The S3 URI your exported data is written to, e.g. s3://your-export-bucket/. Null when this deployment has no export storage configured."},"lastExportDate":{"type":["string","null"],"format":"date-time","description":"When your data was most recently exported"},"lastExportStatus":{"type":["string","null"],"enum":["success","failure",null],"description":"Whether the most recent export succeeded or failed"},"created":{"type":"string","format":"date-time","description":"When these settings were created"},"updated":{"type":"string","format":"date-time","description":"When these settings were last updated"}}}}}}
```

## The DataWarehouseSettingsFindManyResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"DataWarehouseSettingsFindManyResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataWarehouseSettingsFindManyResponse","description":"Your data export settings. Exports can only be set up once, so this contains at most one item.","type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","type","attributes"],"additionalProperties":false,"properties":{"id":{"type":"string","description":"The export settings ID"},"type":{"type":"string","enum":["dataWarehouseSettings"]},"attributes":{"$ref":"#/components/schemas/DataWarehouseSettingsAttributes"}}}}}},"DataWarehouseSettingsAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataWarehouseSettingsAttributes","description":"Your data export settings","type":"object","additionalProperties":false,"required":["credentialType","format","schedule"],"properties":{"credentialType":{"type":"string","enum":["iam-role","access-key"],"description":"How your exported data is accessed in the storage bucket"},"iamRoleArn":{"type":["string","null"],"description":"The AWS IAM role allowed to read your exported data from the storage bucket. Used when credentialType is 'iam-role'. Removing it turns off exports."},"accessKeyId":{"type":["string","null"],"description":"The access key ID, shown when credentialType is 'access-key'. The matching secret is never shown here."},"format":{"type":"string","enum":["parquet","csv"],"description":"The file format for your exported data"},"schedule":{"type":"string","enum":["once-a-day","twice-a-day"],"description":"How often your data is exported"},"exportLocation":{"type":["string","null"],"description":"The S3 URI your exported data is written to, e.g. s3://your-export-bucket/. Null when this deployment has no export storage configured."},"lastExportDate":{"type":["string","null"],"format":"date-time","description":"When your data was most recently exported"},"lastExportStatus":{"type":["string","null"],"enum":["success","failure",null],"description":"Whether the most recent export succeeded or failed"},"created":{"type":"string","format":"date-time","description":"When these settings were created"},"updated":{"type":"string","format":"date-time","description":"When these settings were last updated"}}}}}}
```

## The DataWarehouseSettingsCreateOneRequest object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"DataWarehouseSettingsCreateOneRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataWarehouseSettingsCreateOneRequest","description":"Request body for turning on data exports","type":"object","required":["data"],"additionalProperties":false,"properties":{"meta":{"$ref":"#/components/schemas/WriteRequestMeta"},"data":{"type":"object","required":["type","attributes"],"additionalProperties":false,"properties":{"type":{"type":"string","enum":["dataWarehouseSettings"]},"attributes":{"type":"object","required":["credentialType"],"additionalProperties":false,"properties":{"credentialType":{"type":"string","enum":["iam-role","access-key"]},"iamRoleArn":{"type":"string","description":"The AWS IAM role allowed to read your exported data. Required when credentialType is 'iam-role'."},"format":{"type":"string","enum":["parquet","csv"]},"schedule":{"type":"string","enum":["once-a-day","twice-a-day"],"description":"How often your data is exported. Defaults to once-a-day when omitted."}}}}}}},"WriteRequestMeta":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IWriteRequestMeta","description":"Optional audit metadata for a write request. `audit.source` is the issuing surface/channel (e.g. studio-web, mcp, api, system); `audit.reason` is a free-text justification. Both are optional and length-capped.","type":"object","additionalProperties":false,"properties":{"audit":{"type":"object","additionalProperties":false,"properties":{"source":{"type":"string","maxLength":64},"reason":{"type":"string","maxLength":256}}}}}}}}
```

## The DataWarehouseSettingsResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"DataWarehouseSettingsResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataWarehouseSettingsResponse","description":"Your data export settings","type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"type":"object","required":["id","type","attributes"],"additionalProperties":false,"properties":{"id":{"type":"string","description":"The export settings ID"},"type":{"type":"string","enum":["dataWarehouseSettings"]},"attributes":{"$ref":"#/components/schemas/DataWarehouseSettingsAttributes"}}},"meta":{"type":"object","additionalProperties":false,"description":"Included only when a new access key was issued by this request (turning on exports with credentialType 'access-key', or switching to it). The secret is shown once and never stored, so save it securely.","properties":{"accessKeyId":{"type":"string","description":"The access key ID for reading your exported data"},"accessKeySecret":{"type":"string","description":"The secret for your access key. Shown once and never stored or shown again, so save it securely."}}}}},"DataWarehouseSettingsAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataWarehouseSettingsAttributes","description":"Your data export settings","type":"object","additionalProperties":false,"required":["credentialType","format","schedule"],"properties":{"credentialType":{"type":"string","enum":["iam-role","access-key"],"description":"How your exported data is accessed in the storage bucket"},"iamRoleArn":{"type":["string","null"],"description":"The AWS IAM role allowed to read your exported data from the storage bucket. Used when credentialType is 'iam-role'. Removing it turns off exports."},"accessKeyId":{"type":["string","null"],"description":"The access key ID, shown when credentialType is 'access-key'. The matching secret is never shown here."},"format":{"type":"string","enum":["parquet","csv"],"description":"The file format for your exported data"},"schedule":{"type":"string","enum":["once-a-day","twice-a-day"],"description":"How often your data is exported"},"exportLocation":{"type":["string","null"],"description":"The S3 URI your exported data is written to, e.g. s3://your-export-bucket/. Null when this deployment has no export storage configured."},"lastExportDate":{"type":["string","null"],"format":"date-time","description":"When your data was most recently exported"},"lastExportStatus":{"type":["string","null"],"enum":["success","failure",null],"description":"Whether the most recent export succeeded or failed"},"created":{"type":"string","format":"date-time","description":"When these settings were created"},"updated":{"type":"string","format":"date-time","description":"When these settings were last updated"}}}}}}
```

## The DataWarehouseSettingsUpdateOneRequest object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"DataWarehouseSettingsUpdateOneRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataWarehouseSettingsUpdateOneRequest","description":"Request body for updating your data export settings. Send only the fields you want to change.","type":"object","required":["data"],"additionalProperties":false,"properties":{"meta":{"$ref":"#/components/schemas/WriteRequestMeta"},"data":{"type":"object","required":["type","attributes"],"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["dataWarehouseSettings"]},"attributes":{"type":"object","additionalProperties":false,"minProperties":1,"properties":{"credentialType":{"type":"string","enum":["iam-role","access-key"]},"iamRoleArn":{"type":["string","null"],"description":"Set to null to remove access and turn off exports"},"format":{"type":"string","enum":["parquet","csv"]},"schedule":{"type":"string","enum":["once-a-day","twice-a-day"]}}}}}}},"WriteRequestMeta":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IWriteRequestMeta","description":"Optional audit metadata for a write request. `audit.source` is the issuing surface/channel (e.g. studio-web, mcp, api, system); `audit.reason` is a free-text justification. Both are optional and length-capped.","type":"object","additionalProperties":false,"properties":{"audit":{"type":"object","additionalProperties":false,"properties":{"source":{"type":"string","maxLength":64},"reason":{"type":"string","maxLength":256}}}}}}}}
```

## The DataWarehouseCredentialsResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"DataWarehouseCredentialsResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataWarehouseCredentialsResponse","description":"Returned when you turn on exports or replace your access key. Contains the new access key ID and secret. The secret is shown only once and is never stored or shown again, so save it securely.","type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"type":"object","required":["id","type","attributes"],"additionalProperties":false,"properties":{"id":{"type":"string","description":"The ID of the export settings these credentials belong to"},"type":{"type":"string","enum":["dataWarehouseCredentials"]},"attributes":{"type":"object","additionalProperties":false,"required":["accessKeyId","accessKeySecret"],"properties":{"accessKeyId":{"type":"string","description":"The IAM access key ID for reading your exported data"},"accessKeySecret":{"type":"string","description":"The secret for your access key. Shown only in this response and never stored or shown again, so save it securely."}}}}}}}}}}
```

## The DataWarehouseSchemaResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"DataWarehouseSchemaResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataWarehouseSchemaResponse","description":"The current layout of your exported data. One entry per table, listing its columns and their data types.","type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","type","attributes"],"additionalProperties":false,"properties":{"id":{"type":"string","description":"Table name"},"type":{"type":"string","enum":["dataWarehouseSchemaTable"]},"attributes":{"type":"object","additionalProperties":false,"required":["table","columns"],"properties":{"table":{"type":"string","description":"Table name"},"columns":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["name","type"],"properties":{"name":{"type":"string","description":"Column name"},"type":{"type":"string","description":"The column's data type as reported by information_schema"}}}}}}}}}}}}}}
```

## The BaseResource object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"BaseResource":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResource","description":"JSON:API resource identifier. All Origin Studio API resource objects include at least an `id` (unique string identifier) and a `type` (the JSON:API resource type name, e.g. records, contributors).","type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"}},"required":["id","type"],"additionalProperties":false}}}}
```

## The DatasetAttributes object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"DatasetAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDatasetAttributes","description":"Attributes of a dataset. `key` is the machine-readable identifier. `label` is the human-readable display name. `localized` indicates whether items are keyed by locale. `availableLocales` lists the supported locales for localized datasets. `dataSource` indicates if the dataset is system-provisioned (`fabric`) or tenant-created (`custom`). `allowCustomItems` controls whether tenants can add, update, or delete items.","type":"object","additionalProperties":false,"properties":{"dataSource":{"type":"string","description":"Data source of the dataset","enum":["fabric","custom"]},"label":{"type":"string","description":"Label for the dataset"},"localized":{"type":"boolean","description":"Indicates if the dataset is localized"},"availableLocales":{"type":"array","description":"Available locales for the dataset","items":{"type":"string"}},"key":{"type":"string","description":"Key attribute of the dataset"},"tenantId":{"type":"string","description":"Tenant ID of the dataset"},"allowCustomItems":{"type":"boolean","description":"Indicates if customers can add, update, or delete items in this dataset. When false, the dataset is locked and no item modifications are allowed."}},"required":["dataSource","label","key"]}}}}
```

## The Dataset object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"Dataset":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataset","description":"A JSON:API dataset resource representing a controlled vocabulary or lookup list used to constrain field values. Datasets can be localized (items keyed by locale) or non-localized. When `allowCustomItems` is false, the dataset is locked — items may only be managed by Fabric.","allOf":[{"$ref":"#/components/schemas/BaseResource"},{"type":"object","properties":{"attributes":{"allOf":[{"$ref":"#/components/schemas/DatasetAttributes"},{"$ref":"#/components/schemas/BaseResourceAttributes"}],"additionalProperties":false},"meta":{"type":"object","properties":{"tenantId":{"type":"string"},"allowCustomItems":{"type":"boolean","description":"Indicates if users can add, update, or delete items in this dataset. When false, the dataset is locked and no item modifications are allowed."}},"additionalProperties":false},"relationships":{"type":"object","properties":{"tenant":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"}},"required":["id","type"],"additionalProperties":false},"links":{"type":"object","properties":{"related":{"type":"string"}},"required":["related"],"additionalProperties":false}},"additionalProperties":false},"items":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string"}},"required":["related"],"additionalProperties":false}},"additionalProperties":false}},"required":["tenant"],"additionalProperties":false}},"required":["attributes","meta"],"additionalProperties":false}]},"BaseResource":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResource","description":"JSON:API resource identifier. All Origin Studio API resource objects include at least an `id` (unique string identifier) and a `type` (the JSON:API resource type name, e.g. records, contributors).","type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"}},"required":["id","type"],"additionalProperties":false},"DatasetAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDatasetAttributes","description":"Attributes of a dataset. `key` is the machine-readable identifier. `label` is the human-readable display name. `localized` indicates whether items are keyed by locale. `availableLocales` lists the supported locales for localized datasets. `dataSource` indicates if the dataset is system-provisioned (`fabric`) or tenant-created (`custom`). `allowCustomItems` controls whether tenants can add, update, or delete items.","type":"object","additionalProperties":false,"properties":{"dataSource":{"type":"string","description":"Data source of the dataset","enum":["fabric","custom"]},"label":{"type":"string","description":"Label for the dataset"},"localized":{"type":"boolean","description":"Indicates if the dataset is localized"},"availableLocales":{"type":"array","description":"Available locales for the dataset","items":{"type":"string"}},"key":{"type":"string","description":"Key attribute of the dataset"},"tenantId":{"type":"string","description":"Tenant ID of the dataset"},"allowCustomItems":{"type":"boolean","description":"Indicates if customers can add, update, or delete items in this dataset. When false, the dataset is locked and no item modifications are allowed."}},"required":["dataSource","label","key"]},"BaseResourceAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResourceAttributes","description":"Common timestamps present on all resource attribute objects. `created` is the ISO 8601 date-time when the resource was first created; `updated` is the date-time of the most recent modification.","type":"object","additionalProperties":false,"required":["created","updated"],"properties":{"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}}}}}
```

## The GetDatasetsResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"GetDatasetsResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IGetDatasetsResponse","description":"Response for listing all datasets in a tenant. Returns an array of dataset resources with their attributes and relationship links.","type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Dataset"},"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"additionalProperties":false}},"required":["data"],"additionalProperties":false},"Dataset":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataset","description":"A JSON:API dataset resource representing a controlled vocabulary or lookup list used to constrain field values. Datasets can be localized (items keyed by locale) or non-localized. When `allowCustomItems` is false, the dataset is locked — items may only be managed by Fabric.","allOf":[{"$ref":"#/components/schemas/BaseResource"},{"type":"object","properties":{"attributes":{"allOf":[{"$ref":"#/components/schemas/DatasetAttributes"},{"$ref":"#/components/schemas/BaseResourceAttributes"}],"additionalProperties":false},"meta":{"type":"object","properties":{"tenantId":{"type":"string"},"allowCustomItems":{"type":"boolean","description":"Indicates if users can add, update, or delete items in this dataset. When false, the dataset is locked and no item modifications are allowed."}},"additionalProperties":false},"relationships":{"type":"object","properties":{"tenant":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"}},"required":["id","type"],"additionalProperties":false},"links":{"type":"object","properties":{"related":{"type":"string"}},"required":["related"],"additionalProperties":false}},"additionalProperties":false},"items":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string"}},"required":["related"],"additionalProperties":false}},"additionalProperties":false}},"required":["tenant"],"additionalProperties":false}},"required":["attributes","meta"],"additionalProperties":false}]},"BaseResource":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResource","description":"JSON:API resource identifier. All Origin Studio API resource objects include at least an `id` (unique string identifier) and a `type` (the JSON:API resource type name, e.g. records, contributors).","type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"}},"required":["id","type"],"additionalProperties":false},"DatasetAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDatasetAttributes","description":"Attributes of a dataset. `key` is the machine-readable identifier. `label` is the human-readable display name. `localized` indicates whether items are keyed by locale. `availableLocales` lists the supported locales for localized datasets. `dataSource` indicates if the dataset is system-provisioned (`fabric`) or tenant-created (`custom`). `allowCustomItems` controls whether tenants can add, update, or delete items.","type":"object","additionalProperties":false,"properties":{"dataSource":{"type":"string","description":"Data source of the dataset","enum":["fabric","custom"]},"label":{"type":"string","description":"Label for the dataset"},"localized":{"type":"boolean","description":"Indicates if the dataset is localized"},"availableLocales":{"type":"array","description":"Available locales for the dataset","items":{"type":"string"}},"key":{"type":"string","description":"Key attribute of the dataset"},"tenantId":{"type":"string","description":"Tenant ID of the dataset"},"allowCustomItems":{"type":"boolean","description":"Indicates if customers can add, update, or delete items in this dataset. When false, the dataset is locked and no item modifications are allowed."}},"required":["dataSource","label","key"]},"BaseResourceAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResourceAttributes","description":"Common timestamps present on all resource attribute objects. `created` is the ISO 8601 date-time when the resource was first created; `updated` is the date-time of the most recent modification.","type":"object","additionalProperties":false,"required":["created","updated"],"properties":{"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}}}}}
```

## The CreateDatasetRequest object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"CreateDatasetRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDatasetCreateRequest","description":"Request body for creating a new dataset. Requires `label`, `key`, and `localized`. Optionally accepts `availableLocales` for localized datasets and `allowCustomItems` to control whether tenants can manage the items.","type":"object","properties":{"meta":{"$ref":"#/components/schemas/WriteRequestMeta"},"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"attributes":{"type":"object","properties":{"key":{"type":"string","description":"Unique key for the dataset"},"label":{"type":"string","description":"Label of the dataset"},"dataSource":{"type":"string","description":"Data source of the dataset","enum":["custom","fabric"]},"localized":{"type":"boolean","description":"Indicates if the dataset is localized"}},"required":["key","label","dataSource"],"additionalProperties":false}},"required":["type","attributes"],"additionalProperties":false}},"required":["data"],"additionalProperties":false},"WriteRequestMeta":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IWriteRequestMeta","description":"Optional audit metadata for a write request. `audit.source` is the issuing surface/channel (e.g. studio-web, mcp, api, system); `audit.reason` is a free-text justification. Both are optional and length-capped.","type":"object","additionalProperties":false,"properties":{"audit":{"type":"object","additionalProperties":false,"properties":{"source":{"type":"string","maxLength":64},"reason":{"type":"string","maxLength":256}}}}}}}}
```

## The CreateDatasetResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"CreateDatasetResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDatasetCreateResponse","description":"Response returned after successfully creating a dataset. Contains the new dataset resource with its generated ID, attributes, and relationship links.","type":"object","required":["data","links"],"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/Dataset"},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"]}}},"Dataset":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataset","description":"A JSON:API dataset resource representing a controlled vocabulary or lookup list used to constrain field values. Datasets can be localized (items keyed by locale) or non-localized. When `allowCustomItems` is false, the dataset is locked — items may only be managed by Fabric.","allOf":[{"$ref":"#/components/schemas/BaseResource"},{"type":"object","properties":{"attributes":{"allOf":[{"$ref":"#/components/schemas/DatasetAttributes"},{"$ref":"#/components/schemas/BaseResourceAttributes"}],"additionalProperties":false},"meta":{"type":"object","properties":{"tenantId":{"type":"string"},"allowCustomItems":{"type":"boolean","description":"Indicates if users can add, update, or delete items in this dataset. When false, the dataset is locked and no item modifications are allowed."}},"additionalProperties":false},"relationships":{"type":"object","properties":{"tenant":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"}},"required":["id","type"],"additionalProperties":false},"links":{"type":"object","properties":{"related":{"type":"string"}},"required":["related"],"additionalProperties":false}},"additionalProperties":false},"items":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string"}},"required":["related"],"additionalProperties":false}},"additionalProperties":false}},"required":["tenant"],"additionalProperties":false}},"required":["attributes","meta"],"additionalProperties":false}]},"BaseResource":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResource","description":"JSON:API resource identifier. All Origin Studio API resource objects include at least an `id` (unique string identifier) and a `type` (the JSON:API resource type name, e.g. records, contributors).","type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"}},"required":["id","type"],"additionalProperties":false},"DatasetAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDatasetAttributes","description":"Attributes of a dataset. `key` is the machine-readable identifier. `label` is the human-readable display name. `localized` indicates whether items are keyed by locale. `availableLocales` lists the supported locales for localized datasets. `dataSource` indicates if the dataset is system-provisioned (`fabric`) or tenant-created (`custom`). `allowCustomItems` controls whether tenants can add, update, or delete items.","type":"object","additionalProperties":false,"properties":{"dataSource":{"type":"string","description":"Data source of the dataset","enum":["fabric","custom"]},"label":{"type":"string","description":"Label for the dataset"},"localized":{"type":"boolean","description":"Indicates if the dataset is localized"},"availableLocales":{"type":"array","description":"Available locales for the dataset","items":{"type":"string"}},"key":{"type":"string","description":"Key attribute of the dataset"},"tenantId":{"type":"string","description":"Tenant ID of the dataset"},"allowCustomItems":{"type":"boolean","description":"Indicates if customers can add, update, or delete items in this dataset. When false, the dataset is locked and no item modifications are allowed."}},"required":["dataSource","label","key"]},"BaseResourceAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResourceAttributes","description":"Common timestamps present on all resource attribute objects. `created` is the ISO 8601 date-time when the resource was first created; `updated` is the date-time of the most recent modification.","type":"object","additionalProperties":false,"required":["created","updated"],"properties":{"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}}}}}
```

## The GetDatasetResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"GetDatasetResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IGetDatasetResponse","description":"Response for fetching a single dataset by ID. Contains the full dataset resource with attributes, relationship links, and a self link.","type":"object","required":["data","links"],"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/Dataset"},"links":{"type":"object","required":["self"],"properties":{"self":{"type":"string"}},"additionalProperties":false}}},"Dataset":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataset","description":"A JSON:API dataset resource representing a controlled vocabulary or lookup list used to constrain field values. Datasets can be localized (items keyed by locale) or non-localized. When `allowCustomItems` is false, the dataset is locked — items may only be managed by Fabric.","allOf":[{"$ref":"#/components/schemas/BaseResource"},{"type":"object","properties":{"attributes":{"allOf":[{"$ref":"#/components/schemas/DatasetAttributes"},{"$ref":"#/components/schemas/BaseResourceAttributes"}],"additionalProperties":false},"meta":{"type":"object","properties":{"tenantId":{"type":"string"},"allowCustomItems":{"type":"boolean","description":"Indicates if users can add, update, or delete items in this dataset. When false, the dataset is locked and no item modifications are allowed."}},"additionalProperties":false},"relationships":{"type":"object","properties":{"tenant":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"}},"required":["id","type"],"additionalProperties":false},"links":{"type":"object","properties":{"related":{"type":"string"}},"required":["related"],"additionalProperties":false}},"additionalProperties":false},"items":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string"}},"required":["related"],"additionalProperties":false}},"additionalProperties":false}},"required":["tenant"],"additionalProperties":false}},"required":["attributes","meta"],"additionalProperties":false}]},"BaseResource":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResource","description":"JSON:API resource identifier. All Origin Studio API resource objects include at least an `id` (unique string identifier) and a `type` (the JSON:API resource type name, e.g. records, contributors).","type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"}},"required":["id","type"],"additionalProperties":false},"DatasetAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDatasetAttributes","description":"Attributes of a dataset. `key` is the machine-readable identifier. `label` is the human-readable display name. `localized` indicates whether items are keyed by locale. `availableLocales` lists the supported locales for localized datasets. `dataSource` indicates if the dataset is system-provisioned (`fabric`) or tenant-created (`custom`). `allowCustomItems` controls whether tenants can add, update, or delete items.","type":"object","additionalProperties":false,"properties":{"dataSource":{"type":"string","description":"Data source of the dataset","enum":["fabric","custom"]},"label":{"type":"string","description":"Label for the dataset"},"localized":{"type":"boolean","description":"Indicates if the dataset is localized"},"availableLocales":{"type":"array","description":"Available locales for the dataset","items":{"type":"string"}},"key":{"type":"string","description":"Key attribute of the dataset"},"tenantId":{"type":"string","description":"Tenant ID of the dataset"},"allowCustomItems":{"type":"boolean","description":"Indicates if customers can add, update, or delete items in this dataset. When false, the dataset is locked and no item modifications are allowed."}},"required":["dataSource","label","key"]},"BaseResourceAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResourceAttributes","description":"Common timestamps present on all resource attribute objects. `created` is the ISO 8601 date-time when the resource was first created; `updated` is the date-time of the most recent modification.","type":"object","additionalProperties":false,"required":["created","updated"],"properties":{"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}}}}}
```

## The WriteMetaOnlyRequest object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"WriteMetaOnlyRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IWriteMetaOnlyRequest","description":"Optional request body carrying only audit metadata, used by mutations that otherwise take no body (e.g. resource DELETEs). Lets clients attach meta.audit.source/reason to such operations. The body itself is optional; it is not otherwise required.","type":"object","additionalProperties":false,"properties":{"meta":{"$ref":"#/components/schemas/WriteRequestMeta"}}},"WriteRequestMeta":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IWriteRequestMeta","description":"Optional audit metadata for a write request. `audit.source` is the issuing surface/channel (e.g. studio-web, mcp, api, system); `audit.reason` is a free-text justification. Both are optional and length-capped.","type":"object","additionalProperties":false,"properties":{"audit":{"type":"object","additionalProperties":false,"properties":{"source":{"type":"string","maxLength":64},"reason":{"type":"string","maxLength":256}}}}}}}}
```

## The PatchDatasetRequest object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"PatchDatasetRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IPatchDatasetRequest","description":"Request body for partially updating a dataset's attributes. Only the fields present in `data.attributes` are modified. The `data.id` must match the `datasetId` path parameter.","type":"object","properties":{"meta":{"$ref":"#/components/schemas/WriteRequestMeta"},"data":{"allOf":[{"$ref":"#/components/schemas/BaseResource"},{"required":["id","attributes"],"additionalProperties":false,"properties":{"attributes":{"type":"object","properties":{"label":{"type":"string"}},"additionalProperties":false}}}]}},"required":["data"],"additionalProperties":false},"WriteRequestMeta":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IWriteRequestMeta","description":"Optional audit metadata for a write request. `audit.source` is the issuing surface/channel (e.g. studio-web, mcp, api, system); `audit.reason` is a free-text justification. Both are optional and length-capped.","type":"object","additionalProperties":false,"properties":{"audit":{"type":"object","additionalProperties":false,"properties":{"source":{"type":"string","maxLength":64},"reason":{"type":"string","maxLength":256}}}}},"BaseResource":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResource","description":"JSON:API resource identifier. All Origin Studio API resource objects include at least an `id` (unique string identifier) and a `type` (the JSON:API resource type name, e.g. records, contributors).","type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"}},"required":["id","type"],"additionalProperties":false}}}}
```

## The DatasetItemAttributes object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"DatasetItemAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDatasetItemAttributes","description":"Attributes of a single dataset item (a controlled vocabulary entry). `key` is the stable machine-readable identifier stored on records. `value` is the human-readable label displayed in the UI. `locale` scopes the item to a specific language/region for localized datasets. `dataSource` indicates whether the item was created by Fabric or by the tenant.","type":"object","additionalProperties":false,"properties":{"locale":{"type":"string","description":"Locale of the dataset item"},"dataSource":{"type":"string","description":"Data source of the dataset item"},"key":{"type":"string","description":"Key attribute of the dataset item"},"value":{"type":"string","description":"Value of the dataset item"}},"required":["key","value"]}}}}
```

## The DatasetRelationship object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"DatasetRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDatasetRelationship","description":"A JSON:API relationship object linking a resource to a dataset. Contains the dataset's `id` and `type`, plus a `links.related` URL for fetching the full dataset resource.","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["datasets"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data","links"],"additionalProperties":false},"LinksRelated":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILinks","description":"A JSON:API links object with an absolute or relative 'related' link","type":"object","required":["related"],"properties":{"related":{"type":"string"}},"additionalProperties":false}}}}
```

## The DatasetItem object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"DatasetItem":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDatasetItem","description":"A JSON:API dataset item resource representing a single entry in a controlled vocabulary dataset. Each item has a `key` (machine-readable identifier) and `value` (display label). For localized datasets, items also carry a `locale` code.","allOf":[{"$ref":"#/components/schemas/BaseResource"},{"type":"object","properties":{"attributes":{"allOf":[{"$ref":"#/components/schemas/DatasetItemAttributes"},{"$ref":"#/components/schemas/BaseResourceAttributes"}],"additionalProperties":false},"relationships":{"type":"object","properties":{"dataset":{"$ref":"#/components/schemas/DatasetRelationship"},"tenant":{"$ref":"#/components/schemas/TenantRelationship"}},"additionalProperties":false}},"required":["attributes","relationships"],"additionalProperties":false}]},"BaseResource":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResource","description":"JSON:API resource identifier. All Origin Studio API resource objects include at least an `id` (unique string identifier) and a `type` (the JSON:API resource type name, e.g. records, contributors).","type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"}},"required":["id","type"],"additionalProperties":false},"DatasetItemAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDatasetItemAttributes","description":"Attributes of a single dataset item (a controlled vocabulary entry). `key` is the stable machine-readable identifier stored on records. `value` is the human-readable label displayed in the UI. `locale` scopes the item to a specific language/region for localized datasets. `dataSource` indicates whether the item was created by Fabric or by the tenant.","type":"object","additionalProperties":false,"properties":{"locale":{"type":"string","description":"Locale of the dataset item"},"dataSource":{"type":"string","description":"Data source of the dataset item"},"key":{"type":"string","description":"Key attribute of the dataset item"},"value":{"type":"string","description":"Value of the dataset item"}},"required":["key","value"]},"BaseResourceAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResourceAttributes","description":"Common timestamps present on all resource attribute objects. `created` is the ISO 8601 date-time when the resource was first created; `updated` is the date-time of the most recent modification.","type":"object","additionalProperties":false,"required":["created","updated"],"properties":{"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}},"DatasetRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDatasetRelationship","description":"A JSON:API relationship object linking a resource to a dataset. Contains the dataset's `id` and `type`, plus a `links.related` URL for fetching the full dataset resource.","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["datasets"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data","links"],"additionalProperties":false},"LinksRelated":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILinks","description":"A JSON:API links object with an absolute or relative 'related' link","type":"object","required":["related"],"properties":{"related":{"type":"string"}},"additionalProperties":false},"TenantRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantRelationship","description":"A relationship to a tenant","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tenants"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data","links"],"additionalProperties":false}}}}
```

## The GetDatasetItemsResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"GetDatasetItemsResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IGetDatasetItemsResponse","description":"Paginated response for listing all items in a dataset. Returns an array of dataset item resources, each with key/value/locale attributes and relationship links to the parent dataset.","type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/DatasetItem"},"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"additionalProperties":false}},"required":["data","links"],"additionalProperties":false},"DatasetItem":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDatasetItem","description":"A JSON:API dataset item resource representing a single entry in a controlled vocabulary dataset. Each item has a `key` (machine-readable identifier) and `value` (display label). For localized datasets, items also carry a `locale` code.","allOf":[{"$ref":"#/components/schemas/BaseResource"},{"type":"object","properties":{"attributes":{"allOf":[{"$ref":"#/components/schemas/DatasetItemAttributes"},{"$ref":"#/components/schemas/BaseResourceAttributes"}],"additionalProperties":false},"relationships":{"type":"object","properties":{"dataset":{"$ref":"#/components/schemas/DatasetRelationship"},"tenant":{"$ref":"#/components/schemas/TenantRelationship"}},"additionalProperties":false}},"required":["attributes","relationships"],"additionalProperties":false}]},"BaseResource":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResource","description":"JSON:API resource identifier. All Origin Studio API resource objects include at least an `id` (unique string identifier) and a `type` (the JSON:API resource type name, e.g. records, contributors).","type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"}},"required":["id","type"],"additionalProperties":false},"DatasetItemAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDatasetItemAttributes","description":"Attributes of a single dataset item (a controlled vocabulary entry). `key` is the stable machine-readable identifier stored on records. `value` is the human-readable label displayed in the UI. `locale` scopes the item to a specific language/region for localized datasets. `dataSource` indicates whether the item was created by Fabric or by the tenant.","type":"object","additionalProperties":false,"properties":{"locale":{"type":"string","description":"Locale of the dataset item"},"dataSource":{"type":"string","description":"Data source of the dataset item"},"key":{"type":"string","description":"Key attribute of the dataset item"},"value":{"type":"string","description":"Value of the dataset item"}},"required":["key","value"]},"BaseResourceAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResourceAttributes","description":"Common timestamps present on all resource attribute objects. `created` is the ISO 8601 date-time when the resource was first created; `updated` is the date-time of the most recent modification.","type":"object","additionalProperties":false,"required":["created","updated"],"properties":{"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}},"DatasetRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDatasetRelationship","description":"A JSON:API relationship object linking a resource to a dataset. Contains the dataset's `id` and `type`, plus a `links.related` URL for fetching the full dataset resource.","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["datasets"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data","links"],"additionalProperties":false},"LinksRelated":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILinks","description":"A JSON:API links object with an absolute or relative 'related' link","type":"object","required":["related"],"properties":{"related":{"type":"string"}},"additionalProperties":false},"TenantRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantRelationship","description":"A relationship to a tenant","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tenants"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data","links"],"additionalProperties":false}}}}
```

## The AddDatasetItemOperation object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"AddDatasetItemOperation":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IAddDatasetItemOperation","description":"The data payload for an `add` operation in a dataset atomic operations request. Specifies the type and attributes (`key`, `value`, and optionally `locale`) for the new dataset item to be created.","type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"attributes":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"locale":{"type":"string"}},"required":["key","value"],"additionalProperties":false}},"required":["type","attributes"],"additionalProperties":false}}}}
```

## The UpdateDatasetItemOperation object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"UpdateDatasetItemOperation":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IUpdateDatasetItemOperation","description":"The data payload for an `update` operation on a dataset item. Specifies the item's ID, type, and the attributes to modify (currently `value`).","type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"attributes":{"type":"object","properties":{"value":{"type":"string"}},"required":["value"],"additionalProperties":false}},"required":["type","attributes"],"additionalProperties":false}}}}
```

## The ExecuteDatasetOperationRequestData object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"ExecuteDatasetOperationRequestData":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IExecuteDatasetOperationRequestData","description":"A single operation within a dataset atomic operations request. `op` is the operation type (`add`, `update`, or `remove`). `ref` identifies the target item for update and remove operations. `data` carries the payload for add and update operations.","type":"object","properties":{"op":{"type":"string","enum":["add","remove","update"]},"ref":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"relationship":{"type":"string"}},"required":["type","id"],"additionalProperties":false},"data":{"anyOf":[{"$ref":"#/components/schemas/AddDatasetItemOperation"},{"$ref":"#/components/schemas/UpdateDatasetItemOperation"}]}},"required":["op","ref"],"additionalProperties":false},"AddDatasetItemOperation":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IAddDatasetItemOperation","description":"The data payload for an `add` operation in a dataset atomic operations request. Specifies the type and attributes (`key`, `value`, and optionally `locale`) for the new dataset item to be created.","type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"attributes":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"locale":{"type":"string"}},"required":["key","value"],"additionalProperties":false}},"required":["type","attributes"],"additionalProperties":false},"UpdateDatasetItemOperation":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IUpdateDatasetItemOperation","description":"The data payload for an `update` operation on a dataset item. Specifies the item's ID, type, and the attributes to modify (currently `value`).","type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"attributes":{"type":"object","properties":{"value":{"type":"string"}},"required":["value"],"additionalProperties":false}},"required":["type","attributes"],"additionalProperties":false}}}}
```

## The ExecuteDatasetOperationRequest object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"ExecuteDatasetOperationRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IExecuteDatasetOperationRequest","description":"JSON:API Atomic Operations request for managing items within a dataset. Supports `add`, `update`, and `remove` operations in a single request. All operations are applied atomically — either all succeed or none are applied. A maximum of 99 operations can be submitted per request. The same item cannot appear in conflicting operations (e.g. both `add` and `remove`) within the same request. Only datasets with `allowCustomItems: true` accept item modifications.","type":"object","properties":{"meta":{"$ref":"#/components/schemas/WriteRequestMeta"},"atomic:operations":{"type":"array","items":{"$ref":"#/components/schemas/ExecuteDatasetOperationRequestData"}}},"required":["atomic:operations"],"additionalProperties":false},"WriteRequestMeta":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IWriteRequestMeta","description":"Optional audit metadata for a write request. `audit.source` is the issuing surface/channel (e.g. studio-web, mcp, api, system); `audit.reason` is a free-text justification. Both are optional and length-capped.","type":"object","additionalProperties":false,"properties":{"audit":{"type":"object","additionalProperties":false,"properties":{"source":{"type":"string","maxLength":64},"reason":{"type":"string","maxLength":256}}}}},"ExecuteDatasetOperationRequestData":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IExecuteDatasetOperationRequestData","description":"A single operation within a dataset atomic operations request. `op` is the operation type (`add`, `update`, or `remove`). `ref` identifies the target item for update and remove operations. `data` carries the payload for add and update operations.","type":"object","properties":{"op":{"type":"string","enum":["add","remove","update"]},"ref":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"relationship":{"type":"string"}},"required":["type","id"],"additionalProperties":false},"data":{"anyOf":[{"$ref":"#/components/schemas/AddDatasetItemOperation"},{"$ref":"#/components/schemas/UpdateDatasetItemOperation"}]}},"required":["op","ref"],"additionalProperties":false},"AddDatasetItemOperation":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IAddDatasetItemOperation","description":"The data payload for an `add` operation in a dataset atomic operations request. Specifies the type and attributes (`key`, `value`, and optionally `locale`) for the new dataset item to be created.","type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"attributes":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"locale":{"type":"string"}},"required":["key","value"],"additionalProperties":false}},"required":["type","attributes"],"additionalProperties":false},"UpdateDatasetItemOperation":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IUpdateDatasetItemOperation","description":"The data payload for an `update` operation on a dataset item. Specifies the item's ID, type, and the attributes to modify (currently `value`).","type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"attributes":{"type":"object","properties":{"value":{"type":"string"}},"required":["value"],"additionalProperties":false}},"required":["type","attributes"],"additionalProperties":false}}}}
```

## The FieldAttributes object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"FieldAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IFieldAttributes","description":"Attributes of a metadata field. `label` is the human-readable display name. `key` is the machine-readable identifier used in record data storage. `schema` is a JSON Schema object defining the structure and validation rules for the field's values. `localized` indicates whether the field stores separate values per locale. `dataSource` distinguishes system-provisioned fields (`fabric`) from tenant-created ones (`custom`).","type":"object","required":["label","dataSource","key","localized"],"additionalProperties":false,"properties":{"label":{"type":"string","description":"Human-readable display name for the field shown in the UI. Example: `\"Release Year\"`, `\"Genre\"`, `\"Synopsis\"`."},"key":{"type":"string","description":"Stable machine-readable identifier for the field used when reading and writing record data. Example: `\"release_year\"`, `\"genre\"`. Cannot be changed after creation."},"schema":{"type":"object","description":"Generated JSON Schema fragment describing the shape and validation rules for this field's value. Derived automatically from `dataType`, `list`, `localized`, and `dataValidation` on create. Read-only on the response.","properties":{"type":{"type":"string"},"required":{"type":"array","items":{"type":"string"}},"properties":{"type":"object","properties":{"field":{"type":"object","properties":{"type":{"type":"string"},"items":{"type":"object","properties":{"type":{"type":"string"}},"required":["type"]}},"required":["type"]}}}},"additionalProperties":false},"dataSource":{"type":"string","description":"Indicates who owns the field. `fabric` means it is a system-provisioned field shared across all tenants (read-only, cannot be deleted). `custom` means it was created by the tenant and can be modified or deleted. Example: `\"fabric\"`, `\"custom\"`."},"localized":{"type":"boolean","description":"When `true`, the field stores a separate value per locale (e.g. one synopsis in English and another in French). When `false`, a single value is stored regardless of locale."},"supportsInheritance":{"type":"boolean","description":"When `true`, this field's value can be inherited from a parent record (for example a Season inheriting from a Series). Authorization policies may use this flag to control inheritance behaviour."},"supportsKeywordSearch":{"type":"boolean","description":"When `true`, this text field is mapped with a `.keyword` subfield in OpenSearch and `eq` queries use an exact-match term query on the keyword subfield instead of match_phrase. Typically enabled for identifier fields (e.g. Origin ID, EIDR ID)."},"list":{"type":"boolean","description":"When `true`, the field stores multiple values (an array). When `false`, the field stores a single scalar value. For example, a `genre` field is typically a list while a `release_year` field is not."},"uiComponent":{"type":"string","description":"Hint for the UI about which input component to render for this field. Common values: `TextInput`, `TextArea`, `NumberInput`, `ToggleSwitch`, `Date`, `DateTime`, `Time`, `Select`, `MultiSelect`, `Autocomplete`, `AutocompleteSelect`, `AutocompleteMultiSelect`, `DataGrid`, `Custom`."},"uiSpan":{"type":"number","description":"Hint for the UI about how much horizontal space to allocate for this field when rendering forms."},"propertiesAttributes":{"type":"object","description":"Extensible map of additional display or configuration metadata for the field. The structure is open-ended and used by the UI to carry extra rendering hints. Not validated by the API.","additionalProperties":true}}}}}}
```

## The Field object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"Field":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IField","description":"A JSON:API field resource representing a metadata field that can be attached to records within a tenant. Fields have a label (display name), a unique key, a JSON schema defining the value structure, and a dataset relationship that constrains the valid values. When retrieved with `filter.workType`, the `section` relationship indicates where the field appears in the record layout.","allOf":[{"type":"object","required":["id","type","attributes","meta","relationships"],"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["fields"]},"attributes":{"allOf":[{"$ref":"#/components/schemas/FieldAttributes"},{"$ref":"#/components/schemas/BaseResourceAttributes"}],"additionalProperties":false},"meta":{"type":"object","properties":{"tenantId":{"type":"string"}},"additionalProperties":false},"relationships":{"type":"object","additionalProperties":false,"properties":{"tenant":{"type":"object","required":["data","links"],"additionalProperties":false,"properties":{"data":{"type":"object","required":["id","type"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tenants"]}},"additionalProperties":false},"links":{"type":"object","required":["related"],"properties":{"related":{"type":"string"}},"additionalProperties":false}}},"dataset":{"type":"object","required":["data"],"additionalProperties":false,"properties":{"data":{"type":"object","required":["id","type","meta"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["datasets"]},"meta":{"type":"object","required":["tenantId"],"properties":{"tenantId":{"type":"string"},"localized":{"type":"boolean"},"validKeys":{"type":"array","items":{"type":"string"},"description":"Valid dataset item keys for non-localized datasets or default keys for localized datasets"},"validKeysByLocale":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}},"description":"Valid dataset item keys by locale for localized datasets"}},"additionalProperties":false}},"additionalProperties":false},"links":{"type":"object","properties":{"related":{"type":"string"}},"additionalProperties":false}}},"author":{"type":"object","required":["data"],"additionalProperties":false,"properties":{"data":{"type":"object","required":["id","type","meta"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["users"]},"meta":{"type":"object","required":["tenantId","type","displayName"],"properties":{"tenantId":{"type":"string"},"type":{"type":"string"},"displayName":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"links":{"type":"object","properties":{"related":{"type":"string"}},"additionalProperties":false}}},"section":{"type":"object","additionalProperties":false,"description":"Section relationship from the record layout. Only included when filter.workType is provided.","properties":{"data":{"type":"object","required":["id","key","label"],"additionalProperties":false,"properties":{"id":{"type":"string"},"key":{"type":"string"},"label":{"type":"string"}}}}}}}}}]},"FieldAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IFieldAttributes","description":"Attributes of a metadata field. `label` is the human-readable display name. `key` is the machine-readable identifier used in record data storage. `schema` is a JSON Schema object defining the structure and validation rules for the field's values. `localized` indicates whether the field stores separate values per locale. `dataSource` distinguishes system-provisioned fields (`fabric`) from tenant-created ones (`custom`).","type":"object","required":["label","dataSource","key","localized"],"additionalProperties":false,"properties":{"label":{"type":"string","description":"Human-readable display name for the field shown in the UI. Example: `\"Release Year\"`, `\"Genre\"`, `\"Synopsis\"`."},"key":{"type":"string","description":"Stable machine-readable identifier for the field used when reading and writing record data. Example: `\"release_year\"`, `\"genre\"`. Cannot be changed after creation."},"schema":{"type":"object","description":"Generated JSON Schema fragment describing the shape and validation rules for this field's value. Derived automatically from `dataType`, `list`, `localized`, and `dataValidation` on create. Read-only on the response.","properties":{"type":{"type":"string"},"required":{"type":"array","items":{"type":"string"}},"properties":{"type":"object","properties":{"field":{"type":"object","properties":{"type":{"type":"string"},"items":{"type":"object","properties":{"type":{"type":"string"}},"required":["type"]}},"required":["type"]}}}},"additionalProperties":false},"dataSource":{"type":"string","description":"Indicates who owns the field. `fabric` means it is a system-provisioned field shared across all tenants (read-only, cannot be deleted). `custom` means it was created by the tenant and can be modified or deleted. Example: `\"fabric\"`, `\"custom\"`."},"localized":{"type":"boolean","description":"When `true`, the field stores a separate value per locale (e.g. one synopsis in English and another in French). When `false`, a single value is stored regardless of locale."},"supportsInheritance":{"type":"boolean","description":"When `true`, this field's value can be inherited from a parent record (for example a Season inheriting from a Series). Authorization policies may use this flag to control inheritance behaviour."},"supportsKeywordSearch":{"type":"boolean","description":"When `true`, this text field is mapped with a `.keyword` subfield in OpenSearch and `eq` queries use an exact-match term query on the keyword subfield instead of match_phrase. Typically enabled for identifier fields (e.g. Origin ID, EIDR ID)."},"list":{"type":"boolean","description":"When `true`, the field stores multiple values (an array). When `false`, the field stores a single scalar value. For example, a `genre` field is typically a list while a `release_year` field is not."},"uiComponent":{"type":"string","description":"Hint for the UI about which input component to render for this field. Common values: `TextInput`, `TextArea`, `NumberInput`, `ToggleSwitch`, `Date`, `DateTime`, `Time`, `Select`, `MultiSelect`, `Autocomplete`, `AutocompleteSelect`, `AutocompleteMultiSelect`, `DataGrid`, `Custom`."},"uiSpan":{"type":"number","description":"Hint for the UI about how much horizontal space to allocate for this field when rendering forms."},"propertiesAttributes":{"type":"object","description":"Extensible map of additional display or configuration metadata for the field. The structure is open-ended and used by the UI to carry extra rendering hints. Not validated by the API.","additionalProperties":true}}},"BaseResourceAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResourceAttributes","description":"Common timestamps present on all resource attribute objects. `created` is the ISO 8601 date-time when the resource was first created; `updated` is the date-time of the most recent modification.","type":"object","additionalProperties":false,"required":["created","updated"],"properties":{"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}}}}}
```

## The FieldFindManyResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"FieldFindManyResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IFieldFindManyResponse","description":"Paginated response for listing metadata fields. The `data` array contains field resources matching the applied filters. When `include=dataset` or `include=dataset.items` is requested, the `included` array contains the related datasets and optionally their items. Pagination is cursor-based: use `meta.cursor` with a `next` link to retrieve the next page.","type":"object","additionalProperties":false,"required":["data","links"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Field"}},"links":{"type":"object","required":["self"],"properties":{"self":{"type":"string"},"next":{"type":["string","null"]}},"additionalProperties":false},"included":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/Dataset"},{"$ref":"#/components/schemas/DatasetItem"}]}},"meta":{"type":"object","properties":{"cursor":{"type":"string"}},"additionalProperties":false}}},"Field":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IField","description":"A JSON:API field resource representing a metadata field that can be attached to records within a tenant. Fields have a label (display name), a unique key, a JSON schema defining the value structure, and a dataset relationship that constrains the valid values. When retrieved with `filter.workType`, the `section` relationship indicates where the field appears in the record layout.","allOf":[{"type":"object","required":["id","type","attributes","meta","relationships"],"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["fields"]},"attributes":{"allOf":[{"$ref":"#/components/schemas/FieldAttributes"},{"$ref":"#/components/schemas/BaseResourceAttributes"}],"additionalProperties":false},"meta":{"type":"object","properties":{"tenantId":{"type":"string"}},"additionalProperties":false},"relationships":{"type":"object","additionalProperties":false,"properties":{"tenant":{"type":"object","required":["data","links"],"additionalProperties":false,"properties":{"data":{"type":"object","required":["id","type"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tenants"]}},"additionalProperties":false},"links":{"type":"object","required":["related"],"properties":{"related":{"type":"string"}},"additionalProperties":false}}},"dataset":{"type":"object","required":["data"],"additionalProperties":false,"properties":{"data":{"type":"object","required":["id","type","meta"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["datasets"]},"meta":{"type":"object","required":["tenantId"],"properties":{"tenantId":{"type":"string"},"localized":{"type":"boolean"},"validKeys":{"type":"array","items":{"type":"string"},"description":"Valid dataset item keys for non-localized datasets or default keys for localized datasets"},"validKeysByLocale":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}},"description":"Valid dataset item keys by locale for localized datasets"}},"additionalProperties":false}},"additionalProperties":false},"links":{"type":"object","properties":{"related":{"type":"string"}},"additionalProperties":false}}},"author":{"type":"object","required":["data"],"additionalProperties":false,"properties":{"data":{"type":"object","required":["id","type","meta"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["users"]},"meta":{"type":"object","required":["tenantId","type","displayName"],"properties":{"tenantId":{"type":"string"},"type":{"type":"string"},"displayName":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"links":{"type":"object","properties":{"related":{"type":"string"}},"additionalProperties":false}}},"section":{"type":"object","additionalProperties":false,"description":"Section relationship from the record layout. Only included when filter.workType is provided.","properties":{"data":{"type":"object","required":["id","key","label"],"additionalProperties":false,"properties":{"id":{"type":"string"},"key":{"type":"string"},"label":{"type":"string"}}}}}}}}}]},"FieldAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IFieldAttributes","description":"Attributes of a metadata field. `label` is the human-readable display name. `key` is the machine-readable identifier used in record data storage. `schema` is a JSON Schema object defining the structure and validation rules for the field's values. `localized` indicates whether the field stores separate values per locale. `dataSource` distinguishes system-provisioned fields (`fabric`) from tenant-created ones (`custom`).","type":"object","required":["label","dataSource","key","localized"],"additionalProperties":false,"properties":{"label":{"type":"string","description":"Human-readable display name for the field shown in the UI. Example: `\"Release Year\"`, `\"Genre\"`, `\"Synopsis\"`."},"key":{"type":"string","description":"Stable machine-readable identifier for the field used when reading and writing record data. Example: `\"release_year\"`, `\"genre\"`. Cannot be changed after creation."},"schema":{"type":"object","description":"Generated JSON Schema fragment describing the shape and validation rules for this field's value. Derived automatically from `dataType`, `list`, `localized`, and `dataValidation` on create. Read-only on the response.","properties":{"type":{"type":"string"},"required":{"type":"array","items":{"type":"string"}},"properties":{"type":"object","properties":{"field":{"type":"object","properties":{"type":{"type":"string"},"items":{"type":"object","properties":{"type":{"type":"string"}},"required":["type"]}},"required":["type"]}}}},"additionalProperties":false},"dataSource":{"type":"string","description":"Indicates who owns the field. `fabric` means it is a system-provisioned field shared across all tenants (read-only, cannot be deleted). `custom` means it was created by the tenant and can be modified or deleted. Example: `\"fabric\"`, `\"custom\"`."},"localized":{"type":"boolean","description":"When `true`, the field stores a separate value per locale (e.g. one synopsis in English and another in French). When `false`, a single value is stored regardless of locale."},"supportsInheritance":{"type":"boolean","description":"When `true`, this field's value can be inherited from a parent record (for example a Season inheriting from a Series). Authorization policies may use this flag to control inheritance behaviour."},"supportsKeywordSearch":{"type":"boolean","description":"When `true`, this text field is mapped with a `.keyword` subfield in OpenSearch and `eq` queries use an exact-match term query on the keyword subfield instead of match_phrase. Typically enabled for identifier fields (e.g. Origin ID, EIDR ID)."},"list":{"type":"boolean","description":"When `true`, the field stores multiple values (an array). When `false`, the field stores a single scalar value. For example, a `genre` field is typically a list while a `release_year` field is not."},"uiComponent":{"type":"string","description":"Hint for the UI about which input component to render for this field. Common values: `TextInput`, `TextArea`, `NumberInput`, `ToggleSwitch`, `Date`, `DateTime`, `Time`, `Select`, `MultiSelect`, `Autocomplete`, `AutocompleteSelect`, `AutocompleteMultiSelect`, `DataGrid`, `Custom`."},"uiSpan":{"type":"number","description":"Hint for the UI about how much horizontal space to allocate for this field when rendering forms."},"propertiesAttributes":{"type":"object","description":"Extensible map of additional display or configuration metadata for the field. The structure is open-ended and used by the UI to carry extra rendering hints. Not validated by the API.","additionalProperties":true}}},"BaseResourceAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResourceAttributes","description":"Common timestamps present on all resource attribute objects. `created` is the ISO 8601 date-time when the resource was first created; `updated` is the date-time of the most recent modification.","type":"object","additionalProperties":false,"required":["created","updated"],"properties":{"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}},"Dataset":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataset","description":"A JSON:API dataset resource representing a controlled vocabulary or lookup list used to constrain field values. Datasets can be localized (items keyed by locale) or non-localized. When `allowCustomItems` is false, the dataset is locked — items may only be managed by Fabric.","allOf":[{"$ref":"#/components/schemas/BaseResource"},{"type":"object","properties":{"attributes":{"allOf":[{"$ref":"#/components/schemas/DatasetAttributes"},{"$ref":"#/components/schemas/BaseResourceAttributes"}],"additionalProperties":false},"meta":{"type":"object","properties":{"tenantId":{"type":"string"},"allowCustomItems":{"type":"boolean","description":"Indicates if users can add, update, or delete items in this dataset. When false, the dataset is locked and no item modifications are allowed."}},"additionalProperties":false},"relationships":{"type":"object","properties":{"tenant":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"}},"required":["id","type"],"additionalProperties":false},"links":{"type":"object","properties":{"related":{"type":"string"}},"required":["related"],"additionalProperties":false}},"additionalProperties":false},"items":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string"}},"required":["related"],"additionalProperties":false}},"additionalProperties":false}},"required":["tenant"],"additionalProperties":false}},"required":["attributes","meta"],"additionalProperties":false}]},"BaseResource":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResource","description":"JSON:API resource identifier. All Origin Studio API resource objects include at least an `id` (unique string identifier) and a `type` (the JSON:API resource type name, e.g. records, contributors).","type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"}},"required":["id","type"],"additionalProperties":false},"DatasetAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDatasetAttributes","description":"Attributes of a dataset. `key` is the machine-readable identifier. `label` is the human-readable display name. `localized` indicates whether items are keyed by locale. `availableLocales` lists the supported locales for localized datasets. `dataSource` indicates if the dataset is system-provisioned (`fabric`) or tenant-created (`custom`). `allowCustomItems` controls whether tenants can add, update, or delete items.","type":"object","additionalProperties":false,"properties":{"dataSource":{"type":"string","description":"Data source of the dataset","enum":["fabric","custom"]},"label":{"type":"string","description":"Label for the dataset"},"localized":{"type":"boolean","description":"Indicates if the dataset is localized"},"availableLocales":{"type":"array","description":"Available locales for the dataset","items":{"type":"string"}},"key":{"type":"string","description":"Key attribute of the dataset"},"tenantId":{"type":"string","description":"Tenant ID of the dataset"},"allowCustomItems":{"type":"boolean","description":"Indicates if customers can add, update, or delete items in this dataset. When false, the dataset is locked and no item modifications are allowed."}},"required":["dataSource","label","key"]},"DatasetItem":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDatasetItem","description":"A JSON:API dataset item resource representing a single entry in a controlled vocabulary dataset. Each item has a `key` (machine-readable identifier) and `value` (display label). For localized datasets, items also carry a `locale` code.","allOf":[{"$ref":"#/components/schemas/BaseResource"},{"type":"object","properties":{"attributes":{"allOf":[{"$ref":"#/components/schemas/DatasetItemAttributes"},{"$ref":"#/components/schemas/BaseResourceAttributes"}],"additionalProperties":false},"relationships":{"type":"object","properties":{"dataset":{"$ref":"#/components/schemas/DatasetRelationship"},"tenant":{"$ref":"#/components/schemas/TenantRelationship"}},"additionalProperties":false}},"required":["attributes","relationships"],"additionalProperties":false}]},"DatasetItemAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDatasetItemAttributes","description":"Attributes of a single dataset item (a controlled vocabulary entry). `key` is the stable machine-readable identifier stored on records. `value` is the human-readable label displayed in the UI. `locale` scopes the item to a specific language/region for localized datasets. `dataSource` indicates whether the item was created by Fabric or by the tenant.","type":"object","additionalProperties":false,"properties":{"locale":{"type":"string","description":"Locale of the dataset item"},"dataSource":{"type":"string","description":"Data source of the dataset item"},"key":{"type":"string","description":"Key attribute of the dataset item"},"value":{"type":"string","description":"Value of the dataset item"}},"required":["key","value"]},"DatasetRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDatasetRelationship","description":"A JSON:API relationship object linking a resource to a dataset. Contains the dataset's `id` and `type`, plus a `links.related` URL for fetching the full dataset resource.","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["datasets"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data","links"],"additionalProperties":false},"LinksRelated":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILinks","description":"A JSON:API links object with an absolute or relative 'related' link","type":"object","required":["related"],"properties":{"related":{"type":"string"}},"additionalProperties":false},"TenantRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantRelationship","description":"A relationship to a tenant","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tenants"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data","links"],"additionalProperties":false}}}}
```

## The FieldCreateOneRequest object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"FieldCreateOneRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IFieldCreateOneRequest","description":"Request body for creating a new metadata field in a tenant. The `data.attributes` must include `label`, `key`, and `localized`. An optional dataset relationship can be provided to link the field to a valid-values dataset.","type":"object","required":["data"],"additionalProperties":false,"properties":{"meta":{"$ref":"#/components/schemas/WriteRequestMeta"},"data":{"allOf":[{"$ref":"#/components/schemas/BaseCreateRequest"},{"type":"object","required":["type"],"additionalProperties":false,"properties":{"type":{"type":"string","enum":["fields"]}}},{"type":"object","required":["attributes","relationships"],"additionalProperties":false,"properties":{"attributes":{"required":["label","key","dataType"],"type":"object","additionalProperties":false,"properties":{"label":{"type":"string","description":"Human-readable display name for the field shown in the UI. Example: `\"Release Year\"`, `\"Genre\"`."},"key":{"type":"string","description":"Stable machine-readable identifier for the field. Used when reading and writing record data. Must be unique within the tenant and must not match the key of a system-provisioned field (`dataSource: fabric`) for the tenant; system field keys are reserved. Cannot be changed after creation. Example: `\"release_year\"`, `\"custom_genre\"`."},"localized":{"type":"boolean","description":"When `true`, the field stores a separate value per locale. When `false` (default), a single value is shared across all locales."},"supportsInheritance":{"type":"boolean","nullable":true,"description":"When `true`, this field's value can be inherited from a parent record (for example a Season from a Series). Defaults to `false`."},"supportsKeywordSearch":{"type":"boolean","nullable":true,"description":"When `true`, this text field uses a `.keyword` subfield in OpenSearch for exact-match `eq` queries. Defaults to `false`."},"uiComponent":{"type":"string","description":"Hint for the UI about which input component to render. Common values: `TextInput`, `TextArea`, `NumberInput`, `ToggleSwitch`, `Date`, `DateTime`, `Select`, `Autocomplete`, `AutocompleteMultiSelect`."},"list":{"type":"boolean","description":"When `true`, the field accepts multiple values (an array). When `false` (default), the field accepts a single value. Example: `genre` is a list; `release_year` is not."},"dataSource":{"type":"string","description":"Indicates the origin of the field. Defaults to `custom` for tenant-created fields. Use `fabric` only when provisioning system fields."},"dataType":{"type":"string","enum":["string","number","boolean","dataset"],"default":"string","description":"The data type of the field's value. `string` for text, `number` for numeric values, `boolean` for true/false flags, `dataset` for fields whose valid values are constrained by a dataset (controlled vocabulary)."},"dataValidation":{"type":"object","description":"Optional validation constraints applied to the field's value when a record is saved. Applicable constraints depend on `dataType`: string fields use `minLength`, `maxLength`, `pattern`, `format`; number fields use `minimum`, `maximum`; list fields use `minItems`, `maxItems`.","properties":{"minLength":{"type":"number","nullable":true,"description":"Minimum number of characters for string fields."},"maxLength":{"type":"number","nullable":true,"description":"Maximum number of characters for string fields."},"minimum":{"type":"number","nullable":true,"description":"Minimum numeric value for number fields."},"maximum":{"type":"number","nullable":true,"description":"Maximum numeric value for number fields."},"pattern":{"type":"string","nullable":true,"description":"Regular expression pattern the string value must match."},"format":{"type":"string","nullable":true,"description":"Named format the string value must conform to (e.g. `date`, `date-time`, `uri`)."},"minItems":{"type":"number","nullable":true,"description":"Minimum number of items for list fields (`list: true`)."},"maxItems":{"type":"number","nullable":true,"description":"Maximum number of items for list fields (`list: true`)."}},"additionalProperties":false}}},"relationships":{"type":"object","properties":{"dataset":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"meta":{"type":"object","properties":{"tenantId":{"type":"string"}},"required":["tenantId"],"additionalProperties":false}},"required":["id","type","meta"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}},"additionalProperties":false}}}]}}},"WriteRequestMeta":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IWriteRequestMeta","description":"Optional audit metadata for a write request. `audit.source` is the issuing surface/channel (e.g. studio-web, mcp, api, system); `audit.reason` is a free-text justification. Both are optional and length-capped.","type":"object","additionalProperties":false,"properties":{"audit":{"type":"object","additionalProperties":false,"properties":{"source":{"type":"string","maxLength":64},"reason":{"type":"string","maxLength":256}}}}},"BaseCreateRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseCreateRequest","description":"Base JSON:API shape for create requests. The `type` field is required and must match the target resource type. The `id` field is optional; if omitted, the server generates a unique ID for the new resource.","type":"object","additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"type":"string"}},"required":["type"]}}}}
```

## The FieldFindOneResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"FieldFindOneResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IFieldFindOneResponse","description":"Response for retrieving a single metadata field by ID. The `data` object is the field resource. When `include=dataset` or `include=dataset.items` is requested, the `included` array contains the related dataset and optionally its items.","type":"object","additionalProperties":false,"required":["data","links"],"properties":{"data":{"$ref":"#/components/schemas/Field"},"links":{"type":"object","required":["self"],"properties":{"self":{"type":"string"}},"additionalProperties":false},"included":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/Dataset"},{"$ref":"#/components/schemas/DatasetItem"}]}}}},"Field":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IField","description":"A JSON:API field resource representing a metadata field that can be attached to records within a tenant. Fields have a label (display name), a unique key, a JSON schema defining the value structure, and a dataset relationship that constrains the valid values. When retrieved with `filter.workType`, the `section` relationship indicates where the field appears in the record layout.","allOf":[{"type":"object","required":["id","type","attributes","meta","relationships"],"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["fields"]},"attributes":{"allOf":[{"$ref":"#/components/schemas/FieldAttributes"},{"$ref":"#/components/schemas/BaseResourceAttributes"}],"additionalProperties":false},"meta":{"type":"object","properties":{"tenantId":{"type":"string"}},"additionalProperties":false},"relationships":{"type":"object","additionalProperties":false,"properties":{"tenant":{"type":"object","required":["data","links"],"additionalProperties":false,"properties":{"data":{"type":"object","required":["id","type"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tenants"]}},"additionalProperties":false},"links":{"type":"object","required":["related"],"properties":{"related":{"type":"string"}},"additionalProperties":false}}},"dataset":{"type":"object","required":["data"],"additionalProperties":false,"properties":{"data":{"type":"object","required":["id","type","meta"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["datasets"]},"meta":{"type":"object","required":["tenantId"],"properties":{"tenantId":{"type":"string"},"localized":{"type":"boolean"},"validKeys":{"type":"array","items":{"type":"string"},"description":"Valid dataset item keys for non-localized datasets or default keys for localized datasets"},"validKeysByLocale":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}},"description":"Valid dataset item keys by locale for localized datasets"}},"additionalProperties":false}},"additionalProperties":false},"links":{"type":"object","properties":{"related":{"type":"string"}},"additionalProperties":false}}},"author":{"type":"object","required":["data"],"additionalProperties":false,"properties":{"data":{"type":"object","required":["id","type","meta"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["users"]},"meta":{"type":"object","required":["tenantId","type","displayName"],"properties":{"tenantId":{"type":"string"},"type":{"type":"string"},"displayName":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"links":{"type":"object","properties":{"related":{"type":"string"}},"additionalProperties":false}}},"section":{"type":"object","additionalProperties":false,"description":"Section relationship from the record layout. Only included when filter.workType is provided.","properties":{"data":{"type":"object","required":["id","key","label"],"additionalProperties":false,"properties":{"id":{"type":"string"},"key":{"type":"string"},"label":{"type":"string"}}}}}}}}}]},"FieldAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IFieldAttributes","description":"Attributes of a metadata field. `label` is the human-readable display name. `key` is the machine-readable identifier used in record data storage. `schema` is a JSON Schema object defining the structure and validation rules for the field's values. `localized` indicates whether the field stores separate values per locale. `dataSource` distinguishes system-provisioned fields (`fabric`) from tenant-created ones (`custom`).","type":"object","required":["label","dataSource","key","localized"],"additionalProperties":false,"properties":{"label":{"type":"string","description":"Human-readable display name for the field shown in the UI. Example: `\"Release Year\"`, `\"Genre\"`, `\"Synopsis\"`."},"key":{"type":"string","description":"Stable machine-readable identifier for the field used when reading and writing record data. Example: `\"release_year\"`, `\"genre\"`. Cannot be changed after creation."},"schema":{"type":"object","description":"Generated JSON Schema fragment describing the shape and validation rules for this field's value. Derived automatically from `dataType`, `list`, `localized`, and `dataValidation` on create. Read-only on the response.","properties":{"type":{"type":"string"},"required":{"type":"array","items":{"type":"string"}},"properties":{"type":"object","properties":{"field":{"type":"object","properties":{"type":{"type":"string"},"items":{"type":"object","properties":{"type":{"type":"string"}},"required":["type"]}},"required":["type"]}}}},"additionalProperties":false},"dataSource":{"type":"string","description":"Indicates who owns the field. `fabric` means it is a system-provisioned field shared across all tenants (read-only, cannot be deleted). `custom` means it was created by the tenant and can be modified or deleted. Example: `\"fabric\"`, `\"custom\"`."},"localized":{"type":"boolean","description":"When `true`, the field stores a separate value per locale (e.g. one synopsis in English and another in French). When `false`, a single value is stored regardless of locale."},"supportsInheritance":{"type":"boolean","description":"When `true`, this field's value can be inherited from a parent record (for example a Season inheriting from a Series). Authorization policies may use this flag to control inheritance behaviour."},"supportsKeywordSearch":{"type":"boolean","description":"When `true`, this text field is mapped with a `.keyword` subfield in OpenSearch and `eq` queries use an exact-match term query on the keyword subfield instead of match_phrase. Typically enabled for identifier fields (e.g. Origin ID, EIDR ID)."},"list":{"type":"boolean","description":"When `true`, the field stores multiple values (an array). When `false`, the field stores a single scalar value. For example, a `genre` field is typically a list while a `release_year` field is not."},"uiComponent":{"type":"string","description":"Hint for the UI about which input component to render for this field. Common values: `TextInput`, `TextArea`, `NumberInput`, `ToggleSwitch`, `Date`, `DateTime`, `Time`, `Select`, `MultiSelect`, `Autocomplete`, `AutocompleteSelect`, `AutocompleteMultiSelect`, `DataGrid`, `Custom`."},"uiSpan":{"type":"number","description":"Hint for the UI about how much horizontal space to allocate for this field when rendering forms."},"propertiesAttributes":{"type":"object","description":"Extensible map of additional display or configuration metadata for the field. The structure is open-ended and used by the UI to carry extra rendering hints. Not validated by the API.","additionalProperties":true}}},"BaseResourceAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResourceAttributes","description":"Common timestamps present on all resource attribute objects. `created` is the ISO 8601 date-time when the resource was first created; `updated` is the date-time of the most recent modification.","type":"object","additionalProperties":false,"required":["created","updated"],"properties":{"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}},"Dataset":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDataset","description":"A JSON:API dataset resource representing a controlled vocabulary or lookup list used to constrain field values. Datasets can be localized (items keyed by locale) or non-localized. When `allowCustomItems` is false, the dataset is locked — items may only be managed by Fabric.","allOf":[{"$ref":"#/components/schemas/BaseResource"},{"type":"object","properties":{"attributes":{"allOf":[{"$ref":"#/components/schemas/DatasetAttributes"},{"$ref":"#/components/schemas/BaseResourceAttributes"}],"additionalProperties":false},"meta":{"type":"object","properties":{"tenantId":{"type":"string"},"allowCustomItems":{"type":"boolean","description":"Indicates if users can add, update, or delete items in this dataset. When false, the dataset is locked and no item modifications are allowed."}},"additionalProperties":false},"relationships":{"type":"object","properties":{"tenant":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"}},"required":["id","type"],"additionalProperties":false},"links":{"type":"object","properties":{"related":{"type":"string"}},"required":["related"],"additionalProperties":false}},"additionalProperties":false},"items":{"type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string"}},"required":["related"],"additionalProperties":false}},"additionalProperties":false}},"required":["tenant"],"additionalProperties":false}},"required":["attributes","meta"],"additionalProperties":false}]},"BaseResource":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResource","description":"JSON:API resource identifier. All Origin Studio API resource objects include at least an `id` (unique string identifier) and a `type` (the JSON:API resource type name, e.g. records, contributors).","type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"}},"required":["id","type"],"additionalProperties":false},"DatasetAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDatasetAttributes","description":"Attributes of a dataset. `key` is the machine-readable identifier. `label` is the human-readable display name. `localized` indicates whether items are keyed by locale. `availableLocales` lists the supported locales for localized datasets. `dataSource` indicates if the dataset is system-provisioned (`fabric`) or tenant-created (`custom`). `allowCustomItems` controls whether tenants can add, update, or delete items.","type":"object","additionalProperties":false,"properties":{"dataSource":{"type":"string","description":"Data source of the dataset","enum":["fabric","custom"]},"label":{"type":"string","description":"Label for the dataset"},"localized":{"type":"boolean","description":"Indicates if the dataset is localized"},"availableLocales":{"type":"array","description":"Available locales for the dataset","items":{"type":"string"}},"key":{"type":"string","description":"Key attribute of the dataset"},"tenantId":{"type":"string","description":"Tenant ID of the dataset"},"allowCustomItems":{"type":"boolean","description":"Indicates if customers can add, update, or delete items in this dataset. When false, the dataset is locked and no item modifications are allowed."}},"required":["dataSource","label","key"]},"DatasetItem":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDatasetItem","description":"A JSON:API dataset item resource representing a single entry in a controlled vocabulary dataset. Each item has a `key` (machine-readable identifier) and `value` (display label). For localized datasets, items also carry a `locale` code.","allOf":[{"$ref":"#/components/schemas/BaseResource"},{"type":"object","properties":{"attributes":{"allOf":[{"$ref":"#/components/schemas/DatasetItemAttributes"},{"$ref":"#/components/schemas/BaseResourceAttributes"}],"additionalProperties":false},"relationships":{"type":"object","properties":{"dataset":{"$ref":"#/components/schemas/DatasetRelationship"},"tenant":{"$ref":"#/components/schemas/TenantRelationship"}},"additionalProperties":false}},"required":["attributes","relationships"],"additionalProperties":false}]},"DatasetItemAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDatasetItemAttributes","description":"Attributes of a single dataset item (a controlled vocabulary entry). `key` is the stable machine-readable identifier stored on records. `value` is the human-readable label displayed in the UI. `locale` scopes the item to a specific language/region for localized datasets. `dataSource` indicates whether the item was created by Fabric or by the tenant.","type":"object","additionalProperties":false,"properties":{"locale":{"type":"string","description":"Locale of the dataset item"},"dataSource":{"type":"string","description":"Data source of the dataset item"},"key":{"type":"string","description":"Key attribute of the dataset item"},"value":{"type":"string","description":"Value of the dataset item"}},"required":["key","value"]},"DatasetRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IDatasetRelationship","description":"A JSON:API relationship object linking a resource to a dataset. Contains the dataset's `id` and `type`, plus a `links.related` URL for fetching the full dataset resource.","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["datasets"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data","links"],"additionalProperties":false},"LinksRelated":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILinks","description":"A JSON:API links object with an absolute or relative 'related' link","type":"object","required":["related"],"properties":{"related":{"type":"string"}},"additionalProperties":false},"TenantRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantRelationship","description":"A relationship to a tenant","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tenants"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data","links"],"additionalProperties":false}}}}
```

## The FieldUpdateOneRequest object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"FieldUpdateOneRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IFieldUpdateOneRequest","description":"Request body for partially updating an existing metadata field. Only the attributes included in the request are modified. The `data.id` must match the `fieldId` path parameter.","type":"object","required":["data"],"additionalProperties":false,"properties":{"meta":{"$ref":"#/components/schemas/WriteRequestMeta"},"data":{"allOf":[{"$ref":"#/components/schemas/BaseResource"},{"type":"object","required":["type"],"additionalProperties":false,"properties":{"type":{"type":"string","enum":["fields"]}}},{"required":["attributes"],"additionalProperties":false,"properties":{"attributes":{"type":"object","additionalProperties":false,"properties":{"dataValidation":{"type":"object","description":"Updated validation constraints for the field's value. Only the properties provided are changed. Set a property to `null` to remove a constraint.","properties":{"minLength":{"type":"number","nullable":true,"description":"Minimum number of characters for string fields."},"maxLength":{"type":"number","nullable":true,"description":"Maximum number of characters for string fields."},"minimum":{"type":"number","nullable":true,"description":"Minimum numeric value for number fields."},"maximum":{"type":"number","nullable":true,"description":"Maximum numeric value for number fields."},"pattern":{"type":"string","nullable":true,"description":"Regular expression pattern the string value must match."},"format":{"type":"string","nullable":true,"description":"Named format the string value must conform to (e.g. `date`, `date-time`, `uri`)."},"minItems":{"type":"number","nullable":true,"description":"Minimum number of items for list fields."},"maxItems":{"type":"number","nullable":true,"description":"Maximum number of items for list fields."}},"additionalProperties":false},"label":{"type":"string","description":"Updated human-readable display name for the field."},"supportsInheritance":{"type":"boolean","nullable":true,"description":"Updated inheritance flag. When `true`, this field's value can be inherited from a parent record."},"supportsKeywordSearch":{"type":"boolean","nullable":true,"description":"Updated keyword search flag. When `true`, this text field uses a `.keyword` subfield in OpenSearch for exact-match `eq` queries."}}},"relationships":{"type":"object","properties":{"dataset":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"meta":{"type":"object","properties":{"tenantId":{"type":"string"}},"required":["tenantId"],"additionalProperties":false}},"required":["id","type","meta"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}},"additionalProperties":false}}}]}}},"WriteRequestMeta":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IWriteRequestMeta","description":"Optional audit metadata for a write request. `audit.source` is the issuing surface/channel (e.g. studio-web, mcp, api, system); `audit.reason` is a free-text justification. Both are optional and length-capped.","type":"object","additionalProperties":false,"properties":{"audit":{"type":"object","additionalProperties":false,"properties":{"source":{"type":"string","maxLength":64},"reason":{"type":"string","maxLength":256}}}}},"BaseResource":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResource","description":"JSON:API resource identifier. All Origin Studio API resource objects include at least an `id` (unique string identifier) and a `type` (the JSON:API resource type name, e.g. records, contributors).","type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"}},"required":["id","type"],"additionalProperties":false}}}}
```

## The WorkTypes object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"WorkTypes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"WorkTypes","description":"The classification type of an entertainment work. `Movie` is a standalone feature-length film. `MovieEdit` is a variation of a Movie. `Series` is a TV or streaming series. `Season` is a season within a Series. `Episode` is a single episode within a Season. `EpisodeEdit` is a variation of an Episode. `Compilation` is an editorially curated collection of existing records.","type":"string","enum":["Movie","MovieEdit","Series","Season","Episode","EpisodeEdit","Compilation"]}}}}
```

## The RecordLayoutField object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"RecordLayoutField":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordLayoutField","description":"A field entry within a record layout section. Links a field (identified by `id` and `key`) to its position in the layout. The `fields` array on the section allows multiple sub-fields to be grouped under a single layout position.","type":"object","required":["id","key","fields"],"additionalProperties":false,"properties":{"id":{"type":"string","description":"The unique ID of the field being placed in this layout position. Must reference an existing field that belongs to the tenant."},"key":{"type":"string","description":"The machine-readable key of the field being placed in this layout position. Example: `\"synopsis\"`, `\"release_year\"`."}}}}}}
```

## The RecordLayoutSection object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"RecordLayoutSection":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordLayoutSection","description":"A section within a record layout group. Sections provide a labeled sub-grouping of fields within a tab/group in the editing UI. Each section has a unique `key`, a display `label`, and an ordered array of fields.","type":"object","required":["key","label","fields"],"additionalProperties":false,"properties":{"id":{"type":"string","description":"Unique identifier for the section within this layout. Assigned automatically on creation."},"key":{"type":"string","description":"Stable machine-readable identifier for the section within its parent group. Example: `\"core_metadata\"`, `\"identifiers\"`."},"label":{"type":"string","description":"Human-readable label displayed as the section heading in the editing UI. Example: `\"Core Metadata\"`, `\"Identifiers\"`."},"hidden":{"type":"boolean","description":"When `true`, this section and all its fields are hidden from the editing UI. The system-required `core_metadata` section cannot be hidden."},"fields":{"type":"array","description":"Ordered list of field references within this section. Each entry references a field by its `id` and `key`. The order determines the display order in the editing UI.","items":{"$ref":"#/components/schemas/RecordLayoutField"}}}},"RecordLayoutField":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordLayoutField","description":"A field entry within a record layout section. Links a field (identified by `id` and `key`) to its position in the layout. The `fields` array on the section allows multiple sub-fields to be grouped under a single layout position.","type":"object","required":["id","key","fields"],"additionalProperties":false,"properties":{"id":{"type":"string","description":"The unique ID of the field being placed in this layout position. Must reference an existing field that belongs to the tenant."},"key":{"type":"string","description":"The machine-readable key of the field being placed in this layout position. Example: `\"synopsis\"`, `\"release_year\"`."}}}}}}
```

## The RecordLayoutGroup object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"RecordLayoutGroup":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordLayoutGroup","description":"A top-level grouping of sections within a record layout. Groups typically correspond to tabs or major UI panels in the record editing view. Each group has a unique `key`, a display `label`, a `type` classifier, and an ordered array of sections.","type":"object","required":["key","label","type","sections"],"additionalProperties":false,"properties":{"id":{"type":"string","description":"Unique identifier for the group within this layout. Assigned automatically on creation."},"key":{"type":"string","description":"Stable machine-readable identifier for the group within this layout. Example: `\"origination\"`, `\"technical_details\"`."},"label":{"type":"string","description":"Human-readable label displayed as the tab or panel heading in the editing UI. Example: `\"Origination\"`, `\"Technical Details\"`."},"type":{"type":"string","enum":["fieldGroup","entityCollection"],"description":"Controls the group's role in the layout. `fieldGroup` contains editable metadata fields organized into sections. `entityCollection` is a reserved group for linked entities (such as contributors or credits) and must not contain custom sections."},"hidden":{"type":"boolean","description":"When `true`, the group is hidden in the editing UI. Only applies to `fieldGroup` groups. Cannot be set on `entityCollection` groups. The required origination group cannot be hidden."},"sections":{"type":"array","description":"Ordered list of sections within this group. Each section contains an ordered list of fields. `entityCollection` groups must have an empty sections array.","items":{"$ref":"#/components/schemas/RecordLayoutSection"}}}},"RecordLayoutSection":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordLayoutSection","description":"A section within a record layout group. Sections provide a labeled sub-grouping of fields within a tab/group in the editing UI. Each section has a unique `key`, a display `label`, and an ordered array of fields.","type":"object","required":["key","label","fields"],"additionalProperties":false,"properties":{"id":{"type":"string","description":"Unique identifier for the section within this layout. Assigned automatically on creation."},"key":{"type":"string","description":"Stable machine-readable identifier for the section within its parent group. Example: `\"core_metadata\"`, `\"identifiers\"`."},"label":{"type":"string","description":"Human-readable label displayed as the section heading in the editing UI. Example: `\"Core Metadata\"`, `\"Identifiers\"`."},"hidden":{"type":"boolean","description":"When `true`, this section and all its fields are hidden from the editing UI. The system-required `core_metadata` section cannot be hidden."},"fields":{"type":"array","description":"Ordered list of field references within this section. Each entry references a field by its `id` and `key`. The order determines the display order in the editing UI.","items":{"$ref":"#/components/schemas/RecordLayoutField"}}}},"RecordLayoutField":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordLayoutField","description":"A field entry within a record layout section. Links a field (identified by `id` and `key`) to its position in the layout. The `fields` array on the section allows multiple sub-fields to be grouped under a single layout position.","type":"object","required":["id","key","fields"],"additionalProperties":false,"properties":{"id":{"type":"string","description":"The unique ID of the field being placed in this layout position. Must reference an existing field that belongs to the tenant."},"key":{"type":"string","description":"The machine-readable key of the field being placed in this layout position. Example: `\"synopsis\"`, `\"release_year\"`."}}}}}}
```

## The RecordLayoutAttributes object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"RecordLayoutAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordLayoutAttributes","description":"Attributes of a record layout. `name` is the display name. `workType` specifies which work type this layout applies to. `groups` is the ordered hierarchy of groups → sections → fields that defines the editing UI structure.","type":"object","required":["name","workType","groups"],"additionalProperties":false,"properties":{"name":{"type":"string","description":"Human-readable display name for this record layout. Example: `\"Movie Layout\"`, `\"Series Default Layout\"`."},"description":{"type":"string","description":"Optional longer description of the record layout and its purpose."},"workType":{"$ref":"#/components/schemas/WorkTypes"},"groups":{"type":"array","description":"Ordered list of groups that make up this layout. Each group corresponds to a tab or major panel in the record editing UI. The layout hierarchy is: groups → sections → fields.","items":{"$ref":"#/components/schemas/RecordLayoutGroup"}}}},"WorkTypes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"WorkTypes","description":"The classification type of an entertainment work. `Movie` is a standalone feature-length film. `MovieEdit` is a variation of a Movie. `Series` is a TV or streaming series. `Season` is a season within a Series. `Episode` is a single episode within a Season. `EpisodeEdit` is a variation of an Episode. `Compilation` is an editorially curated collection of existing records.","type":"string","enum":["Movie","MovieEdit","Series","Season","Episode","EpisodeEdit","Compilation"]},"RecordLayoutGroup":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordLayoutGroup","description":"A top-level grouping of sections within a record layout. Groups typically correspond to tabs or major UI panels in the record editing view. Each group has a unique `key`, a display `label`, a `type` classifier, and an ordered array of sections.","type":"object","required":["key","label","type","sections"],"additionalProperties":false,"properties":{"id":{"type":"string","description":"Unique identifier for the group within this layout. Assigned automatically on creation."},"key":{"type":"string","description":"Stable machine-readable identifier for the group within this layout. Example: `\"origination\"`, `\"technical_details\"`."},"label":{"type":"string","description":"Human-readable label displayed as the tab or panel heading in the editing UI. Example: `\"Origination\"`, `\"Technical Details\"`."},"type":{"type":"string","enum":["fieldGroup","entityCollection"],"description":"Controls the group's role in the layout. `fieldGroup` contains editable metadata fields organized into sections. `entityCollection` is a reserved group for linked entities (such as contributors or credits) and must not contain custom sections."},"hidden":{"type":"boolean","description":"When `true`, the group is hidden in the editing UI. Only applies to `fieldGroup` groups. Cannot be set on `entityCollection` groups. The required origination group cannot be hidden."},"sections":{"type":"array","description":"Ordered list of sections within this group. Each section contains an ordered list of fields. `entityCollection` groups must have an empty sections array.","items":{"$ref":"#/components/schemas/RecordLayoutSection"}}}},"RecordLayoutSection":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordLayoutSection","description":"A section within a record layout group. Sections provide a labeled sub-grouping of fields within a tab/group in the editing UI. Each section has a unique `key`, a display `label`, and an ordered array of fields.","type":"object","required":["key","label","fields"],"additionalProperties":false,"properties":{"id":{"type":"string","description":"Unique identifier for the section within this layout. Assigned automatically on creation."},"key":{"type":"string","description":"Stable machine-readable identifier for the section within its parent group. Example: `\"core_metadata\"`, `\"identifiers\"`."},"label":{"type":"string","description":"Human-readable label displayed as the section heading in the editing UI. Example: `\"Core Metadata\"`, `\"Identifiers\"`."},"hidden":{"type":"boolean","description":"When `true`, this section and all its fields are hidden from the editing UI. The system-required `core_metadata` section cannot be hidden."},"fields":{"type":"array","description":"Ordered list of field references within this section. Each entry references a field by its `id` and `key`. The order determines the display order in the editing UI.","items":{"$ref":"#/components/schemas/RecordLayoutField"}}}},"RecordLayoutField":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordLayoutField","description":"A field entry within a record layout section. Links a field (identified by `id` and `key`) to its position in the layout. The `fields` array on the section allows multiple sub-fields to be grouped under a single layout position.","type":"object","required":["id","key","fields"],"additionalProperties":false,"properties":{"id":{"type":"string","description":"The unique ID of the field being placed in this layout position. Must reference an existing field that belongs to the tenant."},"key":{"type":"string","description":"The machine-readable key of the field being placed in this layout position. Example: `\"synopsis\"`, `\"release_year\"`."}}}}}}
```

## The RecordLayoutFindManyResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"RecordLayoutFindManyResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordLayoutFindManyResponse","description":"Paginated response for listing record layouts in a tenant. Each item in `data` is a full layout resource with attributes (name, workType, groups), tenant relationship, and meta. The top-level `links` object contains a self link.","type":"object","additionalProperties":false,"required":["data","links"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","type","attributes","relationships","meta"],"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["recordLayouts"]},"attributes":{"allOf":[{"$ref":"#/components/schemas/BaseResourceAttributes"},{"$ref":"#/components/schemas/RecordLayoutAttributes"}]},"meta":{"type":"object","properties":{"tenantId":{"type":"string"}},"required":["tenantId"]},"links":{"$ref":"#/components/schemas/LinksRelated"}}}},"links":{"type":"object","required":["self"],"properties":{"self":{"type":"string"}},"additionalProperties":false}}},"BaseResourceAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResourceAttributes","description":"Common timestamps present on all resource attribute objects. `created` is the ISO 8601 date-time when the resource was first created; `updated` is the date-time of the most recent modification.","type":"object","additionalProperties":false,"required":["created","updated"],"properties":{"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}},"RecordLayoutAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordLayoutAttributes","description":"Attributes of a record layout. `name` is the display name. `workType` specifies which work type this layout applies to. `groups` is the ordered hierarchy of groups → sections → fields that defines the editing UI structure.","type":"object","required":["name","workType","groups"],"additionalProperties":false,"properties":{"name":{"type":"string","description":"Human-readable display name for this record layout. Example: `\"Movie Layout\"`, `\"Series Default Layout\"`."},"description":{"type":"string","description":"Optional longer description of the record layout and its purpose."},"workType":{"$ref":"#/components/schemas/WorkTypes"},"groups":{"type":"array","description":"Ordered list of groups that make up this layout. Each group corresponds to a tab or major panel in the record editing UI. The layout hierarchy is: groups → sections → fields.","items":{"$ref":"#/components/schemas/RecordLayoutGroup"}}}},"WorkTypes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"WorkTypes","description":"The classification type of an entertainment work. `Movie` is a standalone feature-length film. `MovieEdit` is a variation of a Movie. `Series` is a TV or streaming series. `Season` is a season within a Series. `Episode` is a single episode within a Season. `EpisodeEdit` is a variation of an Episode. `Compilation` is an editorially curated collection of existing records.","type":"string","enum":["Movie","MovieEdit","Series","Season","Episode","EpisodeEdit","Compilation"]},"RecordLayoutGroup":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordLayoutGroup","description":"A top-level grouping of sections within a record layout. Groups typically correspond to tabs or major UI panels in the record editing view. Each group has a unique `key`, a display `label`, a `type` classifier, and an ordered array of sections.","type":"object","required":["key","label","type","sections"],"additionalProperties":false,"properties":{"id":{"type":"string","description":"Unique identifier for the group within this layout. Assigned automatically on creation."},"key":{"type":"string","description":"Stable machine-readable identifier for the group within this layout. Example: `\"origination\"`, `\"technical_details\"`."},"label":{"type":"string","description":"Human-readable label displayed as the tab or panel heading in the editing UI. Example: `\"Origination\"`, `\"Technical Details\"`."},"type":{"type":"string","enum":["fieldGroup","entityCollection"],"description":"Controls the group's role in the layout. `fieldGroup` contains editable metadata fields organized into sections. `entityCollection` is a reserved group for linked entities (such as contributors or credits) and must not contain custom sections."},"hidden":{"type":"boolean","description":"When `true`, the group is hidden in the editing UI. Only applies to `fieldGroup` groups. Cannot be set on `entityCollection` groups. The required origination group cannot be hidden."},"sections":{"type":"array","description":"Ordered list of sections within this group. Each section contains an ordered list of fields. `entityCollection` groups must have an empty sections array.","items":{"$ref":"#/components/schemas/RecordLayoutSection"}}}},"RecordLayoutSection":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordLayoutSection","description":"A section within a record layout group. Sections provide a labeled sub-grouping of fields within a tab/group in the editing UI. Each section has a unique `key`, a display `label`, and an ordered array of fields.","type":"object","required":["key","label","fields"],"additionalProperties":false,"properties":{"id":{"type":"string","description":"Unique identifier for the section within this layout. Assigned automatically on creation."},"key":{"type":"string","description":"Stable machine-readable identifier for the section within its parent group. Example: `\"core_metadata\"`, `\"identifiers\"`."},"label":{"type":"string","description":"Human-readable label displayed as the section heading in the editing UI. Example: `\"Core Metadata\"`, `\"Identifiers\"`."},"hidden":{"type":"boolean","description":"When `true`, this section and all its fields are hidden from the editing UI. The system-required `core_metadata` section cannot be hidden."},"fields":{"type":"array","description":"Ordered list of field references within this section. Each entry references a field by its `id` and `key`. The order determines the display order in the editing UI.","items":{"$ref":"#/components/schemas/RecordLayoutField"}}}},"RecordLayoutField":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordLayoutField","description":"A field entry within a record layout section. Links a field (identified by `id` and `key`) to its position in the layout. The `fields` array on the section allows multiple sub-fields to be grouped under a single layout position.","type":"object","required":["id","key","fields"],"additionalProperties":false,"properties":{"id":{"type":"string","description":"The unique ID of the field being placed in this layout position. Must reference an existing field that belongs to the tenant."},"key":{"type":"string","description":"The machine-readable key of the field being placed in this layout position. Example: `\"synopsis\"`, `\"release_year\"`."}}},"LinksRelated":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILinks","description":"A JSON:API links object with an absolute or relative 'related' link","type":"object","required":["related"],"properties":{"related":{"type":"string"}},"additionalProperties":false}}}}
```

## The RecordLayoutCreateOneRequest object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"RecordLayoutCreateOneRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordLayoutCreateOneRequest","description":"Request body for creating a new record layout. The `data.attributes` must include `name`, `workType`, and the `groups` hierarchy that defines the layout structure.","type":"object","additionalProperties":false,"required":["data"],"properties":{"meta":{"$ref":"#/components/schemas/WriteRequestMeta"},"data":{"type":"object","additionalProperties":false,"required":["type","attributes"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["recordLayouts"]},"attributes":{"$ref":"#/components/schemas/RecordLayoutAttributes"}}}}},"WriteRequestMeta":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IWriteRequestMeta","description":"Optional audit metadata for a write request. `audit.source` is the issuing surface/channel (e.g. studio-web, mcp, api, system); `audit.reason` is a free-text justification. Both are optional and length-capped.","type":"object","additionalProperties":false,"properties":{"audit":{"type":"object","additionalProperties":false,"properties":{"source":{"type":"string","maxLength":64},"reason":{"type":"string","maxLength":256}}}}},"RecordLayoutAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordLayoutAttributes","description":"Attributes of a record layout. `name` is the display name. `workType` specifies which work type this layout applies to. `groups` is the ordered hierarchy of groups → sections → fields that defines the editing UI structure.","type":"object","required":["name","workType","groups"],"additionalProperties":false,"properties":{"name":{"type":"string","description":"Human-readable display name for this record layout. Example: `\"Movie Layout\"`, `\"Series Default Layout\"`."},"description":{"type":"string","description":"Optional longer description of the record layout and its purpose."},"workType":{"$ref":"#/components/schemas/WorkTypes"},"groups":{"type":"array","description":"Ordered list of groups that make up this layout. Each group corresponds to a tab or major panel in the record editing UI. The layout hierarchy is: groups → sections → fields.","items":{"$ref":"#/components/schemas/RecordLayoutGroup"}}}},"WorkTypes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"WorkTypes","description":"The classification type of an entertainment work. `Movie` is a standalone feature-length film. `MovieEdit` is a variation of a Movie. `Series` is a TV or streaming series. `Season` is a season within a Series. `Episode` is a single episode within a Season. `EpisodeEdit` is a variation of an Episode. `Compilation` is an editorially curated collection of existing records.","type":"string","enum":["Movie","MovieEdit","Series","Season","Episode","EpisodeEdit","Compilation"]},"RecordLayoutGroup":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordLayoutGroup","description":"A top-level grouping of sections within a record layout. Groups typically correspond to tabs or major UI panels in the record editing view. Each group has a unique `key`, a display `label`, a `type` classifier, and an ordered array of sections.","type":"object","required":["key","label","type","sections"],"additionalProperties":false,"properties":{"id":{"type":"string","description":"Unique identifier for the group within this layout. Assigned automatically on creation."},"key":{"type":"string","description":"Stable machine-readable identifier for the group within this layout. Example: `\"origination\"`, `\"technical_details\"`."},"label":{"type":"string","description":"Human-readable label displayed as the tab or panel heading in the editing UI. Example: `\"Origination\"`, `\"Technical Details\"`."},"type":{"type":"string","enum":["fieldGroup","entityCollection"],"description":"Controls the group's role in the layout. `fieldGroup` contains editable metadata fields organized into sections. `entityCollection` is a reserved group for linked entities (such as contributors or credits) and must not contain custom sections."},"hidden":{"type":"boolean","description":"When `true`, the group is hidden in the editing UI. Only applies to `fieldGroup` groups. Cannot be set on `entityCollection` groups. The required origination group cannot be hidden."},"sections":{"type":"array","description":"Ordered list of sections within this group. Each section contains an ordered list of fields. `entityCollection` groups must have an empty sections array.","items":{"$ref":"#/components/schemas/RecordLayoutSection"}}}},"RecordLayoutSection":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordLayoutSection","description":"A section within a record layout group. Sections provide a labeled sub-grouping of fields within a tab/group in the editing UI. Each section has a unique `key`, a display `label`, and an ordered array of fields.","type":"object","required":["key","label","fields"],"additionalProperties":false,"properties":{"id":{"type":"string","description":"Unique identifier for the section within this layout. Assigned automatically on creation."},"key":{"type":"string","description":"Stable machine-readable identifier for the section within its parent group. Example: `\"core_metadata\"`, `\"identifiers\"`."},"label":{"type":"string","description":"Human-readable label displayed as the section heading in the editing UI. Example: `\"Core Metadata\"`, `\"Identifiers\"`."},"hidden":{"type":"boolean","description":"When `true`, this section and all its fields are hidden from the editing UI. The system-required `core_metadata` section cannot be hidden."},"fields":{"type":"array","description":"Ordered list of field references within this section. Each entry references a field by its `id` and `key`. The order determines the display order in the editing UI.","items":{"$ref":"#/components/schemas/RecordLayoutField"}}}},"RecordLayoutField":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordLayoutField","description":"A field entry within a record layout section. Links a field (identified by `id` and `key`) to its position in the layout. The `fields` array on the section allows multiple sub-fields to be grouped under a single layout position.","type":"object","required":["id","key","fields"],"additionalProperties":false,"properties":{"id":{"type":"string","description":"The unique ID of the field being placed in this layout position. Must reference an existing field that belongs to the tenant."},"key":{"type":"string","description":"The machine-readable key of the field being placed in this layout position. Example: `\"synopsis\"`, `\"release_year\"`."}}}}}}
```

## The RecordLayoutFindOneResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"RecordLayoutFindOneResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordLayoutFindOneResponse","description":"Response for retrieving a single record layout by ID. The `data` object contains the full layout resource including `name`, `workType`, and the `groups` hierarchy (groups → sections → field references) that defines the editing UI structure for the associated work type.","type":"object","additionalProperties":false,"required":["data","links"],"properties":{"data":{"type":"object","required":["id","type","attributes","meta"],"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["recordLayouts"]},"attributes":{"allOf":[{"$ref":"#/components/schemas/BaseResourceAttributes"},{"$ref":"#/components/schemas/RecordLayoutAttributes"}]},"meta":{"type":"object","properties":{"tenantId":{"type":"string"}},"required":["tenantId"]}}},"links":{"type":"object","required":["self"],"properties":{"self":{"type":"string"}},"additionalProperties":false}}},"BaseResourceAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResourceAttributes","description":"Common timestamps present on all resource attribute objects. `created` is the ISO 8601 date-time when the resource was first created; `updated` is the date-time of the most recent modification.","type":"object","additionalProperties":false,"required":["created","updated"],"properties":{"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}},"RecordLayoutAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordLayoutAttributes","description":"Attributes of a record layout. `name` is the display name. `workType` specifies which work type this layout applies to. `groups` is the ordered hierarchy of groups → sections → fields that defines the editing UI structure.","type":"object","required":["name","workType","groups"],"additionalProperties":false,"properties":{"name":{"type":"string","description":"Human-readable display name for this record layout. Example: `\"Movie Layout\"`, `\"Series Default Layout\"`."},"description":{"type":"string","description":"Optional longer description of the record layout and its purpose."},"workType":{"$ref":"#/components/schemas/WorkTypes"},"groups":{"type":"array","description":"Ordered list of groups that make up this layout. Each group corresponds to a tab or major panel in the record editing UI. The layout hierarchy is: groups → sections → fields.","items":{"$ref":"#/components/schemas/RecordLayoutGroup"}}}},"WorkTypes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"WorkTypes","description":"The classification type of an entertainment work. `Movie` is a standalone feature-length film. `MovieEdit` is a variation of a Movie. `Series` is a TV or streaming series. `Season` is a season within a Series. `Episode` is a single episode within a Season. `EpisodeEdit` is a variation of an Episode. `Compilation` is an editorially curated collection of existing records.","type":"string","enum":["Movie","MovieEdit","Series","Season","Episode","EpisodeEdit","Compilation"]},"RecordLayoutGroup":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordLayoutGroup","description":"A top-level grouping of sections within a record layout. Groups typically correspond to tabs or major UI panels in the record editing view. Each group has a unique `key`, a display `label`, a `type` classifier, and an ordered array of sections.","type":"object","required":["key","label","type","sections"],"additionalProperties":false,"properties":{"id":{"type":"string","description":"Unique identifier for the group within this layout. Assigned automatically on creation."},"key":{"type":"string","description":"Stable machine-readable identifier for the group within this layout. Example: `\"origination\"`, `\"technical_details\"`."},"label":{"type":"string","description":"Human-readable label displayed as the tab or panel heading in the editing UI. Example: `\"Origination\"`, `\"Technical Details\"`."},"type":{"type":"string","enum":["fieldGroup","entityCollection"],"description":"Controls the group's role in the layout. `fieldGroup` contains editable metadata fields organized into sections. `entityCollection` is a reserved group for linked entities (such as contributors or credits) and must not contain custom sections."},"hidden":{"type":"boolean","description":"When `true`, the group is hidden in the editing UI. Only applies to `fieldGroup` groups. Cannot be set on `entityCollection` groups. The required origination group cannot be hidden."},"sections":{"type":"array","description":"Ordered list of sections within this group. Each section contains an ordered list of fields. `entityCollection` groups must have an empty sections array.","items":{"$ref":"#/components/schemas/RecordLayoutSection"}}}},"RecordLayoutSection":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordLayoutSection","description":"A section within a record layout group. Sections provide a labeled sub-grouping of fields within a tab/group in the editing UI. Each section has a unique `key`, a display `label`, and an ordered array of fields.","type":"object","required":["key","label","fields"],"additionalProperties":false,"properties":{"id":{"type":"string","description":"Unique identifier for the section within this layout. Assigned automatically on creation."},"key":{"type":"string","description":"Stable machine-readable identifier for the section within its parent group. Example: `\"core_metadata\"`, `\"identifiers\"`."},"label":{"type":"string","description":"Human-readable label displayed as the section heading in the editing UI. Example: `\"Core Metadata\"`, `\"Identifiers\"`."},"hidden":{"type":"boolean","description":"When `true`, this section and all its fields are hidden from the editing UI. The system-required `core_metadata` section cannot be hidden."},"fields":{"type":"array","description":"Ordered list of field references within this section. Each entry references a field by its `id` and `key`. The order determines the display order in the editing UI.","items":{"$ref":"#/components/schemas/RecordLayoutField"}}}},"RecordLayoutField":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordLayoutField","description":"A field entry within a record layout section. Links a field (identified by `id` and `key`) to its position in the layout. The `fields` array on the section allows multiple sub-fields to be grouped under a single layout position.","type":"object","required":["id","key","fields"],"additionalProperties":false,"properties":{"id":{"type":"string","description":"The unique ID of the field being placed in this layout position. Must reference an existing field that belongs to the tenant."},"key":{"type":"string","description":"The machine-readable key of the field being placed in this layout position. Example: `\"synopsis\"`, `\"release_year\"`."}}}}}}
```

## The RecordLayoutUpdateOneRequest object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"RecordLayoutUpdateOneRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordLayoutUpdateOneRequest","description":"Request body for partially updating an existing record layout. Only the attributes provided are modified. Typically used to update the `name`, `description`, or the groups/sections/fields structure.","type":"object","required":["data"],"additionalProperties":false,"properties":{"meta":{"$ref":"#/components/schemas/WriteRequestMeta"},"data":{"allOf":[{"$ref":"#/components/schemas/BaseResource"},{"required":["attributes"],"additionalProperties":false,"properties":{"attributes":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string"},"description":{"type":"string"},"groups":{"type":"array","items":{"type":"object","required":["key","label","type","sections"],"additionalProperties":false,"properties":{"id":{"type":"string"},"key":{"type":"string"},"label":{"type":"string"},"type":{"type":"string","enum":["fieldGroup","entityCollection"]},"hidden":{"type":"boolean"},"sections":{"type":"array","items":{"type":"object","required":["id","key","label","fields"],"additionalProperties":false,"properties":{"id":{"type":"string"},"key":{"type":"string"},"label":{"type":"string"},"hidden":{"type":"boolean"},"fields":{"type":"array","items":{"type":"object","required":["id","key"],"additionalProperties":false,"properties":{"id":{"type":"string"},"key":{"type":"string"},"span":{"type":"number"}}}}}}}}}}}}}}]}}},"WriteRequestMeta":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IWriteRequestMeta","description":"Optional audit metadata for a write request. `audit.source` is the issuing surface/channel (e.g. studio-web, mcp, api, system); `audit.reason` is a free-text justification. Both are optional and length-capped.","type":"object","additionalProperties":false,"properties":{"audit":{"type":"object","additionalProperties":false,"properties":{"source":{"type":"string","maxLength":64},"reason":{"type":"string","maxLength":256}}}}},"BaseResource":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResource","description":"JSON:API resource identifier. All Origin Studio API resource objects include at least an `id` (unique string identifier) and a `type` (the JSON:API resource type name, e.g. records, contributors).","type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"}},"required":["id","type"],"additionalProperties":false}}}}
```

## The IGlobalMetadataOperator object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"IGlobalMetadataOperator":{"type":"string","enum":["eq","ne","contains","starts_with","lt","lte","gt","gte","exists","not_exists"]}}}}
```

## The IGlobalMetadataCondition object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"IGlobalMetadataCondition":{"type":"object","properties":{"field":{"type":"string","enum":["tenantId","parentId","externalId","provider","status","workType","workStatus","primaryTitle","synopses.key","synopses.value","synopses.type","synopses.attribution","synopses.locale","synopses.characterCount","genres.key","genres.value","genres.locale","keywords.key","keywords.value","keywords.locale","tagline.key","tagline.value","tagline.locale","runLength","releaseYear","altIdentifiers.key","altIdentifiers.value","countriesOfOrigin.key","countriesOfOrigin.value","primarySpokenLanguage","ratings.key","ratings.value","ratings.authority","ratings.reason","releaseDate","pictureColorType","originalLanguage","alternateReleaseDates.key","alternateReleaseDates.value","parentInfo.seasonNumber","parentInfo.episodeNumber","parentInfo.seasonId","parentInfo.seriesId","contributors.name","contributors.id","contributors.originNexusId","contributors.imdbId","contributors.job","contributors.characters","contributors.billingOrder","originRating","originMovieType"]},"operator":{"$ref":"#/components/schemas/IGlobalMetadataOperator"},"value":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"}]}},"required":["field","operator"],"additionalProperties":false},"IGlobalMetadataOperator":{"type":"string","enum":["eq","ne","contains","starts_with","lt","lte","gt","gte","exists","not_exists"]}}}}
```

## The IGlobalMetadataQueryGroup object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"IGlobalMetadataQueryGroup":{"type":"object","properties":{"operator":{"type":"string","enum":["AND","OR","NOT"]},"conditions":{"type":"array","items":{"$ref":"#/components/schemas/IGlobalMetadataCondition"}},"groups":{"type":"array","items":{"$ref":"#/components/schemas/IGlobalMetadataQueryGroup"}}},"required":["operator"],"anyOf":[{"required":["conditions"]},{"required":["groups"]}],"additionalProperties":false},"IGlobalMetadataCondition":{"type":"object","properties":{"field":{"type":"string","enum":["tenantId","parentId","externalId","provider","status","workType","workStatus","primaryTitle","synopses.key","synopses.value","synopses.type","synopses.attribution","synopses.locale","synopses.characterCount","genres.key","genres.value","genres.locale","keywords.key","keywords.value","keywords.locale","tagline.key","tagline.value","tagline.locale","runLength","releaseYear","altIdentifiers.key","altIdentifiers.value","countriesOfOrigin.key","countriesOfOrigin.value","primarySpokenLanguage","ratings.key","ratings.value","ratings.authority","ratings.reason","releaseDate","pictureColorType","originalLanguage","alternateReleaseDates.key","alternateReleaseDates.value","parentInfo.seasonNumber","parentInfo.episodeNumber","parentInfo.seasonId","parentInfo.seriesId","contributors.name","contributors.id","contributors.originNexusId","contributors.imdbId","contributors.job","contributors.characters","contributors.billingOrder","originRating","originMovieType"]},"operator":{"$ref":"#/components/schemas/IGlobalMetadataOperator"},"value":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"}]}},"required":["field","operator"],"additionalProperties":false},"IGlobalMetadataOperator":{"type":"string","enum":["eq","ne","contains","starts_with","lt","lte","gt","gte","exists","not_exists"]}}}}
```

## The GlobalMetadataSearchRequest object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"GlobalMetadataSearchRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IGlobalMetadataSearchRequest","description":"Request body for searching global (cross-tenant, provider-sourced) metadata records. Supports the same boolean query group model as contributor search, with conditions targeting global record fields such as titles, genres, contributors, release dates, identifiers, and Origin-specific fields.","type":"object","properties":{"meta":{"$ref":"#/components/schemas/WriteRequestMeta"},"data":{"type":"object","properties":{"type":{"type":"string","enum":["searchQueries"]},"attributes":{"type":"object","properties":{"group":{"$ref":"#/components/schemas/IGlobalMetadataQueryGroup"}},"required":["group"],"additionalProperties":false}},"required":["type","attributes"],"additionalProperties":false}},"required":["data"],"additionalProperties":false,"definitions":{"IGlobalMetadataOperator":{"type":"string","enum":["eq","ne","contains","starts_with","lt","lte","gt","gte","exists","not_exists"]},"IGlobalMetadataCondition":{"type":"object","properties":{"field":{"type":"string","enum":["tenantId","parentId","externalId","provider","status","workType","workStatus","primaryTitle","synopses.key","synopses.value","synopses.type","synopses.attribution","synopses.locale","synopses.characterCount","genres.key","genres.value","genres.locale","keywords.key","keywords.value","keywords.locale","tagline.key","tagline.value","tagline.locale","runLength","releaseYear","altIdentifiers.key","altIdentifiers.value","countriesOfOrigin.key","countriesOfOrigin.value","primarySpokenLanguage","ratings.key","ratings.value","ratings.authority","ratings.reason","releaseDate","pictureColorType","originalLanguage","alternateReleaseDates.key","alternateReleaseDates.value","parentInfo.seasonNumber","parentInfo.episodeNumber","parentInfo.seasonId","parentInfo.seriesId","contributors.name","contributors.id","contributors.originNexusId","contributors.imdbId","contributors.job","contributors.characters","contributors.billingOrder","originRating","originMovieType"]},"operator":{"$ref":"#/components/schemas/IGlobalMetadataOperator"},"value":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"}]}},"required":["field","operator"],"additionalProperties":false},"IGlobalMetadataQueryGroup":{"type":"object","properties":{"operator":{"type":"string","enum":["AND","OR","NOT"]},"conditions":{"type":"array","items":{"$ref":"#/components/schemas/IGlobalMetadataCondition"}},"groups":{"type":"array","items":{"$ref":"#/components/schemas/IGlobalMetadataQueryGroup"}}},"required":["operator"],"anyOf":[{"required":["conditions"]},{"required":["groups"]}],"additionalProperties":false}}},"WriteRequestMeta":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IWriteRequestMeta","description":"Optional audit metadata for a write request. `audit.source` is the issuing surface/channel (e.g. studio-web, mcp, api, system); `audit.reason` is a free-text justification. Both are optional and length-capped.","type":"object","additionalProperties":false,"properties":{"audit":{"type":"object","additionalProperties":false,"properties":{"source":{"type":"string","maxLength":64},"reason":{"type":"string","maxLength":256}}}}},"IGlobalMetadataQueryGroup":{"type":"object","properties":{"operator":{"type":"string","enum":["AND","OR","NOT"]},"conditions":{"type":"array","items":{"$ref":"#/components/schemas/IGlobalMetadataCondition"}},"groups":{"type":"array","items":{"$ref":"#/components/schemas/IGlobalMetadataQueryGroup"}}},"required":["operator"],"anyOf":[{"required":["conditions"]},{"required":["groups"]}],"additionalProperties":false},"IGlobalMetadataCondition":{"type":"object","properties":{"field":{"type":"string","enum":["tenantId","parentId","externalId","provider","status","workType","workStatus","primaryTitle","synopses.key","synopses.value","synopses.type","synopses.attribution","synopses.locale","synopses.characterCount","genres.key","genres.value","genres.locale","keywords.key","keywords.value","keywords.locale","tagline.key","tagline.value","tagline.locale","runLength","releaseYear","altIdentifiers.key","altIdentifiers.value","countriesOfOrigin.key","countriesOfOrigin.value","primarySpokenLanguage","ratings.key","ratings.value","ratings.authority","ratings.reason","releaseDate","pictureColorType","originalLanguage","alternateReleaseDates.key","alternateReleaseDates.value","parentInfo.seasonNumber","parentInfo.episodeNumber","parentInfo.seasonId","parentInfo.seriesId","contributors.name","contributors.id","contributors.originNexusId","contributors.imdbId","contributors.job","contributors.characters","contributors.billingOrder","originRating","originMovieType"]},"operator":{"$ref":"#/components/schemas/IGlobalMetadataOperator"},"value":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"}]}},"required":["field","operator"],"additionalProperties":false},"IGlobalMetadataOperator":{"type":"string","enum":["eq","ne","contains","starts_with","lt","lte","gt","gte","exists","not_exists"]}}}}
```

## The GlobalImage object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"GlobalImage":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IGlobalImage","description":"An image asset associated with a global metadata record. Contains a provider-assigned key, the image URL or identifier as value, optional dimension metadata (width, height), content rating scores (violence, sexuality), locale, image type, and a flag indicating whether this is an official image from the provider.","type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"imageType":{"type":"string"},"height":{"type":"integer"},"width":{"type":"integer"},"tags":{"type":"array","items":{"type":"string"}},"violence":{"type":"integer"},"sexuality":{"type":"integer"},"official":{"type":"boolean"},"locale":{"type":"string"}},"required":["key","value"],"additionalProperties":false}}}}
```

## The GlobalRecordContributor object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"GlobalRecordContributor":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IGlobalRecordContributor","description":"A contributor credit embedded within a global metadata record. Represents a person's involvement in a work (e.g. actor, director), identified by a provider-assigned key and optionally by contributor ID, Origin Nexus ID, or IMDb ID. Includes role (job), character names, and billing order.","type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"},"id":{"type":"string"},"originNexusId":{"type":"string"},"imdbId":{"type":"string"},"job":{"type":"string"},"characters":{"type":"array","items":{"type":"string"}},"billingOrder":{"type":"integer"}},"required":["key","name","job"],"additionalProperties":false}}}}
```

## The GlobalBaseRecord object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"GlobalBaseRecord":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IGlobalBaseRecord","description":"Base schema shared by all global metadata records ingested from external providers (currently Origin). Captures the canonical entertainment metadata fields including titles, synopses, genres, ratings, release information, identifiers, images, and contributor credits. Extended by provider-specific record types such as IGlobalOriginRecord.","type":"object","properties":{"externalId":{"type":"string"},"tenantId":{"type":"string"},"provider":{"type":"string","enum":["OriginNexus","IMDB","EIDR"]},"parentId":{"type":"string"},"status":{"type":"string","enum":["ACTIVE","DELETED"]},"workType":{"$ref":"#/components/schemas/WorkTypes"},"workStatus":{"type":"string"},"primaryTitle":{"type":"string"},"titles":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"type":{"type":"string"},"locale":{"type":"string"},"country":{"type":"string"}},"required":["key","value"],"additionalProperties":false}},"synopses":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"type":{"type":"string"},"attribution":{"type":"string"},"locale":{"type":"string"},"characterCount":{"type":"integer"}},"required":["key","value","locale"],"additionalProperties":false}},"genres":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"locale":{"type":"string"}},"required":["key","value","locale"],"additionalProperties":false}},"runLength":{"type":"integer","description":"Total run length in **seconds**. Providers that publish minutes (Origin, IMDB, Gracenote) or an ISO duration (EIDR) are converted on ingest — a 30-minute episode is 1800, not 30."},"releaseYear":{"type":"integer"},"altIdentifiers":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"type":{"type":"string"}},"required":["key","value"],"additionalProperties":false}},"alternateReleaseDates":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"locale":{"type":"string"},"country":{"type":"string"}},"required":["key","value"],"additionalProperties":false}},"countriesOfOrigin":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"additionalProperties":false}},"associatedOrganizations":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"id":{"type":"string"},"role":{"type":"string"}},"required":["key","value"],"additionalProperties":false}},"ratings":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"authority":{"type":"string"},"reason":{"type":"string"}},"required":["key","value"],"additionalProperties":false}},"releaseDate":{"type":"string","format":"date-time"},"originalLanguage":{"type":"string"},"primarySpokenLanguage":{"type":"string"},"coverImage":{"$ref":"#/components/schemas/GlobalImage"},"images":{"type":"array","items":{"$ref":"#/components/schemas/GlobalImage"}},"parentInfo":{"type":"object","properties":{"seasonNumber":{"type":"integer"},"episodeNumber":{"type":"integer"},"seasonId":{"type":"string"},"seriesId":{"type":"string"}},"additionalProperties":false},"contributors":{"type":"array","items":{"$ref":"#/components/schemas/GlobalRecordContributor"}},"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}},"required":["externalId","workType","primaryTitle"],"additionalProperties":false},"WorkTypes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"WorkTypes","description":"The classification type of an entertainment work. `Movie` is a standalone feature-length film. `MovieEdit` is a variation of a Movie. `Series` is a TV or streaming series. `Season` is a season within a Series. `Episode` is a single episode within a Season. `EpisodeEdit` is a variation of an Episode. `Compilation` is an editorially curated collection of existing records.","type":"string","enum":["Movie","MovieEdit","Series","Season","Episode","EpisodeEdit","Compilation"]},"GlobalImage":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IGlobalImage","description":"An image asset associated with a global metadata record. Contains a provider-assigned key, the image URL or identifier as value, optional dimension metadata (width, height), content rating scores (violence, sexuality), locale, image type, and a flag indicating whether this is an official image from the provider.","type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"imageType":{"type":"string"},"height":{"type":"integer"},"width":{"type":"integer"},"tags":{"type":"array","items":{"type":"string"}},"violence":{"type":"integer"},"sexuality":{"type":"integer"},"official":{"type":"boolean"},"locale":{"type":"string"}},"required":["key","value"],"additionalProperties":false},"GlobalRecordContributor":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IGlobalRecordContributor","description":"A contributor credit embedded within a global metadata record. Represents a person's involvement in a work (e.g. actor, director), identified by a provider-assigned key and optionally by contributor ID, Origin Nexus ID, or IMDb ID. Includes role (job), character names, and billing order.","type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"},"id":{"type":"string"},"originNexusId":{"type":"string"},"imdbId":{"type":"string"},"job":{"type":"string"},"characters":{"type":"array","items":{"type":"string"}},"billingOrder":{"type":"integer"}},"required":["key","name","job"],"additionalProperties":false}}}}
```

## The GlobalOriginRecord object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"GlobalOriginRecord":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IGlobalOriginRecord","description":"A global metadata record sourced from the Origin provider. Extends IGlobalBaseRecord with Origin-specific fields: a normalized popularity rating (`originRating`), a movie type classification (`originMovieType`), IDs of any collection groups the record belongs to (`originCollectionIds`), program-level subject tags (`originTags`), and structured micro-genre classifications (`originMicroGenres`).","allOf":[{"$ref":"#/components/schemas/GlobalBaseRecord"},{"type":"object","properties":{"originRating":{"type":"integer"},"originMovieType":{"type":"string"},"originCollectionIds":{"type":"array","items":{"type":"string"}},"originTags":{"type":"array","description":"Program-level subject tags sourced from the Origin `Tags` payload (short human-readable phrases, e.g. \"space travel\", \"father daughter relationship\"). Distinct from `images[].tags` which describes image content.","items":{"type":"string"}},"originMicroGenres":{"type":"array","description":"Structured micro-genre classifications sourced from the Origin `MicroGenres` payload. Each entry has a label and attribution; WikiData-attributed entries additionally carry a `sourceId` (Q-id) and `aliases`. Wikipedia-attributed entries may have neither.","items":{"type":"object","properties":{"label":{"type":"string"},"sourceId":{"type":"string"},"attribution":{"type":"string"},"aliases":{"type":"array","items":{"type":"string"}}},"required":["label","attribution"],"additionalProperties":false}}},"additionalProperties":false}]},"GlobalBaseRecord":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IGlobalBaseRecord","description":"Base schema shared by all global metadata records ingested from external providers (currently Origin). Captures the canonical entertainment metadata fields including titles, synopses, genres, ratings, release information, identifiers, images, and contributor credits. Extended by provider-specific record types such as IGlobalOriginRecord.","type":"object","properties":{"externalId":{"type":"string"},"tenantId":{"type":"string"},"provider":{"type":"string","enum":["OriginNexus","IMDB","EIDR"]},"parentId":{"type":"string"},"status":{"type":"string","enum":["ACTIVE","DELETED"]},"workType":{"$ref":"#/components/schemas/WorkTypes"},"workStatus":{"type":"string"},"primaryTitle":{"type":"string"},"titles":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"type":{"type":"string"},"locale":{"type":"string"},"country":{"type":"string"}},"required":["key","value"],"additionalProperties":false}},"synopses":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"type":{"type":"string"},"attribution":{"type":"string"},"locale":{"type":"string"},"characterCount":{"type":"integer"}},"required":["key","value","locale"],"additionalProperties":false}},"genres":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"locale":{"type":"string"}},"required":["key","value","locale"],"additionalProperties":false}},"runLength":{"type":"integer","description":"Total run length in **seconds**. Providers that publish minutes (Origin, IMDB, Gracenote) or an ISO duration (EIDR) are converted on ingest — a 30-minute episode is 1800, not 30."},"releaseYear":{"type":"integer"},"altIdentifiers":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"type":{"type":"string"}},"required":["key","value"],"additionalProperties":false}},"alternateReleaseDates":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"locale":{"type":"string"},"country":{"type":"string"}},"required":["key","value"],"additionalProperties":false}},"countriesOfOrigin":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"additionalProperties":false}},"associatedOrganizations":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"id":{"type":"string"},"role":{"type":"string"}},"required":["key","value"],"additionalProperties":false}},"ratings":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"authority":{"type":"string"},"reason":{"type":"string"}},"required":["key","value"],"additionalProperties":false}},"releaseDate":{"type":"string","format":"date-time"},"originalLanguage":{"type":"string"},"primarySpokenLanguage":{"type":"string"},"coverImage":{"$ref":"#/components/schemas/GlobalImage"},"images":{"type":"array","items":{"$ref":"#/components/schemas/GlobalImage"}},"parentInfo":{"type":"object","properties":{"seasonNumber":{"type":"integer"},"episodeNumber":{"type":"integer"},"seasonId":{"type":"string"},"seriesId":{"type":"string"}},"additionalProperties":false},"contributors":{"type":"array","items":{"$ref":"#/components/schemas/GlobalRecordContributor"}},"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}},"required":["externalId","workType","primaryTitle"],"additionalProperties":false},"WorkTypes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"WorkTypes","description":"The classification type of an entertainment work. `Movie` is a standalone feature-length film. `MovieEdit` is a variation of a Movie. `Series` is a TV or streaming series. `Season` is a season within a Series. `Episode` is a single episode within a Season. `EpisodeEdit` is a variation of an Episode. `Compilation` is an editorially curated collection of existing records.","type":"string","enum":["Movie","MovieEdit","Series","Season","Episode","EpisodeEdit","Compilation"]},"GlobalImage":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IGlobalImage","description":"An image asset associated with a global metadata record. Contains a provider-assigned key, the image URL or identifier as value, optional dimension metadata (width, height), content rating scores (violence, sexuality), locale, image type, and a flag indicating whether this is an official image from the provider.","type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"imageType":{"type":"string"},"height":{"type":"integer"},"width":{"type":"integer"},"tags":{"type":"array","items":{"type":"string"}},"violence":{"type":"integer"},"sexuality":{"type":"integer"},"official":{"type":"boolean"},"locale":{"type":"string"}},"required":["key","value"],"additionalProperties":false},"GlobalRecordContributor":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IGlobalRecordContributor","description":"A contributor credit embedded within a global metadata record. Represents a person's involvement in a work (e.g. actor, director), identified by a provider-assigned key and optionally by contributor ID, Origin Nexus ID, or IMDb ID. Includes role (job), character names, and billing order.","type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"},"id":{"type":"string"},"originNexusId":{"type":"string"},"imdbId":{"type":"string"},"job":{"type":"string"},"characters":{"type":"array","items":{"type":"string"}},"billingOrder":{"type":"integer"}},"required":["key","name","job"],"additionalProperties":false}}}}
```

## The GlobalMetadataSearchResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"GlobalMetadataSearchResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IGlobalMetadataSearchResponse","description":"Response returned by the global metadata search endpoint. Contains a paginated array of JSON:API resources, each representing an Origin global record. The `meta` object provides pagination context (total, page, perPage, start, limit).","type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"attributes":{"$ref":"#/components/schemas/GlobalOriginRecord"}},"required":["id","type","attributes"],"additionalProperties":false}},"links":{"type":"object","properties":{"self":{"type":"string"},"next":{"type":"string"},"prev":{"type":"string"}},"additionalProperties":false},"meta":{"type":"object","properties":{"total":{"type":"integer"},"page":{"type":"integer"},"perPage":{"type":"integer"},"start":{"type":"integer"},"limit":{"type":"integer"}},"additionalProperties":false}},"required":["data"],"additionalProperties":false},"GlobalOriginRecord":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IGlobalOriginRecord","description":"A global metadata record sourced from the Origin provider. Extends IGlobalBaseRecord with Origin-specific fields: a normalized popularity rating (`originRating`), a movie type classification (`originMovieType`), IDs of any collection groups the record belongs to (`originCollectionIds`), program-level subject tags (`originTags`), and structured micro-genre classifications (`originMicroGenres`).","allOf":[{"$ref":"#/components/schemas/GlobalBaseRecord"},{"type":"object","properties":{"originRating":{"type":"integer"},"originMovieType":{"type":"string"},"originCollectionIds":{"type":"array","items":{"type":"string"}},"originTags":{"type":"array","description":"Program-level subject tags sourced from the Origin `Tags` payload (short human-readable phrases, e.g. \"space travel\", \"father daughter relationship\"). Distinct from `images[].tags` which describes image content.","items":{"type":"string"}},"originMicroGenres":{"type":"array","description":"Structured micro-genre classifications sourced from the Origin `MicroGenres` payload. Each entry has a label and attribution; WikiData-attributed entries additionally carry a `sourceId` (Q-id) and `aliases`. Wikipedia-attributed entries may have neither.","items":{"type":"object","properties":{"label":{"type":"string"},"sourceId":{"type":"string"},"attribution":{"type":"string"},"aliases":{"type":"array","items":{"type":"string"}}},"required":["label","attribution"],"additionalProperties":false}}},"additionalProperties":false}]},"GlobalBaseRecord":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IGlobalBaseRecord","description":"Base schema shared by all global metadata records ingested from external providers (currently Origin). Captures the canonical entertainment metadata fields including titles, synopses, genres, ratings, release information, identifiers, images, and contributor credits. Extended by provider-specific record types such as IGlobalOriginRecord.","type":"object","properties":{"externalId":{"type":"string"},"tenantId":{"type":"string"},"provider":{"type":"string","enum":["OriginNexus","IMDB","EIDR"]},"parentId":{"type":"string"},"status":{"type":"string","enum":["ACTIVE","DELETED"]},"workType":{"$ref":"#/components/schemas/WorkTypes"},"workStatus":{"type":"string"},"primaryTitle":{"type":"string"},"titles":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"type":{"type":"string"},"locale":{"type":"string"},"country":{"type":"string"}},"required":["key","value"],"additionalProperties":false}},"synopses":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"type":{"type":"string"},"attribution":{"type":"string"},"locale":{"type":"string"},"characterCount":{"type":"integer"}},"required":["key","value","locale"],"additionalProperties":false}},"genres":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"locale":{"type":"string"}},"required":["key","value","locale"],"additionalProperties":false}},"runLength":{"type":"integer","description":"Total run length in **seconds**. Providers that publish minutes (Origin, IMDB, Gracenote) or an ISO duration (EIDR) are converted on ingest — a 30-minute episode is 1800, not 30."},"releaseYear":{"type":"integer"},"altIdentifiers":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"type":{"type":"string"}},"required":["key","value"],"additionalProperties":false}},"alternateReleaseDates":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"locale":{"type":"string"},"country":{"type":"string"}},"required":["key","value"],"additionalProperties":false}},"countriesOfOrigin":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"additionalProperties":false}},"associatedOrganizations":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"id":{"type":"string"},"role":{"type":"string"}},"required":["key","value"],"additionalProperties":false}},"ratings":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"authority":{"type":"string"},"reason":{"type":"string"}},"required":["key","value"],"additionalProperties":false}},"releaseDate":{"type":"string","format":"date-time"},"originalLanguage":{"type":"string"},"primarySpokenLanguage":{"type":"string"},"coverImage":{"$ref":"#/components/schemas/GlobalImage"},"images":{"type":"array","items":{"$ref":"#/components/schemas/GlobalImage"}},"parentInfo":{"type":"object","properties":{"seasonNumber":{"type":"integer"},"episodeNumber":{"type":"integer"},"seasonId":{"type":"string"},"seriesId":{"type":"string"}},"additionalProperties":false},"contributors":{"type":"array","items":{"$ref":"#/components/schemas/GlobalRecordContributor"}},"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}},"required":["externalId","workType","primaryTitle"],"additionalProperties":false},"WorkTypes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"WorkTypes","description":"The classification type of an entertainment work. `Movie` is a standalone feature-length film. `MovieEdit` is a variation of a Movie. `Series` is a TV or streaming series. `Season` is a season within a Series. `Episode` is a single episode within a Season. `EpisodeEdit` is a variation of an Episode. `Compilation` is an editorially curated collection of existing records.","type":"string","enum":["Movie","MovieEdit","Series","Season","Episode","EpisodeEdit","Compilation"]},"GlobalImage":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IGlobalImage","description":"An image asset associated with a global metadata record. Contains a provider-assigned key, the image URL or identifier as value, optional dimension metadata (width, height), content rating scores (violence, sexuality), locale, image type, and a flag indicating whether this is an official image from the provider.","type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"imageType":{"type":"string"},"height":{"type":"integer"},"width":{"type":"integer"},"tags":{"type":"array","items":{"type":"string"}},"violence":{"type":"integer"},"sexuality":{"type":"integer"},"official":{"type":"boolean"},"locale":{"type":"string"}},"required":["key","value"],"additionalProperties":false},"GlobalRecordContributor":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IGlobalRecordContributor","description":"A contributor credit embedded within a global metadata record. Represents a person's involvement in a work (e.g. actor, director), identified by a provider-assigned key and optionally by contributor ID, Origin Nexus ID, or IMDb ID. Includes role (job), character names, and billing order.","type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"},"id":{"type":"string"},"originNexusId":{"type":"string"},"imdbId":{"type":"string"},"job":{"type":"string"},"characters":{"type":"array","items":{"type":"string"}},"billingOrder":{"type":"integer"}},"required":["key","name","job"],"additionalProperties":false}}}}
```

## The GlobalImdbRecord object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"GlobalImdbRecord":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IGlobalImdbRecord","description":"A global metadata record sourced from IMDb. Extends the shared base record with IMDb-specific fields such as public rating, taglines, keywords, filming locations, and a link to the title on imdb.com. Use GET /global/imdb/{id} with an IMDb title ID (for example `tt0816692`).","allOf":[{"$ref":"#/components/schemas/GlobalBaseRecord"},{"type":"object","properties":{"keywords":{"description":"Subject keywords associated with the title, each with a stable key, display value, and locale.","type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"locale":{"type":"string"}},"required":["key","value","locale"],"additionalProperties":false}},"tagline":{"description":"Marketing taglines for the title, localized when available.","type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"locale":{"type":"string"}},"required":["key","value","locale"],"additionalProperties":false}},"pictureColorType":{"description":"Color presentation of the title (for example Color or Black and White) when provided by IMDb.","type":"string"},"imdbUrl":{"description":"Canonical IMDb web URL for this title.","type":"string"},"isAdult":{"description":"Whether IMDb classifies the title as adult-oriented content.","type":"boolean"},"imdbRating":{"description":"Aggregate user rating from IMDb, including vote count.","type":"object","properties":{"rating":{"description":"Average rating on the IMDb scale (typically 1–10).","type":"number"},"numberOfVotes":{"description":"Total number of user votes contributing to the rating.","type":"number"}},"additionalProperties":false},"locations":{"description":"Filming locations and related scene notes when available from IMDb.","type":"array","items":{"type":"object","properties":{"place":{"description":"Named filming location.","type":"string"},"scenes":{"description":"Scene descriptions linked to this location.","type":"array","items":{"type":"string"}}},"additionalProperties":false}}},"additionalProperties":false}]},"GlobalBaseRecord":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IGlobalBaseRecord","description":"Base schema shared by all global metadata records ingested from external providers (currently Origin). Captures the canonical entertainment metadata fields including titles, synopses, genres, ratings, release information, identifiers, images, and contributor credits. Extended by provider-specific record types such as IGlobalOriginRecord.","type":"object","properties":{"externalId":{"type":"string"},"tenantId":{"type":"string"},"provider":{"type":"string","enum":["OriginNexus","IMDB","EIDR"]},"parentId":{"type":"string"},"status":{"type":"string","enum":["ACTIVE","DELETED"]},"workType":{"$ref":"#/components/schemas/WorkTypes"},"workStatus":{"type":"string"},"primaryTitle":{"type":"string"},"titles":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"type":{"type":"string"},"locale":{"type":"string"},"country":{"type":"string"}},"required":["key","value"],"additionalProperties":false}},"synopses":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"type":{"type":"string"},"attribution":{"type":"string"},"locale":{"type":"string"},"characterCount":{"type":"integer"}},"required":["key","value","locale"],"additionalProperties":false}},"genres":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"locale":{"type":"string"}},"required":["key","value","locale"],"additionalProperties":false}},"runLength":{"type":"integer","description":"Total run length in **seconds**. Providers that publish minutes (Origin, IMDB, Gracenote) or an ISO duration (EIDR) are converted on ingest — a 30-minute episode is 1800, not 30."},"releaseYear":{"type":"integer"},"altIdentifiers":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"type":{"type":"string"}},"required":["key","value"],"additionalProperties":false}},"alternateReleaseDates":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"locale":{"type":"string"},"country":{"type":"string"}},"required":["key","value"],"additionalProperties":false}},"countriesOfOrigin":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"additionalProperties":false}},"associatedOrganizations":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"id":{"type":"string"},"role":{"type":"string"}},"required":["key","value"],"additionalProperties":false}},"ratings":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"authority":{"type":"string"},"reason":{"type":"string"}},"required":["key","value"],"additionalProperties":false}},"releaseDate":{"type":"string","format":"date-time"},"originalLanguage":{"type":"string"},"primarySpokenLanguage":{"type":"string"},"coverImage":{"$ref":"#/components/schemas/GlobalImage"},"images":{"type":"array","items":{"$ref":"#/components/schemas/GlobalImage"}},"parentInfo":{"type":"object","properties":{"seasonNumber":{"type":"integer"},"episodeNumber":{"type":"integer"},"seasonId":{"type":"string"},"seriesId":{"type":"string"}},"additionalProperties":false},"contributors":{"type":"array","items":{"$ref":"#/components/schemas/GlobalRecordContributor"}},"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}},"required":["externalId","workType","primaryTitle"],"additionalProperties":false},"WorkTypes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"WorkTypes","description":"The classification type of an entertainment work. `Movie` is a standalone feature-length film. `MovieEdit` is a variation of a Movie. `Series` is a TV or streaming series. `Season` is a season within a Series. `Episode` is a single episode within a Season. `EpisodeEdit` is a variation of an Episode. `Compilation` is an editorially curated collection of existing records.","type":"string","enum":["Movie","MovieEdit","Series","Season","Episode","EpisodeEdit","Compilation"]},"GlobalImage":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IGlobalImage","description":"An image asset associated with a global metadata record. Contains a provider-assigned key, the image URL or identifier as value, optional dimension metadata (width, height), content rating scores (violence, sexuality), locale, image type, and a flag indicating whether this is an official image from the provider.","type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"imageType":{"type":"string"},"height":{"type":"integer"},"width":{"type":"integer"},"tags":{"type":"array","items":{"type":"string"}},"violence":{"type":"integer"},"sexuality":{"type":"integer"},"official":{"type":"boolean"},"locale":{"type":"string"}},"required":["key","value"],"additionalProperties":false},"GlobalRecordContributor":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IGlobalRecordContributor","description":"A contributor credit embedded within a global metadata record. Represents a person's involvement in a work (e.g. actor, director), identified by a provider-assigned key and optionally by contributor ID, Origin Nexus ID, or IMDb ID. Includes role (job), character names, and billing order.","type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"},"id":{"type":"string"},"originNexusId":{"type":"string"},"imdbId":{"type":"string"},"job":{"type":"string"},"characters":{"type":"array","items":{"type":"string"}},"billingOrder":{"type":"integer"}},"required":["key","name","job"],"additionalProperties":false}}}}
```

## The GlobalMetadataGetImdbResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"GlobalMetadataGetImdbResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IGlobalMetadataGetImdbResponse","description":"JSON:API response wrapper for retrieving a single global record from IMDb by its IMDb title ID. The `data.attributes` object contains the full IGlobalImdbRecord payload, including IMDb-specific rating and location fields.","type":"object","properties":{"data":{"type":"object","properties":{"id":{"description":"Internal Origin Studio resource ID for this global metadata record.","type":"string"},"type":{"description":"JSON:API resource type for global metadata records.","type":"string"},"attributes":{"$ref":"#/components/schemas/GlobalImdbRecord"}},"required":["id","type","attributes"],"additionalProperties":false},"links":{"description":"Hypermedia links for the retrieved resource.","type":"object","properties":{"self":{"description":"URL of this resource.","type":"string"}},"additionalProperties":false}},"required":["data","links"],"additionalProperties":false},"GlobalImdbRecord":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IGlobalImdbRecord","description":"A global metadata record sourced from IMDb. Extends the shared base record with IMDb-specific fields such as public rating, taglines, keywords, filming locations, and a link to the title on imdb.com. Use GET /global/imdb/{id} with an IMDb title ID (for example `tt0816692`).","allOf":[{"$ref":"#/components/schemas/GlobalBaseRecord"},{"type":"object","properties":{"keywords":{"description":"Subject keywords associated with the title, each with a stable key, display value, and locale.","type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"locale":{"type":"string"}},"required":["key","value","locale"],"additionalProperties":false}},"tagline":{"description":"Marketing taglines for the title, localized when available.","type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"locale":{"type":"string"}},"required":["key","value","locale"],"additionalProperties":false}},"pictureColorType":{"description":"Color presentation of the title (for example Color or Black and White) when provided by IMDb.","type":"string"},"imdbUrl":{"description":"Canonical IMDb web URL for this title.","type":"string"},"isAdult":{"description":"Whether IMDb classifies the title as adult-oriented content.","type":"boolean"},"imdbRating":{"description":"Aggregate user rating from IMDb, including vote count.","type":"object","properties":{"rating":{"description":"Average rating on the IMDb scale (typically 1–10).","type":"number"},"numberOfVotes":{"description":"Total number of user votes contributing to the rating.","type":"number"}},"additionalProperties":false},"locations":{"description":"Filming locations and related scene notes when available from IMDb.","type":"array","items":{"type":"object","properties":{"place":{"description":"Named filming location.","type":"string"},"scenes":{"description":"Scene descriptions linked to this location.","type":"array","items":{"type":"string"}}},"additionalProperties":false}}},"additionalProperties":false}]},"GlobalBaseRecord":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IGlobalBaseRecord","description":"Base schema shared by all global metadata records ingested from external providers (currently Origin). Captures the canonical entertainment metadata fields including titles, synopses, genres, ratings, release information, identifiers, images, and contributor credits. Extended by provider-specific record types such as IGlobalOriginRecord.","type":"object","properties":{"externalId":{"type":"string"},"tenantId":{"type":"string"},"provider":{"type":"string","enum":["OriginNexus","IMDB","EIDR"]},"parentId":{"type":"string"},"status":{"type":"string","enum":["ACTIVE","DELETED"]},"workType":{"$ref":"#/components/schemas/WorkTypes"},"workStatus":{"type":"string"},"primaryTitle":{"type":"string"},"titles":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"type":{"type":"string"},"locale":{"type":"string"},"country":{"type":"string"}},"required":["key","value"],"additionalProperties":false}},"synopses":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"type":{"type":"string"},"attribution":{"type":"string"},"locale":{"type":"string"},"characterCount":{"type":"integer"}},"required":["key","value","locale"],"additionalProperties":false}},"genres":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"locale":{"type":"string"}},"required":["key","value","locale"],"additionalProperties":false}},"runLength":{"type":"integer","description":"Total run length in **seconds**. Providers that publish minutes (Origin, IMDB, Gracenote) or an ISO duration (EIDR) are converted on ingest — a 30-minute episode is 1800, not 30."},"releaseYear":{"type":"integer"},"altIdentifiers":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"type":{"type":"string"}},"required":["key","value"],"additionalProperties":false}},"alternateReleaseDates":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"locale":{"type":"string"},"country":{"type":"string"}},"required":["key","value"],"additionalProperties":false}},"countriesOfOrigin":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"additionalProperties":false}},"associatedOrganizations":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"id":{"type":"string"},"role":{"type":"string"}},"required":["key","value"],"additionalProperties":false}},"ratings":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"authority":{"type":"string"},"reason":{"type":"string"}},"required":["key","value"],"additionalProperties":false}},"releaseDate":{"type":"string","format":"date-time"},"originalLanguage":{"type":"string"},"primarySpokenLanguage":{"type":"string"},"coverImage":{"$ref":"#/components/schemas/GlobalImage"},"images":{"type":"array","items":{"$ref":"#/components/schemas/GlobalImage"}},"parentInfo":{"type":"object","properties":{"seasonNumber":{"type":"integer"},"episodeNumber":{"type":"integer"},"seasonId":{"type":"string"},"seriesId":{"type":"string"}},"additionalProperties":false},"contributors":{"type":"array","items":{"$ref":"#/components/schemas/GlobalRecordContributor"}},"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}},"required":["externalId","workType","primaryTitle"],"additionalProperties":false},"WorkTypes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"WorkTypes","description":"The classification type of an entertainment work. `Movie` is a standalone feature-length film. `MovieEdit` is a variation of a Movie. `Series` is a TV or streaming series. `Season` is a season within a Series. `Episode` is a single episode within a Season. `EpisodeEdit` is a variation of an Episode. `Compilation` is an editorially curated collection of existing records.","type":"string","enum":["Movie","MovieEdit","Series","Season","Episode","EpisodeEdit","Compilation"]},"GlobalImage":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IGlobalImage","description":"An image asset associated with a global metadata record. Contains a provider-assigned key, the image URL or identifier as value, optional dimension metadata (width, height), content rating scores (violence, sexuality), locale, image type, and a flag indicating whether this is an official image from the provider.","type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"imageType":{"type":"string"},"height":{"type":"integer"},"width":{"type":"integer"},"tags":{"type":"array","items":{"type":"string"}},"violence":{"type":"integer"},"sexuality":{"type":"integer"},"official":{"type":"boolean"},"locale":{"type":"string"}},"required":["key","value"],"additionalProperties":false},"GlobalRecordContributor":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IGlobalRecordContributor","description":"A contributor credit embedded within a global metadata record. Represents a person's involvement in a work (e.g. actor, director), identified by a provider-assigned key and optionally by contributor ID, Origin Nexus ID, or IMDb ID. Includes role (job), character names, and billing order.","type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"},"id":{"type":"string"},"originNexusId":{"type":"string"},"imdbId":{"type":"string"},"job":{"type":"string"},"characters":{"type":"array","items":{"type":"string"}},"billingOrder":{"type":"integer"}},"required":["key","name","job"],"additionalProperties":false}}}}
```

## The GlobalEidrRecord object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"GlobalEidrRecord":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IGlobalEIDRRecord","description":"A global metadata record sourced from the Entertainment Identifier Registry (EIDR). Uses the shared base record fields only—EIDR does not add provider-specific extensions beyond standard titles, identifiers, credits, and release data. Use GET /global/eidr/{id} with a full EIDR ID (for example `10.5240/5BC6-2FA3-4F64-B17E-0B7D-H`).","allOf":[{"$ref":"#/components/schemas/GlobalBaseRecord"}]},"GlobalBaseRecord":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IGlobalBaseRecord","description":"Base schema shared by all global metadata records ingested from external providers (currently Origin). Captures the canonical entertainment metadata fields including titles, synopses, genres, ratings, release information, identifiers, images, and contributor credits. Extended by provider-specific record types such as IGlobalOriginRecord.","type":"object","properties":{"externalId":{"type":"string"},"tenantId":{"type":"string"},"provider":{"type":"string","enum":["OriginNexus","IMDB","EIDR"]},"parentId":{"type":"string"},"status":{"type":"string","enum":["ACTIVE","DELETED"]},"workType":{"$ref":"#/components/schemas/WorkTypes"},"workStatus":{"type":"string"},"primaryTitle":{"type":"string"},"titles":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"type":{"type":"string"},"locale":{"type":"string"},"country":{"type":"string"}},"required":["key","value"],"additionalProperties":false}},"synopses":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"type":{"type":"string"},"attribution":{"type":"string"},"locale":{"type":"string"},"characterCount":{"type":"integer"}},"required":["key","value","locale"],"additionalProperties":false}},"genres":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"locale":{"type":"string"}},"required":["key","value","locale"],"additionalProperties":false}},"runLength":{"type":"integer","description":"Total run length in **seconds**. Providers that publish minutes (Origin, IMDB, Gracenote) or an ISO duration (EIDR) are converted on ingest — a 30-minute episode is 1800, not 30."},"releaseYear":{"type":"integer"},"altIdentifiers":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"type":{"type":"string"}},"required":["key","value"],"additionalProperties":false}},"alternateReleaseDates":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"locale":{"type":"string"},"country":{"type":"string"}},"required":["key","value"],"additionalProperties":false}},"countriesOfOrigin":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"additionalProperties":false}},"associatedOrganizations":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"id":{"type":"string"},"role":{"type":"string"}},"required":["key","value"],"additionalProperties":false}},"ratings":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"authority":{"type":"string"},"reason":{"type":"string"}},"required":["key","value"],"additionalProperties":false}},"releaseDate":{"type":"string","format":"date-time"},"originalLanguage":{"type":"string"},"primarySpokenLanguage":{"type":"string"},"coverImage":{"$ref":"#/components/schemas/GlobalImage"},"images":{"type":"array","items":{"$ref":"#/components/schemas/GlobalImage"}},"parentInfo":{"type":"object","properties":{"seasonNumber":{"type":"integer"},"episodeNumber":{"type":"integer"},"seasonId":{"type":"string"},"seriesId":{"type":"string"}},"additionalProperties":false},"contributors":{"type":"array","items":{"$ref":"#/components/schemas/GlobalRecordContributor"}},"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}},"required":["externalId","workType","primaryTitle"],"additionalProperties":false},"WorkTypes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"WorkTypes","description":"The classification type of an entertainment work. `Movie` is a standalone feature-length film. `MovieEdit` is a variation of a Movie. `Series` is a TV or streaming series. `Season` is a season within a Series. `Episode` is a single episode within a Season. `EpisodeEdit` is a variation of an Episode. `Compilation` is an editorially curated collection of existing records.","type":"string","enum":["Movie","MovieEdit","Series","Season","Episode","EpisodeEdit","Compilation"]},"GlobalImage":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IGlobalImage","description":"An image asset associated with a global metadata record. Contains a provider-assigned key, the image URL or identifier as value, optional dimension metadata (width, height), content rating scores (violence, sexuality), locale, image type, and a flag indicating whether this is an official image from the provider.","type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"imageType":{"type":"string"},"height":{"type":"integer"},"width":{"type":"integer"},"tags":{"type":"array","items":{"type":"string"}},"violence":{"type":"integer"},"sexuality":{"type":"integer"},"official":{"type":"boolean"},"locale":{"type":"string"}},"required":["key","value"],"additionalProperties":false},"GlobalRecordContributor":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IGlobalRecordContributor","description":"A contributor credit embedded within a global metadata record. Represents a person's involvement in a work (e.g. actor, director), identified by a provider-assigned key and optionally by contributor ID, Origin Nexus ID, or IMDb ID. Includes role (job), character names, and billing order.","type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"},"id":{"type":"string"},"originNexusId":{"type":"string"},"imdbId":{"type":"string"},"job":{"type":"string"},"characters":{"type":"array","items":{"type":"string"}},"billingOrder":{"type":"integer"}},"required":["key","name","job"],"additionalProperties":false}}}}
```

## The GlobalMetadataGetEidrResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"GlobalMetadataGetEidrResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IGlobalMetadataGetEidrResponse","description":"JSON:API response wrapper for retrieving a single global record from EIDR by its registry ID. The `data.attributes` object contains IGlobalEidrRecord fields (shared base schema only). Alternate identifiers on the record may include cross-references such as IMDb IDs.","type":"object","properties":{"data":{"type":"object","properties":{"id":{"description":"Internal Origin Studio resource ID for this global metadata record.","type":"string"},"type":{"description":"JSON:API resource type for global metadata records.","type":"string"},"attributes":{"$ref":"#/components/schemas/GlobalEidrRecord"}},"required":["id","type","attributes"],"additionalProperties":false},"links":{"description":"Hypermedia links for the retrieved resource.","type":"object","properties":{"self":{"description":"URL of this resource.","type":"string"}},"additionalProperties":false}},"required":["data","links"],"additionalProperties":false},"GlobalEidrRecord":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IGlobalEIDRRecord","description":"A global metadata record sourced from the Entertainment Identifier Registry (EIDR). Uses the shared base record fields only—EIDR does not add provider-specific extensions beyond standard titles, identifiers, credits, and release data. Use GET /global/eidr/{id} with a full EIDR ID (for example `10.5240/5BC6-2FA3-4F64-B17E-0B7D-H`).","allOf":[{"$ref":"#/components/schemas/GlobalBaseRecord"}]},"GlobalBaseRecord":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IGlobalBaseRecord","description":"Base schema shared by all global metadata records ingested from external providers (currently Origin). Captures the canonical entertainment metadata fields including titles, synopses, genres, ratings, release information, identifiers, images, and contributor credits. Extended by provider-specific record types such as IGlobalOriginRecord.","type":"object","properties":{"externalId":{"type":"string"},"tenantId":{"type":"string"},"provider":{"type":"string","enum":["OriginNexus","IMDB","EIDR"]},"parentId":{"type":"string"},"status":{"type":"string","enum":["ACTIVE","DELETED"]},"workType":{"$ref":"#/components/schemas/WorkTypes"},"workStatus":{"type":"string"},"primaryTitle":{"type":"string"},"titles":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"type":{"type":"string"},"locale":{"type":"string"},"country":{"type":"string"}},"required":["key","value"],"additionalProperties":false}},"synopses":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"type":{"type":"string"},"attribution":{"type":"string"},"locale":{"type":"string"},"characterCount":{"type":"integer"}},"required":["key","value","locale"],"additionalProperties":false}},"genres":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"locale":{"type":"string"}},"required":["key","value","locale"],"additionalProperties":false}},"runLength":{"type":"integer","description":"Total run length in **seconds**. Providers that publish minutes (Origin, IMDB, Gracenote) or an ISO duration (EIDR) are converted on ingest — a 30-minute episode is 1800, not 30."},"releaseYear":{"type":"integer"},"altIdentifiers":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"type":{"type":"string"}},"required":["key","value"],"additionalProperties":false}},"alternateReleaseDates":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"locale":{"type":"string"},"country":{"type":"string"}},"required":["key","value"],"additionalProperties":false}},"countriesOfOrigin":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"additionalProperties":false}},"associatedOrganizations":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"id":{"type":"string"},"role":{"type":"string"}},"required":["key","value"],"additionalProperties":false}},"ratings":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"authority":{"type":"string"},"reason":{"type":"string"}},"required":["key","value"],"additionalProperties":false}},"releaseDate":{"type":"string","format":"date-time"},"originalLanguage":{"type":"string"},"primarySpokenLanguage":{"type":"string"},"coverImage":{"$ref":"#/components/schemas/GlobalImage"},"images":{"type":"array","items":{"$ref":"#/components/schemas/GlobalImage"}},"parentInfo":{"type":"object","properties":{"seasonNumber":{"type":"integer"},"episodeNumber":{"type":"integer"},"seasonId":{"type":"string"},"seriesId":{"type":"string"}},"additionalProperties":false},"contributors":{"type":"array","items":{"$ref":"#/components/schemas/GlobalRecordContributor"}},"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}},"required":["externalId","workType","primaryTitle"],"additionalProperties":false},"WorkTypes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"WorkTypes","description":"The classification type of an entertainment work. `Movie` is a standalone feature-length film. `MovieEdit` is a variation of a Movie. `Series` is a TV or streaming series. `Season` is a season within a Series. `Episode` is a single episode within a Season. `EpisodeEdit` is a variation of an Episode. `Compilation` is an editorially curated collection of existing records.","type":"string","enum":["Movie","MovieEdit","Series","Season","Episode","EpisodeEdit","Compilation"]},"GlobalImage":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IGlobalImage","description":"An image asset associated with a global metadata record. Contains a provider-assigned key, the image URL or identifier as value, optional dimension metadata (width, height), content rating scores (violence, sexuality), locale, image type, and a flag indicating whether this is an official image from the provider.","type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"imageType":{"type":"string"},"height":{"type":"integer"},"width":{"type":"integer"},"tags":{"type":"array","items":{"type":"string"}},"violence":{"type":"integer"},"sexuality":{"type":"integer"},"official":{"type":"boolean"},"locale":{"type":"string"}},"required":["key","value"],"additionalProperties":false},"GlobalRecordContributor":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IGlobalRecordContributor","description":"A contributor credit embedded within a global metadata record. Represents a person's involvement in a work (e.g. actor, director), identified by a provider-assigned key and optionally by contributor ID, Origin Nexus ID, or IMDb ID. Includes role (job), character names, and billing order.","type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"},"id":{"type":"string"},"originNexusId":{"type":"string"},"imdbId":{"type":"string"},"job":{"type":"string"},"characters":{"type":"array","items":{"type":"string"}},"billingOrder":{"type":"integer"}},"required":["key","name","job"],"additionalProperties":false}}}}
```

## The GlobalGracenoteRecord object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"GlobalGracenoteRecord":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IGlobalGracenoteRecord","description":"A global metadata record sourced from a tenant's own licensed Gracenote entitlement. Uses the shared base record fields only. Unlike Origin/IMDb/EIDR, this data is per-tenant, not shared — a lookup only ever returns the calling tenant's own cached copy. Use GET /global/gracenote/{id} with a Gracenote TMSId.","allOf":[{"$ref":"#/components/schemas/GlobalBaseRecord"}]},"GlobalBaseRecord":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IGlobalBaseRecord","description":"Base schema shared by all global metadata records ingested from external providers (currently Origin). Captures the canonical entertainment metadata fields including titles, synopses, genres, ratings, release information, identifiers, images, and contributor credits. Extended by provider-specific record types such as IGlobalOriginRecord.","type":"object","properties":{"externalId":{"type":"string"},"tenantId":{"type":"string"},"provider":{"type":"string","enum":["OriginNexus","IMDB","EIDR"]},"parentId":{"type":"string"},"status":{"type":"string","enum":["ACTIVE","DELETED"]},"workType":{"$ref":"#/components/schemas/WorkTypes"},"workStatus":{"type":"string"},"primaryTitle":{"type":"string"},"titles":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"type":{"type":"string"},"locale":{"type":"string"},"country":{"type":"string"}},"required":["key","value"],"additionalProperties":false}},"synopses":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"type":{"type":"string"},"attribution":{"type":"string"},"locale":{"type":"string"},"characterCount":{"type":"integer"}},"required":["key","value","locale"],"additionalProperties":false}},"genres":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"locale":{"type":"string"}},"required":["key","value","locale"],"additionalProperties":false}},"runLength":{"type":"integer","description":"Total run length in **seconds**. Providers that publish minutes (Origin, IMDB, Gracenote) or an ISO duration (EIDR) are converted on ingest — a 30-minute episode is 1800, not 30."},"releaseYear":{"type":"integer"},"altIdentifiers":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"type":{"type":"string"}},"required":["key","value"],"additionalProperties":false}},"alternateReleaseDates":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"locale":{"type":"string"},"country":{"type":"string"}},"required":["key","value"],"additionalProperties":false}},"countriesOfOrigin":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"additionalProperties":false}},"associatedOrganizations":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"id":{"type":"string"},"role":{"type":"string"}},"required":["key","value"],"additionalProperties":false}},"ratings":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"authority":{"type":"string"},"reason":{"type":"string"}},"required":["key","value"],"additionalProperties":false}},"releaseDate":{"type":"string","format":"date-time"},"originalLanguage":{"type":"string"},"primarySpokenLanguage":{"type":"string"},"coverImage":{"$ref":"#/components/schemas/GlobalImage"},"images":{"type":"array","items":{"$ref":"#/components/schemas/GlobalImage"}},"parentInfo":{"type":"object","properties":{"seasonNumber":{"type":"integer"},"episodeNumber":{"type":"integer"},"seasonId":{"type":"string"},"seriesId":{"type":"string"}},"additionalProperties":false},"contributors":{"type":"array","items":{"$ref":"#/components/schemas/GlobalRecordContributor"}},"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}},"required":["externalId","workType","primaryTitle"],"additionalProperties":false},"WorkTypes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"WorkTypes","description":"The classification type of an entertainment work. `Movie` is a standalone feature-length film. `MovieEdit` is a variation of a Movie. `Series` is a TV or streaming series. `Season` is a season within a Series. `Episode` is a single episode within a Season. `EpisodeEdit` is a variation of an Episode. `Compilation` is an editorially curated collection of existing records.","type":"string","enum":["Movie","MovieEdit","Series","Season","Episode","EpisodeEdit","Compilation"]},"GlobalImage":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IGlobalImage","description":"An image asset associated with a global metadata record. Contains a provider-assigned key, the image URL or identifier as value, optional dimension metadata (width, height), content rating scores (violence, sexuality), locale, image type, and a flag indicating whether this is an official image from the provider.","type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"imageType":{"type":"string"},"height":{"type":"integer"},"width":{"type":"integer"},"tags":{"type":"array","items":{"type":"string"}},"violence":{"type":"integer"},"sexuality":{"type":"integer"},"official":{"type":"boolean"},"locale":{"type":"string"}},"required":["key","value"],"additionalProperties":false},"GlobalRecordContributor":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IGlobalRecordContributor","description":"A contributor credit embedded within a global metadata record. Represents a person's involvement in a work (e.g. actor, director), identified by a provider-assigned key and optionally by contributor ID, Origin Nexus ID, or IMDb ID. Includes role (job), character names, and billing order.","type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"},"id":{"type":"string"},"originNexusId":{"type":"string"},"imdbId":{"type":"string"},"job":{"type":"string"},"characters":{"type":"array","items":{"type":"string"}},"billingOrder":{"type":"integer"}},"required":["key","name","job"],"additionalProperties":false}}}}
```

## The GlobalMetadataGetGracenoteResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"GlobalMetadataGetGracenoteResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IGlobalMetadataGetGracenoteResponse","description":"JSON:API response wrapper for retrieving a single global record from the caller's tenant's own licensed Gracenote cache by its TMSId. The `data.attributes` object contains IGlobalGracenoteRecord fields (shared base schema only).","type":"object","properties":{"data":{"type":"object","properties":{"id":{"description":"Internal Origin Studio resource ID for this global metadata record.","type":"string"},"type":{"description":"JSON:API resource type for global metadata records.","type":"string"},"attributes":{"$ref":"#/components/schemas/GlobalGracenoteRecord"}},"required":["id","type","attributes"],"additionalProperties":false},"links":{"description":"Hypermedia links for the retrieved resource.","type":"object","properties":{"self":{"description":"URL of this resource.","type":"string"}},"additionalProperties":false}},"required":["data","links"],"additionalProperties":false},"GlobalGracenoteRecord":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IGlobalGracenoteRecord","description":"A global metadata record sourced from a tenant's own licensed Gracenote entitlement. Uses the shared base record fields only. Unlike Origin/IMDb/EIDR, this data is per-tenant, not shared — a lookup only ever returns the calling tenant's own cached copy. Use GET /global/gracenote/{id} with a Gracenote TMSId.","allOf":[{"$ref":"#/components/schemas/GlobalBaseRecord"}]},"GlobalBaseRecord":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IGlobalBaseRecord","description":"Base schema shared by all global metadata records ingested from external providers (currently Origin). Captures the canonical entertainment metadata fields including titles, synopses, genres, ratings, release information, identifiers, images, and contributor credits. Extended by provider-specific record types such as IGlobalOriginRecord.","type":"object","properties":{"externalId":{"type":"string"},"tenantId":{"type":"string"},"provider":{"type":"string","enum":["OriginNexus","IMDB","EIDR"]},"parentId":{"type":"string"},"status":{"type":"string","enum":["ACTIVE","DELETED"]},"workType":{"$ref":"#/components/schemas/WorkTypes"},"workStatus":{"type":"string"},"primaryTitle":{"type":"string"},"titles":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"type":{"type":"string"},"locale":{"type":"string"},"country":{"type":"string"}},"required":["key","value"],"additionalProperties":false}},"synopses":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"type":{"type":"string"},"attribution":{"type":"string"},"locale":{"type":"string"},"characterCount":{"type":"integer"}},"required":["key","value","locale"],"additionalProperties":false}},"genres":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"locale":{"type":"string"}},"required":["key","value","locale"],"additionalProperties":false}},"runLength":{"type":"integer","description":"Total run length in **seconds**. Providers that publish minutes (Origin, IMDB, Gracenote) or an ISO duration (EIDR) are converted on ingest — a 30-minute episode is 1800, not 30."},"releaseYear":{"type":"integer"},"altIdentifiers":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"type":{"type":"string"}},"required":["key","value"],"additionalProperties":false}},"alternateReleaseDates":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"locale":{"type":"string"},"country":{"type":"string"}},"required":["key","value"],"additionalProperties":false}},"countriesOfOrigin":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"additionalProperties":false}},"associatedOrganizations":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"id":{"type":"string"},"role":{"type":"string"}},"required":["key","value"],"additionalProperties":false}},"ratings":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"authority":{"type":"string"},"reason":{"type":"string"}},"required":["key","value"],"additionalProperties":false}},"releaseDate":{"type":"string","format":"date-time"},"originalLanguage":{"type":"string"},"primarySpokenLanguage":{"type":"string"},"coverImage":{"$ref":"#/components/schemas/GlobalImage"},"images":{"type":"array","items":{"$ref":"#/components/schemas/GlobalImage"}},"parentInfo":{"type":"object","properties":{"seasonNumber":{"type":"integer"},"episodeNumber":{"type":"integer"},"seasonId":{"type":"string"},"seriesId":{"type":"string"}},"additionalProperties":false},"contributors":{"type":"array","items":{"$ref":"#/components/schemas/GlobalRecordContributor"}},"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}},"required":["externalId","workType","primaryTitle"],"additionalProperties":false},"WorkTypes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"WorkTypes","description":"The classification type of an entertainment work. `Movie` is a standalone feature-length film. `MovieEdit` is a variation of a Movie. `Series` is a TV or streaming series. `Season` is a season within a Series. `Episode` is a single episode within a Season. `EpisodeEdit` is a variation of an Episode. `Compilation` is an editorially curated collection of existing records.","type":"string","enum":["Movie","MovieEdit","Series","Season","Episode","EpisodeEdit","Compilation"]},"GlobalImage":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IGlobalImage","description":"An image asset associated with a global metadata record. Contains a provider-assigned key, the image URL or identifier as value, optional dimension metadata (width, height), content rating scores (violence, sexuality), locale, image type, and a flag indicating whether this is an official image from the provider.","type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"imageType":{"type":"string"},"height":{"type":"integer"},"width":{"type":"integer"},"tags":{"type":"array","items":{"type":"string"}},"violence":{"type":"integer"},"sexuality":{"type":"integer"},"official":{"type":"boolean"},"locale":{"type":"string"}},"required":["key","value"],"additionalProperties":false},"GlobalRecordContributor":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IGlobalRecordContributor","description":"A contributor credit embedded within a global metadata record. Represents a person's involvement in a work (e.g. actor, director), identified by a provider-assigned key and optionally by contributor ID, Origin Nexus ID, or IMDb ID. Includes role (job), character names, and billing order.","type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"},"id":{"type":"string"},"originNexusId":{"type":"string"},"imdbId":{"type":"string"},"job":{"type":"string"},"characters":{"type":"array","items":{"type":"string"}},"billingOrder":{"type":"integer"}},"required":["key","name","job"],"additionalProperties":false}}}}
```

## The GlobalMetadataGetOriginResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"GlobalMetadataGetOriginResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IGlobalMetadataGetOriginResponse","description":"JSON:API response wrapper for retrieving a single global record directly from the Origin provider by its provider-assigned ID. The `data` object contains the full IGlobalOriginRecord attributes including Origin-specific fields (originRating, originMovieType, originCollectionIds).","type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"attributes":{"$ref":"#/components/schemas/GlobalOriginRecord"}},"required":["id","type","attributes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"additionalProperties":false}},"required":["data","links"],"additionalProperties":false},"GlobalOriginRecord":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IGlobalOriginRecord","description":"A global metadata record sourced from the Origin provider. Extends IGlobalBaseRecord with Origin-specific fields: a normalized popularity rating (`originRating`), a movie type classification (`originMovieType`), IDs of any collection groups the record belongs to (`originCollectionIds`), program-level subject tags (`originTags`), and structured micro-genre classifications (`originMicroGenres`).","allOf":[{"$ref":"#/components/schemas/GlobalBaseRecord"},{"type":"object","properties":{"originRating":{"type":"integer"},"originMovieType":{"type":"string"},"originCollectionIds":{"type":"array","items":{"type":"string"}},"originTags":{"type":"array","description":"Program-level subject tags sourced from the Origin `Tags` payload (short human-readable phrases, e.g. \"space travel\", \"father daughter relationship\"). Distinct from `images[].tags` which describes image content.","items":{"type":"string"}},"originMicroGenres":{"type":"array","description":"Structured micro-genre classifications sourced from the Origin `MicroGenres` payload. Each entry has a label and attribution; WikiData-attributed entries additionally carry a `sourceId` (Q-id) and `aliases`. Wikipedia-attributed entries may have neither.","items":{"type":"object","properties":{"label":{"type":"string"},"sourceId":{"type":"string"},"attribution":{"type":"string"},"aliases":{"type":"array","items":{"type":"string"}}},"required":["label","attribution"],"additionalProperties":false}}},"additionalProperties":false}]},"GlobalBaseRecord":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IGlobalBaseRecord","description":"Base schema shared by all global metadata records ingested from external providers (currently Origin). Captures the canonical entertainment metadata fields including titles, synopses, genres, ratings, release information, identifiers, images, and contributor credits. Extended by provider-specific record types such as IGlobalOriginRecord.","type":"object","properties":{"externalId":{"type":"string"},"tenantId":{"type":"string"},"provider":{"type":"string","enum":["OriginNexus","IMDB","EIDR"]},"parentId":{"type":"string"},"status":{"type":"string","enum":["ACTIVE","DELETED"]},"workType":{"$ref":"#/components/schemas/WorkTypes"},"workStatus":{"type":"string"},"primaryTitle":{"type":"string"},"titles":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"type":{"type":"string"},"locale":{"type":"string"},"country":{"type":"string"}},"required":["key","value"],"additionalProperties":false}},"synopses":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"type":{"type":"string"},"attribution":{"type":"string"},"locale":{"type":"string"},"characterCount":{"type":"integer"}},"required":["key","value","locale"],"additionalProperties":false}},"genres":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"locale":{"type":"string"}},"required":["key","value","locale"],"additionalProperties":false}},"runLength":{"type":"integer","description":"Total run length in **seconds**. Providers that publish minutes (Origin, IMDB, Gracenote) or an ISO duration (EIDR) are converted on ingest — a 30-minute episode is 1800, not 30."},"releaseYear":{"type":"integer"},"altIdentifiers":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"type":{"type":"string"}},"required":["key","value"],"additionalProperties":false}},"alternateReleaseDates":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"locale":{"type":"string"},"country":{"type":"string"}},"required":["key","value"],"additionalProperties":false}},"countriesOfOrigin":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"additionalProperties":false}},"associatedOrganizations":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"id":{"type":"string"},"role":{"type":"string"}},"required":["key","value"],"additionalProperties":false}},"ratings":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"authority":{"type":"string"},"reason":{"type":"string"}},"required":["key","value"],"additionalProperties":false}},"releaseDate":{"type":"string","format":"date-time"},"originalLanguage":{"type":"string"},"primarySpokenLanguage":{"type":"string"},"coverImage":{"$ref":"#/components/schemas/GlobalImage"},"images":{"type":"array","items":{"$ref":"#/components/schemas/GlobalImage"}},"parentInfo":{"type":"object","properties":{"seasonNumber":{"type":"integer"},"episodeNumber":{"type":"integer"},"seasonId":{"type":"string"},"seriesId":{"type":"string"}},"additionalProperties":false},"contributors":{"type":"array","items":{"$ref":"#/components/schemas/GlobalRecordContributor"}},"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}},"required":["externalId","workType","primaryTitle"],"additionalProperties":false},"WorkTypes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"WorkTypes","description":"The classification type of an entertainment work. `Movie` is a standalone feature-length film. `MovieEdit` is a variation of a Movie. `Series` is a TV or streaming series. `Season` is a season within a Series. `Episode` is a single episode within a Season. `EpisodeEdit` is a variation of an Episode. `Compilation` is an editorially curated collection of existing records.","type":"string","enum":["Movie","MovieEdit","Series","Season","Episode","EpisodeEdit","Compilation"]},"GlobalImage":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IGlobalImage","description":"An image asset associated with a global metadata record. Contains a provider-assigned key, the image URL or identifier as value, optional dimension metadata (width, height), content rating scores (violence, sexuality), locale, image type, and a flag indicating whether this is an official image from the provider.","type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"imageType":{"type":"string"},"height":{"type":"integer"},"width":{"type":"integer"},"tags":{"type":"array","items":{"type":"string"}},"violence":{"type":"integer"},"sexuality":{"type":"integer"},"official":{"type":"boolean"},"locale":{"type":"string"}},"required":["key","value"],"additionalProperties":false},"GlobalRecordContributor":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IGlobalRecordContributor","description":"A contributor credit embedded within a global metadata record. Represents a person's involvement in a work (e.g. actor, director), identified by a provider-assigned key and optionally by contributor ID, Origin Nexus ID, or IMDb ID. Includes role (job), character names, and billing order.","type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"},"id":{"type":"string"},"originNexusId":{"type":"string"},"imdbId":{"type":"string"},"job":{"type":"string"},"characters":{"type":"array","items":{"type":"string"}},"billingOrder":{"type":"integer"}},"required":["key","name","job"],"additionalProperties":false}}}}
```

## The LicensedMetadataFeedHealth object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"LicensedMetadataFeedHealth":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILicensedMetadataFeedHealth","description":"Steady-state health of one licensed-metadata feed's polling. Present once the feed has been polled at least once.","type":"object","additionalProperties":false,"required":["status"],"properties":{"status":{"type":"string","enum":["pending","ok","unauthorized","error"],"description":"Outcome of the most recent poll. 'pending' means the feed is scheduled but hasn't completed a poll yet; 'ok' succeeded; 'unauthorized' means the provider rejected the API key — rotate it via PATCH; 'error' is any other failure."},"lastPolledAt":{"type":"string","description":"ISO timestamp of the most recent poll attempt, whatever its outcome."},"lastSuccessAt":{"type":"string","description":"ISO timestamp of the most recent successful poll. A stale value here while status is not 'ok' means ingestion is currently broken."},"nextPollAt":{"type":"string","description":"Estimated ISO timestamp of the next poll — lastPolledAt plus this feed's configured interval. An estimate: the actual schedule fires on a fixed cadence, so a change to the interval only takes effect from the next tick."},"caughtUp":{"type":"boolean","description":"Whether the feed had no further pending updates as of the last successful poll."},"stalled":{"type":"boolean","description":"Present and true when the feed is overdue — the current time is well past nextPollAt, meaning the scheduler appears to have stopped firing rather than the feed being merely idle. A stalled feed's status/message reflect its last known outcome, which may look healthy; treat stalled as a distinct 'polling has silently stopped' signal. Absent when the feed is polling on schedule."},"behindBy":{"type":"integer","description":"Approximate number of update-stream positions still pending as of the last successful poll (0 when caught up)."},"message":{"type":"string","description":"Human-readable detail, present for non-ok statuses — what went wrong and what to do about it."}}}}}}
```

## The LicensedMetadataConfigAttributes object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"LicensedMetadataConfigAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILicensedMetadataConfigAttributes","description":"Per-tenant licensed metadata provider config (read-only view). Existence of the resource means the provider is enabled for this tenant; delete disables it. Shows which provider is configured and whether an API key is stored — the raw key is never returned, only a partial preview.","type":"object","additionalProperties":false,"required":["provider","apiKeyConfigured","programsPollingIntervalMinutes","taxonomyPollingInterval","seedingStatus"],"properties":{"provider":{"type":"string","enum":["gracenote"],"description":"The licensed metadata provider this config enables for the tenant."},"apiKeyConfigured":{"type":"boolean","description":"Whether an API key has been securely stored for this provider."},"apiKeyPreview":{"type":"string","description":"First 2 and last 2 characters of the stored API key (e.g. \"gc••••9a\"), for display only. Never enough to reconstruct the key. Absent until an API key has been stored at least once."},"programsPollingIntervalMinutes":{"type":"integer","enum":[15,30,45,60],"description":"How often program updates are checked for once caught up on the initial seed."},"taxonomyPollingInterval":{"type":"string","enum":["daily","weekly"],"description":"How often the provider's reference taxonomy is checked for changes."},"pollingPaused":{"type":"boolean","description":"True when the tenant has paused steady-state polling. While paused, both feeds' schedules are disabled and a steady-state drain already in flight stops at its next page, so no further provider API quota is spent on polling. An initial seed job already running is NOT stopped and will finish its crawl. Cursors, cached data and the configured cadence are all retained — resuming continues from where polling stopped rather than re-crawling. Absent means not paused."},"seedingStatus":{"type":"string","enum":["not_started","seeding","finished","failed"],"description":"Status of the initial data seed. Ongoing polling only starts once this reaches 'finished'."},"seedingError":{"type":"string","description":"Customer-safe reason the initial seed failed. Present only when seedingStatus is 'failed'."},"seedingStartedAt":{"type":"string","format":"date-time","description":"When the most recent initial seed was launched. Recorded on this resource rather than read back from the seed's background-job row, because those rows are deleted by a 7-day TTL while this timestamp has to stay visible for the life of the integration. Absent until a seed has been launched at least once."},"seedingFinishedAt":{"type":"string","format":"date-time","description":"When the most recent initial seed reached a terminal state, whether it succeeded or failed. Absent while a seed is running, and for seeds launched before this field existed."},"polling":{"type":"object","additionalProperties":false,"description":"Steady-state polling health per feed, so a tenant can tell whether ongoing ingestion is working after the initial seed finishes. A feed key is absent until that feed has been polled at least once.","properties":{"programs":{"$ref":"#/components/schemas/LicensedMetadataFeedHealth"},"taxonomy":{"$ref":"#/components/schemas/LicensedMetadataFeedHealth"}}},"sandbox":{"type":"boolean","description":"True when this config is using the Fabric sandbox API key, so its cached records are synthetic test data rather than licensed Gracenote content. Sandbox titles also carry a TMSId prefix Gracenote never issues (ZZ...), so they stay identifiable outside this response. Read-only — derived from the key, not settable."}}},"LicensedMetadataFeedHealth":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILicensedMetadataFeedHealth","description":"Steady-state health of one licensed-metadata feed's polling. Present once the feed has been polled at least once.","type":"object","additionalProperties":false,"required":["status"],"properties":{"status":{"type":"string","enum":["pending","ok","unauthorized","error"],"description":"Outcome of the most recent poll. 'pending' means the feed is scheduled but hasn't completed a poll yet; 'ok' succeeded; 'unauthorized' means the provider rejected the API key — rotate it via PATCH; 'error' is any other failure."},"lastPolledAt":{"type":"string","description":"ISO timestamp of the most recent poll attempt, whatever its outcome."},"lastSuccessAt":{"type":"string","description":"ISO timestamp of the most recent successful poll. A stale value here while status is not 'ok' means ingestion is currently broken."},"nextPollAt":{"type":"string","description":"Estimated ISO timestamp of the next poll — lastPolledAt plus this feed's configured interval. An estimate: the actual schedule fires on a fixed cadence, so a change to the interval only takes effect from the next tick."},"caughtUp":{"type":"boolean","description":"Whether the feed had no further pending updates as of the last successful poll."},"stalled":{"type":"boolean","description":"Present and true when the feed is overdue — the current time is well past nextPollAt, meaning the scheduler appears to have stopped firing rather than the feed being merely idle. A stalled feed's status/message reflect its last known outcome, which may look healthy; treat stalled as a distinct 'polling has silently stopped' signal. Absent when the feed is polling on schedule."},"behindBy":{"type":"integer","description":"Approximate number of update-stream positions still pending as of the last successful poll (0 when caught up)."},"message":{"type":"string","description":"Human-readable detail, present for non-ok statuses — what went wrong and what to do about it."}}}}}}
```

## The LicensedMetadataConfigFindManyResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"LicensedMetadataConfigFindManyResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILicensedMetadataConfigFindManyResponse","description":"The response for a licensed metadata configs find many request.","additionalProperties":false,"required":["data","links"],"type":"object","properties":{"data":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/BaseResource"},{"type":"object","properties":{"attributes":{"allOf":[{"$ref":"#/components/schemas/BaseResourceAttributes"},{"$ref":"#/components/schemas/LicensedMetadataConfigAttributes"}]},"meta":{"type":"object","description":"Non-attribute reference info. seedJobId isn't a JSON:API relationship because there's no dedicated backgroundJobs relationship endpoint here — check its status via GET /backgroundJobs/{jobId}.","properties":{"seedJobId":{"type":"string","description":"ID of the background job that ran (or is running) the initial seed, if one has been started."}},"additionalProperties":false}},"required":["attributes"],"additionalProperties":false}]}},"links":{"type":"object","required":["self"],"properties":{"self":{"type":"string"}},"additionalProperties":false}}},"BaseResource":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResource","description":"JSON:API resource identifier. All Origin Studio API resource objects include at least an `id` (unique string identifier) and a `type` (the JSON:API resource type name, e.g. records, contributors).","type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"}},"required":["id","type"],"additionalProperties":false},"BaseResourceAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResourceAttributes","description":"Common timestamps present on all resource attribute objects. `created` is the ISO 8601 date-time when the resource was first created; `updated` is the date-time of the most recent modification.","type":"object","additionalProperties":false,"required":["created","updated"],"properties":{"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}},"LicensedMetadataConfigAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILicensedMetadataConfigAttributes","description":"Per-tenant licensed metadata provider config (read-only view). Existence of the resource means the provider is enabled for this tenant; delete disables it. Shows which provider is configured and whether an API key is stored — the raw key is never returned, only a partial preview.","type":"object","additionalProperties":false,"required":["provider","apiKeyConfigured","programsPollingIntervalMinutes","taxonomyPollingInterval","seedingStatus"],"properties":{"provider":{"type":"string","enum":["gracenote"],"description":"The licensed metadata provider this config enables for the tenant."},"apiKeyConfigured":{"type":"boolean","description":"Whether an API key has been securely stored for this provider."},"apiKeyPreview":{"type":"string","description":"First 2 and last 2 characters of the stored API key (e.g. \"gc••••9a\"), for display only. Never enough to reconstruct the key. Absent until an API key has been stored at least once."},"programsPollingIntervalMinutes":{"type":"integer","enum":[15,30,45,60],"description":"How often program updates are checked for once caught up on the initial seed."},"taxonomyPollingInterval":{"type":"string","enum":["daily","weekly"],"description":"How often the provider's reference taxonomy is checked for changes."},"pollingPaused":{"type":"boolean","description":"True when the tenant has paused steady-state polling. While paused, both feeds' schedules are disabled and a steady-state drain already in flight stops at its next page, so no further provider API quota is spent on polling. An initial seed job already running is NOT stopped and will finish its crawl. Cursors, cached data and the configured cadence are all retained — resuming continues from where polling stopped rather than re-crawling. Absent means not paused."},"seedingStatus":{"type":"string","enum":["not_started","seeding","finished","failed"],"description":"Status of the initial data seed. Ongoing polling only starts once this reaches 'finished'."},"seedingError":{"type":"string","description":"Customer-safe reason the initial seed failed. Present only when seedingStatus is 'failed'."},"seedingStartedAt":{"type":"string","format":"date-time","description":"When the most recent initial seed was launched. Recorded on this resource rather than read back from the seed's background-job row, because those rows are deleted by a 7-day TTL while this timestamp has to stay visible for the life of the integration. Absent until a seed has been launched at least once."},"seedingFinishedAt":{"type":"string","format":"date-time","description":"When the most recent initial seed reached a terminal state, whether it succeeded or failed. Absent while a seed is running, and for seeds launched before this field existed."},"polling":{"type":"object","additionalProperties":false,"description":"Steady-state polling health per feed, so a tenant can tell whether ongoing ingestion is working after the initial seed finishes. A feed key is absent until that feed has been polled at least once.","properties":{"programs":{"$ref":"#/components/schemas/LicensedMetadataFeedHealth"},"taxonomy":{"$ref":"#/components/schemas/LicensedMetadataFeedHealth"}}},"sandbox":{"type":"boolean","description":"True when this config is using the Fabric sandbox API key, so its cached records are synthetic test data rather than licensed Gracenote content. Sandbox titles also carry a TMSId prefix Gracenote never issues (ZZ...), so they stay identifiable outside this response. Read-only — derived from the key, not settable."}}},"LicensedMetadataFeedHealth":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILicensedMetadataFeedHealth","description":"Steady-state health of one licensed-metadata feed's polling. Present once the feed has been polled at least once.","type":"object","additionalProperties":false,"required":["status"],"properties":{"status":{"type":"string","enum":["pending","ok","unauthorized","error"],"description":"Outcome of the most recent poll. 'pending' means the feed is scheduled but hasn't completed a poll yet; 'ok' succeeded; 'unauthorized' means the provider rejected the API key — rotate it via PATCH; 'error' is any other failure."},"lastPolledAt":{"type":"string","description":"ISO timestamp of the most recent poll attempt, whatever its outcome."},"lastSuccessAt":{"type":"string","description":"ISO timestamp of the most recent successful poll. A stale value here while status is not 'ok' means ingestion is currently broken."},"nextPollAt":{"type":"string","description":"Estimated ISO timestamp of the next poll — lastPolledAt plus this feed's configured interval. An estimate: the actual schedule fires on a fixed cadence, so a change to the interval only takes effect from the next tick."},"caughtUp":{"type":"boolean","description":"Whether the feed had no further pending updates as of the last successful poll."},"stalled":{"type":"boolean","description":"Present and true when the feed is overdue — the current time is well past nextPollAt, meaning the scheduler appears to have stopped firing rather than the feed being merely idle. A stalled feed's status/message reflect its last known outcome, which may look healthy; treat stalled as a distinct 'polling has silently stopped' signal. Absent when the feed is polling on schedule."},"behindBy":{"type":"integer","description":"Approximate number of update-stream positions still pending as of the last successful poll (0 when caught up)."},"message":{"type":"string","description":"Human-readable detail, present for non-ok statuses — what went wrong and what to do about it."}}}}}}
```

## The CreateLicensedMetadataConfigAttributes object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"CreateLicensedMetadataConfigAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ICreateLicensedMetadataConfigAttributes","description":"Attributes for enabling a licensed metadata provider for a tenant. The tenant's own provider API key is required — Fabric never shares a key across tenants.","type":"object","additionalProperties":false,"required":["provider","programsPollingIntervalMinutes","taxonomyPollingInterval"],"properties":{"provider":{"type":"string","enum":["gracenote"],"description":"The licensed metadata provider to enable."},"apiKey":{"type":"string","description":"Write-only. The tenant's own provider API key. Stored securely (per-tenant secret) and never returned in responses. Required unless apiKeyArn is provided."},"apiKeyArn":{"type":"string","description":"Reference to a previously stored API key. Use this instead of apiKey if the key is already registered."},"programsPollingIntervalMinutes":{"type":"integer","enum":[15,30,45,60],"description":"How often to check for new program updates once caught up on the initial seed. This calls the provider's API using the tenant's own entitlement, so the tenant chooses the tradeoff between freshness and their own API quota usage — there is no default."},"taxonomyPollingInterval":{"type":"string","enum":["daily","weekly"],"description":"How often to check for changes to the provider's reference taxonomy (a small, rarely-changing dataset). Also drawn from the tenant's own API quota — there is no default."}}}}}}
```

## The CreateLicensedMetadataConfigRequest object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"CreateLicensedMetadataConfigRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ICreateLicensedMetadataConfigRequest","description":"The request to enable a licensed metadata provider for a tenant. A tenant may only have one config per provider.","type":"object","additionalProperties":false,"required":["data"],"properties":{"meta":{"$ref":"#/components/schemas/WriteRequestMeta"},"data":{"type":"object","additionalProperties":false,"required":["type","attributes"],"properties":{"type":{"type":"string","enum":["licensedMetadataConfigs"]},"attributes":{"$ref":"#/components/schemas/CreateLicensedMetadataConfigAttributes"}}}}},"WriteRequestMeta":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IWriteRequestMeta","description":"Optional audit metadata for a write request. `audit.source` is the issuing surface/channel (e.g. studio-web, mcp, api, system); `audit.reason` is a free-text justification. Both are optional and length-capped.","type":"object","additionalProperties":false,"properties":{"audit":{"type":"object","additionalProperties":false,"properties":{"source":{"type":"string","maxLength":64},"reason":{"type":"string","maxLength":256}}}}},"CreateLicensedMetadataConfigAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ICreateLicensedMetadataConfigAttributes","description":"Attributes for enabling a licensed metadata provider for a tenant. The tenant's own provider API key is required — Fabric never shares a key across tenants.","type":"object","additionalProperties":false,"required":["provider","programsPollingIntervalMinutes","taxonomyPollingInterval"],"properties":{"provider":{"type":"string","enum":["gracenote"],"description":"The licensed metadata provider to enable."},"apiKey":{"type":"string","description":"Write-only. The tenant's own provider API key. Stored securely (per-tenant secret) and never returned in responses. Required unless apiKeyArn is provided."},"apiKeyArn":{"type":"string","description":"Reference to a previously stored API key. Use this instead of apiKey if the key is already registered."},"programsPollingIntervalMinutes":{"type":"integer","enum":[15,30,45,60],"description":"How often to check for new program updates once caught up on the initial seed. This calls the provider's API using the tenant's own entitlement, so the tenant chooses the tradeoff between freshness and their own API quota usage — there is no default."},"taxonomyPollingInterval":{"type":"string","enum":["daily","weekly"],"description":"How often to check for changes to the provider's reference taxonomy (a small, rarely-changing dataset). Also drawn from the tenant's own API quota — there is no default."}}}}}}
```

## The LicensedMetadataConfigCreateOneResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"LicensedMetadataConfigCreateOneResponse":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","title":"ILicensedMetadataConfigCreateOneResponse","description":"Response after enabling a licensed metadata provider for a tenant. Contains the new resource and self link.","additionalProperties":false,"required":["data","links"],"properties":{"data":{"allOf":[{"$ref":"#/components/schemas/BaseResource"},{"type":"object","properties":{"attributes":{"allOf":[{"$ref":"#/components/schemas/BaseResourceAttributes"},{"$ref":"#/components/schemas/LicensedMetadataConfigAttributes"}]},"meta":{"type":"object","description":"Non-attribute reference info. seedJobId isn't a JSON:API relationship because there's no dedicated backgroundJobs relationship endpoint here — check its status via GET /backgroundJobs/{jobId}.","properties":{"seedJobId":{"type":"string","description":"ID of the background job that ran (or is running) the initial seed, if one has been started."}},"additionalProperties":false}},"required":["attributes"],"additionalProperties":false}]},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}}},"BaseResource":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResource","description":"JSON:API resource identifier. All Origin Studio API resource objects include at least an `id` (unique string identifier) and a `type` (the JSON:API resource type name, e.g. records, contributors).","type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"}},"required":["id","type"],"additionalProperties":false},"BaseResourceAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResourceAttributes","description":"Common timestamps present on all resource attribute objects. `created` is the ISO 8601 date-time when the resource was first created; `updated` is the date-time of the most recent modification.","type":"object","additionalProperties":false,"required":["created","updated"],"properties":{"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}},"LicensedMetadataConfigAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILicensedMetadataConfigAttributes","description":"Per-tenant licensed metadata provider config (read-only view). Existence of the resource means the provider is enabled for this tenant; delete disables it. Shows which provider is configured and whether an API key is stored — the raw key is never returned, only a partial preview.","type":"object","additionalProperties":false,"required":["provider","apiKeyConfigured","programsPollingIntervalMinutes","taxonomyPollingInterval","seedingStatus"],"properties":{"provider":{"type":"string","enum":["gracenote"],"description":"The licensed metadata provider this config enables for the tenant."},"apiKeyConfigured":{"type":"boolean","description":"Whether an API key has been securely stored for this provider."},"apiKeyPreview":{"type":"string","description":"First 2 and last 2 characters of the stored API key (e.g. \"gc••••9a\"), for display only. Never enough to reconstruct the key. Absent until an API key has been stored at least once."},"programsPollingIntervalMinutes":{"type":"integer","enum":[15,30,45,60],"description":"How often program updates are checked for once caught up on the initial seed."},"taxonomyPollingInterval":{"type":"string","enum":["daily","weekly"],"description":"How often the provider's reference taxonomy is checked for changes."},"pollingPaused":{"type":"boolean","description":"True when the tenant has paused steady-state polling. While paused, both feeds' schedules are disabled and a steady-state drain already in flight stops at its next page, so no further provider API quota is spent on polling. An initial seed job already running is NOT stopped and will finish its crawl. Cursors, cached data and the configured cadence are all retained — resuming continues from where polling stopped rather than re-crawling. Absent means not paused."},"seedingStatus":{"type":"string","enum":["not_started","seeding","finished","failed"],"description":"Status of the initial data seed. Ongoing polling only starts once this reaches 'finished'."},"seedingError":{"type":"string","description":"Customer-safe reason the initial seed failed. Present only when seedingStatus is 'failed'."},"seedingStartedAt":{"type":"string","format":"date-time","description":"When the most recent initial seed was launched. Recorded on this resource rather than read back from the seed's background-job row, because those rows are deleted by a 7-day TTL while this timestamp has to stay visible for the life of the integration. Absent until a seed has been launched at least once."},"seedingFinishedAt":{"type":"string","format":"date-time","description":"When the most recent initial seed reached a terminal state, whether it succeeded or failed. Absent while a seed is running, and for seeds launched before this field existed."},"polling":{"type":"object","additionalProperties":false,"description":"Steady-state polling health per feed, so a tenant can tell whether ongoing ingestion is working after the initial seed finishes. A feed key is absent until that feed has been polled at least once.","properties":{"programs":{"$ref":"#/components/schemas/LicensedMetadataFeedHealth"},"taxonomy":{"$ref":"#/components/schemas/LicensedMetadataFeedHealth"}}},"sandbox":{"type":"boolean","description":"True when this config is using the Fabric sandbox API key, so its cached records are synthetic test data rather than licensed Gracenote content. Sandbox titles also carry a TMSId prefix Gracenote never issues (ZZ...), so they stay identifiable outside this response. Read-only — derived from the key, not settable."}}},"LicensedMetadataFeedHealth":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILicensedMetadataFeedHealth","description":"Steady-state health of one licensed-metadata feed's polling. Present once the feed has been polled at least once.","type":"object","additionalProperties":false,"required":["status"],"properties":{"status":{"type":"string","enum":["pending","ok","unauthorized","error"],"description":"Outcome of the most recent poll. 'pending' means the feed is scheduled but hasn't completed a poll yet; 'ok' succeeded; 'unauthorized' means the provider rejected the API key — rotate it via PATCH; 'error' is any other failure."},"lastPolledAt":{"type":"string","description":"ISO timestamp of the most recent poll attempt, whatever its outcome."},"lastSuccessAt":{"type":"string","description":"ISO timestamp of the most recent successful poll. A stale value here while status is not 'ok' means ingestion is currently broken."},"nextPollAt":{"type":"string","description":"Estimated ISO timestamp of the next poll — lastPolledAt plus this feed's configured interval. An estimate: the actual schedule fires on a fixed cadence, so a change to the interval only takes effect from the next tick."},"caughtUp":{"type":"boolean","description":"Whether the feed had no further pending updates as of the last successful poll."},"stalled":{"type":"boolean","description":"Present and true when the feed is overdue — the current time is well past nextPollAt, meaning the scheduler appears to have stopped firing rather than the feed being merely idle. A stalled feed's status/message reflect its last known outcome, which may look healthy; treat stalled as a distinct 'polling has silently stopped' signal. Absent when the feed is polling on schedule."},"behindBy":{"type":"integer","description":"Approximate number of update-stream positions still pending as of the last successful poll (0 when caught up)."},"message":{"type":"string","description":"Human-readable detail, present for non-ok statuses — what went wrong and what to do about it."}}}}}}
```

## The UpdateLicensedMetadataConfigAttributes object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"UpdateLicensedMetadataConfigAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IUpdateLicensedMetadataConfigAttributes","description":"Attributes for updating an existing licensed metadata provider config. Every attribute is optional — supply only what you want to change. The provider itself is immutable and cannot be changed here.","type":"object","additionalProperties":false,"properties":{"apiKey":{"type":"string","description":"Write-only. A new provider API key to rotate to. Stored securely (per-tenant secret, overwriting the previous value) and never returned in responses. Rotating the key does not tear down the existing cache."},"apiKeyArn":{"type":"string","description":"Reference to a previously stored API key to point at instead. Mutually exclusive with apiKey."},"programsPollingIntervalMinutes":{"type":"integer","enum":[15,30,45,60],"description":"How often to check for new program updates once caught up on the initial seed."},"taxonomyPollingInterval":{"type":"string","enum":["daily","weekly"],"description":"How often to check for changes to the provider's reference taxonomy."},"pollingPaused":{"type":"boolean","description":"Set true to pause steady-state polling, false to resume. Pausing disables both feeds' schedules and stops a steady-state drain already in flight at its next page; an initial seed job already running is not affected and will finish. Nothing is deleted — cursors, cached data and the configured cadence are retained, so resuming continues from where polling stopped. Changing the cadence while paused keeps it paused."}}}}}}
```

## The UpdateLicensedMetadataConfigRequest object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"UpdateLicensedMetadataConfigRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IUpdateLicensedMetadataConfigRequest","description":"The request to update an existing licensed metadata provider config (e.g. rotate the API key). The config is identified by the path parameter; the body carries only the attributes to change.","type":"object","additionalProperties":false,"required":["data"],"properties":{"meta":{"$ref":"#/components/schemas/WriteRequestMeta"},"data":{"type":"object","additionalProperties":false,"required":["type","attributes"],"properties":{"type":{"type":"string","enum":["licensedMetadataConfigs"]},"attributes":{"$ref":"#/components/schemas/UpdateLicensedMetadataConfigAttributes"}}}}},"WriteRequestMeta":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IWriteRequestMeta","description":"Optional audit metadata for a write request. `audit.source` is the issuing surface/channel (e.g. studio-web, mcp, api, system); `audit.reason` is a free-text justification. Both are optional and length-capped.","type":"object","additionalProperties":false,"properties":{"audit":{"type":"object","additionalProperties":false,"properties":{"source":{"type":"string","maxLength":64},"reason":{"type":"string","maxLength":256}}}}},"UpdateLicensedMetadataConfigAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IUpdateLicensedMetadataConfigAttributes","description":"Attributes for updating an existing licensed metadata provider config. Every attribute is optional — supply only what you want to change. The provider itself is immutable and cannot be changed here.","type":"object","additionalProperties":false,"properties":{"apiKey":{"type":"string","description":"Write-only. A new provider API key to rotate to. Stored securely (per-tenant secret, overwriting the previous value) and never returned in responses. Rotating the key does not tear down the existing cache."},"apiKeyArn":{"type":"string","description":"Reference to a previously stored API key to point at instead. Mutually exclusive with apiKey."},"programsPollingIntervalMinutes":{"type":"integer","enum":[15,30,45,60],"description":"How often to check for new program updates once caught up on the initial seed."},"taxonomyPollingInterval":{"type":"string","enum":["daily","weekly"],"description":"How often to check for changes to the provider's reference taxonomy."},"pollingPaused":{"type":"boolean","description":"Set true to pause steady-state polling, false to resume. Pausing disables both feeds' schedules and stops a steady-state drain already in flight at its next page; an initial seed job already running is not affected and will finish. Nothing is deleted — cursors, cached data and the configured cadence are retained, so resuming continues from where polling stopped. Changing the cadence while paused keeps it paused."}}}}}}
```

## The MediaStorageFindOneResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"MediaStorageFindOneResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IMediaStorageFindOneResponse","description":"Returns the media storage information for a tenant","type":"object","additionalProperties":false,"required":["data","links"],"properties":{"data":{"type":"object","required":["id","type","attributes"],"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["mediaStorage"]},"attributes":{"type":"object","additionalProperties":false,"required":["committedBytes","limitBytes"],"properties":{"committedBytes":{"type":"integer","description":"The number of bytes currently committed/used by the tenant"},"limitBytes":{"type":"integer","description":"The maximum number of bytes allowed for the tenant"},"availableBytes":{"type":"integer","description":"The number of bytes available for the tenant (limitBytes - committedBytes)"},"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}}}},"links":{"$ref":"#/components/schemas/LinksSelf"}}},"LinksSelf":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILinksSelf","description":"A JSON:API links object with an absolute or relative 'self' link","type":"object","required":["self"],"properties":{"self":{"type":"string"}},"additionalProperties":false}}}}
```

## The MediaAttributeMediaType object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"MediaAttributeMediaType":{"$id":"media_attribute_media_type","$schema":"http://json-schema.org/draft-07/schema#","title":"IMediaAttributeMediaType","description":"High-level media category. `image` is a raster image (JPEG, PNG, etc.). `file` is a document or other non-image file (PDF, Office document, CSV). `archive` is a compressed collection of files.","type":"string","enum":["image","file","archive"]}}}}
```

## The MediaAttributeMimeType object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"MediaAttributeMimeType":{"$id":"media_attribute_mime_type","$schema":"http://json-schema.org/draft-07/schema#","title":"IMediaAttributeMimeType","description":"MIME type of the uploaded file. Only types in this enum are accepted by the platform. Supported formats include common image formats (JPEG, PNG, GIF, WebP, TIFF, AVIF, PSD), PDF, illustration and design formats (AI, INDD), and Office/spreadsheet documents.","type":"string","enum":["image/jpeg","image/png","image/vnd.adobe.photoshop","image/gif","image/avif","image/webp","image/tiff","application/pdf","text/csv","application/illustrator","application/x-indesign","application/msword","application/vnd.openxmlformats-officedocument.wordprocessingml.document","application/vnd.ms-excel","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"]}}}}
```

## The MediaAttributeImageType object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"MediaAttributeImageType":{"$id":"media_attribute_image_type","$schema":"http://json-schema.org/draft-07/schema#","title":"IMediaAttributeImageType","description":"Editorial classification for an image asset associated with a record. Used to distinguish between general photos, talent portraits, theatrical marketing posters, and tile/thumbnail formats.","type":"string","enum":["Photo","Portrait","Poster","Theatrical Poster","Tile"]}}}}
```

## The MediaAttributeSource object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"MediaAttributeSource":{"$id":"media_attribute_source","$schema":"http://json-schema.org/draft-07/schema#","title":"IMediaAttributeSource","description":"Origin of a media file. `UserUpload` means the file was uploaded directly by a tenant user. `OriginImport` means the file was imported from the Origin metadata provider during a data sync.","type":"string","enum":["UserUpload","OriginImport"]}}}}
```

## The MediaAttributes object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"MediaAttributes":{"$id":"media_attributes","$schema":"http://json-schema.org/draft-07/schema#","title":"IMediaAttributes","description":"Attributes of a media file attached to a record. Covers file identity (`fileName`, `originalFileName`, `fileExtension`, `fileSize`, `fileUrl`), content classification (`mediaType`, `mimeType`), image-specific metadata (`imageType`, `imageWidth`, `imageHeight`), and tags for organization. `source` distinguishes user-uploaded files from those imported from Origin.","type":"object","required":["mimeType","fileName","originalFileName"],"additionalProperties":false,"properties":{"mediaType":{"$ref":"#/components/schemas/MediaAttributeMediaType"},"mimeType":{"$ref":"#/components/schemas/MediaAttributeMimeType"},"originalFileName":{"type":"string","minLength":1},"fileName":{"type":"string","minLength":1},"fileExtension":{"type":"string","minLength":1},"fileSize":{"type":"number","minimum":0},"fileUrl":{"type":"string"},"key":{"type":"string"},"languages":{"type":"array","items":{"type":"string"}},"tags":{"type":"array","items":{"type":"string"}},"imageType":{"$ref":"#/components/schemas/MediaAttributeImageType"},"imageWidth":{"type":"number","minimum":0},"imageHeight":{"type":"number","minimum":0},"source":{"$ref":"#/components/schemas/MediaAttributeSource"}}},"MediaAttributeMediaType":{"$id":"media_attribute_media_type","$schema":"http://json-schema.org/draft-07/schema#","title":"IMediaAttributeMediaType","description":"High-level media category. `image` is a raster image (JPEG, PNG, etc.). `file` is a document or other non-image file (PDF, Office document, CSV). `archive` is a compressed collection of files.","type":"string","enum":["image","file","archive"]},"MediaAttributeMimeType":{"$id":"media_attribute_mime_type","$schema":"http://json-schema.org/draft-07/schema#","title":"IMediaAttributeMimeType","description":"MIME type of the uploaded file. Only types in this enum are accepted by the platform. Supported formats include common image formats (JPEG, PNG, GIF, WebP, TIFF, AVIF, PSD), PDF, illustration and design formats (AI, INDD), and Office/spreadsheet documents.","type":"string","enum":["image/jpeg","image/png","image/vnd.adobe.photoshop","image/gif","image/avif","image/webp","image/tiff","application/pdf","text/csv","application/illustrator","application/x-indesign","application/msword","application/vnd.openxmlformats-officedocument.wordprocessingml.document","application/vnd.ms-excel","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"]},"MediaAttributeImageType":{"$id":"media_attribute_image_type","$schema":"http://json-schema.org/draft-07/schema#","title":"IMediaAttributeImageType","description":"Editorial classification for an image asset associated with a record. Used to distinguish between general photos, talent portraits, theatrical marketing posters, and tile/thumbnail formats.","type":"string","enum":["Photo","Portrait","Poster","Theatrical Poster","Tile"]},"MediaAttributeSource":{"$id":"media_attribute_source","$schema":"http://json-schema.org/draft-07/schema#","title":"IMediaAttributeSource","description":"Origin of a media file. `UserUpload` means the file was uploaded directly by a tenant user. `OriginImport` means the file was imported from the Origin metadata provider during a data sync.","type":"string","enum":["UserUpload","OriginImport"]}}}}
```

## The RecordRelationship object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"RecordRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordRelationship","description":"A relationship to a record","type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["records"]}},"required":["id","type"]},"meta":{"type":"object","properties":{"primaryTitle":{"type":"string"}}},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data"]},"LinksRelated":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILinks","description":"A JSON:API links object with an absolute or relative 'related' link","type":"object","required":["related"],"properties":{"related":{"type":"string"}},"additionalProperties":false}}}}
```

## The MediaRelationships object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"MediaRelationships":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IMediaRelationships","description":"JSON:API relationship links for a media resource. Contains relationships to both the owning tenant and the record this media file is attached to.","type":"object","properties":{"tenant":{"$ref":"#/components/schemas/TenantRelationship"},"record":{"$ref":"#/components/schemas/RecordRelationship"}},"required":["tenant","record"],"additionalProperties":false},"TenantRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantRelationship","description":"A relationship to a tenant","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tenants"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data","links"],"additionalProperties":false},"LinksRelated":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILinks","description":"A JSON:API links object with an absolute or relative 'related' link","type":"object","required":["related"],"properties":{"related":{"type":"string"}},"additionalProperties":false},"RecordRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordRelationship","description":"A relationship to a record","type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["records"]}},"required":["id","type"]},"meta":{"type":"object","properties":{"primaryTitle":{"type":"string"}}},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data"]}}}}
```

## The MediaFindManyResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"MediaFindManyResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IMediaFindManyResponse","description":"Returns the media for a given record. You have to filter by mediaType","type":"object","additionalProperties":false,"required":["data","meta","links"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","type","attributes","relationships","meta"],"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["media"]},"attributes":{"allOf":[{"$ref":"#/components/schemas/BaseResourceAttributes"},{"$ref":"#/components/schemas/MediaAttributes"}]},"relationships":{"$ref":"#/components/schemas/MediaRelationships"},"links":{"$ref":"#/components/schemas/LinksRelated"}}}},"meta":{"type":"object","required":["filters","expiresAt"],"properties":{"filters":{"type":"object","required":["mediaType"],"properties":{"mediaType":{"$ref":"#/components/schemas/MediaAttributeMediaType"},"imageType":{"$ref":"#/components/schemas/MediaAttributeImageType"}},"additionalProperties":false},"expiresAt":{"type":"string"}},"additionalProperties":false},"links":{"$ref":"#/components/schemas/LinksSelf"}}},"BaseResourceAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResourceAttributes","description":"Common timestamps present on all resource attribute objects. `created` is the ISO 8601 date-time when the resource was first created; `updated` is the date-time of the most recent modification.","type":"object","additionalProperties":false,"required":["created","updated"],"properties":{"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}},"MediaAttributes":{"$id":"media_attributes","$schema":"http://json-schema.org/draft-07/schema#","title":"IMediaAttributes","description":"Attributes of a media file attached to a record. Covers file identity (`fileName`, `originalFileName`, `fileExtension`, `fileSize`, `fileUrl`), content classification (`mediaType`, `mimeType`), image-specific metadata (`imageType`, `imageWidth`, `imageHeight`), and tags for organization. `source` distinguishes user-uploaded files from those imported from Origin.","type":"object","required":["mimeType","fileName","originalFileName"],"additionalProperties":false,"properties":{"mediaType":{"$ref":"#/components/schemas/MediaAttributeMediaType"},"mimeType":{"$ref":"#/components/schemas/MediaAttributeMimeType"},"originalFileName":{"type":"string","minLength":1},"fileName":{"type":"string","minLength":1},"fileExtension":{"type":"string","minLength":1},"fileSize":{"type":"number","minimum":0},"fileUrl":{"type":"string"},"key":{"type":"string"},"languages":{"type":"array","items":{"type":"string"}},"tags":{"type":"array","items":{"type":"string"}},"imageType":{"$ref":"#/components/schemas/MediaAttributeImageType"},"imageWidth":{"type":"number","minimum":0},"imageHeight":{"type":"number","minimum":0},"source":{"$ref":"#/components/schemas/MediaAttributeSource"}}},"MediaAttributeMediaType":{"$id":"media_attribute_media_type","$schema":"http://json-schema.org/draft-07/schema#","title":"IMediaAttributeMediaType","description":"High-level media category. `image` is a raster image (JPEG, PNG, etc.). `file` is a document or other non-image file (PDF, Office document, CSV). `archive` is a compressed collection of files.","type":"string","enum":["image","file","archive"]},"MediaAttributeMimeType":{"$id":"media_attribute_mime_type","$schema":"http://json-schema.org/draft-07/schema#","title":"IMediaAttributeMimeType","description":"MIME type of the uploaded file. Only types in this enum are accepted by the platform. Supported formats include common image formats (JPEG, PNG, GIF, WebP, TIFF, AVIF, PSD), PDF, illustration and design formats (AI, INDD), and Office/spreadsheet documents.","type":"string","enum":["image/jpeg","image/png","image/vnd.adobe.photoshop","image/gif","image/avif","image/webp","image/tiff","application/pdf","text/csv","application/illustrator","application/x-indesign","application/msword","application/vnd.openxmlformats-officedocument.wordprocessingml.document","application/vnd.ms-excel","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"]},"MediaAttributeImageType":{"$id":"media_attribute_image_type","$schema":"http://json-schema.org/draft-07/schema#","title":"IMediaAttributeImageType","description":"Editorial classification for an image asset associated with a record. Used to distinguish between general photos, talent portraits, theatrical marketing posters, and tile/thumbnail formats.","type":"string","enum":["Photo","Portrait","Poster","Theatrical Poster","Tile"]},"MediaAttributeSource":{"$id":"media_attribute_source","$schema":"http://json-schema.org/draft-07/schema#","title":"IMediaAttributeSource","description":"Origin of a media file. `UserUpload` means the file was uploaded directly by a tenant user. `OriginImport` means the file was imported from the Origin metadata provider during a data sync.","type":"string","enum":["UserUpload","OriginImport"]},"MediaRelationships":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IMediaRelationships","description":"JSON:API relationship links for a media resource. Contains relationships to both the owning tenant and the record this media file is attached to.","type":"object","properties":{"tenant":{"$ref":"#/components/schemas/TenantRelationship"},"record":{"$ref":"#/components/schemas/RecordRelationship"}},"required":["tenant","record"],"additionalProperties":false},"TenantRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantRelationship","description":"A relationship to a tenant","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tenants"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data","links"],"additionalProperties":false},"LinksRelated":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILinks","description":"A JSON:API links object with an absolute or relative 'related' link","type":"object","required":["related"],"properties":{"related":{"type":"string"}},"additionalProperties":false},"RecordRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordRelationship","description":"A relationship to a record","type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["records"]}},"required":["id","type"]},"meta":{"type":"object","properties":{"primaryTitle":{"type":"string"}}},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data"]},"LinksSelf":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILinksSelf","description":"A JSON:API links object with an absolute or relative 'self' link","type":"object","required":["self"],"properties":{"self":{"type":"string"}},"additionalProperties":false}}}}
```

## The MediaArchiveRelationships object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"MediaArchiveRelationships":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IMediaArchiveRelationships","description":"Relationships for a media archive operation. Contains the list of media resource IDs that should be included in the archive.","type":"object","properties":{"media":{"type":"object","required":["data"],"additionalProperties":false,"properties":{"data":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["type","id"],"properties":{"type":{"type":"string","enum":["media"]},"id":{"type":"string"}}}}}}},"required":["media"],"additionalProperties":false}}}}
```

## The MediaArchiveManyRequest object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"MediaArchiveManyRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IMediaArchiveManyRequest","description":"Request body for archiving multiple media files in a single operation. Specifies the media resource IDs to be archived via the `relationships.media` linkage array. Archived media are soft-deleted and no longer accessible via normal media endpoints.","type":"object","properties":{"meta":{"$ref":"#/components/schemas/WriteRequestMeta"},"data":{"type":"object","required":["type","attributes"],"additionalProperties":false,"properties":{"type":{"type":"string","enum":["archives"]},"relationships":{"$ref":"#/components/schemas/MediaArchiveRelationships"}}}},"required":["data"],"additionalProperties":false},"WriteRequestMeta":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IWriteRequestMeta","description":"Optional audit metadata for a write request. `audit.source` is the issuing surface/channel (e.g. studio-web, mcp, api, system); `audit.reason` is a free-text justification. Both are optional and length-capped.","type":"object","additionalProperties":false,"properties":{"audit":{"type":"object","additionalProperties":false,"properties":{"source":{"type":"string","maxLength":64},"reason":{"type":"string","maxLength":256}}}}},"MediaArchiveRelationships":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IMediaArchiveRelationships","description":"Relationships for a media archive operation. Contains the list of media resource IDs that should be included in the archive.","type":"object","properties":{"media":{"type":"object","required":["data"],"additionalProperties":false,"properties":{"data":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["type","id"],"properties":{"type":{"type":"string","enum":["media"]},"id":{"type":"string"}}}}}}},"required":["media"],"additionalProperties":false}}}}
```

## The MediaArchiveManyResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"MediaArchiveManyResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IMediaArchiveManyResponse","description":"The response for a media download many zip request.","type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"type":"object","required":["type","id","attributes","relationships"],"additionalProperties":false,"properties":{"type":{"type":"string","enum":["archives"]},"id":{"type":"string"},"attributes":{"type":"object","required":["url","expiresAt"],"properties":{"url":{"type":"string"},"expiresAt":{"type":"string"}},"additionalProperties":false},"relationships":{"allOf":[{"$ref":"#/components/schemas/MediaRelationships"},{"$ref":"#/components/schemas/MediaArchiveRelationships"}]}}}}},"MediaRelationships":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IMediaRelationships","description":"JSON:API relationship links for a media resource. Contains relationships to both the owning tenant and the record this media file is attached to.","type":"object","properties":{"tenant":{"$ref":"#/components/schemas/TenantRelationship"},"record":{"$ref":"#/components/schemas/RecordRelationship"}},"required":["tenant","record"],"additionalProperties":false},"TenantRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantRelationship","description":"A relationship to a tenant","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tenants"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data","links"],"additionalProperties":false},"LinksRelated":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILinks","description":"A JSON:API links object with an absolute or relative 'related' link","type":"object","required":["related"],"properties":{"related":{"type":"string"}},"additionalProperties":false},"RecordRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordRelationship","description":"A relationship to a record","type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["records"]}},"required":["id","type"]},"meta":{"type":"object","properties":{"primaryTitle":{"type":"string"}}},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data"]},"MediaArchiveRelationships":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IMediaArchiveRelationships","description":"Relationships for a media archive operation. Contains the list of media resource IDs that should be included in the archive.","type":"object","properties":{"media":{"type":"object","required":["data"],"additionalProperties":false,"properties":{"data":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["type","id"],"properties":{"type":{"type":"string","enum":["media"]},"id":{"type":"string"}}}}}}},"required":["media"],"additionalProperties":false}}}}
```

## The dataObjectMediaAdd object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"dataObjectMediaAdd":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["media"]},"attributes":{"type":"object","required":["originalFileName"],"additionalProperties":false,"properties":{"languages":{"type":"array","items":{"type":"string"}},"tags":{"type":"array","items":{"type":"string"}},"imageType":{"type":"string","enum":["Photo","Portrait","Poster","Theatrical Poster","Tile"]},"originalFileName":{"type":"string"}}}},"required":["type","attributes"],"additionalProperties":false}}}}
```

## The updateRefObjectMedia object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"updateRefObjectMedia":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["media"]}},"required":["id","type"],"additionalProperties":false}}}}
```

## The dataObjectMediaUpdate object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"dataObjectMediaUpdate":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["media"]},"attributes":{"type":"object","required":[],"additionalProperties":false,"properties":{"languages":{"type":"array","items":{"type":"string"}},"tags":{"type":"array","items":{"type":"string"}},"imageType":{"type":"string","enum":["Photo","Portrait","Poster","Theatrical Poster","Tile"]},"fileName":{"type":"string"}}}},"required":["type","attributes"],"additionalProperties":false}}}}
```

## The removeRefObjectMedia object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"removeRefObjectMedia":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["media"]}},"required":["id","type"],"additionalProperties":false}}}}
```

## The MediaAtomicOperationsRequest object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"MediaAtomicOperationsRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IMediaAtomicOperationsRequest","description":"JSON:API Atomic Operations request for managing media attached to a record. Supports `add` (register a new media file for upload), `update` (modify metadata of an existing media file), and `remove` (delete a media file) operations in a single request. Operations are applied sequentially.","type":"object","properties":{"meta":{"$ref":"#/components/schemas/WriteRequestMeta"},"atomic:operations":{"type":"array","items":{"type":"object","oneOf":[{"properties":{"op":{"const":"add"},"data":{"$ref":"#/components/schemas/dataObjectMediaAdd"}},"required":["op","data"],"additionalProperties":false},{"properties":{"op":{"const":"update"},"ref":{"$ref":"#/components/schemas/updateRefObjectMedia"},"data":{"$ref":"#/components/schemas/dataObjectMediaUpdate"}},"required":["op","data"],"additionalProperties":false},{"properties":{"op":{"const":"remove"},"ref":{"$ref":"#/components/schemas/removeRefObjectMedia"}},"required":["op","ref"],"additionalProperties":false}]}}},"required":["atomic:operations"],"additionalProperties":false,"definitions":{"dataObjectMediaAdd":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["media"]},"attributes":{"type":"object","required":["originalFileName"],"additionalProperties":false,"properties":{"languages":{"type":"array","items":{"type":"string"}},"tags":{"type":"array","items":{"type":"string"}},"imageType":{"type":"string","enum":["Photo","Portrait","Poster","Theatrical Poster","Tile"]},"originalFileName":{"type":"string"}}}},"required":["type","attributes"],"additionalProperties":false},"dataObjectMediaUpdate":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["media"]},"attributes":{"type":"object","required":[],"additionalProperties":false,"properties":{"languages":{"type":"array","items":{"type":"string"}},"tags":{"type":"array","items":{"type":"string"}},"imageType":{"type":"string","enum":["Photo","Portrait","Poster","Theatrical Poster","Tile"]},"fileName":{"type":"string"}}}},"required":["type","attributes"],"additionalProperties":false},"updateRefObjectMedia":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["media"]}},"required":["id","type"],"additionalProperties":false},"removeRefObjectMedia":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["media"]}},"required":["id","type"],"additionalProperties":false}}},"WriteRequestMeta":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IWriteRequestMeta","description":"Optional audit metadata for a write request. `audit.source` is the issuing surface/channel (e.g. studio-web, mcp, api, system); `audit.reason` is a free-text justification. Both are optional and length-capped.","type":"object","additionalProperties":false,"properties":{"audit":{"type":"object","additionalProperties":false,"properties":{"source":{"type":"string","maxLength":64},"reason":{"type":"string","maxLength":256}}}}},"dataObjectMediaAdd":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["media"]},"attributes":{"type":"object","required":["originalFileName"],"additionalProperties":false,"properties":{"languages":{"type":"array","items":{"type":"string"}},"tags":{"type":"array","items":{"type":"string"}},"imageType":{"type":"string","enum":["Photo","Portrait","Poster","Theatrical Poster","Tile"]},"originalFileName":{"type":"string"}}}},"required":["type","attributes"],"additionalProperties":false},"updateRefObjectMedia":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["media"]}},"required":["id","type"],"additionalProperties":false},"dataObjectMediaUpdate":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["media"]},"attributes":{"type":"object","required":[],"additionalProperties":false,"properties":{"languages":{"type":"array","items":{"type":"string"}},"tags":{"type":"array","items":{"type":"string"}},"imageType":{"type":"string","enum":["Photo","Portrait","Poster","Theatrical Poster","Tile"]},"fileName":{"type":"string"}}}},"required":["type","attributes"],"additionalProperties":false},"removeRefObjectMedia":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["media"]}},"required":["id","type"],"additionalProperties":false}}}}
```

## The MediaAtomicOperationsResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"MediaAtomicOperationsResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IMediaAtomicOperationsResponse","description":"Response to a media atomic operations request. Each result in `atomic:results` corresponds to one operation. For `add` operations, the result includes a pre-signed S3 upload URL (`fileUrl`) and its expiration time — the client must upload the file bytes to this URL directly before the URL expires.","type":"object","properties":{"atomic:results":{"type":"array","items":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"const":"uploads"},"id":{"type":"string"},"attributes":{"type":"object","properties":{"originalFileName":{"type":"string"},"fileUrl":{"type":"string"},"expiresAt":{"type":"string","format":"date-time"}},"required":["originalFileName","fileUrl","expiresAt"],"additionalProperties":false}},"required":["type","id","attributes"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}}},"required":["atomic:results"],"additionalProperties":true}}}}
```

## The RecordMetadataAttributes object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"RecordMetadataAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordMetadataAttributes","description":"Dynamic map of custom field values stored on a record. Each key corresponds to a field's `key` identifier, and the value can be a string, number, boolean, object, or array depending on the field's schema. This open-ended schema accommodates the tenant-configurable field system.","type":"object","patternProperties":{"^.*$":{"anyOf":[{"type":"string"},{"type":"number","nullable":true},{"type":"boolean","nullable":true},{"type":"array","items":{"type":"string"},"nullable":true},{"type":"object","minProperties":1,"patternProperties":{"^.*$":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]}},"properties":{"primaryTitle":{"type":"string"},"workType":{"$ref":"#/components/schemas/WorkTypes"},"workTypeDetail":{"type":"string"},"lifecycleStatus":{"type":"string","description":"The current lifecycle status (e.g., draft, in-review, published)"},"lifecyclePhase":{"type":"string","enum":["drafting","published"],"description":"The lifecycle phase used for authorization"},"sequenceNumber":{"type":"integer","minimum":1},"genres":{"type":"object","minProperties":1,"patternProperties":{"^.*$":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"runLength":{"type":"number"},"releaseYear":{"type":"number"},"releaseDate":{"type":"string"},"countriesOfOrigin":{"type":"array","items":{"type":"string"}},"primarySpokenLanguage":{"type":"string"},"originNexusId":{"type":"string"},"eidrId":{"type":"string"},"imdbId":{"type":"string"},"gracenoteId":{"type":"string"},"tmdbId":{"type":"string"},"wikidataId":{"type":"string"},"wikipediaId":{"type":"string"},"facebookId":{"type":"string"},"xId":{"type":"string"},"instagramId":{"type":"string"},"upstreamId":{"type":"string"}}},"WorkTypes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"WorkTypes","description":"The classification type of an entertainment work. `Movie` is a standalone feature-length film. `MovieEdit` is a variation of a Movie. `Series` is a TV or streaming series. `Season` is a season within a Series. `Episode` is a single episode within a Season. `EpisodeEdit` is a variation of an Episode. `Compilation` is an editorially curated collection of existing records.","type":"string","enum":["Movie","MovieEdit","Series","Season","Episode","EpisodeEdit","Compilation"]}}}}
```

## The SecurityTagsRelationship object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"SecurityTagsRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ISecurityTagsRelationship","description":"A relationship to one or more security tags","type":"object","properties":{"data":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["securityTags"]}}}}},"additionalProperties":false,"required":["data"]}}}}
```

## The NewRecordCreateRequest object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"NewRecordCreateRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"INewRecordCreateRequest","description":"Request body for creating a new record using the current (v2) format. Includes work type, initial metadata, optional parent relationship (for hierarchical works), and optional security tag assignments.","type":"object","properties":{"meta":{"$ref":"#/components/schemas/WriteRequestMeta"},"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["records"]},"attributes":{"$ref":"#/components/schemas/RecordMetadataAttributes","required":["workType","primaryTitle"]},"relationships":{"description":"Optional relationships to establish at creation time.","type":"object","properties":{"parent":{"description":"The parent record in the work hierarchy (e.g. a Season's parent is its Series). Never set for a standalone record — a Movie, MovieEdit, Series, Compilation, or a limited-series Episode created directly under its Series.","$ref":"#/components/schemas/RecordRelationship"},"securityTags":{"description":"Security tags (permission groups) to apply to this record at creation. If omitted, the tenant's default security tag is applied instead.","$ref":"#/components/schemas/SecurityTagsRelationship"},"compilations":{"description":"Links this record, at creation time, to one or more already-existing Compilation records as a member.","type":"array","items":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string"},"id":{"type":"string"}},"required":["type","id"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}},"compilationMembers":{"description":"Seeds this Compilation's initial members at creation time (only meaningful when `attributes.workType` is `Compilation`). `ranking` sets each member's sort order within the compilation.","type":"array","items":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string"},"id":{"type":"string"},"ranking":{"type":"number"}},"required":["type","id"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}}},"additionalProperties":false}},"required":["type","attributes"],"additionalProperties":false}},"required":["data"],"additionalProperties":false},"WriteRequestMeta":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IWriteRequestMeta","description":"Optional audit metadata for a write request. `audit.source` is the issuing surface/channel (e.g. studio-web, mcp, api, system); `audit.reason` is a free-text justification. Both are optional and length-capped.","type":"object","additionalProperties":false,"properties":{"audit":{"type":"object","additionalProperties":false,"properties":{"source":{"type":"string","maxLength":64},"reason":{"type":"string","maxLength":256}}}}},"RecordMetadataAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordMetadataAttributes","description":"Dynamic map of custom field values stored on a record. Each key corresponds to a field's `key` identifier, and the value can be a string, number, boolean, object, or array depending on the field's schema. This open-ended schema accommodates the tenant-configurable field system.","type":"object","patternProperties":{"^.*$":{"anyOf":[{"type":"string"},{"type":"number","nullable":true},{"type":"boolean","nullable":true},{"type":"array","items":{"type":"string"},"nullable":true},{"type":"object","minProperties":1,"patternProperties":{"^.*$":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]}},"properties":{"primaryTitle":{"type":"string"},"workType":{"$ref":"#/components/schemas/WorkTypes"},"workTypeDetail":{"type":"string"},"lifecycleStatus":{"type":"string","description":"The current lifecycle status (e.g., draft, in-review, published)"},"lifecyclePhase":{"type":"string","enum":["drafting","published"],"description":"The lifecycle phase used for authorization"},"sequenceNumber":{"type":"integer","minimum":1},"genres":{"type":"object","minProperties":1,"patternProperties":{"^.*$":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"runLength":{"type":"number"},"releaseYear":{"type":"number"},"releaseDate":{"type":"string"},"countriesOfOrigin":{"type":"array","items":{"type":"string"}},"primarySpokenLanguage":{"type":"string"},"originNexusId":{"type":"string"},"eidrId":{"type":"string"},"imdbId":{"type":"string"},"gracenoteId":{"type":"string"},"tmdbId":{"type":"string"},"wikidataId":{"type":"string"},"wikipediaId":{"type":"string"},"facebookId":{"type":"string"},"xId":{"type":"string"},"instagramId":{"type":"string"},"upstreamId":{"type":"string"}}},"WorkTypes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"WorkTypes","description":"The classification type of an entertainment work. `Movie` is a standalone feature-length film. `MovieEdit` is a variation of a Movie. `Series` is a TV or streaming series. `Season` is a season within a Series. `Episode` is a single episode within a Season. `EpisodeEdit` is a variation of an Episode. `Compilation` is an editorially curated collection of existing records.","type":"string","enum":["Movie","MovieEdit","Series","Season","Episode","EpisodeEdit","Compilation"]},"RecordRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordRelationship","description":"A relationship to a record","type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["records"]}},"required":["id","type"]},"meta":{"type":"object","properties":{"primaryTitle":{"type":"string"}}},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data"]},"LinksRelated":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILinks","description":"A JSON:API links object with an absolute or relative 'related' link","type":"object","required":["related"],"properties":{"related":{"type":"string"}},"additionalProperties":false},"SecurityTagsRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ISecurityTagsRelationship","description":"A relationship to one or more security tags","type":"object","properties":{"data":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["securityTags"]}}}}},"additionalProperties":false,"required":["data"]}}}}
```

## The RecordRelationships object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"RecordRelationships":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordRelationships","description":"JSON:API relationships for a record resource.","type":"object","properties":{"parent":{"description":"The parent record in the work hierarchy, if any (e.g. an Episode's parent is its Season, or a Season's parent is its Series). Absent for standalone records such as a top-level Movie or Series.","$ref":"#/components/schemas/RecordRelationship"},"compilations":{"description":"Link to the compilation records this record belongs to as a member. Fetch via GET /records/{recordId}/compilations.","type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string"}}}},"required":["links"],"additionalProperties":false},"compilationMembers":{"description":"Link to this record's own compilation members, present only when this record is itself a Compilation. Fetch via GET /records/{recordId}/compilationMembers.","type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string"}}}},"required":["links"],"additionalProperties":false},"securityTags":{"description":"The security tags (permission groups) applied to this record for access control. A record always has at least one.","$ref":"#/components/schemas/SecurityTagsRelationship"},"creditLists":{"description":"Link to the credit lists (cast/crew credits) associated with this record.","type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string"}}}},"required":["links"],"additionalProperties":false},"poster":{"description":"Link to this record's poster media asset, if one has been uploaded.","type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string"}}}},"required":["links"],"additionalProperties":false},"tenant":{"description":"The tenant that owns this record.","$ref":"#/components/schemas/TenantRelationship"},"prevRecord":{"description":"The previous sibling record under the same parent, ordered by sequenceNumber (e.g. the prior Episode in a Season). Absent if this is the first sibling or has no siblings.","$ref":"#/components/schemas/RecordRelationship"},"nextRecord":{"description":"The next sibling record under the same parent, ordered by sequenceNumber (e.g. the following Episode in a Season). Absent if this is the last sibling or has no siblings.","$ref":"#/components/schemas/RecordRelationship"}},"required":["tenant"],"additionalProperties":false},"RecordRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordRelationship","description":"A relationship to a record","type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["records"]}},"required":["id","type"]},"meta":{"type":"object","properties":{"primaryTitle":{"type":"string"}}},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data"]},"LinksRelated":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILinks","description":"A JSON:API links object with an absolute or relative 'related' link","type":"object","required":["related"],"properties":{"related":{"type":"string"}},"additionalProperties":false},"SecurityTagsRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ISecurityTagsRelationship","description":"A relationship to one or more security tags","type":"object","properties":{"data":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["securityTags"]}}}}},"additionalProperties":false,"required":["data"]},"TenantRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantRelationship","description":"A relationship to a tenant","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tenants"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data","links"],"additionalProperties":false}}}}
```

## The NewRecordMeta object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"NewRecordMeta":{"$schema":"http://json-schema.org/draft-07/schema#","title":"INewRecordMeta","description":"Metadata for new-format record responses. Contains the record's hierarchical `path` (ancestry chain from the root work type down to the current record) for breadcrumb display and navigation.","type":"object","properties":{"path":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"primaryTitle":{"type":"string"}},"required":["id"],"additionalProperties":false}},"status":{"type":"string","enum":["ACTIVE","DELETED"]},"availableLocales":{"type":"array","items":{"type":"string"}},"viewingLocale":{"type":"string","description":"The locale the section/field visibility (redactions) was evaluated for. Echoes the request's `viewingLocale` query parameter (default 'en'). This is not content selection, the response always carries all locales."},"redactions":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"path":{"type":"string"},"reason":{"type":"string","enum":["unauthorized","stale"]}}}}},"required":["path","status","availableLocales"],"additionalProperties":false}}}}
```

## The NewRecordFindOneResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"NewRecordFindOneResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"INewRecordFindOneResponse","description":"JSON:API response for fetching a single record using the current (v2) format. Contains the full record data, hierarchy path in `meta`, and a self link.","type":"object","required":["data","meta","links"],"properties":{"data":{"type":"object","allOf":[{"$ref":"#/components/schemas/BaseResource"},{"type":"object","properties":{"attributes":{"$ref":"#/components/schemas/RecordMetadataAttributes","required":["workType","primaryTitle"]},"relationships":{"$ref":"#/components/schemas/RecordRelationships","required":["tenant"],"additionalProperties":false}},"required":["attributes","relationships"],"additionalProperties":false}]},"meta":{"$ref":"#/components/schemas/NewRecordMeta"},"links":{"type":"object","properties":{"self":{"type":"string"}}}}},"BaseResource":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResource","description":"JSON:API resource identifier. All Origin Studio API resource objects include at least an `id` (unique string identifier) and a `type` (the JSON:API resource type name, e.g. records, contributors).","type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"}},"required":["id","type"],"additionalProperties":false},"RecordMetadataAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordMetadataAttributes","description":"Dynamic map of custom field values stored on a record. Each key corresponds to a field's `key` identifier, and the value can be a string, number, boolean, object, or array depending on the field's schema. This open-ended schema accommodates the tenant-configurable field system.","type":"object","patternProperties":{"^.*$":{"anyOf":[{"type":"string"},{"type":"number","nullable":true},{"type":"boolean","nullable":true},{"type":"array","items":{"type":"string"},"nullable":true},{"type":"object","minProperties":1,"patternProperties":{"^.*$":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]}},"properties":{"primaryTitle":{"type":"string"},"workType":{"$ref":"#/components/schemas/WorkTypes"},"workTypeDetail":{"type":"string"},"lifecycleStatus":{"type":"string","description":"The current lifecycle status (e.g., draft, in-review, published)"},"lifecyclePhase":{"type":"string","enum":["drafting","published"],"description":"The lifecycle phase used for authorization"},"sequenceNumber":{"type":"integer","minimum":1},"genres":{"type":"object","minProperties":1,"patternProperties":{"^.*$":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"runLength":{"type":"number"},"releaseYear":{"type":"number"},"releaseDate":{"type":"string"},"countriesOfOrigin":{"type":"array","items":{"type":"string"}},"primarySpokenLanguage":{"type":"string"},"originNexusId":{"type":"string"},"eidrId":{"type":"string"},"imdbId":{"type":"string"},"gracenoteId":{"type":"string"},"tmdbId":{"type":"string"},"wikidataId":{"type":"string"},"wikipediaId":{"type":"string"},"facebookId":{"type":"string"},"xId":{"type":"string"},"instagramId":{"type":"string"},"upstreamId":{"type":"string"}}},"WorkTypes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"WorkTypes","description":"The classification type of an entertainment work. `Movie` is a standalone feature-length film. `MovieEdit` is a variation of a Movie. `Series` is a TV or streaming series. `Season` is a season within a Series. `Episode` is a single episode within a Season. `EpisodeEdit` is a variation of an Episode. `Compilation` is an editorially curated collection of existing records.","type":"string","enum":["Movie","MovieEdit","Series","Season","Episode","EpisodeEdit","Compilation"]},"RecordRelationships":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordRelationships","description":"JSON:API relationships for a record resource.","type":"object","properties":{"parent":{"description":"The parent record in the work hierarchy, if any (e.g. an Episode's parent is its Season, or a Season's parent is its Series). Absent for standalone records such as a top-level Movie or Series.","$ref":"#/components/schemas/RecordRelationship"},"compilations":{"description":"Link to the compilation records this record belongs to as a member. Fetch via GET /records/{recordId}/compilations.","type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string"}}}},"required":["links"],"additionalProperties":false},"compilationMembers":{"description":"Link to this record's own compilation members, present only when this record is itself a Compilation. Fetch via GET /records/{recordId}/compilationMembers.","type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string"}}}},"required":["links"],"additionalProperties":false},"securityTags":{"description":"The security tags (permission groups) applied to this record for access control. A record always has at least one.","$ref":"#/components/schemas/SecurityTagsRelationship"},"creditLists":{"description":"Link to the credit lists (cast/crew credits) associated with this record.","type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string"}}}},"required":["links"],"additionalProperties":false},"poster":{"description":"Link to this record's poster media asset, if one has been uploaded.","type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string"}}}},"required":["links"],"additionalProperties":false},"tenant":{"description":"The tenant that owns this record.","$ref":"#/components/schemas/TenantRelationship"},"prevRecord":{"description":"The previous sibling record under the same parent, ordered by sequenceNumber (e.g. the prior Episode in a Season). Absent if this is the first sibling or has no siblings.","$ref":"#/components/schemas/RecordRelationship"},"nextRecord":{"description":"The next sibling record under the same parent, ordered by sequenceNumber (e.g. the following Episode in a Season). Absent if this is the last sibling or has no siblings.","$ref":"#/components/schemas/RecordRelationship"}},"required":["tenant"],"additionalProperties":false},"RecordRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordRelationship","description":"A relationship to a record","type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["records"]}},"required":["id","type"]},"meta":{"type":"object","properties":{"primaryTitle":{"type":"string"}}},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data"]},"LinksRelated":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILinks","description":"A JSON:API links object with an absolute or relative 'related' link","type":"object","required":["related"],"properties":{"related":{"type":"string"}},"additionalProperties":false},"SecurityTagsRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ISecurityTagsRelationship","description":"A relationship to one or more security tags","type":"object","properties":{"data":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["securityTags"]}}}}},"additionalProperties":false,"required":["data"]},"TenantRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantRelationship","description":"A relationship to a tenant","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tenants"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data","links"],"additionalProperties":false},"NewRecordMeta":{"$schema":"http://json-schema.org/draft-07/schema#","title":"INewRecordMeta","description":"Metadata for new-format record responses. Contains the record's hierarchical `path` (ancestry chain from the root work type down to the current record) for breadcrumb display and navigation.","type":"object","properties":{"path":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"primaryTitle":{"type":"string"}},"required":["id"],"additionalProperties":false}},"status":{"type":"string","enum":["ACTIVE","DELETED"]},"availableLocales":{"type":"array","items":{"type":"string"}},"viewingLocale":{"type":"string","description":"The locale the section/field visibility (redactions) was evaluated for. Echoes the request's `viewingLocale` query parameter (default 'en'). This is not content selection, the response always carries all locales."},"redactions":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"path":{"type":"string"},"reason":{"type":"string","enum":["unauthorized","stale"]}}}}},"required":["path","status","availableLocales"],"additionalProperties":false}}}}
```

## The NewRecordUpdateOneRequest object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"NewRecordUpdateOneRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"INewRecordUpdateOneRequest","description":"Request body for partially updating a record using the current (v2) format. Supports updating core metadata attributes and/or replacing the record's security tag relationships in a single request.","type":"object","required":["data"],"additionalProperties":false,"properties":{"meta":{"$ref":"#/components/schemas/WriteRequestMeta"},"data":{"type":"object","required":["id","type"],"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["records"]},"attributes":{"type":"object","additionalProperties":true,"minProperties":1,"patternProperties":{"^.*$":{"anyOf":[{"type":"string"},{"type":"number","nullable":true},{"type":"null"},{"type":"boolean","nullable":true},{"type":"array","items":{"type":"string"},"nullable":true},{"type":"object","minProperties":1,"patternProperties":{"^.*$":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"null"},{"type":"boolean"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]}},"properties":{"primaryTitle":{"type":"string","nullable":true},"workType":{"$ref":"#/components/schemas/WorkTypes","nullable":true},"workTypeDetail":{"type":"string","nullable":true},"lifecycleStatus":{"type":"string","description":"The current lifecycle status (e.g., draft, in-review, published)","nullable":true},"sequenceNumber":{"type":"integer","nullable":true,"minimum":1},"genres":{"type":"object","minProperties":1,"nullable":true,"patternProperties":{"^.*$":{"oneOf":[{"type":"array","nullable":true,"items":{"type":"string"}},{"type":"null"}]}},"additionalProperties":false},"runLength":{"type":"number","nullable":true},"releaseYear":{"type":"number","nullable":true},"releaseDate":{"type":"string","nullable":true},"countriesOfOrigin":{"type":"array","items":{"type":"string"},"nullable":true},"primarySpokenLanguage":{"type":"string","nullable":true},"originNexusId":{"type":"string","nullable":true},"eidrId":{"type":"string","nullable":true},"imdbId":{"type":"string","nullable":true},"gracenoteId":{"type":"string","nullable":true},"tmdbId":{"type":"string","nullable":true},"wikidataId":{"type":"string","nullable":true},"wikipediaId":{"type":"string","nullable":true},"facebookId":{"type":"string","nullable":true},"xId":{"type":"string","nullable":true},"instagramId":{"type":"string","nullable":true}}},"relationships":{"description":"Relationships to replace on the record.","type":"object","additionalProperties":false,"properties":{"securityTags":{"description":"Fully replaces the record's current set of security tags with this list (unlike POST .../relationships/securityTags, which only appends). At least one tag must remain.","$ref":"#/components/schemas/SecurityTagsRelationship"}}}}}}},"WriteRequestMeta":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IWriteRequestMeta","description":"Optional audit metadata for a write request. `audit.source` is the issuing surface/channel (e.g. studio-web, mcp, api, system); `audit.reason` is a free-text justification. Both are optional and length-capped.","type":"object","additionalProperties":false,"properties":{"audit":{"type":"object","additionalProperties":false,"properties":{"source":{"type":"string","maxLength":64},"reason":{"type":"string","maxLength":256}}}}},"WorkTypes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"WorkTypes","description":"The classification type of an entertainment work. `Movie` is a standalone feature-length film. `MovieEdit` is a variation of a Movie. `Series` is a TV or streaming series. `Season` is a season within a Series. `Episode` is a single episode within a Season. `EpisodeEdit` is a variation of an Episode. `Compilation` is an editorially curated collection of existing records.","type":"string","enum":["Movie","MovieEdit","Series","Season","Episode","EpisodeEdit","Compilation"]},"SecurityTagsRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ISecurityTagsRelationship","description":"A relationship to one or more security tags","type":"object","properties":{"data":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["securityTags"]}}}}},"additionalProperties":false,"required":["data"]}}}}
```

## The ITenantLibrarySearchOperator object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"ITenantLibrarySearchOperator":{"type":"string","description":"The operator to use for a search condition. eq — exact match. ne — exact exclusion; a record with NO value for the field satisfies ne (Salesforce SOQL-style: 'not equal' includes 'not set'), not the stricter SQL null-handling reading. contains — substring/token match on analyzed text fields (e.g. tenant custom text fields); on keyword-mapped fields (e.g. the genres field, or path) it degenerates to an exact match, not substring — there is no way to discover a field's underlying mapping from this API, so prefer eq/starts_with on fields you know are keyword-like. not_contains — negation of contains, with the same per-field keyword-vs-text caveat, and the same 'no value satisfies the negation' semantics as ne. starts_with — prefix match; not supported on numeric fields or on analyzed text fields without keyword search enabled. lt/lte/gt/gte — numeric or date range comparisons. exists — field has any non-null value. not_exists — field is absent or null; the strict/only correct way to test absence (ne does NOT distinguish absence from 'anything else' — both are satisfied).","enum":["eq","ne","contains","not_contains","starts_with","lt","lte","gt","gte","exists","not_exists"]}}}}
```

## The ITenantLibrarySearchCondition object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"ITenantLibrarySearchCondition":{"type":"object","properties":{"field":{"description":"A system-owned field name or a tenant custom field key. Notable fields: `genres` — matched against the request's `filter.locale` (or 'en' if omitted), the same way a localized tenant custom field is. `parentId` — matches only the immediate parent (one hierarchy level); to match an entire subtree at any depth (e.g. every Season and Episode under a Series), use `path` with operator `starts_with` and the ancestor's own recordId as the value instead — `path` is the full ancestor chain including the record's own ID, joined with '|'. Any field name not in the enum below is treated as a tenant custom field key — fetch valid keys via `GET /fields`.","oneOf":[{"type":"string","enum":["workType","workTypeDetail","primaryTitle","originNexusId","upstreamId","genres","releaseYear","sequenceNumber","created","updated","deletedAt","tenantId","recordId","status","lifecycleStatus","lifecyclePhase","parentId","path","securityTagIds","dataDeliveryPackages","eidrId","imdbId","gracenoteId","tmdbId","wikidataId","wikipediaId","facebookId","xId","instagramId"]},{"type":"string","pattern":"^[a-z][a-zA-Z0-9_-]{2,49}$","description":"Tenant custom field key"}]},"operator":{"$ref":"#/components/schemas/ITenantLibrarySearchOperator"},"value":{"description":"The value to search for. An array value with operator eq means 'matches any of these' (an OR/IN check on a single field), not 'equals this exact array'. Omit entirely for exists/not_exists.","oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"array","items":{"type":"string"}}]}},"required":["field","operator"],"additionalProperties":false},"ITenantLibrarySearchOperator":{"type":"string","description":"The operator to use for a search condition. eq — exact match. ne — exact exclusion; a record with NO value for the field satisfies ne (Salesforce SOQL-style: 'not equal' includes 'not set'), not the stricter SQL null-handling reading. contains — substring/token match on analyzed text fields (e.g. tenant custom text fields); on keyword-mapped fields (e.g. the genres field, or path) it degenerates to an exact match, not substring — there is no way to discover a field's underlying mapping from this API, so prefer eq/starts_with on fields you know are keyword-like. not_contains — negation of contains, with the same per-field keyword-vs-text caveat, and the same 'no value satisfies the negation' semantics as ne. starts_with — prefix match; not supported on numeric fields or on analyzed text fields without keyword search enabled. lt/lte/gt/gte — numeric or date range comparisons. exists — field has any non-null value. not_exists — field is absent or null; the strict/only correct way to test absence (ne does NOT distinguish absence from 'anything else' — both are satisfied).","enum":["eq","ne","contains","not_contains","starts_with","lt","lte","gt","gte","exists","not_exists"]}}}}
```

## The ITenantLibrarySearchQueryGroup object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"ITenantLibrarySearchQueryGroup":{"type":"object","properties":{"operator":{"type":"string","description":"How this node's own conditions and groups combine: AND — all must match; OR — at least one must match; NOT — negates the COMBINED result of all of this node's own conditions/groups (which are ANDed together first) — it does not distinguish or independently negate each one. To negate a single condition on its own, put it alone in its own NOT group rather than mixing it with siblings.","enum":["AND","OR","NOT"]},"conditions":{"type":"array","description":"Leaf filters evaluated at this node, combined per this node's own operator.","items":{"$ref":"#/components/schemas/ITenantLibrarySearchCondition"}},"groups":{"type":"array","description":"Nested where-nodes for arbitrary AND/OR/NOT composition, combined with this node's own conditions per this node's operator.","items":{"$ref":"#/components/schemas/ITenantLibrarySearchQueryGroup"}}},"required":["operator"],"anyOf":[{"required":["conditions"]},{"required":["groups"]}],"additionalProperties":false},"ITenantLibrarySearchCondition":{"type":"object","properties":{"field":{"description":"A system-owned field name or a tenant custom field key. Notable fields: `genres` — matched against the request's `filter.locale` (or 'en' if omitted), the same way a localized tenant custom field is. `parentId` — matches only the immediate parent (one hierarchy level); to match an entire subtree at any depth (e.g. every Season and Episode under a Series), use `path` with operator `starts_with` and the ancestor's own recordId as the value instead — `path` is the full ancestor chain including the record's own ID, joined with '|'. Any field name not in the enum below is treated as a tenant custom field key — fetch valid keys via `GET /fields`.","oneOf":[{"type":"string","enum":["workType","workTypeDetail","primaryTitle","originNexusId","upstreamId","genres","releaseYear","sequenceNumber","created","updated","deletedAt","tenantId","recordId","status","lifecycleStatus","lifecyclePhase","parentId","path","securityTagIds","dataDeliveryPackages","eidrId","imdbId","gracenoteId","tmdbId","wikidataId","wikipediaId","facebookId","xId","instagramId"]},{"type":"string","pattern":"^[a-z][a-zA-Z0-9_-]{2,49}$","description":"Tenant custom field key"}]},"operator":{"$ref":"#/components/schemas/ITenantLibrarySearchOperator"},"value":{"description":"The value to search for. An array value with operator eq means 'matches any of these' (an OR/IN check on a single field), not 'equals this exact array'. Omit entirely for exists/not_exists.","oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"array","items":{"type":"string"}}]}},"required":["field","operator"],"additionalProperties":false},"ITenantLibrarySearchOperator":{"type":"string","description":"The operator to use for a search condition. eq — exact match. ne — exact exclusion; a record with NO value for the field satisfies ne (Salesforce SOQL-style: 'not equal' includes 'not set'), not the stricter SQL null-handling reading. contains — substring/token match on analyzed text fields (e.g. tenant custom text fields); on keyword-mapped fields (e.g. the genres field, or path) it degenerates to an exact match, not substring — there is no way to discover a field's underlying mapping from this API, so prefer eq/starts_with on fields you know are keyword-like. not_contains — negation of contains, with the same per-field keyword-vs-text caveat, and the same 'no value satisfies the negation' semantics as ne. starts_with — prefix match; not supported on numeric fields or on analyzed text fields without keyword search enabled. lt/lte/gt/gte — numeric or date range comparisons. exists — field has any non-null value. not_exists — field is absent or null; the strict/only correct way to test absence (ne does NOT distinguish absence from 'anything else' — both are satisfied).","enum":["eq","ne","contains","not_contains","starts_with","lt","lte","gt","gte","exists","not_exists"]}}}}
```

## The TenantLibrarySearchRequest object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"TenantLibrarySearchRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantLibrarySearchRequest","type":"object","description":"The request body for a search and filter request to the tenant library. `data.attributes.group` is a boolean tree of filters — see ITenantLibrarySearchQueryGroup and ITenantLibrarySearchCondition for the field/operator semantics, and the `examples` below for common patterns including nested AND/OR/NOT composition, genres, and hierarchy traversal.","properties":{"meta":{"$ref":"#/components/schemas/WriteRequestMeta"},"data":{"type":"object","properties":{"type":{"type":"string","enum":["searchQueries"]},"attributes":{"type":"object","properties":{"group":{"$ref":"#/components/schemas/ITenantLibrarySearchQueryGroup"}},"required":["group"],"additionalProperties":false}},"required":["type","attributes"],"additionalProperties":false}},"required":["data"],"additionalProperties":false,"definitions":{"ITenantLibrarySearchOperator":{"type":"string","description":"The operator to use for a search condition. eq — exact match. ne — exact exclusion; a record with NO value for the field satisfies ne (Salesforce SOQL-style: 'not equal' includes 'not set'), not the stricter SQL null-handling reading. contains — substring/token match on analyzed text fields (e.g. tenant custom text fields); on keyword-mapped fields (e.g. the genres field, or path) it degenerates to an exact match, not substring — there is no way to discover a field's underlying mapping from this API, so prefer eq/starts_with on fields you know are keyword-like. not_contains — negation of contains, with the same per-field keyword-vs-text caveat, and the same 'no value satisfies the negation' semantics as ne. starts_with — prefix match; not supported on numeric fields or on analyzed text fields without keyword search enabled. lt/lte/gt/gte — numeric or date range comparisons. exists — field has any non-null value. not_exists — field is absent or null; the strict/only correct way to test absence (ne does NOT distinguish absence from 'anything else' — both are satisfied).","enum":["eq","ne","contains","not_contains","starts_with","lt","lte","gt","gte","exists","not_exists"]},"ITenantLibrarySearchCondition":{"type":"object","properties":{"field":{"description":"A system-owned field name or a tenant custom field key. Notable fields: `genres` — matched against the request's `filter.locale` (or 'en' if omitted), the same way a localized tenant custom field is. `parentId` — matches only the immediate parent (one hierarchy level); to match an entire subtree at any depth (e.g. every Season and Episode under a Series), use `path` with operator `starts_with` and the ancestor's own recordId as the value instead — `path` is the full ancestor chain including the record's own ID, joined with '|'. Any field name not in the enum below is treated as a tenant custom field key — fetch valid keys via `GET /fields`.","oneOf":[{"type":"string","enum":["workType","workTypeDetail","primaryTitle","originNexusId","upstreamId","genres","releaseYear","sequenceNumber","created","updated","deletedAt","tenantId","recordId","status","lifecycleStatus","lifecyclePhase","parentId","path","securityTagIds","dataDeliveryPackages","eidrId","imdbId","gracenoteId","tmdbId","wikidataId","wikipediaId","facebookId","xId","instagramId"]},{"type":"string","pattern":"^[a-z][a-zA-Z0-9_-]{2,49}$","description":"Tenant custom field key"}]},"operator":{"$ref":"#/components/schemas/ITenantLibrarySearchOperator"},"value":{"description":"The value to search for. An array value with operator eq means 'matches any of these' (an OR/IN check on a single field), not 'equals this exact array'. Omit entirely for exists/not_exists.","oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"array","items":{"type":"string"}}]}},"required":["field","operator"],"additionalProperties":false},"ITenantLibrarySearchQueryGroup":{"type":"object","properties":{"operator":{"type":"string","description":"How this node's own conditions and groups combine: AND — all must match; OR — at least one must match; NOT — negates the COMBINED result of all of this node's own conditions/groups (which are ANDed together first) — it does not distinguish or independently negate each one. To negate a single condition on its own, put it alone in its own NOT group rather than mixing it with siblings.","enum":["AND","OR","NOT"]},"conditions":{"type":"array","description":"Leaf filters evaluated at this node, combined per this node's own operator.","items":{"$ref":"#/components/schemas/ITenantLibrarySearchCondition"}},"groups":{"type":"array","description":"Nested where-nodes for arbitrary AND/OR/NOT composition, combined with this node's own conditions per this node's operator.","items":{"$ref":"#/components/schemas/ITenantLibrarySearchQueryGroup"}}},"required":["operator"],"anyOf":[{"required":["conditions"]},{"required":["groups"]}],"additionalProperties":false}}},"WriteRequestMeta":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IWriteRequestMeta","description":"Optional audit metadata for a write request. `audit.source` is the issuing surface/channel (e.g. studio-web, mcp, api, system); `audit.reason` is a free-text justification. Both are optional and length-capped.","type":"object","additionalProperties":false,"properties":{"audit":{"type":"object","additionalProperties":false,"properties":{"source":{"type":"string","maxLength":64},"reason":{"type":"string","maxLength":256}}}}},"ITenantLibrarySearchQueryGroup":{"type":"object","properties":{"operator":{"type":"string","description":"How this node's own conditions and groups combine: AND — all must match; OR — at least one must match; NOT — negates the COMBINED result of all of this node's own conditions/groups (which are ANDed together first) — it does not distinguish or independently negate each one. To negate a single condition on its own, put it alone in its own NOT group rather than mixing it with siblings.","enum":["AND","OR","NOT"]},"conditions":{"type":"array","description":"Leaf filters evaluated at this node, combined per this node's own operator.","items":{"$ref":"#/components/schemas/ITenantLibrarySearchCondition"}},"groups":{"type":"array","description":"Nested where-nodes for arbitrary AND/OR/NOT composition, combined with this node's own conditions per this node's operator.","items":{"$ref":"#/components/schemas/ITenantLibrarySearchQueryGroup"}}},"required":["operator"],"anyOf":[{"required":["conditions"]},{"required":["groups"]}],"additionalProperties":false},"ITenantLibrarySearchCondition":{"type":"object","properties":{"field":{"description":"A system-owned field name or a tenant custom field key. Notable fields: `genres` — matched against the request's `filter.locale` (or 'en' if omitted), the same way a localized tenant custom field is. `parentId` — matches only the immediate parent (one hierarchy level); to match an entire subtree at any depth (e.g. every Season and Episode under a Series), use `path` with operator `starts_with` and the ancestor's own recordId as the value instead — `path` is the full ancestor chain including the record's own ID, joined with '|'. Any field name not in the enum below is treated as a tenant custom field key — fetch valid keys via `GET /fields`.","oneOf":[{"type":"string","enum":["workType","workTypeDetail","primaryTitle","originNexusId","upstreamId","genres","releaseYear","sequenceNumber","created","updated","deletedAt","tenantId","recordId","status","lifecycleStatus","lifecyclePhase","parentId","path","securityTagIds","dataDeliveryPackages","eidrId","imdbId","gracenoteId","tmdbId","wikidataId","wikipediaId","facebookId","xId","instagramId"]},{"type":"string","pattern":"^[a-z][a-zA-Z0-9_-]{2,49}$","description":"Tenant custom field key"}]},"operator":{"$ref":"#/components/schemas/ITenantLibrarySearchOperator"},"value":{"description":"The value to search for. An array value with operator eq means 'matches any of these' (an OR/IN check on a single field), not 'equals this exact array'. Omit entirely for exists/not_exists.","oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"array","items":{"type":"string"}}]}},"required":["field","operator"],"additionalProperties":false},"ITenantLibrarySearchOperator":{"type":"string","description":"The operator to use for a search condition. eq — exact match. ne — exact exclusion; a record with NO value for the field satisfies ne (Salesforce SOQL-style: 'not equal' includes 'not set'), not the stricter SQL null-handling reading. contains — substring/token match on analyzed text fields (e.g. tenant custom text fields); on keyword-mapped fields (e.g. the genres field, or path) it degenerates to an exact match, not substring — there is no way to discover a field's underlying mapping from this API, so prefer eq/starts_with on fields you know are keyword-like. not_contains — negation of contains, with the same per-field keyword-vs-text caveat, and the same 'no value satisfies the negation' semantics as ne. starts_with — prefix match; not supported on numeric fields or on analyzed text fields without keyword search enabled. lt/lte/gt/gte — numeric or date range comparisons. exists — field has any non-null value. not_exists — field is absent or null; the strict/only correct way to test absence (ne does NOT distinguish absence from 'anything else' — both are satisfied).","enum":["eq","ne","contains","not_contains","starts_with","lt","lte","gt","gte","exists","not_exists"]}}}}
```

## The OpenSearchTenantLibraryCommonFields object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"OpenSearchTenantLibraryCommonFields":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IOpenSearchTenantLibraryCommonFields","description":"Common metadata fields shared across tenant library search index entries, including timestamps, work type, lifecycle state, primary title, and optional media cover image.","type":"object","properties":{"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"},"deletedAt":{"type":"string","format":"date-time"},"workType":{"type":"string"},"workTypeDetail":{"type":"string"},"lifecycleStatus":{"type":"string","description":"The current lifecycle status"},"lifecyclePhase":{"type":"string","description":"The current lifecycle phase"},"primaryTitle":{"type":"string"},"sequenceNumber":{"type":"integer"},"releaseYear":{"type":"integer"},"coverImage":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"height":{"type":"integer"},"width":{"type":"integer"}},"required":["key","value"],"additionalProperties":false}},"additionalProperties":false}}}}
```

## The RecordCommonIdentifierAttributes object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"RecordCommonIdentifierAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordCommonIdentifierAttributes","description":"Common identifier attributes for record","type":"object","properties":{"originNexusId":{"type":"string"},"eidrId":{"type":"string"},"imdbId":{"type":"string"},"gracenoteId":{"type":"string"},"tmdbId":{"type":"string"},"wikidataId":{"type":"string"},"wikipediaId":{"type":"string"},"facebookId":{"type":"string"},"xId":{"type":"string"},"instagramId":{"type":"string"},"upstreamId":{"type":"string"}},"additionalProperties":false}}}}
```

## The TenantLibraryRecordAttributes object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"TenantLibraryRecordAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantLibraryRecordAttributes","description":"Fields from tenant-library record used in the API response","type":"object","allOf":[{"$ref":"#/components/schemas/OpenSearchTenantLibraryCommonFields","required":["workType","primaryTitle","lifecycleStatus","lifecyclePhase","created","updated"]},{"$ref":"#/components/schemas/RecordCommonIdentifierAttributes"},{"type":"object","properties":{"genres":{"type":"object","patternProperties":{"^.*$":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"additionalProperties":false}]},"OpenSearchTenantLibraryCommonFields":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IOpenSearchTenantLibraryCommonFields","description":"Common metadata fields shared across tenant library search index entries, including timestamps, work type, lifecycle state, primary title, and optional media cover image.","type":"object","properties":{"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"},"deletedAt":{"type":"string","format":"date-time"},"workType":{"type":"string"},"workTypeDetail":{"type":"string"},"lifecycleStatus":{"type":"string","description":"The current lifecycle status"},"lifecyclePhase":{"type":"string","description":"The current lifecycle phase"},"primaryTitle":{"type":"string"},"sequenceNumber":{"type":"integer"},"releaseYear":{"type":"integer"},"coverImage":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"height":{"type":"integer"},"width":{"type":"integer"}},"required":["key","value"],"additionalProperties":false}},"additionalProperties":false},"RecordCommonIdentifierAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordCommonIdentifierAttributes","description":"Common identifier attributes for record","type":"object","properties":{"originNexusId":{"type":"string"},"eidrId":{"type":"string"},"imdbId":{"type":"string"},"gracenoteId":{"type":"string"},"tmdbId":{"type":"string"},"wikidataId":{"type":"string"},"wikipediaId":{"type":"string"},"facebookId":{"type":"string"},"xId":{"type":"string"},"instagramId":{"type":"string"},"upstreamId":{"type":"string"}},"additionalProperties":false}}}}
```

## The RecordMeta object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"RecordMeta":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordMeta","description":"Metadata attached to a record resource outside its core attributes. `path` represents the hierarchical ancestry of the record (e.g., Series → Season for an Episode), providing context for navigation and display.","type":"object","properties":{"path":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"primaryTitle":{"type":"string"}},"required":["id"],"additionalProperties":false}},"status":{"type":"string","enum":["ACTIVE","DELETED"]},"availableLocales":{"type":"array","items":{"type":"string"}},"tenantId":{"type":"string"},"childrenStats":{"type":"object","properties":{"count":{"type":"object","additionalProperties":{"type":"number"}}},"additionalProperties":false},"redactions":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"path":{"type":"string"},"reason":{"type":"string","enum":["unauthorized"]}}}}},"required":["path","status","availableLocales"],"additionalProperties":false}}}}
```

## The TenantLibrarySearchResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"TenantLibrarySearchResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantLibrarySearchResponse","description":"Response returned by the tenant library record search endpoint. Contains a paginated array of matching record resources, with pagination links and total count metadata.","type":"object","properties":{"data":{"type":"array","items":{"type":"object","required":["id","type","attributes","meta"],"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["records"]},"attributes":{"$ref":"#/components/schemas/TenantLibraryRecordAttributes"},"relationships":{"$ref":"#/components/schemas/RecordRelationships"},"meta":{"$ref":"#/components/schemas/RecordMeta"},"links":{"$ref":"#/components/schemas/LinksSelf"}}},"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"},"next":{"type":"string"},"prev":{"type":"string"}},"additionalProperties":false},"meta":{"type":"object","properties":{"total":{"type":"integer"},"page":{"type":"integer"},"perPage":{"type":"integer"},"unauthorizedCount":{"type":"integer"}},"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false},"TenantLibraryRecordAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantLibraryRecordAttributes","description":"Fields from tenant-library record used in the API response","type":"object","allOf":[{"$ref":"#/components/schemas/OpenSearchTenantLibraryCommonFields","required":["workType","primaryTitle","lifecycleStatus","lifecyclePhase","created","updated"]},{"$ref":"#/components/schemas/RecordCommonIdentifierAttributes"},{"type":"object","properties":{"genres":{"type":"object","patternProperties":{"^.*$":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"additionalProperties":false}]},"OpenSearchTenantLibraryCommonFields":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IOpenSearchTenantLibraryCommonFields","description":"Common metadata fields shared across tenant library search index entries, including timestamps, work type, lifecycle state, primary title, and optional media cover image.","type":"object","properties":{"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"},"deletedAt":{"type":"string","format":"date-time"},"workType":{"type":"string"},"workTypeDetail":{"type":"string"},"lifecycleStatus":{"type":"string","description":"The current lifecycle status"},"lifecyclePhase":{"type":"string","description":"The current lifecycle phase"},"primaryTitle":{"type":"string"},"sequenceNumber":{"type":"integer"},"releaseYear":{"type":"integer"},"coverImage":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"height":{"type":"integer"},"width":{"type":"integer"}},"required":["key","value"],"additionalProperties":false}},"additionalProperties":false},"RecordCommonIdentifierAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordCommonIdentifierAttributes","description":"Common identifier attributes for record","type":"object","properties":{"originNexusId":{"type":"string"},"eidrId":{"type":"string"},"imdbId":{"type":"string"},"gracenoteId":{"type":"string"},"tmdbId":{"type":"string"},"wikidataId":{"type":"string"},"wikipediaId":{"type":"string"},"facebookId":{"type":"string"},"xId":{"type":"string"},"instagramId":{"type":"string"},"upstreamId":{"type":"string"}},"additionalProperties":false},"RecordRelationships":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordRelationships","description":"JSON:API relationships for a record resource.","type":"object","properties":{"parent":{"description":"The parent record in the work hierarchy, if any (e.g. an Episode's parent is its Season, or a Season's parent is its Series). Absent for standalone records such as a top-level Movie or Series.","$ref":"#/components/schemas/RecordRelationship"},"compilations":{"description":"Link to the compilation records this record belongs to as a member. Fetch via GET /records/{recordId}/compilations.","type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string"}}}},"required":["links"],"additionalProperties":false},"compilationMembers":{"description":"Link to this record's own compilation members, present only when this record is itself a Compilation. Fetch via GET /records/{recordId}/compilationMembers.","type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string"}}}},"required":["links"],"additionalProperties":false},"securityTags":{"description":"The security tags (permission groups) applied to this record for access control. A record always has at least one.","$ref":"#/components/schemas/SecurityTagsRelationship"},"creditLists":{"description":"Link to the credit lists (cast/crew credits) associated with this record.","type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string"}}}},"required":["links"],"additionalProperties":false},"poster":{"description":"Link to this record's poster media asset, if one has been uploaded.","type":"object","properties":{"links":{"type":"object","properties":{"related":{"type":"string"}}}},"required":["links"],"additionalProperties":false},"tenant":{"description":"The tenant that owns this record.","$ref":"#/components/schemas/TenantRelationship"},"prevRecord":{"description":"The previous sibling record under the same parent, ordered by sequenceNumber (e.g. the prior Episode in a Season). Absent if this is the first sibling or has no siblings.","$ref":"#/components/schemas/RecordRelationship"},"nextRecord":{"description":"The next sibling record under the same parent, ordered by sequenceNumber (e.g. the following Episode in a Season). Absent if this is the last sibling or has no siblings.","$ref":"#/components/schemas/RecordRelationship"}},"required":["tenant"],"additionalProperties":false},"RecordRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordRelationship","description":"A relationship to a record","type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["records"]}},"required":["id","type"]},"meta":{"type":"object","properties":{"primaryTitle":{"type":"string"}}},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data"]},"LinksRelated":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILinks","description":"A JSON:API links object with an absolute or relative 'related' link","type":"object","required":["related"],"properties":{"related":{"type":"string"}},"additionalProperties":false},"SecurityTagsRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ISecurityTagsRelationship","description":"A relationship to one or more security tags","type":"object","properties":{"data":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["securityTags"]}}}}},"additionalProperties":false,"required":["data"]},"TenantRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantRelationship","description":"A relationship to a tenant","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tenants"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data","links"],"additionalProperties":false},"RecordMeta":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordMeta","description":"Metadata attached to a record resource outside its core attributes. `path` represents the hierarchical ancestry of the record (e.g., Series → Season for an Episode), providing context for navigation and display.","type":"object","properties":{"path":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"primaryTitle":{"type":"string"}},"required":["id"],"additionalProperties":false}},"status":{"type":"string","enum":["ACTIVE","DELETED"]},"availableLocales":{"type":"array","items":{"type":"string"}},"tenantId":{"type":"string"},"childrenStats":{"type":"object","properties":{"count":{"type":"object","additionalProperties":{"type":"number"}}},"additionalProperties":false},"redactions":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"path":{"type":"string"},"reason":{"type":"string","enum":["unauthorized"]}}}}},"required":["path","status","availableLocales"],"additionalProperties":false},"LinksSelf":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILinksSelf","description":"A JSON:API links object with an absolute or relative 'self' link","type":"object","required":["self"],"properties":{"self":{"type":"string"}},"additionalProperties":false}}}}
```

## The IRecordIdJobParameters object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"IRecordIdJobParameters":{"type":"object","description":"Parameters for job types that only need a target record id: deleteRecord, restoreRecord, permanentlyDeleteRecord.","properties":{"recordId":{"type":"string"}},"required":["recordId"],"additionalProperties":false}}}}
```

## The IRecordCreateRecordFromScratchJobParameters object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"IRecordCreateRecordFromScratchJobParameters":{"type":"object","properties":{"workType":{"$ref":"#/components/schemas/WorkTypes"},"primaryTitle":{"type":"string"},"releaseYear":{"type":"number"},"workTypeDetail":{"type":"string"},"parentRecordId":{"type":"string"},"securityTags":{"type":"array","items":{"type":"string"}},"editClass":{"type":"string"},"intendedTerritories":{"type":"array","items":{"type":"string"}},"seasons":{"type":"array","items":{"type":"object","properties":{"primaryTitle":{"type":"string"},"releaseYear":{"type":"number"},"workType":{"type":"string","enum":["Season"]},"securityTags":{"type":"array","items":{"type":"string"}}},"required":["primaryTitle","workType"]}},"episodes":{"type":"array","items":{"type":"object","properties":{"primaryTitle":{"type":"string"},"releaseYear":{"type":"number"},"workType":{"type":"string","enum":["Episode"]},"securityTags":{"type":"array","items":{"type":"string"}}},"required":["primaryTitle","workType"]}},"compilations":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"]}}},"required":["workType"],"additionalProperties":false},"WorkTypes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"WorkTypes","description":"The classification type of an entertainment work. `Movie` is a standalone feature-length film. `MovieEdit` is a variation of a Movie. `Series` is a TV or streaming series. `Season` is a season within a Series. `Episode` is a single episode within a Season. `EpisodeEdit` is a variation of an Episode. `Compilation` is an editorially curated collection of existing records.","type":"string","enum":["Movie","MovieEdit","Series","Season","Episode","EpisodeEdit","Compilation"]}}}}
```

## The IRecordCreateMediaFromUrlJobParameters object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"IRecordCreateMediaFromUrlJobParameters":{"type":"object","properties":{"urls":{"description":"Media source URLs to fetch and attach; supply at least one. Each must use `https` and be served by an approved media host; a URL on any other host is rejected without being fetched. Rejections are reported per URL, so the remaining entries in the job still run.","type":"array","items":{"type":"string","format":"uri"},"maxItems":100},"recordId":{"type":"string"},"imageType":{"$ref":"#/components/schemas/MediaAttributeImageType"},"locale":{"description":"Optional BCP 47 language tag (optionally region- or script-qualified, e.g. `en`, `pt-br`, `zh-Hans`) describing the language of the fetched media. Applies uniformly to every entry in `urls`. Normalized against Studio's canonical locale list when the media record is written; unrecognized values are dropped rather than defaulted.","type":"string"}},"required":["urls","recordId","imageType"],"additionalProperties":false},"MediaAttributeImageType":{"$id":"media_attribute_image_type","$schema":"http://json-schema.org/draft-07/schema#","title":"IMediaAttributeImageType","description":"Editorial classification for an image asset associated with a record. Used to distinguish between general photos, talent portraits, theatrical marketing posters, and tile/thumbnail formats.","type":"string","enum":["Photo","Portrait","Poster","Theatrical Poster","Tile"]}}}}
```

## The IRecordMigrateLifecycleStatusJobParameters object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"IRecordMigrateLifecycleStatusJobParameters":{"type":"object","properties":{"oldLifecycleStatus":{"type":"string"},"newLifecycleStatus":{"type":"string"},"workType":{"$ref":"#/components/schemas/WorkTypes"}},"required":["oldLifecycleStatus","newLifecycleStatus","workType"],"additionalProperties":false},"WorkTypes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"WorkTypes","description":"The classification type of an entertainment work. `Movie` is a standalone feature-length film. `MovieEdit` is a variation of a Movie. `Series` is a TV or streaming series. `Season` is a season within a Series. `Episode` is a single episode within a Season. `EpisodeEdit` is a variation of an Episode. `Compilation` is an editorially curated collection of existing records.","type":"string","enum":["Movie","MovieEdit","Series","Season","Episode","EpisodeEdit","Compilation"]}}}}
```

## The IImportSeriesOriginNexusJobParameters object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"IImportSeriesOriginNexusJobParameters":{"type":"object","properties":{"seriesId":{"type":"string"},"securityTags":{"type":"array","items":{"type":"string"}},"importOptions":{"type":"object","description":"Controls Origin Nexus import depth and series-level media/credits.","properties":{"seriesOnly":{"type":"boolean","description":"When true, skip seasons/episodes and import the series record only. When omitted, the full hierarchy (seasons and episodes) is imported by default."},"importCredits":{"type":"boolean","description":"When false, skip importing credits and linked contributors from Origin Nexus. When omitted, credits and contributors are imported by default."},"importImages":{"type":"boolean","description":"When false, skip importing poster/cover images. When omitted, images are imported by default."}},"additionalProperties":false}},"required":["seriesId"],"additionalProperties":false}}}}
```

## The IImportMoviesOriginNexusJobParameters object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"IImportMoviesOriginNexusJobParameters":{"type":"object","properties":{"movieId":{"type":"string"},"securityTags":{"type":"array","items":{"type":"string"}},"importOptions":{"type":"object","description":"Controls movie-level media/credits import.","properties":{"importCredits":{"type":"boolean","description":"When false, skip importing credits and linked contributors from Origin Nexus. When omitted, credits and contributors are imported by default."},"importImages":{"type":"boolean","description":"When false, skip importing poster/cover images. When omitted, images are imported by default."}},"additionalProperties":false}},"required":["movieId"],"additionalProperties":false}}}}
```

## The IRecordBulkEditJobParameters object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"IRecordBulkEditJobParameters":{"type":"object","description":"Parameters for a bulk-edit job: apply the same field edits to every record matching a selection predicate, for one locale. The state machine resolves the selection to concrete record ids server-side, then patches each record.","properties":{"locale":{"type":"string","description":"The single locale all edits target (e.g. `en`). Optional: required only when at least one edit targets a localized field. A job editing only unlocalized fields (e.g. `releaseYear`) may omit it; a localized edit without a locale fails that field."},"edits":{"type":"array","minItems":1,"description":"Field edits applied to every selected record. `overwrite` replaces the field value for the job locale (`value` required); `delete` clears it.","items":{"type":"object","properties":{"fieldKey":{"type":"string"},"action":{"type":"string","enum":["overwrite","delete"]},"value":{"description":"New value for `overwrite`; ignored for `delete`. Arbitrary JSON validated per field at write time."}},"required":["fieldKey","action"],"additionalProperties":false}},"selection":{"type":"object","description":"Resolved Studio Library selection predicate. When `searchGroup` is present (an all-in-view or hierarchy selection), every record matching it is in scope, minus `excludeRecordIds`, plus `includeRecordIds`. When `searchGroup` is absent, only `includeRecordIds` (a pure manual-tick selection) are edited.","properties":{"searchGroup":{"type":"object","description":"Boolean query tree (ITenantLibrarySearchQueryGroup). Present for all-in-view / hierarchy selections; omitted for a pure manual-tick selection. Validated by the search service when the enumeration query runs.","additionalProperties":true},"includeRecordIds":{"type":"array","items":{"type":"string"}},"excludeRecordIds":{"type":"array","items":{"type":"string"}}},"required":[],"additionalProperties":false}},"required":["edits","selection"],"additionalProperties":false}}}}
```

## The CreateRecordJobRequest object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"CreateRecordJobRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordCreateJobRequest","description":"Request body for creating a record background job. Specify the job type (e.g., `deleteRecord`) and the required parameters. The created job can be polled via `GET /record-jobs/{jobId}`.","type":"object","definitions":{"IRecordIdJobParameters":{"type":"object","description":"Parameters for job types that only need a target record id: deleteRecord, restoreRecord, permanentlyDeleteRecord.","properties":{"recordId":{"type":"string"}},"required":["recordId"],"additionalProperties":false},"IRecordCreateRecordFromScratchJobParameters":{"type":"object","properties":{"workType":{"$ref":"#/components/schemas/WorkTypes"},"primaryTitle":{"type":"string"},"releaseYear":{"type":"number"},"workTypeDetail":{"type":"string"},"parentRecordId":{"type":"string"},"securityTags":{"type":"array","items":{"type":"string"}},"editClass":{"type":"string"},"intendedTerritories":{"type":"array","items":{"type":"string"}},"seasons":{"type":"array","items":{"type":"object","properties":{"primaryTitle":{"type":"string"},"releaseYear":{"type":"number"},"workType":{"type":"string","enum":["Season"]},"securityTags":{"type":"array","items":{"type":"string"}}},"required":["primaryTitle","workType"]}},"episodes":{"type":"array","items":{"type":"object","properties":{"primaryTitle":{"type":"string"},"releaseYear":{"type":"number"},"workType":{"type":"string","enum":["Episode"]},"securityTags":{"type":"array","items":{"type":"string"}}},"required":["primaryTitle","workType"]}},"compilations":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"]}}},"required":["workType"],"additionalProperties":false},"IRecordCreateMediaFromUrlJobParameters":{"type":"object","properties":{"urls":{"description":"Media source URLs to fetch and attach; supply at least one. Each must use `https` and be served by an approved media host; a URL on any other host is rejected without being fetched. Rejections are reported per URL, so the remaining entries in the job still run.","type":"array","items":{"type":"string","format":"uri"},"maxItems":100},"recordId":{"type":"string"},"imageType":{"$ref":"#/components/schemas/MediaAttributeImageType"},"locale":{"description":"Optional BCP 47 language tag (optionally region- or script-qualified, e.g. `en`, `pt-br`, `zh-Hans`) describing the language of the fetched media. Applies uniformly to every entry in `urls`. Normalized against Studio's canonical locale list when the media record is written; unrecognized values are dropped rather than defaulted.","type":"string"}},"required":["urls","recordId","imageType"],"additionalProperties":false},"IRecordMigrateLifecycleStatusJobParameters":{"type":"object","properties":{"oldLifecycleStatus":{"type":"string"},"newLifecycleStatus":{"type":"string"},"workType":{"$ref":"#/components/schemas/WorkTypes"}},"required":["oldLifecycleStatus","newLifecycleStatus","workType"],"additionalProperties":false},"IImportSeriesOriginNexusJobParameters":{"type":"object","properties":{"seriesId":{"type":"string"},"securityTags":{"type":"array","items":{"type":"string"}},"importOptions":{"type":"object","description":"Controls Origin Nexus import depth and series-level media/credits.","properties":{"seriesOnly":{"type":"boolean","description":"When true, skip seasons/episodes and import the series record only. When omitted, the full hierarchy (seasons and episodes) is imported by default."},"importCredits":{"type":"boolean","description":"When false, skip importing credits and linked contributors from Origin Nexus. When omitted, credits and contributors are imported by default."},"importImages":{"type":"boolean","description":"When false, skip importing poster/cover images. When omitted, images are imported by default."}},"additionalProperties":false}},"required":["seriesId"],"additionalProperties":false},"IImportMoviesOriginNexusJobParameters":{"type":"object","properties":{"movieId":{"type":"string"},"securityTags":{"type":"array","items":{"type":"string"}},"importOptions":{"type":"object","description":"Controls movie-level media/credits import.","properties":{"importCredits":{"type":"boolean","description":"When false, skip importing credits and linked contributors from Origin Nexus. When omitted, credits and contributors are imported by default."},"importImages":{"type":"boolean","description":"When false, skip importing poster/cover images. When omitted, images are imported by default."}},"additionalProperties":false}},"required":["movieId"],"additionalProperties":false},"IRecordBulkEditJobParameters":{"type":"object","description":"Parameters for a bulk-edit job: apply the same field edits to every record matching a selection predicate, for one locale. The state machine resolves the selection to concrete record ids server-side, then patches each record.","properties":{"locale":{"type":"string","description":"The single locale all edits target (e.g. `en`). Optional: required only when at least one edit targets a localized field. A job editing only unlocalized fields (e.g. `releaseYear`) may omit it; a localized edit without a locale fails that field."},"edits":{"type":"array","minItems":1,"description":"Field edits applied to every selected record. `overwrite` replaces the field value for the job locale (`value` required); `delete` clears it.","items":{"type":"object","properties":{"fieldKey":{"type":"string"},"action":{"type":"string","enum":["overwrite","delete"]},"value":{"description":"New value for `overwrite`; ignored for `delete`. Arbitrary JSON validated per field at write time."}},"required":["fieldKey","action"],"additionalProperties":false}},"selection":{"type":"object","description":"Resolved Studio Library selection predicate. When `searchGroup` is present (an all-in-view or hierarchy selection), every record matching it is in scope, minus `excludeRecordIds`, plus `includeRecordIds`. When `searchGroup` is absent, only `includeRecordIds` (a pure manual-tick selection) are edited.","properties":{"searchGroup":{"type":"object","description":"Boolean query tree (ITenantLibrarySearchQueryGroup). Present for all-in-view / hierarchy selections; omitted for a pure manual-tick selection. Validated by the search service when the enumeration query runs.","additionalProperties":true},"includeRecordIds":{"type":"array","items":{"type":"string"}},"excludeRecordIds":{"type":"array","items":{"type":"string"}}},"required":[],"additionalProperties":false}},"required":["edits","selection"],"additionalProperties":false}},"properties":{"meta":{"$ref":"#/components/schemas/WriteRequestMeta"},"data":{"allOf":[{"$ref":"#/components/schemas/BaseCreateRequest"},{"type":"object","properties":{"attributes":{"type":"object","properties":{"type":{"type":"string","description":"The kind of background job to run. Determines which shape `parameters` must match: `deleteRecord`/`restoreRecord`/`permanentlyDeleteRecord` take only a `recordId` — WARNING: `deleteRecord` and `permanentlyDeleteRecord` act recursively on the entire hierarchy under that record (e.g. deleting a Series also deletes all of its Seasons and Episodes), not just the target record itself; `restoreRecord` restores the same hierarchy back. `permanentlyDeleteRecord` is irreversible. `createRecordFromScratch` creates a new record (optionally with seasons/episodes/compilation links); `createMediaFromUrl` fetches and attaches media from external URLs; `migrateRecordLifecycleStatus` bulk-moves all records of a workType from one lifecycle status to another; `importSeriesOriginNexus`/`importMoviesOriginNexus` import a Series or Movie (and its hierarchy) from Origin Nexus by its Origin ID.","enum":["deleteRecord","restoreRecord","permanentlyDeleteRecord","createRecordFromScratch","createMediaFromUrl","migrateRecordLifecycleStatus","importSeriesOriginNexus","importMoviesOriginNexus","bulkEditRecords"]},"parameters":{"description":"Job-specific parameters. The required shape depends on `type` — see the `type` field description.","oneOf":[{"$ref":"#/components/schemas/IRecordIdJobParameters"},{"$ref":"#/components/schemas/IRecordCreateRecordFromScratchJobParameters"},{"$ref":"#/components/schemas/IRecordCreateMediaFromUrlJobParameters"},{"$ref":"#/components/schemas/IRecordMigrateLifecycleStatusJobParameters"},{"$ref":"#/components/schemas/IImportSeriesOriginNexusJobParameters"},{"$ref":"#/components/schemas/IImportMoviesOriginNexusJobParameters"},{"$ref":"#/components/schemas/IRecordBulkEditJobParameters"}]}},"required":["type","parameters"],"additionalProperties":false}},"required":["attributes"],"additionalProperties":false}]}},"required":["data"],"additionalProperties":false},"WorkTypes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"WorkTypes","description":"The classification type of an entertainment work. `Movie` is a standalone feature-length film. `MovieEdit` is a variation of a Movie. `Series` is a TV or streaming series. `Season` is a season within a Series. `Episode` is a single episode within a Season. `EpisodeEdit` is a variation of an Episode. `Compilation` is an editorially curated collection of existing records.","type":"string","enum":["Movie","MovieEdit","Series","Season","Episode","EpisodeEdit","Compilation"]},"MediaAttributeImageType":{"$id":"media_attribute_image_type","$schema":"http://json-schema.org/draft-07/schema#","title":"IMediaAttributeImageType","description":"Editorial classification for an image asset associated with a record. Used to distinguish between general photos, talent portraits, theatrical marketing posters, and tile/thumbnail formats.","type":"string","enum":["Photo","Portrait","Poster","Theatrical Poster","Tile"]},"WriteRequestMeta":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IWriteRequestMeta","description":"Optional audit metadata for a write request. `audit.source` is the issuing surface/channel (e.g. studio-web, mcp, api, system); `audit.reason` is a free-text justification. Both are optional and length-capped.","type":"object","additionalProperties":false,"properties":{"audit":{"type":"object","additionalProperties":false,"properties":{"source":{"type":"string","maxLength":64},"reason":{"type":"string","maxLength":256}}}}},"BaseCreateRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseCreateRequest","description":"Base JSON:API shape for create requests. The `type` field is required and must match the target resource type. The `id` field is optional; if omitted, the server generates a unique ID for the new resource.","type":"object","additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"type":"string"}},"required":["type"]},"IRecordIdJobParameters":{"type":"object","description":"Parameters for job types that only need a target record id: deleteRecord, restoreRecord, permanentlyDeleteRecord.","properties":{"recordId":{"type":"string"}},"required":["recordId"],"additionalProperties":false},"IRecordCreateRecordFromScratchJobParameters":{"type":"object","properties":{"workType":{"$ref":"#/components/schemas/WorkTypes"},"primaryTitle":{"type":"string"},"releaseYear":{"type":"number"},"workTypeDetail":{"type":"string"},"parentRecordId":{"type":"string"},"securityTags":{"type":"array","items":{"type":"string"}},"editClass":{"type":"string"},"intendedTerritories":{"type":"array","items":{"type":"string"}},"seasons":{"type":"array","items":{"type":"object","properties":{"primaryTitle":{"type":"string"},"releaseYear":{"type":"number"},"workType":{"type":"string","enum":["Season"]},"securityTags":{"type":"array","items":{"type":"string"}}},"required":["primaryTitle","workType"]}},"episodes":{"type":"array","items":{"type":"object","properties":{"primaryTitle":{"type":"string"},"releaseYear":{"type":"number"},"workType":{"type":"string","enum":["Episode"]},"securityTags":{"type":"array","items":{"type":"string"}}},"required":["primaryTitle","workType"]}},"compilations":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"]}}},"required":["workType"],"additionalProperties":false},"IRecordCreateMediaFromUrlJobParameters":{"type":"object","properties":{"urls":{"description":"Media source URLs to fetch and attach; supply at least one. Each must use `https` and be served by an approved media host; a URL on any other host is rejected without being fetched. Rejections are reported per URL, so the remaining entries in the job still run.","type":"array","items":{"type":"string","format":"uri"},"maxItems":100},"recordId":{"type":"string"},"imageType":{"$ref":"#/components/schemas/MediaAttributeImageType"},"locale":{"description":"Optional BCP 47 language tag (optionally region- or script-qualified, e.g. `en`, `pt-br`, `zh-Hans`) describing the language of the fetched media. Applies uniformly to every entry in `urls`. Normalized against Studio's canonical locale list when the media record is written; unrecognized values are dropped rather than defaulted.","type":"string"}},"required":["urls","recordId","imageType"],"additionalProperties":false},"IRecordMigrateLifecycleStatusJobParameters":{"type":"object","properties":{"oldLifecycleStatus":{"type":"string"},"newLifecycleStatus":{"type":"string"},"workType":{"$ref":"#/components/schemas/WorkTypes"}},"required":["oldLifecycleStatus","newLifecycleStatus","workType"],"additionalProperties":false},"IImportSeriesOriginNexusJobParameters":{"type":"object","properties":{"seriesId":{"type":"string"},"securityTags":{"type":"array","items":{"type":"string"}},"importOptions":{"type":"object","description":"Controls Origin Nexus import depth and series-level media/credits.","properties":{"seriesOnly":{"type":"boolean","description":"When true, skip seasons/episodes and import the series record only. When omitted, the full hierarchy (seasons and episodes) is imported by default."},"importCredits":{"type":"boolean","description":"When false, skip importing credits and linked contributors from Origin Nexus. When omitted, credits and contributors are imported by default."},"importImages":{"type":"boolean","description":"When false, skip importing poster/cover images. When omitted, images are imported by default."}},"additionalProperties":false}},"required":["seriesId"],"additionalProperties":false},"IImportMoviesOriginNexusJobParameters":{"type":"object","properties":{"movieId":{"type":"string"},"securityTags":{"type":"array","items":{"type":"string"}},"importOptions":{"type":"object","description":"Controls movie-level media/credits import.","properties":{"importCredits":{"type":"boolean","description":"When false, skip importing credits and linked contributors from Origin Nexus. When omitted, credits and contributors are imported by default."},"importImages":{"type":"boolean","description":"When false, skip importing poster/cover images. When omitted, images are imported by default."}},"additionalProperties":false}},"required":["movieId"],"additionalProperties":false},"IRecordBulkEditJobParameters":{"type":"object","description":"Parameters for a bulk-edit job: apply the same field edits to every record matching a selection predicate, for one locale. The state machine resolves the selection to concrete record ids server-side, then patches each record.","properties":{"locale":{"type":"string","description":"The single locale all edits target (e.g. `en`). Optional: required only when at least one edit targets a localized field. A job editing only unlocalized fields (e.g. `releaseYear`) may omit it; a localized edit without a locale fails that field."},"edits":{"type":"array","minItems":1,"description":"Field edits applied to every selected record. `overwrite` replaces the field value for the job locale (`value` required); `delete` clears it.","items":{"type":"object","properties":{"fieldKey":{"type":"string"},"action":{"type":"string","enum":["overwrite","delete"]},"value":{"description":"New value for `overwrite`; ignored for `delete`. Arbitrary JSON validated per field at write time."}},"required":["fieldKey","action"],"additionalProperties":false}},"selection":{"type":"object","description":"Resolved Studio Library selection predicate. When `searchGroup` is present (an all-in-view or hierarchy selection), every record matching it is in scope, minus `excludeRecordIds`, plus `includeRecordIds`. When `searchGroup` is absent, only `includeRecordIds` (a pure manual-tick selection) are edited.","properties":{"searchGroup":{"type":"object","description":"Boolean query tree (ITenantLibrarySearchQueryGroup). Present for all-in-view / hierarchy selections; omitted for a pure manual-tick selection. Validated by the search service when the enumeration query runs.","additionalProperties":true},"includeRecordIds":{"type":"array","items":{"type":"string"}},"excludeRecordIds":{"type":"array","items":{"type":"string"}}},"required":[],"additionalProperties":false}},"required":["edits","selection"],"additionalProperties":false}}}}
```

## The RecordJob object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"RecordJob":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordJob","description":"Attributes for a record background job. Extends the base background job attributes with record-specific job type and parameters. Currently supports `deleteRecord` as a job type, which asynchronously removes a record and all associated data.","type":"object","allOf":[{"$ref":"#/components/schemas/BackgroundJobAttributes"},{"type":"object","properties":{"type":{"type":"string","enum":["deleteRecord","restoreRecord","permanentlyDeleteRecord","createRecordFromScratch","createMediaFromUrl","migrateRecordLifecycleStatus","importSeriesOriginNexus","importMoviesOriginNexus","bulkEditRecords"]},"parameters":{"type":"object","oneOf":[{"properties":{"recordId":{"type":"string"},"tenantId":{"type":"string"},"subject":{"type":"string","description":"Human-readable label for the job's target record (its primary title), captured server-side at job creation so the UI can display it even after the record itself is deleted. Purely presentational — not used by job processing."}},"required":["recordId","tenantId"],"additionalProperties":false},{"properties":{"seriesId":{"type":"string"},"tenantId":{"type":"string"},"subject":{"type":"string","description":"Human-readable label for the imported title (the Origin Nexus global record's primary title), resolved server-side at job creation for display in the background-jobs UI. Purely presentational — not used by job processing."}},"required":["seriesId","tenantId"],"additionalProperties":false},{"properties":{"movieId":{"type":"string"},"tenantId":{"type":"string"},"subject":{"type":"string","description":"Human-readable label for the imported title (the Origin Nexus global record's primary title), resolved server-side at job creation for display in the background-jobs UI. Purely presentational — not used by job processing."}},"required":["movieId","tenantId"],"additionalProperties":false},{"properties":{"workType":{"$ref":"#/components/schemas/WorkTypes"},"primaryTitle":{"type":"string"},"tenantId":{"type":"string"},"subject":{"type":"string","description":"Human-readable label for the job's target record (its primary title), captured server-side at job creation for display in the background-jobs UI. Purely presentational — not used by job processing."}},"required":["recordId","workType","tenantId"],"additionalProperties":false},{"properties":{"tenantId":{"type":"string"},"recordId":{"type":"string"},"urls":{"type":"array","items":{"type":"string"}},"subject":{"type":"string","description":"Human-readable label for the job's target record (its primary title), captured server-side at job creation for display in the background-jobs UI. Purely presentational — not used by job processing."}},"required":["urls","tenantId","recordId"],"additionalProperties":false},{"properties":{"tenantId":{"type":"string"},"oldLifecycleStatus":{"type":"string"},"newLifecycleStatus":{"type":"string"}},"required":["tenantId","oldLifecycleStatus","newLifecycleStatus"],"additionalProperties":false},{"description":"bulkEditRecords parameters as stored on the job (includes runtime-injected tenantId/jobId).","properties":{"tenantId":{"type":"string"},"jobId":{"type":"string"},"locale":{"type":"string"},"edits":{"type":"array","items":{"type":"object","properties":{"fieldKey":{"type":"string"},"action":{"type":"string","enum":["overwrite","delete"]},"value":{}},"required":["fieldKey","action"],"additionalProperties":false}},"selection":{"type":"object","additionalProperties":true}},"required":["tenantId","edits","selection"],"additionalProperties":true}]}},"required":["type","parameters"],"additionalProperties":false}],"required":["arn","status","created","updated","type","parameters"],"additionalProperties":false},"BackgroundJobAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBackgroundJobAttributes","description":"Attributes for a background job. Background jobs represent long-running asynchronous operations (e.g. contributor deletion, tenant data export). Includes current status, job type, parameters, optional output on completion, optional error details on failure, and optional item progress counts for batch jobs.","type":"object","allOf":[{"$ref":"#/components/schemas/BaseResourceAttributes"},{"type":"object","properties":{"type":{"type":"string"},"parameters":{"type":"object"},"status":{"$ref":"#/components/schemas/BackgroundJobStatus"},"output":{"type":"object"},"totalItemsCount":{"type":"integer","minimum":0,"description":"Total number of items in a batch job, when applicable."},"successItemsCount":{"type":"integer","minimum":0,"description":"Number of items processed successfully in a batch job, when applicable."},"failedItemsCount":{"type":"integer","minimum":0,"description":"Number of items that failed in a batch job, when applicable."},"error":{"type":"object","properties":{"message":{"type":"string"},"code":{"type":"string"}},"required":["message","code"],"additionalProperties":false}},"required":["type","parameters","status"],"additionalProperties":false}],"additionalProperties":false},"BaseResourceAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResourceAttributes","description":"Common timestamps present on all resource attribute objects. `created` is the ISO 8601 date-time when the resource was first created; `updated` is the date-time of the most recent modification.","type":"object","additionalProperties":false,"required":["created","updated"],"properties":{"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}},"BackgroundJobStatus":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBackgroundJobStatus","description":"Status of a background job: ABORTED, FAILED, PENDING_REDRIVE, RUNNING, SUCCEEDED, or TIMED_OUT.","type":"string","enum":["ABORTED","FAILED","PENDING_REDRIVE","RUNNING","SUCCEEDED","TIMED_OUT"]},"WorkTypes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"WorkTypes","description":"The classification type of an entertainment work. `Movie` is a standalone feature-length film. `MovieEdit` is a variation of a Movie. `Series` is a TV or streaming series. `Season` is a season within a Series. `Episode` is a single episode within a Season. `EpisodeEdit` is a variation of an Episode. `Compilation` is an editorially curated collection of existing records.","type":"string","enum":["Movie","MovieEdit","Series","Season","Episode","EpisodeEdit","Compilation"]}}}}
```

## The CreateRecordJobResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"CreateRecordJobResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ICreateRecordJobResponse","description":"Response returned after successfully creating a record background job. Contains the new job's ID and initial status attributes.","type":"object","properties":{"data":{"allOf":[{"$ref":"#/components/schemas/BaseCreateRequest"},{"additionalProperties":false,"properties":{"id":{"type":"string"},"attributes":{"$ref":"#/components/schemas/RecordJob"}},"required":["id","attributes"]}]}},"required":["data"],"additionalProperties":false},"BaseCreateRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseCreateRequest","description":"Base JSON:API shape for create requests. The `type` field is required and must match the target resource type. The `id` field is optional; if omitted, the server generates a unique ID for the new resource.","type":"object","additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"type":"string"}},"required":["type"]},"RecordJob":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordJob","description":"Attributes for a record background job. Extends the base background job attributes with record-specific job type and parameters. Currently supports `deleteRecord` as a job type, which asynchronously removes a record and all associated data.","type":"object","allOf":[{"$ref":"#/components/schemas/BackgroundJobAttributes"},{"type":"object","properties":{"type":{"type":"string","enum":["deleteRecord","restoreRecord","permanentlyDeleteRecord","createRecordFromScratch","createMediaFromUrl","migrateRecordLifecycleStatus","importSeriesOriginNexus","importMoviesOriginNexus","bulkEditRecords"]},"parameters":{"type":"object","oneOf":[{"properties":{"recordId":{"type":"string"},"tenantId":{"type":"string"},"subject":{"type":"string","description":"Human-readable label for the job's target record (its primary title), captured server-side at job creation so the UI can display it even after the record itself is deleted. Purely presentational — not used by job processing."}},"required":["recordId","tenantId"],"additionalProperties":false},{"properties":{"seriesId":{"type":"string"},"tenantId":{"type":"string"},"subject":{"type":"string","description":"Human-readable label for the imported title (the Origin Nexus global record's primary title), resolved server-side at job creation for display in the background-jobs UI. Purely presentational — not used by job processing."}},"required":["seriesId","tenantId"],"additionalProperties":false},{"properties":{"movieId":{"type":"string"},"tenantId":{"type":"string"},"subject":{"type":"string","description":"Human-readable label for the imported title (the Origin Nexus global record's primary title), resolved server-side at job creation for display in the background-jobs UI. Purely presentational — not used by job processing."}},"required":["movieId","tenantId"],"additionalProperties":false},{"properties":{"workType":{"$ref":"#/components/schemas/WorkTypes"},"primaryTitle":{"type":"string"},"tenantId":{"type":"string"},"subject":{"type":"string","description":"Human-readable label for the job's target record (its primary title), captured server-side at job creation for display in the background-jobs UI. Purely presentational — not used by job processing."}},"required":["recordId","workType","tenantId"],"additionalProperties":false},{"properties":{"tenantId":{"type":"string"},"recordId":{"type":"string"},"urls":{"type":"array","items":{"type":"string"}},"subject":{"type":"string","description":"Human-readable label for the job's target record (its primary title), captured server-side at job creation for display in the background-jobs UI. Purely presentational — not used by job processing."}},"required":["urls","tenantId","recordId"],"additionalProperties":false},{"properties":{"tenantId":{"type":"string"},"oldLifecycleStatus":{"type":"string"},"newLifecycleStatus":{"type":"string"}},"required":["tenantId","oldLifecycleStatus","newLifecycleStatus"],"additionalProperties":false},{"description":"bulkEditRecords parameters as stored on the job (includes runtime-injected tenantId/jobId).","properties":{"tenantId":{"type":"string"},"jobId":{"type":"string"},"locale":{"type":"string"},"edits":{"type":"array","items":{"type":"object","properties":{"fieldKey":{"type":"string"},"action":{"type":"string","enum":["overwrite","delete"]},"value":{}},"required":["fieldKey","action"],"additionalProperties":false}},"selection":{"type":"object","additionalProperties":true}},"required":["tenantId","edits","selection"],"additionalProperties":true}]}},"required":["type","parameters"],"additionalProperties":false}],"required":["arn","status","created","updated","type","parameters"],"additionalProperties":false},"BackgroundJobAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBackgroundJobAttributes","description":"Attributes for a background job. Background jobs represent long-running asynchronous operations (e.g. contributor deletion, tenant data export). Includes current status, job type, parameters, optional output on completion, optional error details on failure, and optional item progress counts for batch jobs.","type":"object","allOf":[{"$ref":"#/components/schemas/BaseResourceAttributes"},{"type":"object","properties":{"type":{"type":"string"},"parameters":{"type":"object"},"status":{"$ref":"#/components/schemas/BackgroundJobStatus"},"output":{"type":"object"},"totalItemsCount":{"type":"integer","minimum":0,"description":"Total number of items in a batch job, when applicable."},"successItemsCount":{"type":"integer","minimum":0,"description":"Number of items processed successfully in a batch job, when applicable."},"failedItemsCount":{"type":"integer","minimum":0,"description":"Number of items that failed in a batch job, when applicable."},"error":{"type":"object","properties":{"message":{"type":"string"},"code":{"type":"string"}},"required":["message","code"],"additionalProperties":false}},"required":["type","parameters","status"],"additionalProperties":false}],"additionalProperties":false},"BaseResourceAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResourceAttributes","description":"Common timestamps present on all resource attribute objects. `created` is the ISO 8601 date-time when the resource was first created; `updated` is the date-time of the most recent modification.","type":"object","additionalProperties":false,"required":["created","updated"],"properties":{"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}},"BackgroundJobStatus":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBackgroundJobStatus","description":"Status of a background job: ABORTED, FAILED, PENDING_REDRIVE, RUNNING, SUCCEEDED, or TIMED_OUT.","type":"string","enum":["ABORTED","FAILED","PENDING_REDRIVE","RUNNING","SUCCEEDED","TIMED_OUT"]},"WorkTypes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"WorkTypes","description":"The classification type of an entertainment work. `Movie` is a standalone feature-length film. `MovieEdit` is a variation of a Movie. `Series` is a TV or streaming series. `Season` is a season within a Series. `Episode` is a single episode within a Season. `EpisodeEdit` is a variation of an Episode. `Compilation` is an editorially curated collection of existing records.","type":"string","enum":["Movie","MovieEdit","Series","Season","Episode","EpisodeEdit","Compilation"]}}}}
```

## The RecordGetDeletedAncestorsResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"RecordGetDeletedAncestorsResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordGetDeletedAncestorsResponse","description":"Returns the ancestor records (top-down) for a given record, optionally narrowed by status via the filter.status query param. Used by the restore confirmation dialog (which requests filter.status=DELETED). Empty when no matching ancestors exist.","type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["records"]},"attributes":{"type":"object","properties":{"primaryTitle":{"type":"string"},"workType":{"type":"string"},"sequenceNumber":{"type":"integer"},"status":{"type":"string","enum":["ACTIVE","DELETED"]}},"additionalProperties":false,"required":["primaryTitle","workType","sequenceNumber","status"]},"relationships":{"type":"object","properties":{"parent":{"description":"This ancestor's own parent, one level further up the chain. Absent for the top-most (root) ancestor.","$ref":"#/components/schemas/RecordRelationship"}},"additionalProperties":false}},"additionalProperties":false,"required":["id","type","attributes"]}},"meta":{"type":"object","properties":{"workTypeCounts":{"type":"object","description":"Counts of the returned ancestors broken down by workType.","additionalProperties":{"type":"integer"}}},"additionalProperties":false}}},"RecordRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordRelationship","description":"A relationship to a record","type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["records"]}},"required":["id","type"]},"meta":{"type":"object","properties":{"primaryTitle":{"type":"string"}}},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data"]},"LinksRelated":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILinks","description":"A JSON:API links object with an absolute or relative 'related' link","type":"object","required":["related"],"properties":{"related":{"type":"string"}},"additionalProperties":false}}}}
```

## The RecordChildrenFindManyResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"RecordChildrenFindManyResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordChildrenFindManyResponse","description":"Returns the identifiers of direct active child records for a parent record. Compilation members are not included; use GET /records/{recordId}/compilationMembers for those. Empty when the parent has no hierarchical children (for example, a Movie, a leaf Episode, or a Compilation).","type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["records"]}},"additionalProperties":false,"required":["id","type"]}}}}}}}
```

## The RecordCompilationMemberFindManyResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"RecordCompilationMemberFindManyResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordCompilationMemberFindManyResponse","description":"Returns a list of compilation members for a given record.","type":"object","additionalProperties":false,"required":["data","meta","links"],"properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["compilationLinkageItems"]},"attributes":{"type":"object","properties":{"ranking":{"type":"number"}},"additionalProperties":false,"required":["ranking"]},"relationships":{"type":"object","properties":{"record":{"description":"The member record this compilation-membership entry represents.","$ref":"#/components/schemas/RecordRelationship"},"tenant":{"description":"The tenant that owns this compilation membership.","$ref":"#/components/schemas/TenantRelationship"}},"additionalProperties":false,"required":["record","tenant"]}},"additionalProperties":false,"required":["id","type","attributes","relationships"]},"additionalProperties":false}}},"RecordRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordRelationship","description":"A relationship to a record","type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["records"]}},"required":["id","type"]},"meta":{"type":"object","properties":{"primaryTitle":{"type":"string"}}},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data"]},"LinksRelated":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILinks","description":"A JSON:API links object with an absolute or relative 'related' link","type":"object","required":["related"],"properties":{"related":{"type":"string"}},"additionalProperties":false},"TenantRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantRelationship","description":"A relationship to a tenant","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tenants"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data","links"],"additionalProperties":false}}}}
```

## The RecordCompilationFindManyResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"RecordCompilationFindManyResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordCompilationFindManyResponse","description":"Returns a list of compilations for a given record.","type":"object","additionalProperties":false,"required":["data","meta","links"],"properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["compilationLinkageItems"]},"attributes":{"type":"object","properties":{"ranking":{"type":"number"}},"additionalProperties":false,"required":["ranking"]},"relationships":{"type":"object","properties":{"compilation":{"description":"The Compilation record that this record is a member of.","$ref":"#/components/schemas/RecordRelationship"},"tenant":{"description":"The tenant that owns this compilation membership.","$ref":"#/components/schemas/TenantRelationship"}},"additionalProperties":false,"required":["compilation","tenant"]}},"additionalProperties":false,"required":["id","type","attributes","relationships"]},"additionalProperties":false}}},"RecordRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordRelationship","description":"A relationship to a record","type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["records"]}},"required":["id","type"]},"meta":{"type":"object","properties":{"primaryTitle":{"type":"string"}}},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data"]},"LinksRelated":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILinks","description":"A JSON:API links object with an absolute or relative 'related' link","type":"object","required":["related"],"properties":{"related":{"type":"string"}},"additionalProperties":false},"TenantRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantRelationship","description":"A relationship to a tenant","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tenants"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data","links"],"additionalProperties":false}}}}
```

## The compilationLinkageItemDataObject object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"compilationLinkageItemDataObject":{"type":"object","properties":{"type":{"type":"string","const":"compilationLinkageItems"},"id":{"type":"string"},"attributes":{"type":"object","properties":{"ranking":{"type":"number","minimum":0},"recordStatus":{"type":"string","enum":["ACTIVE","DELETED"]},"compilationStatus":{"type":"string","enum":["ACTIVE","DELETED"]}},"additionalProperties":false},"relationships":{"description":"The record being added as a compilation member.","type":"object","properties":{"record":{"description":"The record to add. Identifies an existing record by type and ID — it is not created by this call.","type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","const":"records"},"id":{"type":"string"}},"required":["type","id"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}},"required":["record"],"additionalProperties":false}},"required":["type","attributes","relationships"],"additionalProperties":false}}}}
```

## The compilationLinkageItemRefObject object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"compilationLinkageItemRefObject":{"type":"object","properties":{"type":{"type":"string","const":"compilationLinkageItems"},"id":{"type":"string"}},"required":["type","id"],"additionalProperties":false}}}}
```

## The compilationLinkageItemUpdateDataObject object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"compilationLinkageItemUpdateDataObject":{"type":"object","properties":{"attributes":{"type":"object","properties":{"ranking":{"type":"number","minimum":0},"recordStatus":{"type":"string","enum":["ACTIVE","DELETED"]},"compilationStatus":{"type":"string","enum":["ACTIVE","DELETED"]}},"additionalProperties":false}},"required":["attributes"],"additionalProperties":false}}}}
```

## The CompilationMembersAtomicOperationsRequest object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"CompilationMembersAtomicOperationsRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ICompilationMembersAtomicOperationsRequest","description":"JSON:API Atomic Operations request for managing compilation membership and member order in a single transactional call. Three operation types: `add` — add a record as a new member (rejects a memberRecordId already in the compilation; to change an existing member's ranking or status, use `update` instead, not remove+add). `update` — change an existing member's `ranking` and/or status by its own linkage-item id (from the `ref`), without affecting membership; this is the correct way to reorder members — removing every member and re-adding them is unnecessary and not atomic-safe. `remove` — remove an existing member by its linkage-item id.","type":"object","properties":{"meta":{"$ref":"#/components/schemas/WriteRequestMeta"},"atomic:operations":{"type":"array","items":{"type":"object","oneOf":[{"type":"object","description":"Add a record as a new compilation member. Fails if the record is already a member — use `update` to change an existing member's ranking/status instead of removing and re-adding.","properties":{"op":{"const":"add"},"data":{"$ref":"#/components/schemas/compilationLinkageItemDataObject"}},"required":["op","data"],"additionalProperties":false},{"type":"object","description":"Update an existing member's ranking and/or status by its own linkage-item id, without affecting membership. This is the correct way to reorder members.","properties":{"op":{"const":"update"},"ref":{"$ref":"#/components/schemas/compilationLinkageItemRefObject"},"data":{"$ref":"#/components/schemas/compilationLinkageItemUpdateDataObject"}},"required":["op","ref","data"],"additionalProperties":false},{"type":"object","description":"Remove an existing member by its own linkage-item id.","properties":{"op":{"const":"remove"},"ref":{"$ref":"#/components/schemas/compilationLinkageItemRefObject"}},"required":["op","ref"],"additionalProperties":false}]}}},"required":["atomic:operations"],"additionalProperties":false,"definitions":{"compilationLinkageItemDataObject":{"type":"object","properties":{"type":{"type":"string","const":"compilationLinkageItems"},"id":{"type":"string"},"attributes":{"type":"object","properties":{"ranking":{"type":"number","minimum":0},"recordStatus":{"type":"string","enum":["ACTIVE","DELETED"]},"compilationStatus":{"type":"string","enum":["ACTIVE","DELETED"]}},"additionalProperties":false},"relationships":{"description":"The record being added as a compilation member.","type":"object","properties":{"record":{"description":"The record to add. Identifies an existing record by type and ID — it is not created by this call.","type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","const":"records"},"id":{"type":"string"}},"required":["type","id"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}},"required":["record"],"additionalProperties":false}},"required":["type","attributes","relationships"],"additionalProperties":false},"compilationLinkageItemUpdateDataObject":{"type":"object","properties":{"attributes":{"type":"object","properties":{"ranking":{"type":"number","minimum":0},"recordStatus":{"type":"string","enum":["ACTIVE","DELETED"]},"compilationStatus":{"type":"string","enum":["ACTIVE","DELETED"]}},"additionalProperties":false}},"required":["attributes"],"additionalProperties":false},"compilationLinkageItemRefObject":{"type":"object","properties":{"type":{"type":"string","const":"compilationLinkageItems"},"id":{"type":"string"}},"required":["type","id"],"additionalProperties":false}}},"WriteRequestMeta":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IWriteRequestMeta","description":"Optional audit metadata for a write request. `audit.source` is the issuing surface/channel (e.g. studio-web, mcp, api, system); `audit.reason` is a free-text justification. Both are optional and length-capped.","type":"object","additionalProperties":false,"properties":{"audit":{"type":"object","additionalProperties":false,"properties":{"source":{"type":"string","maxLength":64},"reason":{"type":"string","maxLength":256}}}}},"compilationLinkageItemDataObject":{"type":"object","properties":{"type":{"type":"string","const":"compilationLinkageItems"},"id":{"type":"string"},"attributes":{"type":"object","properties":{"ranking":{"type":"number","minimum":0},"recordStatus":{"type":"string","enum":["ACTIVE","DELETED"]},"compilationStatus":{"type":"string","enum":["ACTIVE","DELETED"]}},"additionalProperties":false},"relationships":{"description":"The record being added as a compilation member.","type":"object","properties":{"record":{"description":"The record to add. Identifies an existing record by type and ID — it is not created by this call.","type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","const":"records"},"id":{"type":"string"}},"required":["type","id"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}},"required":["record"],"additionalProperties":false}},"required":["type","attributes","relationships"],"additionalProperties":false},"compilationLinkageItemRefObject":{"type":"object","properties":{"type":{"type":"string","const":"compilationLinkageItems"},"id":{"type":"string"}},"required":["type","id"],"additionalProperties":false},"compilationLinkageItemUpdateDataObject":{"type":"object","properties":{"attributes":{"type":"object","properties":{"ranking":{"type":"number","minimum":0},"recordStatus":{"type":"string","enum":["ACTIVE","DELETED"]},"compilationStatus":{"type":"string","enum":["ACTIVE","DELETED"]}},"additionalProperties":false}},"required":["attributes"],"additionalProperties":false}}}}
```

## The RecordLifecycleNodeAttributes object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"RecordLifecycleNodeAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordLifecycleStatusAttributes","description":"A single lifecycle status node: id, label, phase (drafting or published), and optional position.","type":"object","required":["id","label","phase"],"additionalProperties":false,"properties":{"id":{"type":"string","description":"Unique identifier for the status"},"label":{"type":"string","description":"Display label for the status"},"phase":{"type":"string","enum":["drafting","published"],"description":"The phase this status belongs to"},"description":{"type":"string","description":"Optional description of the status"},"positionX":{"type":"number","description":"The x position of the status"},"positionY":{"type":"number","description":"The y position of the status"}}}}}}
```

## The RecordLifecycleEdgeAttributes object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"RecordLifecycleEdgeAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordLifecycleTransitionAttributes","description":"Attributes of a directed edge in the lifecycle graph, representing a transition between two statuses. `fromStatusId` and `toStatusId` identify the source and target lifecycle status nodes. `direction` indicates whether the transition represents forward progression or a regression in the lifecycle.","type":"object","required":["id","label","fromStatusId","toStatusId","direction"],"additionalProperties":false,"properties":{"id":{"type":"string","description":"Unique identifier for the transition"},"label":{"type":"string","description":"Display label for the transition action"},"fromStatusId":{"type":"string","description":"The source status ID"},"toStatusId":{"type":"string","description":"The target status ID"},"direction":{"type":"string","enum":["forward","backward"],"description":"The direction of the transition based on handles (east→west = forward)"},"description":{"type":"string","description":"Optional description for the transition action"}}}}}}
```

## The RecordLifecycleAttributes object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"RecordLifecycleAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordLifecycleAttributes","description":"Attributes defining a record lifecycle: work type, statuses, and transitions between statuses.","type":"object","required":["workType","statuses","transitions"],"additionalProperties":false,"properties":{"workType":{"$ref":"#/components/schemas/WorkTypes"},"statuses":{"type":"array","description":"The lifecycle statuses","items":{"$ref":"#/components/schemas/RecordLifecycleNodeAttributes"}},"transitions":{"type":"array","description":"The lifecycle transitions between statuses","items":{"$ref":"#/components/schemas/RecordLifecycleEdgeAttributes"}}}},"WorkTypes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"WorkTypes","description":"The classification type of an entertainment work. `Movie` is a standalone feature-length film. `MovieEdit` is a variation of a Movie. `Series` is a TV or streaming series. `Season` is a season within a Series. `Episode` is a single episode within a Season. `EpisodeEdit` is a variation of an Episode. `Compilation` is an editorially curated collection of existing records.","type":"string","enum":["Movie","MovieEdit","Series","Season","Episode","EpisodeEdit","Compilation"]},"RecordLifecycleNodeAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordLifecycleStatusAttributes","description":"A single lifecycle status node: id, label, phase (drafting or published), and optional position.","type":"object","required":["id","label","phase"],"additionalProperties":false,"properties":{"id":{"type":"string","description":"Unique identifier for the status"},"label":{"type":"string","description":"Display label for the status"},"phase":{"type":"string","enum":["drafting","published"],"description":"The phase this status belongs to"},"description":{"type":"string","description":"Optional description of the status"},"positionX":{"type":"number","description":"The x position of the status"},"positionY":{"type":"number","description":"The y position of the status"}}},"RecordLifecycleEdgeAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordLifecycleTransitionAttributes","description":"Attributes of a directed edge in the lifecycle graph, representing a transition between two statuses. `fromStatusId` and `toStatusId` identify the source and target lifecycle status nodes. `direction` indicates whether the transition represents forward progression or a regression in the lifecycle.","type":"object","required":["id","label","fromStatusId","toStatusId","direction"],"additionalProperties":false,"properties":{"id":{"type":"string","description":"Unique identifier for the transition"},"label":{"type":"string","description":"Display label for the transition action"},"fromStatusId":{"type":"string","description":"The source status ID"},"toStatusId":{"type":"string","description":"The target status ID"},"direction":{"type":"string","enum":["forward","backward"],"description":"The direction of the transition based on handles (east→west = forward)"},"description":{"type":"string","description":"Optional description for the transition action"}}}}}}
```

## The RecordLifecycleFindManyResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"RecordLifecycleFindManyResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordLifecycleFindManyResponse","description":"JSON:API response for listing all record lifecycles in a tenant. Returns an array of lifecycle resources with their full graph definitions.","type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the lifecycle"},"type":{"type":"string","enum":["recordLifecycles"]},"attributes":{"allOf":[{"$ref":"#/components/schemas/BaseResourceAttributes"},{"$ref":"#/components/schemas/RecordLifecycleAttributes"}]},"relationships":{"type":"object","properties":{"tenant":{"description":"The tenant that owns this lifecycle definition.","type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tenants"]}},"required":["id","type"],"additionalProperties":false}},"required":["data"],"additionalProperties":false},"author":{"description":"The user who originally created this lifecycle definition.","type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["users"]},"meta":{"type":"object","properties":{"tenantId":{"type":"string"},"type":{"type":"string"},"displayName":{"type":"string"}},"required":["tenantId","type","displayName"]}},"required":["id","type","meta"]},"links":{"type":"object","properties":{"related":{"type":"string"}}}},"required":["data"]},"updatedBy":{"description":"The user who last modified this lifecycle definition.","type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["users"]},"meta":{"type":"object","properties":{"tenantId":{"type":"string"},"type":{"type":"string"},"displayName":{"type":"string"}},"required":["tenantId","type","displayName"]}},"required":["id","type","meta"]},"links":{"type":"object","properties":{"related":{"type":"string"}}}},"required":["data"]}},"required":["tenant"],"additionalProperties":false}},"required":["id","type","attributes","relationships"],"additionalProperties":false}}},"required":["data"],"additionalProperties":false},"BaseResourceAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResourceAttributes","description":"Common timestamps present on all resource attribute objects. `created` is the ISO 8601 date-time when the resource was first created; `updated` is the date-time of the most recent modification.","type":"object","additionalProperties":false,"required":["created","updated"],"properties":{"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}},"RecordLifecycleAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordLifecycleAttributes","description":"Attributes defining a record lifecycle: work type, statuses, and transitions between statuses.","type":"object","required":["workType","statuses","transitions"],"additionalProperties":false,"properties":{"workType":{"$ref":"#/components/schemas/WorkTypes"},"statuses":{"type":"array","description":"The lifecycle statuses","items":{"$ref":"#/components/schemas/RecordLifecycleNodeAttributes"}},"transitions":{"type":"array","description":"The lifecycle transitions between statuses","items":{"$ref":"#/components/schemas/RecordLifecycleEdgeAttributes"}}}},"WorkTypes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"WorkTypes","description":"The classification type of an entertainment work. `Movie` is a standalone feature-length film. `MovieEdit` is a variation of a Movie. `Series` is a TV or streaming series. `Season` is a season within a Series. `Episode` is a single episode within a Season. `EpisodeEdit` is a variation of an Episode. `Compilation` is an editorially curated collection of existing records.","type":"string","enum":["Movie","MovieEdit","Series","Season","Episode","EpisodeEdit","Compilation"]},"RecordLifecycleNodeAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordLifecycleStatusAttributes","description":"A single lifecycle status node: id, label, phase (drafting or published), and optional position.","type":"object","required":["id","label","phase"],"additionalProperties":false,"properties":{"id":{"type":"string","description":"Unique identifier for the status"},"label":{"type":"string","description":"Display label for the status"},"phase":{"type":"string","enum":["drafting","published"],"description":"The phase this status belongs to"},"description":{"type":"string","description":"Optional description of the status"},"positionX":{"type":"number","description":"The x position of the status"},"positionY":{"type":"number","description":"The y position of the status"}}},"RecordLifecycleEdgeAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordLifecycleTransitionAttributes","description":"Attributes of a directed edge in the lifecycle graph, representing a transition between two statuses. `fromStatusId` and `toStatusId` identify the source and target lifecycle status nodes. `direction` indicates whether the transition represents forward progression or a regression in the lifecycle.","type":"object","required":["id","label","fromStatusId","toStatusId","direction"],"additionalProperties":false,"properties":{"id":{"type":"string","description":"Unique identifier for the transition"},"label":{"type":"string","description":"Display label for the transition action"},"fromStatusId":{"type":"string","description":"The source status ID"},"toStatusId":{"type":"string","description":"The target status ID"},"direction":{"type":"string","enum":["forward","backward"],"description":"The direction of the transition based on handles (east→west = forward)"},"description":{"type":"string","description":"Optional description for the transition action"}}}}}}
```

## The RecordLifecycleCreateRequest object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"RecordLifecycleCreateRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordLifecycleCreateRequest","description":"Request body for creating a new record lifecycle. Defines the lifecycle's name, initial status nodes, allowed transitions (edges), and the visual layout positions of nodes in the lifecycle editor.","type":"object","properties":{"meta":{"$ref":"#/components/schemas/WriteRequestMeta"},"data":{"type":"object","properties":{"type":{"type":"string","enum":["recordLifecycles"]},"attributes":{"$ref":"#/components/schemas/RecordLifecycleAttributes"}},"required":["type","attributes"],"additionalProperties":false}},"required":["data"],"additionalProperties":false},"WriteRequestMeta":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IWriteRequestMeta","description":"Optional audit metadata for a write request. `audit.source` is the issuing surface/channel (e.g. studio-web, mcp, api, system); `audit.reason` is a free-text justification. Both are optional and length-capped.","type":"object","additionalProperties":false,"properties":{"audit":{"type":"object","additionalProperties":false,"properties":{"source":{"type":"string","maxLength":64},"reason":{"type":"string","maxLength":256}}}}},"RecordLifecycleAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordLifecycleAttributes","description":"Attributes defining a record lifecycle: work type, statuses, and transitions between statuses.","type":"object","required":["workType","statuses","transitions"],"additionalProperties":false,"properties":{"workType":{"$ref":"#/components/schemas/WorkTypes"},"statuses":{"type":"array","description":"The lifecycle statuses","items":{"$ref":"#/components/schemas/RecordLifecycleNodeAttributes"}},"transitions":{"type":"array","description":"The lifecycle transitions between statuses","items":{"$ref":"#/components/schemas/RecordLifecycleEdgeAttributes"}}}},"WorkTypes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"WorkTypes","description":"The classification type of an entertainment work. `Movie` is a standalone feature-length film. `MovieEdit` is a variation of a Movie. `Series` is a TV or streaming series. `Season` is a season within a Series. `Episode` is a single episode within a Season. `EpisodeEdit` is a variation of an Episode. `Compilation` is an editorially curated collection of existing records.","type":"string","enum":["Movie","MovieEdit","Series","Season","Episode","EpisodeEdit","Compilation"]},"RecordLifecycleNodeAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordLifecycleStatusAttributes","description":"A single lifecycle status node: id, label, phase (drafting or published), and optional position.","type":"object","required":["id","label","phase"],"additionalProperties":false,"properties":{"id":{"type":"string","description":"Unique identifier for the status"},"label":{"type":"string","description":"Display label for the status"},"phase":{"type":"string","enum":["drafting","published"],"description":"The phase this status belongs to"},"description":{"type":"string","description":"Optional description of the status"},"positionX":{"type":"number","description":"The x position of the status"},"positionY":{"type":"number","description":"The y position of the status"}}},"RecordLifecycleEdgeAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordLifecycleTransitionAttributes","description":"Attributes of a directed edge in the lifecycle graph, representing a transition between two statuses. `fromStatusId` and `toStatusId` identify the source and target lifecycle status nodes. `direction` indicates whether the transition represents forward progression or a regression in the lifecycle.","type":"object","required":["id","label","fromStatusId","toStatusId","direction"],"additionalProperties":false,"properties":{"id":{"type":"string","description":"Unique identifier for the transition"},"label":{"type":"string","description":"Display label for the transition action"},"fromStatusId":{"type":"string","description":"The source status ID"},"toStatusId":{"type":"string","description":"The target status ID"},"direction":{"type":"string","enum":["forward","backward"],"description":"The direction of the transition based on handles (east→west = forward)"},"description":{"type":"string","description":"Optional description for the transition action"}}}}}}
```

## The RecordLifecycleFindOneResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"RecordLifecycleFindOneResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordLifecycleFindOneResponse","description":"JSON:API response for fetching a single record lifecycle by ID. Contains the full lifecycle resource including its statuses, transitions, nodes, and edges that define the lifecycle graph.","type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the lifecycle"},"type":{"type":"string","enum":["recordLifecycles"]},"attributes":{"allOf":[{"$ref":"#/components/schemas/BaseResourceAttributes"},{"$ref":"#/components/schemas/RecordLifecycleAttributes"}]},"relationships":{"type":"object","properties":{"tenant":{"description":"The tenant that owns this lifecycle definition.","type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tenants"]}},"required":["id","type"],"additionalProperties":false}},"required":["data"],"additionalProperties":false},"author":{"description":"The user who originally created this lifecycle definition.","type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["users"]},"meta":{"type":"object","properties":{"tenantId":{"type":"string"},"type":{"type":"string"},"displayName":{"type":"string"}},"required":["tenantId","type","displayName"]}},"required":["id","type","meta"]},"links":{"type":"object","properties":{"related":{"type":"string"}}}},"required":["data"]},"updatedBy":{"description":"The user who last modified this lifecycle definition.","type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["users"]},"meta":{"type":"object","properties":{"tenantId":{"type":"string"},"type":{"type":"string"},"displayName":{"type":"string"}},"required":["tenantId","type","displayName"]}},"required":["id","type","meta"]},"links":{"type":"object","properties":{"related":{"type":"string"}}}},"required":["data"]}},"required":["tenant"],"additionalProperties":false}},"required":["id","type","attributes","relationships"],"additionalProperties":false}},"required":["data"],"additionalProperties":false},"BaseResourceAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResourceAttributes","description":"Common timestamps present on all resource attribute objects. `created` is the ISO 8601 date-time when the resource was first created; `updated` is the date-time of the most recent modification.","type":"object","additionalProperties":false,"required":["created","updated"],"properties":{"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}},"RecordLifecycleAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordLifecycleAttributes","description":"Attributes defining a record lifecycle: work type, statuses, and transitions between statuses.","type":"object","required":["workType","statuses","transitions"],"additionalProperties":false,"properties":{"workType":{"$ref":"#/components/schemas/WorkTypes"},"statuses":{"type":"array","description":"The lifecycle statuses","items":{"$ref":"#/components/schemas/RecordLifecycleNodeAttributes"}},"transitions":{"type":"array","description":"The lifecycle transitions between statuses","items":{"$ref":"#/components/schemas/RecordLifecycleEdgeAttributes"}}}},"WorkTypes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"WorkTypes","description":"The classification type of an entertainment work. `Movie` is a standalone feature-length film. `MovieEdit` is a variation of a Movie. `Series` is a TV or streaming series. `Season` is a season within a Series. `Episode` is a single episode within a Season. `EpisodeEdit` is a variation of an Episode. `Compilation` is an editorially curated collection of existing records.","type":"string","enum":["Movie","MovieEdit","Series","Season","Episode","EpisodeEdit","Compilation"]},"RecordLifecycleNodeAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordLifecycleStatusAttributes","description":"A single lifecycle status node: id, label, phase (drafting or published), and optional position.","type":"object","required":["id","label","phase"],"additionalProperties":false,"properties":{"id":{"type":"string","description":"Unique identifier for the status"},"label":{"type":"string","description":"Display label for the status"},"phase":{"type":"string","enum":["drafting","published"],"description":"The phase this status belongs to"},"description":{"type":"string","description":"Optional description of the status"},"positionX":{"type":"number","description":"The x position of the status"},"positionY":{"type":"number","description":"The y position of the status"}}},"RecordLifecycleEdgeAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordLifecycleTransitionAttributes","description":"Attributes of a directed edge in the lifecycle graph, representing a transition between two statuses. `fromStatusId` and `toStatusId` identify the source and target lifecycle status nodes. `direction` indicates whether the transition represents forward progression or a regression in the lifecycle.","type":"object","required":["id","label","fromStatusId","toStatusId","direction"],"additionalProperties":false,"properties":{"id":{"type":"string","description":"Unique identifier for the transition"},"label":{"type":"string","description":"Display label for the transition action"},"fromStatusId":{"type":"string","description":"The source status ID"},"toStatusId":{"type":"string","description":"The target status ID"},"direction":{"type":"string","enum":["forward","backward"],"description":"The direction of the transition based on handles (east→west = forward)"},"description":{"type":"string","description":"Optional description for the transition action"}}}}}}
```

## The RecordLifecycleStatusAttributes object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"RecordLifecycleStatusAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordLifecycleStatusAttributes","description":"A lifecycle status definition: id, label, phase (drafting or published), optional description and position, and in-use metadata.","type":"object","required":["id","label","phase"],"additionalProperties":false,"properties":{"id":{"type":"string","description":"Unique identifier for the status"},"label":{"type":"string","description":"Display label for the status"},"phase":{"type":"string","enum":["drafting","published"],"description":"The phase this status belongs to"},"description":{"type":"string","description":"Optional description for the status"},"positionX":{"type":"number","description":"The x position of the status"},"positionY":{"type":"number","description":"The y position of the status"},"meta":{"type":"object","description":"Metadata about the status","additionalProperties":false,"properties":{"inUse":{"type":"boolean","description":"Whether this status has records associated with it in the studio library"}}}}}}}}
```

## The RecordLifecycleTransitionAttributes object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"RecordLifecycleTransitionAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordLifecycleTransitionAttributes","description":"Attributes of a lifecycle transition (the action that moves a record from one status to another). Defines the transition label shown to users, the source and destination status IDs, and the direction (forward or backward in the lifecycle progression).","type":"object","required":["id","label","fromStatusId","toStatusId","direction"],"additionalProperties":false,"properties":{"id":{"type":"string","description":"Unique identifier for the transition"},"label":{"type":"string","description":"Display label for the transition action"},"fromStatusId":{"type":"string","description":"The source status ID"},"toStatusId":{"type":"string","description":"The target status ID"},"direction":{"type":"string","enum":["forward","backward"],"description":"The direction of the transition based on handles (east→west = forward)"}}}}}}
```

## The RecordLifecycleUpdateRequest object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"RecordLifecycleUpdateRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordLifecycleUpdateRequest","description":"Request body for partially updating an existing record lifecycle. Only the fields included are modified. Supports updating the lifecycle name, status nodes, transitions, and node positions.","type":"object","properties":{"meta":{"$ref":"#/components/schemas/WriteRequestMeta"},"data":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the lifecycle"},"type":{"type":"string","enum":["recordLifecycles"]},"attributes":{"type":"object","additionalProperties":false,"properties":{"statuses":{"type":"array","description":"The lifecycle statuses","items":{"$ref":"#/components/schemas/RecordLifecycleStatusAttributes"}},"transitions":{"type":"array","description":"The lifecycle transitions","items":{"$ref":"#/components/schemas/RecordLifecycleTransitionAttributes"}}}}},"required":["id","type","attributes"],"additionalProperties":false}},"required":["data"],"additionalProperties":false},"WriteRequestMeta":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IWriteRequestMeta","description":"Optional audit metadata for a write request. `audit.source` is the issuing surface/channel (e.g. studio-web, mcp, api, system); `audit.reason` is a free-text justification. Both are optional and length-capped.","type":"object","additionalProperties":false,"properties":{"audit":{"type":"object","additionalProperties":false,"properties":{"source":{"type":"string","maxLength":64},"reason":{"type":"string","maxLength":256}}}}},"RecordLifecycleStatusAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordLifecycleStatusAttributes","description":"A lifecycle status definition: id, label, phase (drafting or published), optional description and position, and in-use metadata.","type":"object","required":["id","label","phase"],"additionalProperties":false,"properties":{"id":{"type":"string","description":"Unique identifier for the status"},"label":{"type":"string","description":"Display label for the status"},"phase":{"type":"string","enum":["drafting","published"],"description":"The phase this status belongs to"},"description":{"type":"string","description":"Optional description for the status"},"positionX":{"type":"number","description":"The x position of the status"},"positionY":{"type":"number","description":"The y position of the status"},"meta":{"type":"object","description":"Metadata about the status","additionalProperties":false,"properties":{"inUse":{"type":"boolean","description":"Whether this status has records associated with it in the studio library"}}}}},"RecordLifecycleTransitionAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordLifecycleTransitionAttributes","description":"Attributes of a lifecycle transition (the action that moves a record from one status to another). Defines the transition label shown to users, the source and destination status IDs, and the direction (forward or backward in the lifecycle progression).","type":"object","required":["id","label","fromStatusId","toStatusId","direction"],"additionalProperties":false,"properties":{"id":{"type":"string","description":"Unique identifier for the transition"},"label":{"type":"string","description":"Display label for the transition action"},"fromStatusId":{"type":"string","description":"The source status ID"},"toStatusId":{"type":"string","description":"The target status ID"},"direction":{"type":"string","enum":["forward","backward"],"description":"The direction of the transition based on handles (east→west = forward)"}}}}}}
```

## The IExternalDataFieldItem object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"IExternalDataFieldItem":{"type":"object","description":"One external field resource","properties":{"type":{"type":"string","enum":["externalSynopses","externalTitles","externalPrimaryTitle","externalReleaseYear","externalReleaseDate","externalRunLength","externalCountryOfOrigin","externalPrimarySpokenLanguage","externalOriginalLanguage","externalGenre","externalKeyword"],"description":"Discriminator for item shape"},"id":{"type":"string","description":"Stable compound id: recordId:provider:itemKey"},"attributes":{"type":"object","description":"Item fields (varies by type)","properties":{"field":{"type":"string","enum":["synopses","titles","primaryTitle","releaseYear","releaseDate","runLength","countriesOfOrigin","primarySpokenLanguage","originalLanguage","genres","keywords"],"description":"Field group this item belongs to"},"value":{"type":"string","description":"Primary value for this item (title text, synopsis body, year, date, duration, language code, etc.)"},"language":{"type":"string","description":"Locale / language tag (present on synopses and titles)"},"source":{"type":"string","description":"Provider (e.g. Origin)"},"attribution":{"type":"string","description":"Attribution / credit for the source value"},"synopsisType":{"type":"string","description":"Synopsis kind (e.g. short, long, log line)"},"titleType":{"type":"string","description":"Title kind (e.g. primary, alternative)"},"country":{"type":"string","description":"ISO 3166-1 alpha-2 country code"},"characterCount":{"type":"integer","description":"Character length of the value for UI hints"},"key":{"type":"string","description":"Sub-key disambiguating multi-valued items"}},"required":["field","source"],"additionalProperties":false}},"required":["type","id","attributes"],"additionalProperties":false}}}}
```

## The ExternalDataFieldsFindManyResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"ExternalDataFieldsFindManyResponse":{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"IExternalDataFieldsFindManyResponse","title":"IExternalDataFieldsFindManyResponse","description":"JSON:API 1.1 document for external field data from a provider (e.g., Origin). Primary data is a flat collection of typed field resources.","type":"object","properties":{"data":{"type":"array","description":"Flat collection of external field resources for this record + provider","items":{"$ref":"#/components/schemas/IExternalDataFieldItem"}},"meta":{"type":"object","description":"Document-level meta for the external data request","properties":{"total":{"type":"integer","description":"Total number of field items returned"},"provider":{"type":"string","enum":["OriginNexus","IMDB","EIDR","Gracenote"],"description":"Provider identifier"},"availableLocales":{"type":"array","items":{"type":"string"},"description":"Locale codes that have data in at least one external source (synopses or titles)"}},"required":["total","provider"]},"jsonapi":{"type":"object","properties":{"version":{"type":"string","description":"JSON:API version"}},"required":["version"]},"links":{"type":"object","description":"JSON:API document-level links"},"included":{"type":"array","description":"JSON:API sideloaded resources","items":{"type":"object"}}},"required":["data","meta","jsonapi"],"$defs":{"IExternalDataFieldItem":{"type":"object","description":"One external field resource","properties":{"type":{"type":"string","enum":["externalSynopses","externalTitles","externalPrimaryTitle","externalReleaseYear","externalReleaseDate","externalRunLength","externalCountryOfOrigin","externalPrimarySpokenLanguage","externalOriginalLanguage","externalGenre","externalKeyword"],"description":"Discriminator for item shape"},"id":{"type":"string","description":"Stable compound id: recordId:provider:itemKey"},"attributes":{"type":"object","description":"Item fields (varies by type)","properties":{"field":{"type":"string","enum":["synopses","titles","primaryTitle","releaseYear","releaseDate","runLength","countriesOfOrigin","primarySpokenLanguage","originalLanguage","genres","keywords"],"description":"Field group this item belongs to"},"value":{"type":"string","description":"Primary value for this item (title text, synopsis body, year, date, duration, language code, etc.)"},"language":{"type":"string","description":"Locale / language tag (present on synopses and titles)"},"source":{"type":"string","description":"Provider (e.g. Origin)"},"attribution":{"type":"string","description":"Attribution / credit for the source value"},"synopsisType":{"type":"string","description":"Synopsis kind (e.g. short, long, log line)"},"titleType":{"type":"string","description":"Title kind (e.g. primary, alternative)"},"country":{"type":"string","description":"ISO 3166-1 alpha-2 country code"},"characterCount":{"type":"integer","description":"Character length of the value for UI hints"},"key":{"type":"string","description":"Sub-key disambiguating multi-valued items"}},"required":["field","source"],"additionalProperties":false}},"required":["type","id","attributes"],"additionalProperties":false}}},"IExternalDataFieldItem":{"type":"object","description":"One external field resource","properties":{"type":{"type":"string","enum":["externalSynopses","externalTitles","externalPrimaryTitle","externalReleaseYear","externalReleaseDate","externalRunLength","externalCountryOfOrigin","externalPrimarySpokenLanguage","externalOriginalLanguage","externalGenre","externalKeyword"],"description":"Discriminator for item shape"},"id":{"type":"string","description":"Stable compound id: recordId:provider:itemKey"},"attributes":{"type":"object","description":"Item fields (varies by type)","properties":{"field":{"type":"string","enum":["synopses","titles","primaryTitle","releaseYear","releaseDate","runLength","countriesOfOrigin","primarySpokenLanguage","originalLanguage","genres","keywords"],"description":"Field group this item belongs to"},"value":{"type":"string","description":"Primary value for this item (title text, synopsis body, year, date, duration, language code, etc.)"},"language":{"type":"string","description":"Locale / language tag (present on synopses and titles)"},"source":{"type":"string","description":"Provider (e.g. Origin)"},"attribution":{"type":"string","description":"Attribution / credit for the source value"},"synopsisType":{"type":"string","description":"Synopsis kind (e.g. short, long, log line)"},"titleType":{"type":"string","description":"Title kind (e.g. primary, alternative)"},"country":{"type":"string","description":"ISO 3166-1 alpha-2 country code"},"characterCount":{"type":"integer","description":"Character length of the value for UI hints"},"key":{"type":"string","description":"Sub-key disambiguating multi-valued items"}},"required":["field","source"],"additionalProperties":false}},"required":["type","id","attributes"],"additionalProperties":false}}}}
```

## The RecordAddSecurityTagsRelationshipRequest object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"RecordAddSecurityTagsRelationshipRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordAddSecurityTagsRelationshipRequest","description":"Request body for adding security tags to a record relationship","type":"object","required":["data"],"additionalProperties":false,"properties":{"meta":{"$ref":"#/components/schemas/WriteRequestMeta"},"data":{"type":"array","items":{"type":"object","required":["id","type"],"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["securityTags"]}}}}}},"WriteRequestMeta":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IWriteRequestMeta","description":"Optional audit metadata for a write request. `audit.source` is the issuing surface/channel (e.g. studio-web, mcp, api, system); `audit.reason` is a free-text justification. Both are optional and length-capped.","type":"object","additionalProperties":false,"properties":{"audit":{"type":"object","additionalProperties":false,"properties":{"source":{"type":"string","maxLength":64},"reason":{"type":"string","maxLength":256}}}}}}}}
```

## The RecordDeleteSecurityTagsRelationshipRequest object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"RecordDeleteSecurityTagsRelationshipRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRecordDeleteSecurityTagsRelationshipRequest","description":"Request body for removing security tags from a record relationship","type":"object","required":["data"],"additionalProperties":false,"properties":{"meta":{"$ref":"#/components/schemas/WriteRequestMeta"},"data":{"type":"array","items":{"type":"object","required":["id","type"],"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["securityTags"]}}}}}},"WriteRequestMeta":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IWriteRequestMeta","description":"Optional audit metadata for a write request. `audit.source` is the issuing surface/channel (e.g. studio-web, mcp, api, system); `audit.reason` is a free-text justification. Both are optional and length-capped.","type":"object","additionalProperties":false,"properties":{"audit":{"type":"object","additionalProperties":false,"properties":{"source":{"type":"string","maxLength":64},"reason":{"type":"string","maxLength":256}}}}}}}}
```

## The TenantAttributes object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"TenantAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantAttributes","description":"Tenant profile: display name (fullName), key, plan, and optional contact info.","type":"object","additionalProperties":false,"required":["fullName","key","plan"],"properties":{"fullName":{"type":"string","description":"Display name for the tenant (e.g. studio or company name)."},"contactInfo":{"type":"object","description":"Optional contact details for the tenant.","properties":{"email":{"type":"string"},"phone":{"type":"string"},"address":{"type":"string"}},"additionalProperties":false},"key":{"type":"string","description":"Unique key identifying the tenant (used in URLs and references)."},"description":{"type":"string"},"policyStoreId":{"type":"string"},"auth0OrganizationId":{"type":"string","description":"The linked identity provider organization ID for this tenant."},"plan":{"type":"string","description":"Subscription plan (e.g. pro, team, enterprise)."},"planQuota":{"type":"object","description":"Resource quotas for the tenant plan.","properties":{"userCount":{"type":"number","description":"Maximum number of users allowed for the tenant."},"recordCount":{"type":"number","description":"Maximum number of records allowed for the tenant."},"deliveryRecordCount":{"type":"number","description":"Maximum number of delivery records allowed for the tenant."},"apiCallCount":{"type":"number","description":"Maximum number of API calls allowed per month."},"mediaStorageBytes":{"type":"number","description":"Maximum media storage in bytes."}},"additionalProperties":false},"audit":{"type":"object","description":"Audit log settings for the tenant.","properties":{"retention":{"type":"object","description":"Retention policy for audit log files.","required":["days"],"properties":{"days":{"type":"number","description":"Number of days to retain audit log files. Must be one of the allowed values: 1, 30, 60, 90, 365, 730, 1095, 1460, 1825, 2555."}},"additionalProperties":false}},"additionalProperties":false,"required":["retention"]}}}}}}
```

## The TenantRelationships object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"TenantRelationships":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantRelationships","description":"JSON:API relationship links for a tenant resource. `author` identifies the user who created the tenant; `updatedBy` identifies the user who last modified it (both with display name and tenant context in meta).","type":"object","properties":{"author":{"type":"object","required":["data"],"additionalProperties":false,"properties":{"data":{"type":"object","required":["id","type","meta"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["users"]},"meta":{"type":"object","required":["tenantId","type","displayName"],"properties":{"tenantId":{"type":"string"},"type":{"type":"string"},"displayName":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}}},"updatedBy":{"type":"object","required":["data"],"additionalProperties":false,"properties":{"data":{"type":"object","required":["id","type","meta"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["users"]},"meta":{"type":"object","required":["tenantId","type","displayName"],"properties":{"tenantId":{"type":"string"},"type":{"type":"string"},"displayName":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}}}},"additionalProperties":false}}}}
```

## The GetTenantResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"GetTenantResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantFindOneResponse","description":"The response for a tenant find one request.","type":"object","additionalProperties":false,"required":["data","links"],"properties":{"data":{"type":"object","required":["id","type","attributes"],"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tenants"]},"attributes":{"allOf":[{"$ref":"#/components/schemas/BaseResourceAttributes"},{"$ref":"#/components/schemas/TenantAttributes","required":["fullName","key","plan"]}]},"relationships":{"$ref":"#/components/schemas/TenantRelationships"}}},"links":{"type":"object","required":["self"],"properties":{"self":{"type":"string"}},"additionalProperties":false}}},"BaseResourceAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResourceAttributes","description":"Common timestamps present on all resource attribute objects. `created` is the ISO 8601 date-time when the resource was first created; `updated` is the date-time of the most recent modification.","type":"object","additionalProperties":false,"required":["created","updated"],"properties":{"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}},"TenantAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantAttributes","description":"Tenant profile: display name (fullName), key, plan, and optional contact info.","type":"object","additionalProperties":false,"required":["fullName","key","plan"],"properties":{"fullName":{"type":"string","description":"Display name for the tenant (e.g. studio or company name)."},"contactInfo":{"type":"object","description":"Optional contact details for the tenant.","properties":{"email":{"type":"string"},"phone":{"type":"string"},"address":{"type":"string"}},"additionalProperties":false},"key":{"type":"string","description":"Unique key identifying the tenant (used in URLs and references)."},"description":{"type":"string"},"policyStoreId":{"type":"string"},"auth0OrganizationId":{"type":"string","description":"The linked identity provider organization ID for this tenant."},"plan":{"type":"string","description":"Subscription plan (e.g. pro, team, enterprise)."},"planQuota":{"type":"object","description":"Resource quotas for the tenant plan.","properties":{"userCount":{"type":"number","description":"Maximum number of users allowed for the tenant."},"recordCount":{"type":"number","description":"Maximum number of records allowed for the tenant."},"deliveryRecordCount":{"type":"number","description":"Maximum number of delivery records allowed for the tenant."},"apiCallCount":{"type":"number","description":"Maximum number of API calls allowed per month."},"mediaStorageBytes":{"type":"number","description":"Maximum media storage in bytes."}},"additionalProperties":false},"audit":{"type":"object","description":"Audit log settings for the tenant.","properties":{"retention":{"type":"object","description":"Retention policy for audit log files.","required":["days"],"properties":{"days":{"type":"number","description":"Number of days to retain audit log files. Must be one of the allowed values: 1, 30, 60, 90, 365, 730, 1095, 1460, 1825, 2555."}},"additionalProperties":false}},"additionalProperties":false,"required":["retention"]}}},"TenantRelationships":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantRelationships","description":"JSON:API relationship links for a tenant resource. `author` identifies the user who created the tenant; `updatedBy` identifies the user who last modified it (both with display name and tenant context in meta).","type":"object","properties":{"author":{"type":"object","required":["data"],"additionalProperties":false,"properties":{"data":{"type":"object","required":["id","type","meta"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["users"]},"meta":{"type":"object","required":["tenantId","type","displayName"],"properties":{"tenantId":{"type":"string"},"type":{"type":"string"},"displayName":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}}},"updatedBy":{"type":"object","required":["data"],"additionalProperties":false,"properties":{"data":{"type":"object","required":["id","type","meta"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["users"]},"meta":{"type":"object","required":["tenantId","type","displayName"],"properties":{"tenantId":{"type":"string"},"type":{"type":"string"},"displayName":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}}}},"additionalProperties":false}}}}
```

## The CreateTenantRequest object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"CreateTenantRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantCreateRequest","description":"Request body to create a tenant. Uses JSON:API format with attributes (fullName, key, plan, etc.).","type":"object","properties":{"meta":{"$ref":"#/components/schemas/WriteRequestMeta"},"data":{"allOf":[{"$ref":"#/components/schemas/BaseCreateRequest"},{"additionalProperties":false,"properties":{"id":{"type":"string"},"attributes":{"type":"object","required":["fullName","contactInfo","key","description","plan","planQuota"],"additionalProperties":false,"properties":{"fullName":{"type":"string"},"contactInfo":{"type":"object","required":["email"],"properties":{"email":{"type":"string"},"phone":{"type":"string"},"address":{"type":"string"}},"additionalProperties":false},"key":{"type":"string"},"description":{"type":"string"},"auth0UserId":{"type":"string","description":"Optional Auth0 user ID to add to the organization. If provided, this user will be added to the tenant's Auth0 organization."},"shouldCreateUsagePlan":{"type":"boolean"},"audit":{"type":"object","description":"Audit log settings for the tenant.","properties":{"retention":{"type":"object","description":"Retention policy for audit log files.","required":["days"],"properties":{"days":{"type":"number","description":"Number of days to retain audit log files. Must be one of: 1, 30, 60, 90, 365, 730, 1095, 1460, 1825, 2555. Defaults to 30 when omitted."}},"additionalProperties":false}},"additionalProperties":false,"required":["retention"]},"organizationId":{"type":"string","description":"Optional Auth0 organization id. When set, the tenant is linked to this pre-provisioned organization (it must exist). When omitted, an Auth0 organization is created with name equal to the tenant key and display_name equal to fullName, unless that organization name is already in use."},"plan":{"type":"string","enum":["pro","team","enterprise"]},"planQuota":{"type":"object","description":"Resource quotas for the tenant plan","required":["userCount","recordCount","deliveryRecordCount","apiCallCount","mediaStorageBytes"],"additionalProperties":false,"properties":{"userCount":{"type":"number","description":"Maximum number of users allowed for the tenant"},"recordCount":{"type":"number","description":"Maximum number of records allowed for the tenant"},"deliveryRecordCount":{"type":"number","description":"Maximum number of delivery records allowed for the tenant"},"apiCallCount":{"type":"number","description":"Maximum number of API calls allowed per month"},"mediaStorageBytes":{"type":"number","description":"Maximum media storage in bytes"}}}}}},"required":["id","attributes"]}]}},"required":["data"],"additionalProperties":false},"WriteRequestMeta":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IWriteRequestMeta","description":"Optional audit metadata for a write request. `audit.source` is the issuing surface/channel (e.g. studio-web, mcp, api, system); `audit.reason` is a free-text justification. Both are optional and length-capped.","type":"object","additionalProperties":false,"properties":{"audit":{"type":"object","additionalProperties":false,"properties":{"source":{"type":"string","maxLength":64},"reason":{"type":"string","maxLength":256}}}}},"BaseCreateRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseCreateRequest","description":"Base JSON:API shape for create requests. The `type` field is required and must match the target resource type. The `id` field is optional; if omitted, the server generates a unique ID for the new resource.","type":"object","additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"type":"string"}},"required":["type"]}}}}
```

## The TenantCreateOneResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"TenantCreateOneResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantCreateOneResponse","description":"The response for a tenant create one request.","type":"object","additionalProperties":false,"required":["data","links"],"properties":{"data":{"type":"object","required":["id","type"],"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tenants"]}}},"links":{"type":"object","required":["self"],"properties":{"self":{"type":"string"}},"additionalProperties":false}}}}}}
```

## The UpdateTenantRequest object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"UpdateTenantRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantUpdateRequest","description":"The request to update a tenant.","type":"object","additionalProperties":false,"required":["data"],"properties":{"meta":{"$ref":"#/components/schemas/WriteRequestMeta"},"data":{"type":"object","additionalProperties":false,"required":["id","type","attributes"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tenants"]},"attributes":{"type":"object","additionalProperties":false,"properties":{"fullName":{"type":"string"},"description":{"type":"string"},"contactInfo":{"type":"object","additionalProperties":false,"properties":{"email":{"type":"string"},"phone":{"type":"string"},"address":{"type":"string"}}},"plan":{"type":"string","enum":["pro","team","enterprise"]},"planQuota":{"type":"object","additionalProperties":false,"properties":{"userCount":{"type":"number"},"recordCount":{"type":"number"},"deliveryRecordCount":{"type":"number"},"apiCallCount":{"type":"number"},"mediaStorageBytes":{"type":"number"}}},"audit":{"type":"object","additionalProperties":false,"required":["retention"],"properties":{"retention":{"type":"object","additionalProperties":false,"required":["days"],"properties":{"days":{"type":"number"}}}}}}}}}}},"WriteRequestMeta":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IWriteRequestMeta","description":"Optional audit metadata for a write request. `audit.source` is the issuing surface/channel (e.g. studio-web, mcp, api, system); `audit.reason` is a free-text justification. Both are optional and length-capped.","type":"object","additionalProperties":false,"properties":{"audit":{"type":"object","additionalProperties":false,"properties":{"source":{"type":"string","maxLength":64},"reason":{"type":"string","maxLength":256}}}}}}}}
```

## The TenantFeatureAttributes object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"TenantFeatureAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantFeatureAttributes","description":"Effective state of one entitlement-governed feature for one tenant. `granted` is decided by the tenant's plan and `enabled` by the tenant's own admins; `effective` is the conjunction and is the only value UI and handlers should gate on. Features the plan does not grant are still returned, flagged rather than omitted, so they can be surfaced as an upsell.","type":"object","additionalProperties":false,"required":["granted","enabled","effective"],"properties":{"granted":{"type":"boolean","description":"The tenant's plan offers this feature."},"enabled":{"type":"boolean","description":"The tenant has activated this feature. Activation is permanent in v1: there is no deactivation path."},"effective":{"type":"boolean","description":"Both granted and enabled. The value to gate behaviour on."},"availableOn":{"type":"array","items":{"type":"string","enum":["pro","team","enterprise"]},"description":"Plans that offer this feature. Omitted when every plan offers it. An empty array means the feature has been withdrawn from all plans."},"created":{"type":"string","format":"date-time","description":"When the tenant activated the feature. Absent until activation."},"updated":{"type":"string","format":"date-time","description":"When the activation was last modified. Absent until activation."}}}}}}
```

## The TenantFeatureResource object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"TenantFeatureResource":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantFeatureResource","description":"A JSON:API resource object for one entitlement-governed feature. The resource `id` is the feature's registry key.","type":"object","additionalProperties":false,"required":["id","type","attributes"],"properties":{"id":{"type":"string","description":"The feature's registry key."},"type":{"type":"string","enum":["features"]},"attributes":{"$ref":"#/components/schemas/TenantFeatureAttributes"},"relationships":{"type":"object","additionalProperties":false,"properties":{"author":{"type":"object","additionalProperties":false,"required":["data"],"description":"Who activated the feature. Absent until activation.","properties":{"data":{"type":"object","additionalProperties":false,"required":["id","type","meta"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["users"]},"meta":{"type":"object","additionalProperties":false,"required":["tenantId","type","displayName"],"properties":{"tenantId":{"type":"string"},"type":{"type":"string"},"displayName":{"type":"string"}}}}},"links":{"type":"object","additionalProperties":false,"properties":{"related":{"type":"string"}}}}}}},"links":{"type":"object","additionalProperties":false,"properties":{"self":{"type":"string"}}}}},"TenantFeatureAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantFeatureAttributes","description":"Effective state of one entitlement-governed feature for one tenant. `granted` is decided by the tenant's plan and `enabled` by the tenant's own admins; `effective` is the conjunction and is the only value UI and handlers should gate on. Features the plan does not grant are still returned, flagged rather than omitted, so they can be surfaced as an upsell.","type":"object","additionalProperties":false,"required":["granted","enabled","effective"],"properties":{"granted":{"type":"boolean","description":"The tenant's plan offers this feature."},"enabled":{"type":"boolean","description":"The tenant has activated this feature. Activation is permanent in v1: there is no deactivation path."},"effective":{"type":"boolean","description":"Both granted and enabled. The value to gate behaviour on."},"availableOn":{"type":"array","items":{"type":"string","enum":["pro","team","enterprise"]},"description":"Plans that offer this feature. Omitted when every plan offers it. An empty array means the feature has been withdrawn from all plans."},"created":{"type":"string","format":"date-time","description":"When the tenant activated the feature. Absent until activation."},"updated":{"type":"string","format":"date-time","description":"When the activation was last modified. Absent until activation."}}}}}}
```

## The TenantFeatureFindManyResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"TenantFeatureFindManyResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantFeatureFindManyResponse","description":"The response for a tenant feature find many request. Returns every registered feature, including those the tenant's plan does not grant. An empty array means no feature is governed by entitlements yet.","type":"object","additionalProperties":false,"required":["data","links"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/TenantFeatureResource"}},"links":{"type":"object","additionalProperties":false,"required":["self"],"properties":{"self":{"type":"string"}}}}},"TenantFeatureResource":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantFeatureResource","description":"A JSON:API resource object for one entitlement-governed feature. The resource `id` is the feature's registry key.","type":"object","additionalProperties":false,"required":["id","type","attributes"],"properties":{"id":{"type":"string","description":"The feature's registry key."},"type":{"type":"string","enum":["features"]},"attributes":{"$ref":"#/components/schemas/TenantFeatureAttributes"},"relationships":{"type":"object","additionalProperties":false,"properties":{"author":{"type":"object","additionalProperties":false,"required":["data"],"description":"Who activated the feature. Absent until activation.","properties":{"data":{"type":"object","additionalProperties":false,"required":["id","type","meta"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["users"]},"meta":{"type":"object","additionalProperties":false,"required":["tenantId","type","displayName"],"properties":{"tenantId":{"type":"string"},"type":{"type":"string"},"displayName":{"type":"string"}}}}},"links":{"type":"object","additionalProperties":false,"properties":{"related":{"type":"string"}}}}}}},"links":{"type":"object","additionalProperties":false,"properties":{"self":{"type":"string"}}}}},"TenantFeatureAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantFeatureAttributes","description":"Effective state of one entitlement-governed feature for one tenant. `granted` is decided by the tenant's plan and `enabled` by the tenant's own admins; `effective` is the conjunction and is the only value UI and handlers should gate on. Features the plan does not grant are still returned, flagged rather than omitted, so they can be surfaced as an upsell.","type":"object","additionalProperties":false,"required":["granted","enabled","effective"],"properties":{"granted":{"type":"boolean","description":"The tenant's plan offers this feature."},"enabled":{"type":"boolean","description":"The tenant has activated this feature. Activation is permanent in v1: there is no deactivation path."},"effective":{"type":"boolean","description":"Both granted and enabled. The value to gate behaviour on."},"availableOn":{"type":"array","items":{"type":"string","enum":["pro","team","enterprise"]},"description":"Plans that offer this feature. Omitted when every plan offers it. An empty array means the feature has been withdrawn from all plans."},"created":{"type":"string","format":"date-time","description":"When the tenant activated the feature. Absent until activation."},"updated":{"type":"string","format":"date-time","description":"When the activation was last modified. Absent until activation."}}}}}}
```

## The UpdateTenantFeatureRequest object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"UpdateTenantFeatureRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IUpdateTenantFeatureRequest","description":"The request to activate a feature for a tenant. Activation is forward-only in v1, so `enabled` may only be `true`; sending `false` is rejected by validation rather than silently ignored. Deactivation is a v2 concern, at which point the constraint on `enabled` is relaxed.","type":"object","additionalProperties":false,"required":["data"],"properties":{"meta":{"$ref":"#/components/schemas/WriteRequestMeta"},"data":{"type":"object","additionalProperties":false,"required":["type","attributes"],"properties":{"type":{"type":"string","enum":["features"]},"attributes":{"type":"object","additionalProperties":false,"required":["enabled"],"properties":{"enabled":{"type":"boolean","const":true,"description":"Must be true. Activation cannot be undone in v1."}}}}}}},"WriteRequestMeta":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IWriteRequestMeta","description":"Optional audit metadata for a write request. `audit.source` is the issuing surface/channel (e.g. studio-web, mcp, api, system); `audit.reason` is a free-text justification. Both are optional and length-capped.","type":"object","additionalProperties":false,"properties":{"audit":{"type":"object","additionalProperties":false,"properties":{"source":{"type":"string","maxLength":64},"reason":{"type":"string","maxLength":256}}}}}}}}
```

## The TenantFeatureFindOneResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"TenantFeatureFindOneResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantFeatureFindOneResponse","description":"The response for a single tenant feature, returned after activation.","type":"object","additionalProperties":false,"required":["data","links"],"properties":{"data":{"$ref":"#/components/schemas/TenantFeatureResource"},"links":{"type":"object","additionalProperties":false,"required":["self"],"properties":{"self":{"type":"string"}}}}},"TenantFeatureResource":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantFeatureResource","description":"A JSON:API resource object for one entitlement-governed feature. The resource `id` is the feature's registry key.","type":"object","additionalProperties":false,"required":["id","type","attributes"],"properties":{"id":{"type":"string","description":"The feature's registry key."},"type":{"type":"string","enum":["features"]},"attributes":{"$ref":"#/components/schemas/TenantFeatureAttributes"},"relationships":{"type":"object","additionalProperties":false,"properties":{"author":{"type":"object","additionalProperties":false,"required":["data"],"description":"Who activated the feature. Absent until activation.","properties":{"data":{"type":"object","additionalProperties":false,"required":["id","type","meta"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["users"]},"meta":{"type":"object","additionalProperties":false,"required":["tenantId","type","displayName"],"properties":{"tenantId":{"type":"string"},"type":{"type":"string"},"displayName":{"type":"string"}}}}},"links":{"type":"object","additionalProperties":false,"properties":{"related":{"type":"string"}}}}}}},"links":{"type":"object","additionalProperties":false,"properties":{"self":{"type":"string"}}}}},"TenantFeatureAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantFeatureAttributes","description":"Effective state of one entitlement-governed feature for one tenant. `granted` is decided by the tenant's plan and `enabled` by the tenant's own admins; `effective` is the conjunction and is the only value UI and handlers should gate on. Features the plan does not grant are still returned, flagged rather than omitted, so they can be surfaced as an upsell.","type":"object","additionalProperties":false,"required":["granted","enabled","effective"],"properties":{"granted":{"type":"boolean","description":"The tenant's plan offers this feature."},"enabled":{"type":"boolean","description":"The tenant has activated this feature. Activation is permanent in v1: there is no deactivation path."},"effective":{"type":"boolean","description":"Both granted and enabled. The value to gate behaviour on."},"availableOn":{"type":"array","items":{"type":"string","enum":["pro","team","enterprise"]},"description":"Plans that offer this feature. Omitted when every plan offers it. An empty array means the feature has been withdrawn from all plans."},"created":{"type":"string","format":"date-time","description":"When the tenant activated the feature. Absent until activation."},"updated":{"type":"string","format":"date-time","description":"When the activation was last modified. Absent until activation."}}}}}}
```

## The TenantFeatureActivationAttributes object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"TenantFeatureActivationAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantFeatureActivationAttributes","description":"One tenant's row in the internal portfolio readout: who they are, what they pay for, and the effective state of every registered feature.","type":"object","additionalProperties":false,"required":["tenantKey","plan","features"],"properties":{"tenantKey":{"type":"string","description":"The tenant's human-readable key."},"plan":{"type":"string","enum":["pro","team","enterprise"],"description":"The tenant's plan, which decides what is granted."},"features":{"type":"array","description":"Effective state per registered feature for this tenant.","items":{"type":"object","additionalProperties":false,"required":["featureKey","granted","enabled","effective"],"properties":{"featureKey":{"type":"string"},"granted":{"type":"boolean"},"enabled":{"type":"boolean"},"effective":{"type":"boolean"},"activatedAt":{"type":"string","format":"date-time","description":"When this tenant activated the feature. Absent until activation."}}}}}}}}}
```

## The TenantFeatureActivationFindManyResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"TenantFeatureActivationFindManyResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantFeatureActivationFindManyResponse","description":"Cross-tenant activation state for every registered feature, for Fabric staff only. One resource per tenant, whose `id` is the tenant id. Used for the internal portfolio readout of which clients have activated what.","type":"object","additionalProperties":false,"required":["data","links"],"properties":{"data":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["id","type","attributes"],"properties":{"id":{"type":"string","description":"The tenant id."},"type":{"type":"string","enum":["tenantFeatureActivations"]},"attributes":{"$ref":"#/components/schemas/TenantFeatureActivationAttributes"}}}},"links":{"type":"object","additionalProperties":false,"required":["self"],"properties":{"self":{"type":"string"}}}}},"TenantFeatureActivationAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantFeatureActivationAttributes","description":"One tenant's row in the internal portfolio readout: who they are, what they pay for, and the effective state of every registered feature.","type":"object","additionalProperties":false,"required":["tenantKey","plan","features"],"properties":{"tenantKey":{"type":"string","description":"The tenant's human-readable key."},"plan":{"type":"string","enum":["pro","team","enterprise"],"description":"The tenant's plan, which decides what is granted."},"features":{"type":"array","description":"Effective state per registered feature for this tenant.","items":{"type":"object","additionalProperties":false,"required":["featureKey","granted","enabled","effective"],"properties":{"featureKey":{"type":"string"},"granted":{"type":"boolean"},"enabled":{"type":"boolean"},"effective":{"type":"boolean"},"activatedAt":{"type":"string","format":"date-time","description":"When this tenant activated the feature. Absent until activation."}}}}}}}}}
```

## The PolicyTemplateAttributes object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"PolicyTemplateAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IPolicyTemplateAttributes","description":"The attributes for a policy template.","additionalProperties":false,"required":["resourceType","name","label","actions"],"type":"object","properties":{"resourceType":{"type":"string","enum":["record","contributor","delivery","bulkActions"],"description":"The resource type this template targets"},"name":{"type":"string","description":"The name of the policy template, cannot be changed after creation"},"label":{"type":"string","description":"The display label for the policy template"},"description":{"type":"string","description":"The description of the policy template"},"actions":{"type":"array","description":"The actions allowed by this policy template","items":{"type":"string"}},"locales":{"type":"array","items":{"type":"string"}},"workTypeEntityAccess":{"type":"object","additionalProperties":{"type":"object","properties":{"creditsAccess":{"type":"boolean"},"mediaAccess":{"type":"array","items":{"type":"string"}},"externalDataAccess":{"type":"boolean"}},"additionalProperties":false}},"workTypes":{"type":"array","items":{"$ref":"#/components/schemas/WorkTypes"}},"lifecyclePhases":{"type":"array","items":{"type":"string","enum":["drafting","published"]}},"workTypeLifecycleAccess":{"type":"object","description":"Per-work-type lifecycle status access, keyed by work type. Requires the statusBasedPermissions entitlement. Its presence makes the policy status-based; lifecyclePhases is then derived from these statuses. Status ids are not unique across work types, which is why this is keyed by work type.","additionalProperties":{"type":"array","items":{"type":"string"}}},"sectionIds":{"type":"array","items":{"type":"string"}},"createSources":{"type":"array","items":{"type":"string","enum":["custom","origin"]}},"updateTypes":{"type":"array","items":{"type":"string","enum":["regular","publish"]}}}},"WorkTypes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"WorkTypes","description":"The classification type of an entertainment work. `Movie` is a standalone feature-length film. `MovieEdit` is a variation of a Movie. `Series` is a TV or streaming series. `Season` is a season within a Series. `Episode` is a single episode within a Season. `EpisodeEdit` is a variation of an Episode. `Compilation` is an editorially curated collection of existing records.","type":"string","enum":["Movie","MovieEdit","Series","Season","Episode","EpisodeEdit","Compilation"]}}}}
```

## The PolicyTemplateRelationships object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"PolicyTemplateRelationships":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","title":"IPolicyTemplateRelationships","properties":{"tenant":{"$ref":"#/components/schemas/TenantRelationship"}},"required":["tenant"],"additionalProperties":false},"TenantRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantRelationship","description":"A relationship to a tenant","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tenants"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data","links"],"additionalProperties":false},"LinksRelated":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILinks","description":"A JSON:API links object with an absolute or relative 'related' link","type":"object","required":["related"],"properties":{"related":{"type":"string"}},"additionalProperties":false}}}}
```

## The PolicyTemplateFindManyResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"PolicyTemplateFindManyResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IPolicyTemplateFindManyResponse","description":"The response for a policy template find many request.","additionalProperties":false,"required":["data","links"],"type":"object","properties":{"data":{"type":"array","items":{"type":"object","required":["id","type","attributes","relationships"],"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["policyTemplates"]},"attributes":{"allOf":[{"$ref":"#/components/schemas/BaseResourceAttributes"},{"$ref":"#/components/schemas/PolicyTemplateAttributes"}]},"relationships":{"$ref":"#/components/schemas/PolicyTemplateRelationships"},"meta":{"type":"object","properties":{"tenantId":{"type":"string","description":"The tenant ID"}},"required":["tenantId"],"additionalProperties":false}}}},"links":{"type":"object","required":["self"],"properties":{"self":{"type":"string"}},"additionalProperties":false}}},"BaseResourceAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResourceAttributes","description":"Common timestamps present on all resource attribute objects. `created` is the ISO 8601 date-time when the resource was first created; `updated` is the date-time of the most recent modification.","type":"object","additionalProperties":false,"required":["created","updated"],"properties":{"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}},"PolicyTemplateAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IPolicyTemplateAttributes","description":"The attributes for a policy template.","additionalProperties":false,"required":["resourceType","name","label","actions"],"type":"object","properties":{"resourceType":{"type":"string","enum":["record","contributor","delivery","bulkActions"],"description":"The resource type this template targets"},"name":{"type":"string","description":"The name of the policy template, cannot be changed after creation"},"label":{"type":"string","description":"The display label for the policy template"},"description":{"type":"string","description":"The description of the policy template"},"actions":{"type":"array","description":"The actions allowed by this policy template","items":{"type":"string"}},"locales":{"type":"array","items":{"type":"string"}},"workTypeEntityAccess":{"type":"object","additionalProperties":{"type":"object","properties":{"creditsAccess":{"type":"boolean"},"mediaAccess":{"type":"array","items":{"type":"string"}},"externalDataAccess":{"type":"boolean"}},"additionalProperties":false}},"workTypes":{"type":"array","items":{"$ref":"#/components/schemas/WorkTypes"}},"lifecyclePhases":{"type":"array","items":{"type":"string","enum":["drafting","published"]}},"workTypeLifecycleAccess":{"type":"object","description":"Per-work-type lifecycle status access, keyed by work type. Requires the statusBasedPermissions entitlement. Its presence makes the policy status-based; lifecyclePhases is then derived from these statuses. Status ids are not unique across work types, which is why this is keyed by work type.","additionalProperties":{"type":"array","items":{"type":"string"}}},"sectionIds":{"type":"array","items":{"type":"string"}},"createSources":{"type":"array","items":{"type":"string","enum":["custom","origin"]}},"updateTypes":{"type":"array","items":{"type":"string","enum":["regular","publish"]}}}},"WorkTypes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"WorkTypes","description":"The classification type of an entertainment work. `Movie` is a standalone feature-length film. `MovieEdit` is a variation of a Movie. `Series` is a TV or streaming series. `Season` is a season within a Series. `Episode` is a single episode within a Season. `EpisodeEdit` is a variation of an Episode. `Compilation` is an editorially curated collection of existing records.","type":"string","enum":["Movie","MovieEdit","Series","Season","Episode","EpisodeEdit","Compilation"]},"PolicyTemplateRelationships":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","title":"IPolicyTemplateRelationships","properties":{"tenant":{"$ref":"#/components/schemas/TenantRelationship"}},"required":["tenant"],"additionalProperties":false},"TenantRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantRelationship","description":"A relationship to a tenant","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tenants"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data","links"],"additionalProperties":false},"LinksRelated":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILinks","description":"A JSON:API links object with an absolute or relative 'related' link","type":"object","required":["related"],"properties":{"related":{"type":"string"}},"additionalProperties":false}}}}
```

## The CreatePolicyTemplateRequest object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"CreatePolicyTemplateRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IPolicyTemplateCreateRequest","description":"The request for creating a policy template.","type":"object","additionalProperties":false,"required":["data"],"properties":{"meta":{"$ref":"#/components/schemas/WriteRequestMeta"},"data":{"type":"object","additionalProperties":false,"required":["type","attributes"],"properties":{"type":{"type":"string","enum":["policyTemplates"]},"attributes":{"$ref":"#/components/schemas/PolicyTemplateAttributes"}}}}},"WriteRequestMeta":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IWriteRequestMeta","description":"Optional audit metadata for a write request. `audit.source` is the issuing surface/channel (e.g. studio-web, mcp, api, system); `audit.reason` is a free-text justification. Both are optional and length-capped.","type":"object","additionalProperties":false,"properties":{"audit":{"type":"object","additionalProperties":false,"properties":{"source":{"type":"string","maxLength":64},"reason":{"type":"string","maxLength":256}}}}},"PolicyTemplateAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IPolicyTemplateAttributes","description":"The attributes for a policy template.","additionalProperties":false,"required":["resourceType","name","label","actions"],"type":"object","properties":{"resourceType":{"type":"string","enum":["record","contributor","delivery","bulkActions"],"description":"The resource type this template targets"},"name":{"type":"string","description":"The name of the policy template, cannot be changed after creation"},"label":{"type":"string","description":"The display label for the policy template"},"description":{"type":"string","description":"The description of the policy template"},"actions":{"type":"array","description":"The actions allowed by this policy template","items":{"type":"string"}},"locales":{"type":"array","items":{"type":"string"}},"workTypeEntityAccess":{"type":"object","additionalProperties":{"type":"object","properties":{"creditsAccess":{"type":"boolean"},"mediaAccess":{"type":"array","items":{"type":"string"}},"externalDataAccess":{"type":"boolean"}},"additionalProperties":false}},"workTypes":{"type":"array","items":{"$ref":"#/components/schemas/WorkTypes"}},"lifecyclePhases":{"type":"array","items":{"type":"string","enum":["drafting","published"]}},"workTypeLifecycleAccess":{"type":"object","description":"Per-work-type lifecycle status access, keyed by work type. Requires the statusBasedPermissions entitlement. Its presence makes the policy status-based; lifecyclePhases is then derived from these statuses. Status ids are not unique across work types, which is why this is keyed by work type.","additionalProperties":{"type":"array","items":{"type":"string"}}},"sectionIds":{"type":"array","items":{"type":"string"}},"createSources":{"type":"array","items":{"type":"string","enum":["custom","origin"]}},"updateTypes":{"type":"array","items":{"type":"string","enum":["regular","publish"]}}}},"WorkTypes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"WorkTypes","description":"The classification type of an entertainment work. `Movie` is a standalone feature-length film. `MovieEdit` is a variation of a Movie. `Series` is a TV or streaming series. `Season` is a season within a Series. `Episode` is a single episode within a Season. `EpisodeEdit` is a variation of an Episode. `Compilation` is an editorially curated collection of existing records.","type":"string","enum":["Movie","MovieEdit","Series","Season","Episode","EpisodeEdit","Compilation"]}}}}
```

## The PolicyTemplateCreateOneResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"PolicyTemplateCreateOneResponse":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","title":"IPolicyTemplateCreateOneResponse","additionalProperties":false,"required":["data","links"],"properties":{"data":{"type":"object","required":["id","type","attributes"],"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["policyTemplates"]},"attributes":{"allOf":[{"$ref":"#/components/schemas/BaseResourceAttributes"},{"$ref":"#/components/schemas/PolicyTemplateAttributes"}]},"relationships":{"$ref":"#/components/schemas/PolicyTemplateRelationships"},"meta":{"type":"object","properties":{"tenantId":{"type":"string","description":"The tenant ID"}},"required":["tenantId"],"additionalProperties":false}}},"links":{"type":"object","required":["self"],"properties":{"self":{"type":"string"}},"additionalProperties":false}}},"BaseResourceAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResourceAttributes","description":"Common timestamps present on all resource attribute objects. `created` is the ISO 8601 date-time when the resource was first created; `updated` is the date-time of the most recent modification.","type":"object","additionalProperties":false,"required":["created","updated"],"properties":{"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}},"PolicyTemplateAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IPolicyTemplateAttributes","description":"The attributes for a policy template.","additionalProperties":false,"required":["resourceType","name","label","actions"],"type":"object","properties":{"resourceType":{"type":"string","enum":["record","contributor","delivery","bulkActions"],"description":"The resource type this template targets"},"name":{"type":"string","description":"The name of the policy template, cannot be changed after creation"},"label":{"type":"string","description":"The display label for the policy template"},"description":{"type":"string","description":"The description of the policy template"},"actions":{"type":"array","description":"The actions allowed by this policy template","items":{"type":"string"}},"locales":{"type":"array","items":{"type":"string"}},"workTypeEntityAccess":{"type":"object","additionalProperties":{"type":"object","properties":{"creditsAccess":{"type":"boolean"},"mediaAccess":{"type":"array","items":{"type":"string"}},"externalDataAccess":{"type":"boolean"}},"additionalProperties":false}},"workTypes":{"type":"array","items":{"$ref":"#/components/schemas/WorkTypes"}},"lifecyclePhases":{"type":"array","items":{"type":"string","enum":["drafting","published"]}},"workTypeLifecycleAccess":{"type":"object","description":"Per-work-type lifecycle status access, keyed by work type. Requires the statusBasedPermissions entitlement. Its presence makes the policy status-based; lifecyclePhases is then derived from these statuses. Status ids are not unique across work types, which is why this is keyed by work type.","additionalProperties":{"type":"array","items":{"type":"string"}}},"sectionIds":{"type":"array","items":{"type":"string"}},"createSources":{"type":"array","items":{"type":"string","enum":["custom","origin"]}},"updateTypes":{"type":"array","items":{"type":"string","enum":["regular","publish"]}}}},"WorkTypes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"WorkTypes","description":"The classification type of an entertainment work. `Movie` is a standalone feature-length film. `MovieEdit` is a variation of a Movie. `Series` is a TV or streaming series. `Season` is a season within a Series. `Episode` is a single episode within a Season. `EpisodeEdit` is a variation of an Episode. `Compilation` is an editorially curated collection of existing records.","type":"string","enum":["Movie","MovieEdit","Series","Season","Episode","EpisodeEdit","Compilation"]},"PolicyTemplateRelationships":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","title":"IPolicyTemplateRelationships","properties":{"tenant":{"$ref":"#/components/schemas/TenantRelationship"}},"required":["tenant"],"additionalProperties":false},"TenantRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantRelationship","description":"A relationship to a tenant","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tenants"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data","links"],"additionalProperties":false},"LinksRelated":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILinks","description":"A JSON:API links object with an absolute or relative 'related' link","type":"object","required":["related"],"properties":{"related":{"type":"string"}},"additionalProperties":false}}}}
```

## The PolicyTemplateFindOneResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"PolicyTemplateFindOneResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IPolicyTemplateFindOneResponse","description":"The response for a policy template find one request.","type":"object","additionalProperties":false,"required":["data","links"],"properties":{"data":{"type":"object","required":["id","type","attributes","relationships"],"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["policyTemplates"]},"attributes":{"allOf":[{"$ref":"#/components/schemas/BaseResourceAttributes"},{"$ref":"#/components/schemas/PolicyTemplateAttributes"}]},"relationships":{"$ref":"#/components/schemas/PolicyTemplateRelationships"},"meta":{"type":"object","properties":{"tenantId":{"type":"string","description":"The tenant ID"},"assignmentsCount":{"type":"number","description":"Number of active assignments for this template"}},"required":["tenantId"],"additionalProperties":false}}},"links":{"type":"object","required":["self"],"properties":{"self":{"type":"string"}},"additionalProperties":false}}},"BaseResourceAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResourceAttributes","description":"Common timestamps present on all resource attribute objects. `created` is the ISO 8601 date-time when the resource was first created; `updated` is the date-time of the most recent modification.","type":"object","additionalProperties":false,"required":["created","updated"],"properties":{"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}},"PolicyTemplateAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IPolicyTemplateAttributes","description":"The attributes for a policy template.","additionalProperties":false,"required":["resourceType","name","label","actions"],"type":"object","properties":{"resourceType":{"type":"string","enum":["record","contributor","delivery","bulkActions"],"description":"The resource type this template targets"},"name":{"type":"string","description":"The name of the policy template, cannot be changed after creation"},"label":{"type":"string","description":"The display label for the policy template"},"description":{"type":"string","description":"The description of the policy template"},"actions":{"type":"array","description":"The actions allowed by this policy template","items":{"type":"string"}},"locales":{"type":"array","items":{"type":"string"}},"workTypeEntityAccess":{"type":"object","additionalProperties":{"type":"object","properties":{"creditsAccess":{"type":"boolean"},"mediaAccess":{"type":"array","items":{"type":"string"}},"externalDataAccess":{"type":"boolean"}},"additionalProperties":false}},"workTypes":{"type":"array","items":{"$ref":"#/components/schemas/WorkTypes"}},"lifecyclePhases":{"type":"array","items":{"type":"string","enum":["drafting","published"]}},"workTypeLifecycleAccess":{"type":"object","description":"Per-work-type lifecycle status access, keyed by work type. Requires the statusBasedPermissions entitlement. Its presence makes the policy status-based; lifecyclePhases is then derived from these statuses. Status ids are not unique across work types, which is why this is keyed by work type.","additionalProperties":{"type":"array","items":{"type":"string"}}},"sectionIds":{"type":"array","items":{"type":"string"}},"createSources":{"type":"array","items":{"type":"string","enum":["custom","origin"]}},"updateTypes":{"type":"array","items":{"type":"string","enum":["regular","publish"]}}}},"WorkTypes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"WorkTypes","description":"The classification type of an entertainment work. `Movie` is a standalone feature-length film. `MovieEdit` is a variation of a Movie. `Series` is a TV or streaming series. `Season` is a season within a Series. `Episode` is a single episode within a Season. `EpisodeEdit` is a variation of an Episode. `Compilation` is an editorially curated collection of existing records.","type":"string","enum":["Movie","MovieEdit","Series","Season","Episode","EpisodeEdit","Compilation"]},"PolicyTemplateRelationships":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","title":"IPolicyTemplateRelationships","properties":{"tenant":{"$ref":"#/components/schemas/TenantRelationship"}},"required":["tenant"],"additionalProperties":false},"TenantRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantRelationship","description":"A relationship to a tenant","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tenants"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data","links"],"additionalProperties":false},"LinksRelated":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILinks","description":"A JSON:API links object with an absolute or relative 'related' link","type":"object","required":["related"],"properties":{"related":{"type":"string"}},"additionalProperties":false}}}}
```

## The PolicyTemplateUpdateOneRequest object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"PolicyTemplateUpdateOneRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IPolicyTemplateUpdateOneRequest","description":"The request for a policy template update request.","type":"object","additionalProperties":false,"required":["data"],"properties":{"meta":{"$ref":"#/components/schemas/WriteRequestMeta"},"data":{"type":"object","required":["id","type","attributes"],"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["policyTemplates"]},"attributes":{"type":"object","additionalProperties":false,"properties":{"label":{"type":"string"},"description":{"type":"string"},"actions":{"type":"array","items":{"type":"string"}},"locales":{"type":"array","items":{"type":"string"}},"workTypeEntityAccess":{"type":"object","additionalProperties":{"type":"object","properties":{"creditsAccess":{"type":"boolean"},"mediaAccess":{"type":"array","items":{"type":"string"}},"externalDataAccess":{"type":"boolean"}},"additionalProperties":false}},"workTypes":{"type":"array","items":{"$ref":"#/components/schemas/WorkTypes"}},"lifecyclePhases":{"type":"array","items":{"type":"string","enum":["drafting","published"]}},"workTypeLifecycleAccess":{"type":"object","description":"Per-work-type lifecycle status access, keyed by work type. Requires the statusBasedPermissions entitlement.","additionalProperties":{"type":"array","items":{"type":"string"}}},"sectionIds":{"type":"array","items":{"type":"string"}},"createSources":{"type":"array","items":{"type":"string","enum":["custom","origin"]}},"updateTypes":{"type":"array","items":{"type":"string","enum":["regular","publish"]}}}}}}}},"WriteRequestMeta":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IWriteRequestMeta","description":"Optional audit metadata for a write request. `audit.source` is the issuing surface/channel (e.g. studio-web, mcp, api, system); `audit.reason` is a free-text justification. Both are optional and length-capped.","type":"object","additionalProperties":false,"properties":{"audit":{"type":"object","additionalProperties":false,"properties":{"source":{"type":"string","maxLength":64},"reason":{"type":"string","maxLength":256}}}}},"WorkTypes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"WorkTypes","description":"The classification type of an entertainment work. `Movie` is a standalone feature-length film. `MovieEdit` is a variation of a Movie. `Series` is a TV or streaming series. `Season` is a season within a Series. `Episode` is a single episode within a Season. `EpisodeEdit` is a variation of an Episode. `Compilation` is an editorially curated collection of existing records.","type":"string","enum":["Movie","MovieEdit","Series","Season","Episode","EpisodeEdit","Compilation"]}}}}
```

## The PolicyTemplateUpdateOneResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"PolicyTemplateUpdateOneResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IPolicyTemplateUpdateOneResponse","description":"The response for a policy template update one request.","type":"object","additionalProperties":false,"required":["data","links"],"properties":{"data":{"type":"object","required":["id","type","attributes","relationships"],"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["policyTemplates"]},"attributes":{"allOf":[{"$ref":"#/components/schemas/BaseResourceAttributes"},{"$ref":"#/components/schemas/PolicyTemplateAttributes"}]},"relationships":{"$ref":"#/components/schemas/PolicyTemplateRelationships"},"meta":{"type":"object","properties":{"tenantId":{"type":"string","description":"The tenant ID"}},"required":["tenantId"],"additionalProperties":false}}},"links":{"type":"object","required":["self"],"properties":{"self":{"type":"string"}},"additionalProperties":false}}},"BaseResourceAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResourceAttributes","description":"Common timestamps present on all resource attribute objects. `created` is the ISO 8601 date-time when the resource was first created; `updated` is the date-time of the most recent modification.","type":"object","additionalProperties":false,"required":["created","updated"],"properties":{"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}},"PolicyTemplateAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IPolicyTemplateAttributes","description":"The attributes for a policy template.","additionalProperties":false,"required":["resourceType","name","label","actions"],"type":"object","properties":{"resourceType":{"type":"string","enum":["record","contributor","delivery","bulkActions"],"description":"The resource type this template targets"},"name":{"type":"string","description":"The name of the policy template, cannot be changed after creation"},"label":{"type":"string","description":"The display label for the policy template"},"description":{"type":"string","description":"The description of the policy template"},"actions":{"type":"array","description":"The actions allowed by this policy template","items":{"type":"string"}},"locales":{"type":"array","items":{"type":"string"}},"workTypeEntityAccess":{"type":"object","additionalProperties":{"type":"object","properties":{"creditsAccess":{"type":"boolean"},"mediaAccess":{"type":"array","items":{"type":"string"}},"externalDataAccess":{"type":"boolean"}},"additionalProperties":false}},"workTypes":{"type":"array","items":{"$ref":"#/components/schemas/WorkTypes"}},"lifecyclePhases":{"type":"array","items":{"type":"string","enum":["drafting","published"]}},"workTypeLifecycleAccess":{"type":"object","description":"Per-work-type lifecycle status access, keyed by work type. Requires the statusBasedPermissions entitlement. Its presence makes the policy status-based; lifecyclePhases is then derived from these statuses. Status ids are not unique across work types, which is why this is keyed by work type.","additionalProperties":{"type":"array","items":{"type":"string"}}},"sectionIds":{"type":"array","items":{"type":"string"}},"createSources":{"type":"array","items":{"type":"string","enum":["custom","origin"]}},"updateTypes":{"type":"array","items":{"type":"string","enum":["regular","publish"]}}}},"WorkTypes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"WorkTypes","description":"The classification type of an entertainment work. `Movie` is a standalone feature-length film. `MovieEdit` is a variation of a Movie. `Series` is a TV or streaming series. `Season` is a season within a Series. `Episode` is a single episode within a Season. `EpisodeEdit` is a variation of an Episode. `Compilation` is an editorially curated collection of existing records.","type":"string","enum":["Movie","MovieEdit","Series","Season","Episode","EpisodeEdit","Compilation"]},"PolicyTemplateRelationships":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","title":"IPolicyTemplateRelationships","properties":{"tenant":{"$ref":"#/components/schemas/TenantRelationship"}},"required":["tenant"],"additionalProperties":false},"TenantRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantRelationship","description":"A relationship to a tenant","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tenants"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data","links"],"additionalProperties":false},"LinksRelated":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILinks","description":"A JSON:API links object with an absolute or relative 'related' link","type":"object","required":["related"],"properties":{"related":{"type":"string"}},"additionalProperties":false}}}}
```

## The PolicyAttributes object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"PolicyAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IPolicyAttributes","description":"The attributes for a policy.","additionalProperties":false,"required":["resourceType"],"type":"object","properties":{"resourceType":{"type":"string","enum":["record","contributor","delivery","bulkActions"],"description":"The resource type this policy applies to"}}}}}}
```

## The RoleRelationship object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"RoleRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRoleRelationship","description":"A relationship to a role","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["userRoles"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data"],"additionalProperties":false},"LinksRelated":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILinks","description":"A JSON:API links object with an absolute or relative 'related' link","type":"object","required":["related"],"properties":{"related":{"type":"string"}},"additionalProperties":false}}}}
```

## The PolicyTemplateRelationship object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"PolicyTemplateRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IPolicyTemplateRelationship","description":"A relationship to a policy template","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["policyTemplates"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data"],"additionalProperties":false},"LinksRelated":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILinks","description":"A JSON:API links object with an absolute or relative 'related' link","type":"object","required":["related"],"properties":{"related":{"type":"string"}},"additionalProperties":false}}}}
```

## The SecurityTagRelationship object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"SecurityTagRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ISecurityTagRelationship","description":"A relationship to a security tag","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["securityTags"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data"],"additionalProperties":false},"LinksRelated":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILinks","description":"A JSON:API links object with an absolute or relative 'related' link","type":"object","required":["related"],"properties":{"related":{"type":"string"}},"additionalProperties":false}}}}
```

## The PolicyRelationships object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"PolicyRelationships":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","title":"IPolicyRelationships","description":"Relationships for a policy: tenant, role, and security tag.","properties":{"tenant":{"$ref":"#/components/schemas/TenantRelationship"},"role":{"$ref":"#/components/schemas/RoleRelationship"},"template":{"$ref":"#/components/schemas/PolicyTemplateRelationship"},"securityTag":{"$ref":"#/components/schemas/SecurityTagRelationship"}},"required":["tenant","role"],"additionalProperties":false},"TenantRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantRelationship","description":"A relationship to a tenant","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tenants"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data","links"],"additionalProperties":false},"LinksRelated":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILinks","description":"A JSON:API links object with an absolute or relative 'related' link","type":"object","required":["related"],"properties":{"related":{"type":"string"}},"additionalProperties":false},"RoleRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRoleRelationship","description":"A relationship to a role","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["userRoles"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data"],"additionalProperties":false},"PolicyTemplateRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IPolicyTemplateRelationship","description":"A relationship to a policy template","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["policyTemplates"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data"],"additionalProperties":false},"SecurityTagRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ISecurityTagRelationship","description":"A relationship to a security tag","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["securityTags"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data"],"additionalProperties":false}}}}
```

## The PolicyFindManyResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"PolicyFindManyResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IPolicyFindManyResponse","description":"The response for a policy find many request.","additionalProperties":false,"required":["data","links","included"],"type":"object","properties":{"data":{"type":"array","items":{"type":"object","required":["id","type","attributes","relationships"],"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["policies"]},"attributes":{"allOf":[{"$ref":"#/components/schemas/BaseResourceAttributes"},{"$ref":"#/components/schemas/PolicyAttributes"}]},"relationships":{"$ref":"#/components/schemas/PolicyRelationships"},"meta":{"type":"object","properties":{"tenantId":{"type":"string","description":"The tenant ID"}},"required":["tenantId"],"additionalProperties":false}}}},"links":{"type":"object","required":["self"],"properties":{"self":{"type":"string"},"next":{"type":"string","nullable":true}},"additionalProperties":false},"included":{"type":"array","items":{"type":"object","required":["id","type","attributes","relationships"],"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["policyTemplates"]},"attributes":{"allOf":[{"$ref":"#/components/schemas/BaseResourceAttributes"},{"$ref":"#/components/schemas/PolicyTemplateAttributes"}]},"relationships":{"$ref":"#/components/schemas/PolicyTemplateRelationships"},"meta":{"type":"object","properties":{"tenantId":{"type":"string","description":"The tenant ID"}},"required":["tenantId"],"additionalProperties":false}}}},"meta":{"type":"object","properties":{"cursor":{"type":"string","nullable":true}},"additionalProperties":false}}},"BaseResourceAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResourceAttributes","description":"Common timestamps present on all resource attribute objects. `created` is the ISO 8601 date-time when the resource was first created; `updated` is the date-time of the most recent modification.","type":"object","additionalProperties":false,"required":["created","updated"],"properties":{"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}},"PolicyAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IPolicyAttributes","description":"The attributes for a policy.","additionalProperties":false,"required":["resourceType"],"type":"object","properties":{"resourceType":{"type":"string","enum":["record","contributor","delivery","bulkActions"],"description":"The resource type this policy applies to"}}},"PolicyRelationships":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","title":"IPolicyRelationships","description":"Relationships for a policy: tenant, role, and security tag.","properties":{"tenant":{"$ref":"#/components/schemas/TenantRelationship"},"role":{"$ref":"#/components/schemas/RoleRelationship"},"template":{"$ref":"#/components/schemas/PolicyTemplateRelationship"},"securityTag":{"$ref":"#/components/schemas/SecurityTagRelationship"}},"required":["tenant","role"],"additionalProperties":false},"TenantRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantRelationship","description":"A relationship to a tenant","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tenants"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data","links"],"additionalProperties":false},"LinksRelated":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILinks","description":"A JSON:API links object with an absolute or relative 'related' link","type":"object","required":["related"],"properties":{"related":{"type":"string"}},"additionalProperties":false},"RoleRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRoleRelationship","description":"A relationship to a role","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["userRoles"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data"],"additionalProperties":false},"PolicyTemplateRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IPolicyTemplateRelationship","description":"A relationship to a policy template","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["policyTemplates"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data"],"additionalProperties":false},"SecurityTagRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ISecurityTagRelationship","description":"A relationship to a security tag","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["securityTags"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data"],"additionalProperties":false},"PolicyTemplateAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IPolicyTemplateAttributes","description":"The attributes for a policy template.","additionalProperties":false,"required":["resourceType","name","label","actions"],"type":"object","properties":{"resourceType":{"type":"string","enum":["record","contributor","delivery","bulkActions"],"description":"The resource type this template targets"},"name":{"type":"string","description":"The name of the policy template, cannot be changed after creation"},"label":{"type":"string","description":"The display label for the policy template"},"description":{"type":"string","description":"The description of the policy template"},"actions":{"type":"array","description":"The actions allowed by this policy template","items":{"type":"string"}},"locales":{"type":"array","items":{"type":"string"}},"workTypeEntityAccess":{"type":"object","additionalProperties":{"type":"object","properties":{"creditsAccess":{"type":"boolean"},"mediaAccess":{"type":"array","items":{"type":"string"}},"externalDataAccess":{"type":"boolean"}},"additionalProperties":false}},"workTypes":{"type":"array","items":{"$ref":"#/components/schemas/WorkTypes"}},"lifecyclePhases":{"type":"array","items":{"type":"string","enum":["drafting","published"]}},"workTypeLifecycleAccess":{"type":"object","description":"Per-work-type lifecycle status access, keyed by work type. Requires the statusBasedPermissions entitlement. Its presence makes the policy status-based; lifecyclePhases is then derived from these statuses. Status ids are not unique across work types, which is why this is keyed by work type.","additionalProperties":{"type":"array","items":{"type":"string"}}},"sectionIds":{"type":"array","items":{"type":"string"}},"createSources":{"type":"array","items":{"type":"string","enum":["custom","origin"]}},"updateTypes":{"type":"array","items":{"type":"string","enum":["regular","publish"]}}}},"WorkTypes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"WorkTypes","description":"The classification type of an entertainment work. `Movie` is a standalone feature-length film. `MovieEdit` is a variation of a Movie. `Series` is a TV or streaming series. `Season` is a season within a Series. `Episode` is a single episode within a Season. `EpisodeEdit` is a variation of an Episode. `Compilation` is an editorially curated collection of existing records.","type":"string","enum":["Movie","MovieEdit","Series","Season","Episode","EpisodeEdit","Compilation"]},"PolicyTemplateRelationships":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","title":"IPolicyTemplateRelationships","properties":{"tenant":{"$ref":"#/components/schemas/TenantRelationship"}},"required":["tenant"],"additionalProperties":false}}}}
```

## The AssignPolicyTemplateRequest object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"AssignPolicyTemplateRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IAssignPolicyTemplateRequest","description":"Request to create policies from a template for given roles and optional security tags.","type":"object","required":["data"],"additionalProperties":false,"properties":{"meta":{"$ref":"#/components/schemas/WriteRequestMeta"},"data":{"type":"object","required":["type","attributes"],"additionalProperties":false,"properties":{"type":{"type":"string","enum":["policies"]},"attributes":{"type":"object","required":["roleIds"],"additionalProperties":false,"properties":{"roleIds":{"type":"array","items":{"type":"string"},"minItems":1,"description":"Role IDs to assign"},"securityTagIds":{"type":"array","items":{"type":"string"},"description":"Security tag IDs (required for record type, ignored for contributor/delivery)"}}}}}}},"WriteRequestMeta":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IWriteRequestMeta","description":"Optional audit metadata for a write request. `audit.source` is the issuing surface/channel (e.g. studio-web, mcp, api, system); `audit.reason` is a free-text justification. Both are optional and length-capped.","type":"object","additionalProperties":false,"properties":{"audit":{"type":"object","additionalProperties":false,"properties":{"source":{"type":"string","maxLength":64},"reason":{"type":"string","maxLength":256}}}}}}}}
```

## The PolicyFindOneResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"PolicyFindOneResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IPolicyFindOneResponse","description":"The response for a policy find one request.","type":"object","additionalProperties":false,"required":["data","links"],"properties":{"data":{"type":"object","required":["id","type","attributes","relationships"],"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["policies"]},"attributes":{"allOf":[{"$ref":"#/components/schemas/BaseResourceAttributes"},{"$ref":"#/components/schemas/PolicyAttributes"}]},"relationships":{"$ref":"#/components/schemas/PolicyRelationships"},"meta":{"type":"object","properties":{"tenantId":{"type":"string","description":"The tenant ID"},"avpPolicy":{"type":"object","description":"The AVP policy details","properties":{"resource":{"type":"object","properties":{"entityType":{"type":"string"},"entityId":{"type":"string"}},"required":["entityType","entityId"],"additionalProperties":false},"principal":{"type":"object","properties":{"entityType":{"type":"string"},"entityId":{"type":"string"}},"required":["entityType","entityId"],"additionalProperties":false},"actions":{"type":"array","items":{"type":"object","properties":{"actionType":{"type":"string"},"actionId":{"type":"string"}},"required":["actionType","actionId"],"additionalProperties":false}},"effect":{"type":"string","enum":["Permit","Forbid"]}},"additionalProperties":false}},"required":["tenantId"],"additionalProperties":false}}},"links":{"type":"object","required":["self"],"properties":{"self":{"type":"string"}},"additionalProperties":false}}},"BaseResourceAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResourceAttributes","description":"Common timestamps present on all resource attribute objects. `created` is the ISO 8601 date-time when the resource was first created; `updated` is the date-time of the most recent modification.","type":"object","additionalProperties":false,"required":["created","updated"],"properties":{"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}},"PolicyAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IPolicyAttributes","description":"The attributes for a policy.","additionalProperties":false,"required":["resourceType"],"type":"object","properties":{"resourceType":{"type":"string","enum":["record","contributor","delivery","bulkActions"],"description":"The resource type this policy applies to"}}},"PolicyRelationships":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","title":"IPolicyRelationships","description":"Relationships for a policy: tenant, role, and security tag.","properties":{"tenant":{"$ref":"#/components/schemas/TenantRelationship"},"role":{"$ref":"#/components/schemas/RoleRelationship"},"template":{"$ref":"#/components/schemas/PolicyTemplateRelationship"},"securityTag":{"$ref":"#/components/schemas/SecurityTagRelationship"}},"required":["tenant","role"],"additionalProperties":false},"TenantRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantRelationship","description":"A relationship to a tenant","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tenants"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data","links"],"additionalProperties":false},"LinksRelated":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILinks","description":"A JSON:API links object with an absolute or relative 'related' link","type":"object","required":["related"],"properties":{"related":{"type":"string"}},"additionalProperties":false},"RoleRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRoleRelationship","description":"A relationship to a role","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["userRoles"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data"],"additionalProperties":false},"PolicyTemplateRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IPolicyTemplateRelationship","description":"A relationship to a policy template","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["policyTemplates"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data"],"additionalProperties":false},"SecurityTagRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ISecurityTagRelationship","description":"A relationship to a security tag","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["securityTags"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data"],"additionalProperties":false}}}}
```

## The policyRefObject object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"policyRefObject":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","const":"policies"}},"required":["id","type"],"additionalProperties":false}}}}
```

## The PolicyAtomicOperationsRequest object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"PolicyAtomicOperationsRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IPolicyAtomicOperationsRequest","description":"JSON:API Atomic Operations request for managing policies. Supports `remove` operations to delete one or more policies in a single call.","type":"object","properties":{"meta":{"$ref":"#/components/schemas/WriteRequestMeta"},"atomic:operations":{"type":"array","maxItems":100,"items":{"type":"object","properties":{"op":{"const":"remove"},"ref":{"$ref":"#/components/schemas/policyRefObject"}},"required":["op","ref"],"additionalProperties":false}}},"required":["atomic:operations"],"additionalProperties":false,"definitions":{"policyRefObject":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","const":"policies"}},"required":["id","type"],"additionalProperties":false}}},"WriteRequestMeta":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IWriteRequestMeta","description":"Optional audit metadata for a write request. `audit.source` is the issuing surface/channel (e.g. studio-web, mcp, api, system); `audit.reason` is a free-text justification. Both are optional and length-capped.","type":"object","additionalProperties":false,"properties":{"audit":{"type":"object","additionalProperties":false,"properties":{"source":{"type":"string","maxLength":64},"reason":{"type":"string","maxLength":256}}}}},"policyRefObject":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","const":"policies"}},"required":["id","type"],"additionalProperties":false}}}}
```

## The SecurityTagAttributes object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"SecurityTagAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ISecurityTagAttributes","description":"The attributes of a security tag in a tenant.","type":"object","additionalProperties":false,"required":["description","name"],"properties":{"description":{"type":"string"},"name":{"type":"string"}}}}}}
```

## The SecurityTagFindManyResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"SecurityTagFindManyResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ISecurityTagFindManyResponse","description":"The response for a security tag find many request.","additionalProperties":false,"required":["data","links"],"type":"object","properties":{"data":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/BaseResource"},{"type":"object","properties":{"attributes":{"allOf":[{"$ref":"#/components/schemas/BaseResourceAttributes"},{"$ref":"#/components/schemas/SecurityTagAttributes"}]}},"required":["attributes"],"additionalProperties":false}]}},"links":{"type":"object","required":["self"],"properties":{"self":{"type":"string"}},"additionalProperties":false}}},"BaseResource":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResource","description":"JSON:API resource identifier. All Origin Studio API resource objects include at least an `id` (unique string identifier) and a `type` (the JSON:API resource type name, e.g. records, contributors).","type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"}},"required":["id","type"],"additionalProperties":false},"BaseResourceAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResourceAttributes","description":"Common timestamps present on all resource attribute objects. `created` is the ISO 8601 date-time when the resource was first created; `updated` is the date-time of the most recent modification.","type":"object","additionalProperties":false,"required":["created","updated"],"properties":{"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}},"SecurityTagAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ISecurityTagAttributes","description":"The attributes of a security tag in a tenant.","type":"object","additionalProperties":false,"required":["description","name"],"properties":{"description":{"type":"string"},"name":{"type":"string"}}}}}}
```

## The CreateSecurityTagRequest object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"CreateSecurityTagRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ISecurityTagCreateRequest","description":"The request to create a security tag in a tenant.","type":"object","additionalProperties":false,"required":["data"],"properties":{"meta":{"$ref":"#/components/schemas/WriteRequestMeta"},"data":{"type":"object","additionalProperties":false,"required":["type","attributes"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["securityTags"]},"attributes":{"type":"object","additionalProperties":false,"properties":{"description":{"type":"string"},"name":{"type":"string"}},"required":["description","name"]}}}}},"WriteRequestMeta":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IWriteRequestMeta","description":"Optional audit metadata for a write request. `audit.source` is the issuing surface/channel (e.g. studio-web, mcp, api, system); `audit.reason` is a free-text justification. Both are optional and length-capped.","type":"object","additionalProperties":false,"properties":{"audit":{"type":"object","additionalProperties":false,"properties":{"source":{"type":"string","maxLength":64},"reason":{"type":"string","maxLength":256}}}}}}}}
```

## The SecurityTagCreateOneResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"SecurityTagCreateOneResponse":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","title":"ISecurityTagCreateOneResponse","description":"Response after creating a security tag. Contains the new security tag resource and self link.","additionalProperties":false,"required":["data","links"],"properties":{"data":{"allOf":[{"$ref":"#/components/schemas/BaseResource"},{"type":"object","properties":{"attributes":{"allOf":[{"$ref":"#/components/schemas/BaseResourceAttributes"},{"$ref":"#/components/schemas/SecurityTagAttributes","required":["description","name"]}]}},"required":["attributes"],"additionalProperties":false}]},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}}},"BaseResource":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResource","description":"JSON:API resource identifier. All Origin Studio API resource objects include at least an `id` (unique string identifier) and a `type` (the JSON:API resource type name, e.g. records, contributors).","type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"}},"required":["id","type"],"additionalProperties":false},"BaseResourceAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResourceAttributes","description":"Common timestamps present on all resource attribute objects. `created` is the ISO 8601 date-time when the resource was first created; `updated` is the date-time of the most recent modification.","type":"object","additionalProperties":false,"required":["created","updated"],"properties":{"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}},"SecurityTagAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ISecurityTagAttributes","description":"The attributes of a security tag in a tenant.","type":"object","additionalProperties":false,"required":["description","name"],"properties":{"description":{"type":"string"},"name":{"type":"string"}}}}}}
```

## The SecurityTagFindOneResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"SecurityTagFindOneResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ISecurityTagFindOneResponse","description":"The response for a security tag find one request.","type":"object","additionalProperties":false,"required":["data","links"],"properties":{"data":{"type":"object","required":["id","type","attributes"],"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["securityTags"]},"attributes":{"allOf":[{"$ref":"#/components/schemas/BaseResourceAttributes"},{"$ref":"#/components/schemas/SecurityTagAttributes","required":["description"]}]}}},"links":{"type":"object","required":["self"],"properties":{"self":{"type":"string"}},"additionalProperties":false}}},"BaseResourceAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResourceAttributes","description":"Common timestamps present on all resource attribute objects. `created` is the ISO 8601 date-time when the resource was first created; `updated` is the date-time of the most recent modification.","type":"object","additionalProperties":false,"required":["created","updated"],"properties":{"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}},"SecurityTagAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ISecurityTagAttributes","description":"The attributes of a security tag in a tenant.","type":"object","additionalProperties":false,"required":["description","name"],"properties":{"description":{"type":"string"},"name":{"type":"string"}}}}}}
```

## The UpdateSecurityTagRequest object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"UpdateSecurityTagRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ISecurityTagUpdateRequest","description":"The request to update a security tag in a tenant.","type":"object","additionalProperties":false,"required":["data"],"properties":{"meta":{"$ref":"#/components/schemas/WriteRequestMeta"},"data":{"type":"object","additionalProperties":false,"required":["id","type","attributes"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["securityTags"]},"attributes":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string"},"description":{"type":"string"}}}}}}},"WriteRequestMeta":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IWriteRequestMeta","description":"Optional audit metadata for a write request. `audit.source` is the issuing surface/channel (e.g. studio-web, mcp, api, system); `audit.reason` is a free-text justification. Both are optional and length-capped.","type":"object","additionalProperties":false,"properties":{"audit":{"type":"object","additionalProperties":false,"properties":{"source":{"type":"string","maxLength":64},"reason":{"type":"string","maxLength":256}}}}}}}}
```

## The ApiKeyAttributes object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"ApiKeyAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IApiKeyAttributes","description":"The attributes of an api key in a tenant. The raw key value is never returned here — it is available only in the create response, which uses ApiKeyCreateAttributes.json.","type":"object","additionalProperties":false,"required":["description","name"],"properties":{"name":{"type":"string"},"description":{"type":"string"},"roles":{"type":"array","items":{"type":"string"}},"valuePreview":{"description":"Masked, non-secret preview of the key value, e.g. ak_prd_••••••••1a2b. Used to identify a key in a list.","type":"string"},"expiresAt":{"description":"ISO 8601 timestamp after which the key is refused.","type":"string"}}}}}}
```

## The ApiKeyFindManyResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"ApiKeyFindManyResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IApiKeyFindManyResponse","description":"The response for a api key find many request.","additionalProperties":false,"required":["data","links"],"type":"object","properties":{"data":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/BaseResource"},{"type":"object","properties":{"attributes":{"allOf":[{"$ref":"#/components/schemas/BaseResourceAttributes"},{"$ref":"#/components/schemas/ApiKeyAttributes"}]}},"required":["attributes"],"additionalProperties":false}]}},"links":{"type":"object","required":["self"],"properties":{"self":{"type":"string"}},"additionalProperties":false}}},"BaseResource":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResource","description":"JSON:API resource identifier. All Origin Studio API resource objects include at least an `id` (unique string identifier) and a `type` (the JSON:API resource type name, e.g. records, contributors).","type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"}},"required":["id","type"],"additionalProperties":false},"BaseResourceAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResourceAttributes","description":"Common timestamps present on all resource attribute objects. `created` is the ISO 8601 date-time when the resource was first created; `updated` is the date-time of the most recent modification.","type":"object","additionalProperties":false,"required":["created","updated"],"properties":{"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}},"ApiKeyAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IApiKeyAttributes","description":"The attributes of an api key in a tenant. The raw key value is never returned here — it is available only in the create response, which uses ApiKeyCreateAttributes.json.","type":"object","additionalProperties":false,"required":["description","name"],"properties":{"name":{"type":"string"},"description":{"type":"string"},"roles":{"type":"array","items":{"type":"string"}},"valuePreview":{"description":"Masked, non-secret preview of the key value, e.g. ak_prd_••••••••1a2b. Used to identify a key in a list.","type":"string"},"expiresAt":{"description":"ISO 8601 timestamp after which the key is refused.","type":"string"}}}}}}
```

## The CreateApiKeyRequest object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"CreateApiKeyRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IApiKeyCreateRequest","description":"The request to create an api key in a tenant. Roles are specified via `relationships.roles` as an array of role resource identifiers.","type":"object","additionalProperties":false,"required":["data"],"properties":{"meta":{"$ref":"#/components/schemas/WriteRequestMeta"},"data":{"type":"object","additionalProperties":false,"required":["type","attributes","relationships"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["apiKeys"]},"attributes":{"type":"object","additionalProperties":false,"properties":{"description":{"type":"string"},"name":{"type":"string"},"expiresInDays":{"description":"Validity window for the key. The key stops authenticating once this many days have passed since creation. Defaults to 90 when omitted.","type":"integer","enum":[30,60,90,180,365]}},"required":["description","name"]},"relationships":{"type":"object","additionalProperties":false,"required":["roles"],"properties":{"roles":{"type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"type":"array","minItems":1,"items":{"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["userRoles"]}}}}}}}}}}}},"WriteRequestMeta":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IWriteRequestMeta","description":"Optional audit metadata for a write request. `audit.source` is the issuing surface/channel (e.g. studio-web, mcp, api, system); `audit.reason` is a free-text justification. Both are optional and length-capped.","type":"object","additionalProperties":false,"properties":{"audit":{"type":"object","additionalProperties":false,"properties":{"source":{"type":"string","maxLength":64},"reason":{"type":"string","maxLength":256}}}}}}}}
```

## The ApiKeyCreateAttributes object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"ApiKeyCreateAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IApiKeyCreateAttributes","description":"Attributes returned when an API key is created. This is the only response that carries the raw key value — it is stored only as a hash, so it cannot be retrieved again. Clients must surface it to the user immediately.","type":"object","additionalProperties":false,"required":["description","name","value"],"properties":{"name":{"type":"string"},"description":{"type":"string"},"roles":{"type":"array","items":{"type":"string"}},"value":{"description":"The raw API key, shown exactly once. Format: ak_<env>_<32 hex chars>.","type":"string"},"valuePreview":{"description":"Masked, non-secret preview of the key value, e.g. ak_prd_••••••••1a2b.","type":"string"},"expiresAt":{"description":"ISO 8601 timestamp after which the key is refused.","type":"string"}}}}}}
```

## The ApiKeyCreateOneResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"ApiKeyCreateOneResponse":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","title":"IApiKeyCreateOneResponse","description":"Response after creating an API key. Contains the new API key resource and self link. This is the only response that includes the raw key value.","additionalProperties":false,"required":["data","links"],"properties":{"data":{"allOf":[{"$ref":"#/components/schemas/BaseResource"},{"type":"object","properties":{"attributes":{"allOf":[{"$ref":"#/components/schemas/BaseResourceAttributes"},{"$ref":"#/components/schemas/ApiKeyCreateAttributes","required":["description","name","value"]}]}},"required":["attributes"],"additionalProperties":false}]},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}}},"BaseResource":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResource","description":"JSON:API resource identifier. All Origin Studio API resource objects include at least an `id` (unique string identifier) and a `type` (the JSON:API resource type name, e.g. records, contributors).","type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"}},"required":["id","type"],"additionalProperties":false},"BaseResourceAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResourceAttributes","description":"Common timestamps present on all resource attribute objects. `created` is the ISO 8601 date-time when the resource was first created; `updated` is the date-time of the most recent modification.","type":"object","additionalProperties":false,"required":["created","updated"],"properties":{"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}},"ApiKeyCreateAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IApiKeyCreateAttributes","description":"Attributes returned when an API key is created. This is the only response that carries the raw key value — it is stored only as a hash, so it cannot be retrieved again. Clients must surface it to the user immediately.","type":"object","additionalProperties":false,"required":["description","name","value"],"properties":{"name":{"type":"string"},"description":{"type":"string"},"roles":{"type":"array","items":{"type":"string"}},"value":{"description":"The raw API key, shown exactly once. Format: ak_<env>_<32 hex chars>.","type":"string"},"valuePreview":{"description":"Masked, non-secret preview of the key value, e.g. ak_prd_••••••••1a2b.","type":"string"},"expiresAt":{"description":"ISO 8601 timestamp after which the key is refused.","type":"string"}}}}}}
```

## The ApiKeyFindOneResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"ApiKeyFindOneResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IApiKeyFindOneResponse","description":"The response for a api key find one request.","type":"object","additionalProperties":false,"required":["data","links"],"properties":{"data":{"type":"object","required":["id","type","attributes"],"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["apiKeys"]},"attributes":{"allOf":[{"$ref":"#/components/schemas/BaseResourceAttributes"},{"$ref":"#/components/schemas/ApiKeyAttributes","required":["description"]}]}}},"links":{"type":"object","required":["self"],"properties":{"self":{"type":"string"}},"additionalProperties":false}}},"BaseResourceAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResourceAttributes","description":"Common timestamps present on all resource attribute objects. `created` is the ISO 8601 date-time when the resource was first created; `updated` is the date-time of the most recent modification.","type":"object","additionalProperties":false,"required":["created","updated"],"properties":{"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}},"ApiKeyAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IApiKeyAttributes","description":"The attributes of an api key in a tenant. The raw key value is never returned here — it is available only in the create response, which uses ApiKeyCreateAttributes.json.","type":"object","additionalProperties":false,"required":["description","name"],"properties":{"name":{"type":"string"},"description":{"type":"string"},"roles":{"type":"array","items":{"type":"string"}},"valuePreview":{"description":"Masked, non-secret preview of the key value, e.g. ak_prd_••••••••1a2b. Used to identify a key in a list.","type":"string"},"expiresAt":{"description":"ISO 8601 timestamp after which the key is refused.","type":"string"}}}}}}
```

## The AiAssistantConfigAttributes object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"AiAssistantConfigAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IAiAssistantConfigAttributes","description":"Per-tenant AI assistant settings (read-only view). Shows which model provider is configured, the selected model, and whether an API key is stored.","type":"object","additionalProperties":false,"required":["modelProvider","modelId","apiKeyConfigured","created","updated"],"properties":{"modelProvider":{"type":"string","enum":["bedrock","custom"],"description":"The model provider type. 'bedrock' uses a Fabric-provided model. 'custom' uses a model and API key you provide."},"modelId":{"type":"string","minLength":1,"description":"The model identifier. For custom providers this is the string LiteLLM routes on, normally provider-qualified (e.g. anthropic/claude-sonnet-4); for bedrock it is the Fabric-managed Bedrock model id."},"apiKeyConfigured":{"type":"boolean","description":"Whether an API key has been securely stored for this configuration."},"apiKeyArn":{"type":"string","description":"Reference to the stored API key. The raw key is never returned. Omitted when apiKeyConfigured is false."},"created":{"type":"string","format":"date-time","description":"When this configuration was created"},"updated":{"type":"string","format":"date-time","description":"When this configuration was last updated"}}}}}}
```

## The AiAssistantConfigFindManyResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"AiAssistantConfigFindManyResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IAiAssistantConfigFindManyResponse","description":"The response for an AI assistant config find many request.","additionalProperties":false,"required":["data","links"],"type":"object","properties":{"data":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/BaseResource"},{"type":"object","properties":{"attributes":{"allOf":[{"$ref":"#/components/schemas/BaseResourceAttributes"},{"$ref":"#/components/schemas/AiAssistantConfigAttributes"}]}},"required":["attributes"],"additionalProperties":false}]}},"links":{"type":"object","required":["self"],"properties":{"self":{"type":"string"}},"additionalProperties":false}}},"BaseResource":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResource","description":"JSON:API resource identifier. All Origin Studio API resource objects include at least an `id` (unique string identifier) and a `type` (the JSON:API resource type name, e.g. records, contributors).","type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"}},"required":["id","type"],"additionalProperties":false},"BaseResourceAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResourceAttributes","description":"Common timestamps present on all resource attribute objects. `created` is the ISO 8601 date-time when the resource was first created; `updated` is the date-time of the most recent modification.","type":"object","additionalProperties":false,"required":["created","updated"],"properties":{"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}},"AiAssistantConfigAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IAiAssistantConfigAttributes","description":"Per-tenant AI assistant settings (read-only view). Shows which model provider is configured, the selected model, and whether an API key is stored.","type":"object","additionalProperties":false,"required":["modelProvider","modelId","apiKeyConfigured","created","updated"],"properties":{"modelProvider":{"type":"string","enum":["bedrock","custom"],"description":"The model provider type. 'bedrock' uses a Fabric-provided model. 'custom' uses a model and API key you provide."},"modelId":{"type":"string","minLength":1,"description":"The model identifier. For custom providers this is the string LiteLLM routes on, normally provider-qualified (e.g. anthropic/claude-sonnet-4); for bedrock it is the Fabric-managed Bedrock model id."},"apiKeyConfigured":{"type":"boolean","description":"Whether an API key has been securely stored for this configuration."},"apiKeyArn":{"type":"string","description":"Reference to the stored API key. The raw key is never returned. Omitted when apiKeyConfigured is false."},"created":{"type":"string","format":"date-time","description":"When this configuration was created"},"updated":{"type":"string","format":"date-time","description":"When this configuration was last updated"}}}}}}
```

## The CreateAiAssistantConfigAttributes object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"CreateAiAssistantConfigAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ICreateAiAssistantConfigAttributes","description":"Attributes for creating an AI assistant configuration. Choose modelProvider 'bedrock' for a Fabric-provided model, or 'custom' to bring your own model and API key.","type":"object","additionalProperties":false,"required":["modelProvider"],"properties":{"modelProvider":{"type":"string","enum":["bedrock","custom"],"description":"Model source: 'bedrock' uses a Fabric-provided model (no API key needed), 'custom' lets you bring your own model and API key."},"modelId":{"type":"string","minLength":1,"description":"The model to use, as LiteLLM routes on it — normally provider-qualified, e.g. anthropic/claude-sonnet-4. Required with 'custom' modelProvider."},"apiKey":{"type":"string","description":"Write-only. Your provider API key. Stored securely and never returned in responses. Required with 'custom' modelProvider if apiKeyArn is not provided."},"apiKeyArn":{"type":"string","description":"Reference to a previously stored API key. Use this instead of apiKey if your key is already registered."}}}}}}
```

## The CreateAiAssistantConfigRequest object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"CreateAiAssistantConfigRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IAiAssistantConfigCreateRequest","description":"The request to create the AI assistant config for a tenant. A tenant may only have one.","type":"object","additionalProperties":false,"required":["data"],"properties":{"meta":{"$ref":"#/components/schemas/WriteRequestMeta"},"data":{"type":"object","additionalProperties":false,"required":["type","attributes"],"properties":{"type":{"type":"string","enum":["aiAssistantConfigs"]},"attributes":{"$ref":"#/components/schemas/CreateAiAssistantConfigAttributes"}}}}},"WriteRequestMeta":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IWriteRequestMeta","description":"Optional audit metadata for a write request. `audit.source` is the issuing surface/channel (e.g. studio-web, mcp, api, system); `audit.reason` is a free-text justification. Both are optional and length-capped.","type":"object","additionalProperties":false,"properties":{"audit":{"type":"object","additionalProperties":false,"properties":{"source":{"type":"string","maxLength":64},"reason":{"type":"string","maxLength":256}}}}},"CreateAiAssistantConfigAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ICreateAiAssistantConfigAttributes","description":"Attributes for creating an AI assistant configuration. Choose modelProvider 'bedrock' for a Fabric-provided model, or 'custom' to bring your own model and API key.","type":"object","additionalProperties":false,"required":["modelProvider"],"properties":{"modelProvider":{"type":"string","enum":["bedrock","custom"],"description":"Model source: 'bedrock' uses a Fabric-provided model (no API key needed), 'custom' lets you bring your own model and API key."},"modelId":{"type":"string","minLength":1,"description":"The model to use, as LiteLLM routes on it — normally provider-qualified, e.g. anthropic/claude-sonnet-4. Required with 'custom' modelProvider."},"apiKey":{"type":"string","description":"Write-only. Your provider API key. Stored securely and never returned in responses. Required with 'custom' modelProvider if apiKeyArn is not provided."},"apiKeyArn":{"type":"string","description":"Reference to a previously stored API key. Use this instead of apiKey if your key is already registered."}}}}}}
```

## The AiAssistantConfigCreateOneResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"AiAssistantConfigCreateOneResponse":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","title":"IAiAssistantConfigCreateOneResponse","description":"Response after creating a tenant's AI assistant config. Contains the new resource and self link.","additionalProperties":false,"required":["data","links"],"properties":{"data":{"allOf":[{"$ref":"#/components/schemas/BaseResource"},{"type":"object","properties":{"attributes":{"allOf":[{"$ref":"#/components/schemas/BaseResourceAttributes"},{"$ref":"#/components/schemas/AiAssistantConfigAttributes"}]}},"required":["attributes"],"additionalProperties":false}]},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}}},"BaseResource":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResource","description":"JSON:API resource identifier. All Origin Studio API resource objects include at least an `id` (unique string identifier) and a `type` (the JSON:API resource type name, e.g. records, contributors).","type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"}},"required":["id","type"],"additionalProperties":false},"BaseResourceAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResourceAttributes","description":"Common timestamps present on all resource attribute objects. `created` is the ISO 8601 date-time when the resource was first created; `updated` is the date-time of the most recent modification.","type":"object","additionalProperties":false,"required":["created","updated"],"properties":{"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}},"AiAssistantConfigAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IAiAssistantConfigAttributes","description":"Per-tenant AI assistant settings (read-only view). Shows which model provider is configured, the selected model, and whether an API key is stored.","type":"object","additionalProperties":false,"required":["modelProvider","modelId","apiKeyConfigured","created","updated"],"properties":{"modelProvider":{"type":"string","enum":["bedrock","custom"],"description":"The model provider type. 'bedrock' uses a Fabric-provided model. 'custom' uses a model and API key you provide."},"modelId":{"type":"string","minLength":1,"description":"The model identifier. For custom providers this is the string LiteLLM routes on, normally provider-qualified (e.g. anthropic/claude-sonnet-4); for bedrock it is the Fabric-managed Bedrock model id."},"apiKeyConfigured":{"type":"boolean","description":"Whether an API key has been securely stored for this configuration."},"apiKeyArn":{"type":"string","description":"Reference to the stored API key. The raw key is never returned. Omitted when apiKeyConfigured is false."},"created":{"type":"string","format":"date-time","description":"When this configuration was created"},"updated":{"type":"string","format":"date-time","description":"When this configuration was last updated"}}}}}}
```

## The AiAssistantConfigFindOneResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"AiAssistantConfigFindOneResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IAiAssistantConfigFindOneResponse","description":"The response for an AI assistant config find one request.","type":"object","additionalProperties":false,"required":["data","links"],"properties":{"data":{"type":"object","required":["id","type","attributes"],"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["aiAssistantConfigs"]},"attributes":{"allOf":[{"$ref":"#/components/schemas/BaseResourceAttributes"},{"$ref":"#/components/schemas/AiAssistantConfigAttributes"}]}}},"links":{"type":"object","required":["self"],"properties":{"self":{"type":"string"}},"additionalProperties":false}}},"BaseResourceAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResourceAttributes","description":"Common timestamps present on all resource attribute objects. `created` is the ISO 8601 date-time when the resource was first created; `updated` is the date-time of the most recent modification.","type":"object","additionalProperties":false,"required":["created","updated"],"properties":{"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}},"AiAssistantConfigAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IAiAssistantConfigAttributes","description":"Per-tenant AI assistant settings (read-only view). Shows which model provider is configured, the selected model, and whether an API key is stored.","type":"object","additionalProperties":false,"required":["modelProvider","modelId","apiKeyConfigured","created","updated"],"properties":{"modelProvider":{"type":"string","enum":["bedrock","custom"],"description":"The model provider type. 'bedrock' uses a Fabric-provided model. 'custom' uses a model and API key you provide."},"modelId":{"type":"string","minLength":1,"description":"The model identifier. For custom providers this is the string LiteLLM routes on, normally provider-qualified (e.g. anthropic/claude-sonnet-4); for bedrock it is the Fabric-managed Bedrock model id."},"apiKeyConfigured":{"type":"boolean","description":"Whether an API key has been securely stored for this configuration."},"apiKeyArn":{"type":"string","description":"Reference to the stored API key. The raw key is never returned. Omitted when apiKeyConfigured is false."},"created":{"type":"string","format":"date-time","description":"When this configuration was created"},"updated":{"type":"string","format":"date-time","description":"When this configuration was last updated"}}}}}}
```

## The UpdateAiAssistantConfigRequest object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"UpdateAiAssistantConfigRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IAiAssistantConfigUpdateRequest","description":"Request to update the AI assistant configuration. All attributes are optional — only provided fields are modified.","type":"object","additionalProperties":false,"required":["data"],"properties":{"meta":{"$ref":"#/components/schemas/WriteRequestMeta"},"data":{"type":"object","additionalProperties":false,"required":["id","type","attributes"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["aiAssistantConfigs"]},"attributes":{"type":"object","additionalProperties":false,"properties":{"modelProvider":{"type":"string","enum":["bedrock","custom"],"description":"Change the model provider type. Switching between 'bedrock' and 'custom' is supported."},"modelId":{"type":"string","minLength":1,"description":"The model identifier, as LiteLLM routes on it — normally provider-qualified, e.g. anthropic/claude-sonnet-4."},"apiKey":{"type":"string","description":"Write-only. Your provider API key. Stored securely and never returned. Use this to rotate an existing key."},"apiKeyArn":{"type":"string","description":"Reference to a previously stored API key."}}}}}}},"WriteRequestMeta":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IWriteRequestMeta","description":"Optional audit metadata for a write request. `audit.source` is the issuing surface/channel (e.g. studio-web, mcp, api, system); `audit.reason` is a free-text justification. Both are optional and length-capped.","type":"object","additionalProperties":false,"properties":{"audit":{"type":"object","additionalProperties":false,"properties":{"source":{"type":"string","maxLength":64},"reason":{"type":"string","maxLength":256}}}}}}}}
```

## The EventSubscriptionAttributes object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"EventSubscriptionAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IEventSubscriptionAttributes","description":"The attributes of a event subscription in a tenant.","type":"object","additionalProperties":false,"required":["name","type","endpoint","subscriptionArn"],"properties":{"name":{"type":"string"},"type":{"type":"string"},"endpoint":{"type":"string"},"subscriptionArn":{"type":"string"}}}}}}
```

## The EventSubscriptionFindManyResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"EventSubscriptionFindManyResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IEventSubscriptionFindManyResponse","description":"The response for a event subscription find many request.","additionalProperties":false,"required":["data","links"],"type":"object","properties":{"data":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/BaseResource"},{"type":"object","properties":{"attributes":{"allOf":[{"$ref":"#/components/schemas/BaseResourceAttributes"},{"$ref":"#/components/schemas/EventSubscriptionAttributes"}]}},"required":["attributes"],"additionalProperties":false}]}},"links":{"type":"object","required":["self"],"properties":{"self":{"type":"string"}},"additionalProperties":false},"meta":{"type":"object","properties":{"awsRegion":{"type":"string"},"awsAccountId":{"type":"string"},"tenantId":{"type":"string"},"awsSubscriptions":{"type":"array","items":{"type":"object","properties":{"subscriptionArn":{"type":"string"},"pendingConfirmation":{"type":"boolean"}},"required":["subscriptionArn","pendingConfirmation"],"additionalProperties":false}}},"required":["awsRegion","awsAccountId","tenantId"," awsSubscriptions"],"additionalProperties":false}}},"BaseResource":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResource","description":"JSON:API resource identifier. All Origin Studio API resource objects include at least an `id` (unique string identifier) and a `type` (the JSON:API resource type name, e.g. records, contributors).","type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"}},"required":["id","type"],"additionalProperties":false},"BaseResourceAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResourceAttributes","description":"Common timestamps present on all resource attribute objects. `created` is the ISO 8601 date-time when the resource was first created; `updated` is the date-time of the most recent modification.","type":"object","additionalProperties":false,"required":["created","updated"],"properties":{"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}},"EventSubscriptionAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IEventSubscriptionAttributes","description":"The attributes of a event subscription in a tenant.","type":"object","additionalProperties":false,"required":["name","type","endpoint","subscriptionArn"],"properties":{"name":{"type":"string"},"type":{"type":"string"},"endpoint":{"type":"string"},"subscriptionArn":{"type":"string"}}}}}}
```

## The CreateEventSubscriptionRequest object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"CreateEventSubscriptionRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IEventSubscriptionCreateOneRequest","description":"The request to create an event subscription in a tenant.","type":"object","additionalProperties":false,"required":["data"],"properties":{"meta":{"$ref":"#/components/schemas/WriteRequestMeta"},"data":{"type":"object","additionalProperties":false,"required":["type","attributes"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["eventSubscriptions"]},"attributes":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string"},"type":{"type":"string"},"endpoint":{"type":"string"}},"required":["name","type","endpoint"]}}}}},"WriteRequestMeta":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IWriteRequestMeta","description":"Optional audit metadata for a write request. `audit.source` is the issuing surface/channel (e.g. studio-web, mcp, api, system); `audit.reason` is a free-text justification. Both are optional and length-capped.","type":"object","additionalProperties":false,"properties":{"audit":{"type":"object","additionalProperties":false,"properties":{"source":{"type":"string","maxLength":64},"reason":{"type":"string","maxLength":256}}}}}}}}
```

## The EventSubscriptionCreateOneResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"EventSubscriptionCreateOneResponse":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","title":"IEventSubscriptionCreateOneResponse","description":"Response after creating an event subscription. Contains the new subscription resource and self link.","additionalProperties":false,"required":["data","links"],"properties":{"data":{"allOf":[{"$ref":"#/components/schemas/BaseResource"},{"type":"object","properties":{"attributes":{"allOf":[{"$ref":"#/components/schemas/BaseResourceAttributes"},{"$ref":"#/components/schemas/EventSubscriptionAttributes","required":["name","type","endpoint"]}]}},"required":["attributes"],"additionalProperties":false}]},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}}},"BaseResource":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResource","description":"JSON:API resource identifier. All Origin Studio API resource objects include at least an `id` (unique string identifier) and a `type` (the JSON:API resource type name, e.g. records, contributors).","type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"}},"required":["id","type"],"additionalProperties":false},"BaseResourceAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResourceAttributes","description":"Common timestamps present on all resource attribute objects. `created` is the ISO 8601 date-time when the resource was first created; `updated` is the date-time of the most recent modification.","type":"object","additionalProperties":false,"required":["created","updated"],"properties":{"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}},"EventSubscriptionAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IEventSubscriptionAttributes","description":"The attributes of a event subscription in a tenant.","type":"object","additionalProperties":false,"required":["name","type","endpoint","subscriptionArn"],"properties":{"name":{"type":"string"},"type":{"type":"string"},"endpoint":{"type":"string"},"subscriptionArn":{"type":"string"}}}}}}
```

## The EventSubscriptionFindOneResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"EventSubscriptionFindOneResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IEventSubscriptionFindOneResponse","description":"The response for a event subscription find one request.","type":"object","additionalProperties":false,"required":["data","links"],"properties":{"data":{"type":"object","required":["id","type","attributes"],"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["eventSubscriptions"]},"attributes":{"allOf":[{"$ref":"#/components/schemas/BaseResourceAttributes"},{"$ref":"#/components/schemas/EventSubscriptionAttributes"}]}}},"links":{"type":"object","required":["self"],"properties":{"self":{"type":"string"}},"additionalProperties":false}}},"BaseResourceAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResourceAttributes","description":"Common timestamps present on all resource attribute objects. `created` is the ISO 8601 date-time when the resource was first created; `updated` is the date-time of the most recent modification.","type":"object","additionalProperties":false,"required":["created","updated"],"properties":{"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}},"EventSubscriptionAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IEventSubscriptionAttributes","description":"The attributes of a event subscription in a tenant.","type":"object","additionalProperties":false,"required":["name","type","endpoint","subscriptionArn"],"properties":{"name":{"type":"string"},"type":{"type":"string"},"endpoint":{"type":"string"},"subscriptionArn":{"type":"string"}}}}}}
```

## The ITenantFullDeleteJobParameters object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"ITenantFullDeleteJobParameters":{"type":"object","properties":{"tenantIdToDelete":{"type":"string","description":"The ID of the tenant to delete"}},"required":["tenantIdToDelete"],"additionalProperties":false}}}}
```

## The ITenantSyncSystemPoliciesJobParameters object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"ITenantSyncSystemPoliciesJobParameters":{"type":"object","properties":{"tenantIdToSync":{"type":"string","description":"Optional: sync only this tenant instead of all tenants"}},"additionalProperties":false}}}}
```

## The TenantJobCreateOneRequest object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"TenantJobCreateOneRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantJobCreateOneRequest","description":"Request body to create a tenant background job. Specify job type and parameters.","type":"object","definitions":{"ITenantFullDeleteJobParameters":{"type":"object","properties":{"tenantIdToDelete":{"type":"string","description":"The ID of the tenant to delete"}},"required":["tenantIdToDelete"],"additionalProperties":false},"ITenantSyncSystemPoliciesJobParameters":{"type":"object","properties":{"tenantIdToSync":{"type":"string","description":"Optional: sync only this tenant instead of all tenants"}},"additionalProperties":false}},"properties":{"meta":{"$ref":"#/components/schemas/WriteRequestMeta"},"data":{"allOf":[{"$ref":"#/components/schemas/BaseCreateRequest"},{"type":"object","properties":{"attributes":{"type":"object","properties":{"type":{"type":"string","enum":["fullTenantDelete","syncSystemPolicies"],"description":"The type of tenant job to create"},"parameters":{"oneOf":[{"$ref":"#/components/schemas/ITenantFullDeleteJobParameters"},{"$ref":"#/components/schemas/ITenantSyncSystemPoliciesJobParameters"}]}},"required":["type","parameters"],"additionalProperties":false}},"required":["attributes"],"additionalProperties":false}]}},"required":["data"],"additionalProperties":false},"WriteRequestMeta":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IWriteRequestMeta","description":"Optional audit metadata for a write request. `audit.source` is the issuing surface/channel (e.g. studio-web, mcp, api, system); `audit.reason` is a free-text justification. Both are optional and length-capped.","type":"object","additionalProperties":false,"properties":{"audit":{"type":"object","additionalProperties":false,"properties":{"source":{"type":"string","maxLength":64},"reason":{"type":"string","maxLength":256}}}}},"BaseCreateRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseCreateRequest","description":"Base JSON:API shape for create requests. The `type` field is required and must match the target resource type. The `id` field is optional; if omitted, the server generates a unique ID for the new resource.","type":"object","additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"type":"string"}},"required":["type"]},"ITenantFullDeleteJobParameters":{"type":"object","properties":{"tenantIdToDelete":{"type":"string","description":"The ID of the tenant to delete"}},"required":["tenantIdToDelete"],"additionalProperties":false},"ITenantSyncSystemPoliciesJobParameters":{"type":"object","properties":{"tenantIdToSync":{"type":"string","description":"Optional: sync only this tenant instead of all tenants"}},"additionalProperties":false}}}}
```

## The TenantJob object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"TenantJob":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantJob","description":"Attributes for a tenant-level background job (e.g. full tenant delete). Extends generic background job attributes.","type":"object","allOf":[{"$ref":"#/components/schemas/BackgroundJobAttributes"},{"type":"object","properties":{"type":{"type":"string","enum":["fullTenantDelete","syncSystemPolicies"]},"parameters":{"type":"object","additionalProperties":true}},"required":["type","parameters"],"additionalProperties":false}],"required":["arn","status","created","updated","type","parameters"],"additionalProperties":false},"BackgroundJobAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBackgroundJobAttributes","description":"Attributes for a background job. Background jobs represent long-running asynchronous operations (e.g. contributor deletion, tenant data export). Includes current status, job type, parameters, optional output on completion, optional error details on failure, and optional item progress counts for batch jobs.","type":"object","allOf":[{"$ref":"#/components/schemas/BaseResourceAttributes"},{"type":"object","properties":{"type":{"type":"string"},"parameters":{"type":"object"},"status":{"$ref":"#/components/schemas/BackgroundJobStatus"},"output":{"type":"object"},"totalItemsCount":{"type":"integer","minimum":0,"description":"Total number of items in a batch job, when applicable."},"successItemsCount":{"type":"integer","minimum":0,"description":"Number of items processed successfully in a batch job, when applicable."},"failedItemsCount":{"type":"integer","minimum":0,"description":"Number of items that failed in a batch job, when applicable."},"error":{"type":"object","properties":{"message":{"type":"string"},"code":{"type":"string"}},"required":["message","code"],"additionalProperties":false}},"required":["type","parameters","status"],"additionalProperties":false}],"additionalProperties":false},"BaseResourceAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResourceAttributes","description":"Common timestamps present on all resource attribute objects. `created` is the ISO 8601 date-time when the resource was first created; `updated` is the date-time of the most recent modification.","type":"object","additionalProperties":false,"required":["created","updated"],"properties":{"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}},"BackgroundJobStatus":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBackgroundJobStatus","description":"Status of a background job: ABORTED, FAILED, PENDING_REDRIVE, RUNNING, SUCCEEDED, or TIMED_OUT.","type":"string","enum":["ABORTED","FAILED","PENDING_REDRIVE","RUNNING","SUCCEEDED","TIMED_OUT"]}}}}
```

## The TenantJobCreateOneResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"TenantJobCreateOneResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantJobCreateOneResponse","description":"Response after creating a tenant background job. Contains the new job resource and self link.","type":"object","properties":{"data":{"allOf":[{"$ref":"#/components/schemas/BaseCreateRequest"},{"additionalProperties":false,"properties":{"id":{"type":"string"},"attributes":{"$ref":"#/components/schemas/TenantJob"},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"]},"relationships":{"type":"object","properties":{"tenant":{"$ref":"#/components/schemas/TenantRelationship"}},"required":["tenant"],"additionalProperties":false}},"required":["id","attributes","links","relationships"]}]}},"required":["data"],"additionalProperties":false},"BaseCreateRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseCreateRequest","description":"Base JSON:API shape for create requests. The `type` field is required and must match the target resource type. The `id` field is optional; if omitted, the server generates a unique ID for the new resource.","type":"object","additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"type":"string"}},"required":["type"]},"TenantJob":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantJob","description":"Attributes for a tenant-level background job (e.g. full tenant delete). Extends generic background job attributes.","type":"object","allOf":[{"$ref":"#/components/schemas/BackgroundJobAttributes"},{"type":"object","properties":{"type":{"type":"string","enum":["fullTenantDelete","syncSystemPolicies"]},"parameters":{"type":"object","additionalProperties":true}},"required":["type","parameters"],"additionalProperties":false}],"required":["arn","status","created","updated","type","parameters"],"additionalProperties":false},"BackgroundJobAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBackgroundJobAttributes","description":"Attributes for a background job. Background jobs represent long-running asynchronous operations (e.g. contributor deletion, tenant data export). Includes current status, job type, parameters, optional output on completion, optional error details on failure, and optional item progress counts for batch jobs.","type":"object","allOf":[{"$ref":"#/components/schemas/BaseResourceAttributes"},{"type":"object","properties":{"type":{"type":"string"},"parameters":{"type":"object"},"status":{"$ref":"#/components/schemas/BackgroundJobStatus"},"output":{"type":"object"},"totalItemsCount":{"type":"integer","minimum":0,"description":"Total number of items in a batch job, when applicable."},"successItemsCount":{"type":"integer","minimum":0,"description":"Number of items processed successfully in a batch job, when applicable."},"failedItemsCount":{"type":"integer","minimum":0,"description":"Number of items that failed in a batch job, when applicable."},"error":{"type":"object","properties":{"message":{"type":"string"},"code":{"type":"string"}},"required":["message","code"],"additionalProperties":false}},"required":["type","parameters","status"],"additionalProperties":false}],"additionalProperties":false},"BaseResourceAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResourceAttributes","description":"Common timestamps present on all resource attribute objects. `created` is the ISO 8601 date-time when the resource was first created; `updated` is the date-time of the most recent modification.","type":"object","additionalProperties":false,"required":["created","updated"],"properties":{"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}},"BackgroundJobStatus":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBackgroundJobStatus","description":"Status of a background job: ABORTED, FAILED, PENDING_REDRIVE, RUNNING, SUCCEEDED, or TIMED_OUT.","type":"string","enum":["ABORTED","FAILED","PENDING_REDRIVE","RUNNING","SUCCEEDED","TIMED_OUT"]},"TenantRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantRelationship","description":"A relationship to a tenant","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tenants"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data","links"],"additionalProperties":false},"LinksRelated":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILinks","description":"A JSON:API links object with an absolute or relative 'related' link","type":"object","required":["related"],"properties":{"related":{"type":"string"}},"additionalProperties":false}}}}
```

## The UserAttributes object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"UserAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IUserAttributes","description":"Attribute fields for a user. `source` distinguishes users created directly in Origin Studio (`local`) from those federated via an external identity provider (`external`). `blocked` indicates whether the user's access is disabled; when true the user cannot log in.","type":"object","additionalProperties":false,"properties":{"email_verified":{"type":"boolean"},"picture":{"type":"string","description":"URL to a picture for this user"},"name":{"type":"string","description":"Name of this user"},"email":{"type":"string","description":"Email address of this user"},"app_metadata":{"type":"object","description":"App-specific metadata for this user"},"source":{"type":"string","description":"Source of this user","enum":["local","external"]},"identity_provider":{"type":"string","description":"The identity provider used to authenticate this user (e.g. local, google-oauth2)"},"blocked":{"type":"boolean","description":"Whether the user is blocked/disabled"},"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}}}}}
```

## The User object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"User":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IUser","description":"A JSON:API user resource representing a person with access to Origin Studio. Includes profile attributes (email, name, picture, status) and relationships to the owning tenant and the user's assigned roles.","allOf":[{"$ref":"#/components/schemas/BaseResource"},{"type":"object","properties":{"type":{"type":"string","const":"users"},"attributes":{"allOf":[{"$ref":"#/components/schemas/UserAttributes"}],"additionalProperties":false},"relationships":{"type":"object","required":["tenant"],"additionalProperties":false,"properties":{"tenant":{"$ref":"#/components/schemas/TenantRelationship"},"roles":{"type":"object","additionalProperties":false,"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/RoleRelationship"}}}}}}},"required":["type","attributes","relationships"],"additionalProperties":false}]},"BaseResource":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResource","description":"JSON:API resource identifier. All Origin Studio API resource objects include at least an `id` (unique string identifier) and a `type` (the JSON:API resource type name, e.g. records, contributors).","type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"}},"required":["id","type"],"additionalProperties":false},"UserAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IUserAttributes","description":"Attribute fields for a user. `source` distinguishes users created directly in Origin Studio (`local`) from those federated via an external identity provider (`external`). `blocked` indicates whether the user's access is disabled; when true the user cannot log in.","type":"object","additionalProperties":false,"properties":{"email_verified":{"type":"boolean"},"picture":{"type":"string","description":"URL to a picture for this user"},"name":{"type":"string","description":"Name of this user"},"email":{"type":"string","description":"Email address of this user"},"app_metadata":{"type":"object","description":"App-specific metadata for this user"},"source":{"type":"string","description":"Source of this user","enum":["local","external"]},"identity_provider":{"type":"string","description":"The identity provider used to authenticate this user (e.g. local, google-oauth2)"},"blocked":{"type":"boolean","description":"Whether the user is blocked/disabled"},"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}},"TenantRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantRelationship","description":"A relationship to a tenant","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tenants"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data","links"],"additionalProperties":false},"LinksRelated":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILinks","description":"A JSON:API links object with an absolute or relative 'related' link","type":"object","required":["related"],"properties":{"related":{"type":"string"}},"additionalProperties":false},"RoleRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRoleRelationship","description":"A relationship to a role","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["userRoles"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data"],"additionalProperties":false}}}}
```

## The GetUsersResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"GetUsersResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IGetUsersResponse","description":"Paginated response for listing users within a tenant. Each item in `data` is a full user resource with profile attributes and role relationships, plus a `meta.tenantId` and a self link. The top-level `meta` object provides total count and pagination offsets.","type":"object","additionalProperties":false,"required":["data","meta","links"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","type","attributes","relationships"],"additionalProperties":false,"allOf":[{"$ref":"#/components/schemas/User"},{"type":"object","additionalProperties":false,"required":["meta","links"],"properties":{"meta":{"type":"object","properties":{"tenantId":{"type":"string"}},"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"additionalProperties":false}}}]},"additionalProperties":false},"meta":{"type":"object","properties":{"total":{"type":"integer"},"start":{"type":"integer"},"limit":{"type":"integer"}},"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"additionalProperties":false}}},"User":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IUser","description":"A JSON:API user resource representing a person with access to Origin Studio. Includes profile attributes (email, name, picture, status) and relationships to the owning tenant and the user's assigned roles.","allOf":[{"$ref":"#/components/schemas/BaseResource"},{"type":"object","properties":{"type":{"type":"string","const":"users"},"attributes":{"allOf":[{"$ref":"#/components/schemas/UserAttributes"}],"additionalProperties":false},"relationships":{"type":"object","required":["tenant"],"additionalProperties":false,"properties":{"tenant":{"$ref":"#/components/schemas/TenantRelationship"},"roles":{"type":"object","additionalProperties":false,"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/RoleRelationship"}}}}}}},"required":["type","attributes","relationships"],"additionalProperties":false}]},"BaseResource":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResource","description":"JSON:API resource identifier. All Origin Studio API resource objects include at least an `id` (unique string identifier) and a `type` (the JSON:API resource type name, e.g. records, contributors).","type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"}},"required":["id","type"],"additionalProperties":false},"UserAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IUserAttributes","description":"Attribute fields for a user. `source` distinguishes users created directly in Origin Studio (`local`) from those federated via an external identity provider (`external`). `blocked` indicates whether the user's access is disabled; when true the user cannot log in.","type":"object","additionalProperties":false,"properties":{"email_verified":{"type":"boolean"},"picture":{"type":"string","description":"URL to a picture for this user"},"name":{"type":"string","description":"Name of this user"},"email":{"type":"string","description":"Email address of this user"},"app_metadata":{"type":"object","description":"App-specific metadata for this user"},"source":{"type":"string","description":"Source of this user","enum":["local","external"]},"identity_provider":{"type":"string","description":"The identity provider used to authenticate this user (e.g. local, google-oauth2)"},"blocked":{"type":"boolean","description":"Whether the user is blocked/disabled"},"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}},"TenantRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantRelationship","description":"A relationship to a tenant","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tenants"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data","links"],"additionalProperties":false},"LinksRelated":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILinks","description":"A JSON:API links object with an absolute or relative 'related' link","type":"object","required":["related"],"properties":{"related":{"type":"string"}},"additionalProperties":false},"RoleRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRoleRelationship","description":"A relationship to a role","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["userRoles"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data"],"additionalProperties":false}}}}
```

## The CreateUsersRequest object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"CreateUsersRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ICreateUsersRequest","description":"Request body for creating one or more users in a single API call. Each entry in `data` specifies the user's email address and the role IDs to assign. The new user will receive an invitation email and must verify their account before logging in.","type":"object","properties":{"meta":{"$ref":"#/components/schemas/WriteRequestMeta"},"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["user"],"description":"The type of the resource, which must be 'user'"},"attributes":{"type":"object","properties":{"email":{"type":"string","format":"email","description":"The email address of the user"},"roles":{"type":"array","items":{"type":"string"},"description":"An array of role IDs to assign to the user"}},"required":["email","roles"],"additionalProperties":false}},"required":["type","attributes"],"additionalProperties":false}}},"required":["data"],"additionalProperties":false},"WriteRequestMeta":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IWriteRequestMeta","description":"Optional audit metadata for a write request. `audit.source` is the issuing surface/channel (e.g. studio-web, mcp, api, system); `audit.reason` is a free-text justification. Both are optional and length-capped.","type":"object","additionalProperties":false,"properties":{"audit":{"type":"object","additionalProperties":false,"properties":{"source":{"type":"string","maxLength":64},"reason":{"type":"string","maxLength":256}}}}}}}}
```

## The CreateUsersData object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"CreateUsersData":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ICreateUsersData","description":"The result payload of a batch user creation operation. `created` lists users that were successfully created with their email and assigned role IDs. `failed` lists entries that could not be created, each with the email address, HTTP status code, and error details explaining the failure.","type":"object","properties":{"created":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["users"]},"id":{"type":"string","format":"email"},"attributes":{"type":"object","properties":{"email":{"type":"string","format":"email"},"roles":{"type":"array","items":{"type":"string"}}},"required":["email","roles"]}},"required":["type","id","attributes"],"additionalProperties":false}},"failed":{"type":"array","items":{"type":"object","properties":{"email":{"type":"string","format":"email"},"status":{"type":"number"},"title":{"type":"string"},"detail":{"type":"string"}},"required":["email","status","title","detail"],"additionalProperties":false}}},"required":["created","failed"],"additionalProperties":false}}}}
```

## The CreateUsersResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"CreateUsersResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ICreateUsersResponse","description":"Response returned by the batch user creation endpoint. The `data` object contains separate `created` and `failed` arrays, allowing partial success — the caller should inspect both arrays even on a 201 response.","type":"object","properties":{"data":{"type":"object","$ref":"#/components/schemas/CreateUsersData"}},"required":["data"],"additionalProperties":false},"CreateUsersData":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ICreateUsersData","description":"The result payload of a batch user creation operation. `created` lists users that were successfully created with their email and assigned role IDs. `failed` lists entries that could not be created, each with the email address, HTTP status code, and error details explaining the failure.","type":"object","properties":{"created":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["users"]},"id":{"type":"string","format":"email"},"attributes":{"type":"object","properties":{"email":{"type":"string","format":"email"},"roles":{"type":"array","items":{"type":"string"}}},"required":["email","roles"]}},"required":["type","id","attributes"],"additionalProperties":false}},"failed":{"type":"array","items":{"type":"object","properties":{"email":{"type":"string","format":"email"},"status":{"type":"number"},"title":{"type":"string"},"detail":{"type":"string"}},"required":["email","status","title","detail"],"additionalProperties":false}}},"required":["created","failed"],"additionalProperties":false}}}}
```

## The GetUserResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"GetUserResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IGetUserResponse","description":"The response for a user find one request.","type":"object","additionalProperties":false,"required":["data","meta","links"],"properties":{"data":{"$ref":"#/components/schemas/User"},"meta":{"type":"object","required":["tenantId"],"properties":{"tenantId":{"type":"string"},"permissions":{"type":"object","properties":{"deliveryWorkspace":{"type":"object","properties":{"canAccess":{"type":"boolean"}}},"administration":{"type":"object","properties":{"canAccess":{"type":"boolean"}}},"bulkActions":{"type":"object","properties":{"write":{"type":"object","properties":{"canAccess":{"type":"boolean"}}},"delete":{"type":"object","properties":{"canAccess":{"type":"boolean"}}}}}}}},"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"additionalProperties":false}}},"User":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IUser","description":"A JSON:API user resource representing a person with access to Origin Studio. Includes profile attributes (email, name, picture, status) and relationships to the owning tenant and the user's assigned roles.","allOf":[{"$ref":"#/components/schemas/BaseResource"},{"type":"object","properties":{"type":{"type":"string","const":"users"},"attributes":{"allOf":[{"$ref":"#/components/schemas/UserAttributes"}],"additionalProperties":false},"relationships":{"type":"object","required":["tenant"],"additionalProperties":false,"properties":{"tenant":{"$ref":"#/components/schemas/TenantRelationship"},"roles":{"type":"object","additionalProperties":false,"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/RoleRelationship"}}}}}}},"required":["type","attributes","relationships"],"additionalProperties":false}]},"BaseResource":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResource","description":"JSON:API resource identifier. All Origin Studio API resource objects include at least an `id` (unique string identifier) and a `type` (the JSON:API resource type name, e.g. records, contributors).","type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"}},"required":["id","type"],"additionalProperties":false},"UserAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IUserAttributes","description":"Attribute fields for a user. `source` distinguishes users created directly in Origin Studio (`local`) from those federated via an external identity provider (`external`). `blocked` indicates whether the user's access is disabled; when true the user cannot log in.","type":"object","additionalProperties":false,"properties":{"email_verified":{"type":"boolean"},"picture":{"type":"string","description":"URL to a picture for this user"},"name":{"type":"string","description":"Name of this user"},"email":{"type":"string","description":"Email address of this user"},"app_metadata":{"type":"object","description":"App-specific metadata for this user"},"source":{"type":"string","description":"Source of this user","enum":["local","external"]},"identity_provider":{"type":"string","description":"The identity provider used to authenticate this user (e.g. local, google-oauth2)"},"blocked":{"type":"boolean","description":"Whether the user is blocked/disabled"},"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}},"TenantRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantRelationship","description":"A relationship to a tenant","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tenants"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data","links"],"additionalProperties":false},"LinksRelated":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILinks","description":"A JSON:API links object with an absolute or relative 'related' link","type":"object","required":["related"],"properties":{"related":{"type":"string"}},"additionalProperties":false},"RoleRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRoleRelationship","description":"A relationship to a role","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["userRoles"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data"],"additionalProperties":false}}}}
```

## The PatchUserRequest object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"PatchUserRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IPatchUserRequest","description":"Request body for partially updating a user. Supports updating the user's `blocked` status via `attributes` and/or replacing the user's role assignments via `relationships.roles`. The `data.id` must match the `userId` path parameter.","type":"object","required":["data"],"additionalProperties":false,"properties":{"meta":{"$ref":"#/components/schemas/WriteRequestMeta"},"data":{"allOf":[{"$ref":"#/components/schemas/BaseResource"},{"required":["id","type"],"additionalProperties":false,"properties":{"type":{"type":"string","enum":["users"]},"attributes":{"type":"object","additionalProperties":false,"properties":{"blocked":{"type":"boolean"}}},"relationships":{"type":"object","required":["roles"],"additionalProperties":false,"properties":{"roles":{"type":"object","required":["data"],"additionalProperties":false,"properties":{"data":{"type":"array","items":{"type":"object","required":["id","type"],"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["userRoles"]}}}}}}}}}}]}}},"WriteRequestMeta":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IWriteRequestMeta","description":"Optional audit metadata for a write request. `audit.source` is the issuing surface/channel (e.g. studio-web, mcp, api, system); `audit.reason` is a free-text justification. Both are optional and length-capped.","type":"object","additionalProperties":false,"properties":{"audit":{"type":"object","additionalProperties":false,"properties":{"source":{"type":"string","maxLength":64},"reason":{"type":"string","maxLength":256}}}}},"BaseResource":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResource","description":"JSON:API resource identifier. All Origin Studio API resource objects include at least an `id` (unique string identifier) and a `type` (the JSON:API resource type name, e.g. records, contributors).","type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"}},"required":["id","type"],"additionalProperties":false}}}}
```

## The UserRoleAttributes object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"UserRoleAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IUserRoleAttributes","description":"Attributes of a user role. `name` is the display name (e.g., 'Admin', 'Editor'). `dataSource` indicates whether the role is system-provisioned by Fabric (`fabric`) or created by the tenant (`custom`). Fabric roles cannot be renamed or deleted.","type":"object","required":["name"],"additionalProperties":false,"properties":{"name":{"type":"string","description":"Name of this role"},"description":{"type":"string","description":"Description of this role"},"dataSource":{"type":"string","description":"The data source of the role","enum":["custom","fabric"]},"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}}}}}
```

## The RoleRelationships object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"RoleRelationships":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRoleRelationships","description":"JSON:API relationship links for a role resource. Contains the owning `tenant` relationship and an optional `author` relationship identifying the user who created the role (with display name and tenant context in meta).","type":"object","properties":{"tenant":{"$ref":"#/components/schemas/TenantRelationship"},"author":{"type":"object","required":["data"],"additionalProperties":false,"properties":{"data":{"type":"object","required":["id","type","meta"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["users"]},"meta":{"type":"object","required":["tenantId","type","displayName"],"properties":{"tenantId":{"type":"string"},"type":{"type":"string"},"displayName":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"links":{"type":"object","properties":{"related":{"type":"string"}},"additionalProperties":false}}}},"required":["tenant"],"additionalProperties":false},"TenantRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantRelationship","description":"A relationship to a tenant","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tenants"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data","links"],"additionalProperties":false},"LinksRelated":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILinks","description":"A JSON:API links object with an absolute or relative 'related' link","type":"object","required":["related"],"properties":{"related":{"type":"string"}},"additionalProperties":false}}}}
```

## The RoleFindManyResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"RoleFindManyResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRoleFindManyResponse","description":"Response for listing all roles in a tenant. Each item in `data` is a full role resource with its name, description, dataSource, timestamps, tenant relationship, and author relationship. The `meta.tenantId` on each role item identifies the owning tenant.","type":"object","additionalProperties":false,"required":["data","links"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","type","attributes","relationships","meta"],"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["userRoles"]},"attributes":{"allOf":[{"$ref":"#/components/schemas/BaseResourceAttributes"},{"$ref":"#/components/schemas/UserRoleAttributes"}]},"relationships":{"$ref":"#/components/schemas/RoleRelationships"},"meta":{"type":"object","properties":{"tenantId":{"type":"string"}},"required":["tenantId"]},"links":{"$ref":"#/components/schemas/LinksRelated"}}}},"links":{"type":"object","required":["self"],"properties":{"self":{"type":"string"}},"additionalProperties":false}}},"BaseResourceAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResourceAttributes","description":"Common timestamps present on all resource attribute objects. `created` is the ISO 8601 date-time when the resource was first created; `updated` is the date-time of the most recent modification.","type":"object","additionalProperties":false,"required":["created","updated"],"properties":{"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}},"UserRoleAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IUserRoleAttributes","description":"Attributes of a user role. `name` is the display name (e.g., 'Admin', 'Editor'). `dataSource` indicates whether the role is system-provisioned by Fabric (`fabric`) or created by the tenant (`custom`). Fabric roles cannot be renamed or deleted.","type":"object","required":["name"],"additionalProperties":false,"properties":{"name":{"type":"string","description":"Name of this role"},"description":{"type":"string","description":"Description of this role"},"dataSource":{"type":"string","description":"The data source of the role","enum":["custom","fabric"]},"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}},"RoleRelationships":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRoleRelationships","description":"JSON:API relationship links for a role resource. Contains the owning `tenant` relationship and an optional `author` relationship identifying the user who created the role (with display name and tenant context in meta).","type":"object","properties":{"tenant":{"$ref":"#/components/schemas/TenantRelationship"},"author":{"type":"object","required":["data"],"additionalProperties":false,"properties":{"data":{"type":"object","required":["id","type","meta"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["users"]},"meta":{"type":"object","required":["tenantId","type","displayName"],"properties":{"tenantId":{"type":"string"},"type":{"type":"string"},"displayName":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"links":{"type":"object","properties":{"related":{"type":"string"}},"additionalProperties":false}}}},"required":["tenant"],"additionalProperties":false},"TenantRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantRelationship","description":"A relationship to a tenant","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tenants"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data","links"],"additionalProperties":false},"LinksRelated":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILinks","description":"A JSON:API links object with an absolute or relative 'related' link","type":"object","required":["related"],"properties":{"related":{"type":"string"}},"additionalProperties":false}}}}
```

## The EffectiveConditions object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"EffectiveConditions":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IEffectiveConditions","description":"Scoping conditions attached to a policy-granted action. Mirrors the policy template's conditions. Only present on grants with source 'policy'.","type":"object","additionalProperties":false,"properties":{"workTypes":{"type":"array","items":{"type":"string"}},"locales":{"type":"array","items":{"type":"string"}},"lifecyclePhases":{"type":"array","items":{"type":"string"}},"lifecycleStatuses":{"type":"object","description":"Per-work-type lifecycle status access (the template's workTypeLifecycleAccess). Keyed by work type because status ids are only unique within a work type.","additionalProperties":{"type":"array","items":{"type":"string"}}},"sectionIds":{"type":"array","items":{"type":"string"}},"createSources":{"type":"array","items":{"type":"string"}},"updateTypes":{"type":"array","items":{"type":"string"}},"securityTagId":{"type":"string"},"dataGroups":{"type":"object","description":"Per-work-type entity-collection access (the template's workTypeEntityAccess).","additionalProperties":{"type":"object","additionalProperties":false,"properties":{"creditsAccess":{"type":"boolean"},"mediaAccess":{"type":"array","items":{"type":"string"}},"externalDataAccess":{"type":"boolean"}}}}}}}}}
```

## The EffectiveActionGrant object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"EffectiveActionGrant":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IEffectiveActionGrant","description":"A single allowed action on a resource, tagged with where it comes from.","type":"object","additionalProperties":false,"required":["verb","source"],"properties":{"verb":{"type":"string","enum":["Create","Read","Update","Delete","Write"],"description":"The allowed action verb."},"source":{"type":"string","enum":["baseline","policy"],"description":"'baseline' = granted by the role's identity (system policies); 'policy' = a custom assigned policy."},"policyId":{"type":"string"},"templateId":{"type":"string"},"templateLabel":{"type":"string"},"conditions":{"$ref":"#/components/schemas/EffectiveConditions"}}},"EffectiveConditions":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IEffectiveConditions","description":"Scoping conditions attached to a policy-granted action. Mirrors the policy template's conditions. Only present on grants with source 'policy'.","type":"object","additionalProperties":false,"properties":{"workTypes":{"type":"array","items":{"type":"string"}},"locales":{"type":"array","items":{"type":"string"}},"lifecyclePhases":{"type":"array","items":{"type":"string"}},"lifecycleStatuses":{"type":"object","description":"Per-work-type lifecycle status access (the template's workTypeLifecycleAccess). Keyed by work type because status ids are only unique within a work type.","additionalProperties":{"type":"array","items":{"type":"string"}}},"sectionIds":{"type":"array","items":{"type":"string"}},"createSources":{"type":"array","items":{"type":"string"}},"updateTypes":{"type":"array","items":{"type":"string"}},"securityTagId":{"type":"string"},"dataGroups":{"type":"object","description":"Per-work-type entity-collection access (the template's workTypeEntityAccess).","additionalProperties":{"type":"object","additionalProperties":false,"properties":{"creditsAccess":{"type":"boolean"},"mediaAccess":{"type":"array","items":{"type":"string"}},"externalDataAccess":{"type":"boolean"}}}}}}}}}
```

## The EffectiveResourceGroup object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"EffectiveResourceGroup":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IEffectiveResourceGroup","description":"All allowed actions on a single resource category.","type":"object","additionalProperties":false,"required":["resourceType","grants"],"properties":{"resourceType":{"type":"string","enum":["record","contributor","credits","media","delivery","dataset","field","recordLayout","recordLifecycle","tenant","user","globalMetadata","bulkActions"]},"grants":{"type":"array","items":{"$ref":"#/components/schemas/EffectiveActionGrant"}}}},"EffectiveActionGrant":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IEffectiveActionGrant","description":"A single allowed action on a resource, tagged with where it comes from.","type":"object","additionalProperties":false,"required":["verb","source"],"properties":{"verb":{"type":"string","enum":["Create","Read","Update","Delete","Write"],"description":"The allowed action verb."},"source":{"type":"string","enum":["baseline","policy"],"description":"'baseline' = granted by the role's identity (system policies); 'policy' = a custom assigned policy."},"policyId":{"type":"string"},"templateId":{"type":"string"},"templateLabel":{"type":"string"},"conditions":{"$ref":"#/components/schemas/EffectiveConditions"}}},"EffectiveConditions":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IEffectiveConditions","description":"Scoping conditions attached to a policy-granted action. Mirrors the policy template's conditions. Only present on grants with source 'policy'.","type":"object","additionalProperties":false,"properties":{"workTypes":{"type":"array","items":{"type":"string"}},"locales":{"type":"array","items":{"type":"string"}},"lifecyclePhases":{"type":"array","items":{"type":"string"}},"lifecycleStatuses":{"type":"object","description":"Per-work-type lifecycle status access (the template's workTypeLifecycleAccess). Keyed by work type because status ids are only unique within a work type.","additionalProperties":{"type":"array","items":{"type":"string"}}},"sectionIds":{"type":"array","items":{"type":"string"}},"createSources":{"type":"array","items":{"type":"string"}},"updateTypes":{"type":"array","items":{"type":"string"}},"securityTagId":{"type":"string"},"dataGroups":{"type":"object","description":"Per-work-type entity-collection access (the template's workTypeEntityAccess).","additionalProperties":{"type":"object","additionalProperties":false,"properties":{"creditsAccess":{"type":"boolean"},"mediaAccess":{"type":"array","items":{"type":"string"}},"externalDataAccess":{"type":"boolean"}}}}}}}}}
```

## The EffectivePermissionsAttributes object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"EffectivePermissionsAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IEffectivePermissionsAttributes","description":"Descriptive summary of what a role (or the union of a user's roles) is allowed to do.","type":"object","additionalProperties":false,"required":["roles","fullAccess","resourceGroups"],"properties":{"roles":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["roleId","isSystemRole"],"properties":{"roleId":{"type":"string"},"roleName":{"type":"string"},"isSystemRole":{"type":"boolean"}}}},"fullAccess":{"type":"boolean","description":"True when the role is unrestricted within 'scope'. When true, 'resourceGroups' is empty."},"scope":{"type":"string","enum":["global","tenant"],"description":"Present when 'fullAccess' is true. Indicates the breadth of that unrestricted access: 'tenant' covers the caller's own tenant."},"forbids":{"type":"array","items":{"type":"string"},"description":"Stable keys describing notable restrictions (Admin caveats)."},"resourceGroups":{"type":"array","items":{"$ref":"#/components/schemas/EffectiveResourceGroup"}}}},"EffectiveResourceGroup":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IEffectiveResourceGroup","description":"All allowed actions on a single resource category.","type":"object","additionalProperties":false,"required":["resourceType","grants"],"properties":{"resourceType":{"type":"string","enum":["record","contributor","credits","media","delivery","dataset","field","recordLayout","recordLifecycle","tenant","user","globalMetadata","bulkActions"]},"grants":{"type":"array","items":{"$ref":"#/components/schemas/EffectiveActionGrant"}}}},"EffectiveActionGrant":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IEffectiveActionGrant","description":"A single allowed action on a resource, tagged with where it comes from.","type":"object","additionalProperties":false,"required":["verb","source"],"properties":{"verb":{"type":"string","enum":["Create","Read","Update","Delete","Write"],"description":"The allowed action verb."},"source":{"type":"string","enum":["baseline","policy"],"description":"'baseline' = granted by the role's identity (system policies); 'policy' = a custom assigned policy."},"policyId":{"type":"string"},"templateId":{"type":"string"},"templateLabel":{"type":"string"},"conditions":{"$ref":"#/components/schemas/EffectiveConditions"}}},"EffectiveConditions":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IEffectiveConditions","description":"Scoping conditions attached to a policy-granted action. Mirrors the policy template's conditions. Only present on grants with source 'policy'.","type":"object","additionalProperties":false,"properties":{"workTypes":{"type":"array","items":{"type":"string"}},"locales":{"type":"array","items":{"type":"string"}},"lifecyclePhases":{"type":"array","items":{"type":"string"}},"lifecycleStatuses":{"type":"object","description":"Per-work-type lifecycle status access (the template's workTypeLifecycleAccess). Keyed by work type because status ids are only unique within a work type.","additionalProperties":{"type":"array","items":{"type":"string"}}},"sectionIds":{"type":"array","items":{"type":"string"}},"createSources":{"type":"array","items":{"type":"string"}},"updateTypes":{"type":"array","items":{"type":"string"}},"securityTagId":{"type":"string"},"dataGroups":{"type":"object","description":"Per-work-type entity-collection access (the template's workTypeEntityAccess).","additionalProperties":{"type":"object","additionalProperties":false,"properties":{"creditsAccess":{"type":"boolean"},"mediaAccess":{"type":"array","items":{"type":"string"}},"externalDataAccess":{"type":"boolean"}}}}}}}}}
```

## The EffectivePermissionsResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"EffectivePermissionsResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IEffectivePermissionsResponse","description":"Effective permissions for a user (the union of their roles, via /users/{userId}/permissions) or a single role (via /roles/{roleId}/permissions). The two endpoints share this structurally identical shape.","type":"object","additionalProperties":false,"required":["data","links"],"properties":{"data":{"type":"object","required":["id","type","attributes"],"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["effectivePermissions"]},"attributes":{"$ref":"#/components/schemas/EffectivePermissionsAttributes"},"meta":{"type":"object","additionalProperties":false,"required":["tenantId"],"properties":{"tenantId":{"type":"string"}}}}},"links":{"type":"object","additionalProperties":false,"required":["self"],"properties":{"self":{"type":"string"}}}}},"EffectivePermissionsAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IEffectivePermissionsAttributes","description":"Descriptive summary of what a role (or the union of a user's roles) is allowed to do.","type":"object","additionalProperties":false,"required":["roles","fullAccess","resourceGroups"],"properties":{"roles":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["roleId","isSystemRole"],"properties":{"roleId":{"type":"string"},"roleName":{"type":"string"},"isSystemRole":{"type":"boolean"}}}},"fullAccess":{"type":"boolean","description":"True when the role is unrestricted within 'scope'. When true, 'resourceGroups' is empty."},"scope":{"type":"string","enum":["global","tenant"],"description":"Present when 'fullAccess' is true. Indicates the breadth of that unrestricted access: 'tenant' covers the caller's own tenant."},"forbids":{"type":"array","items":{"type":"string"},"description":"Stable keys describing notable restrictions (Admin caveats)."},"resourceGroups":{"type":"array","items":{"$ref":"#/components/schemas/EffectiveResourceGroup"}}}},"EffectiveResourceGroup":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IEffectiveResourceGroup","description":"All allowed actions on a single resource category.","type":"object","additionalProperties":false,"required":["resourceType","grants"],"properties":{"resourceType":{"type":"string","enum":["record","contributor","credits","media","delivery","dataset","field","recordLayout","recordLifecycle","tenant","user","globalMetadata","bulkActions"]},"grants":{"type":"array","items":{"$ref":"#/components/schemas/EffectiveActionGrant"}}}},"EffectiveActionGrant":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IEffectiveActionGrant","description":"A single allowed action on a resource, tagged with where it comes from.","type":"object","additionalProperties":false,"required":["verb","source"],"properties":{"verb":{"type":"string","enum":["Create","Read","Update","Delete","Write"],"description":"The allowed action verb."},"source":{"type":"string","enum":["baseline","policy"],"description":"'baseline' = granted by the role's identity (system policies); 'policy' = a custom assigned policy."},"policyId":{"type":"string"},"templateId":{"type":"string"},"templateLabel":{"type":"string"},"conditions":{"$ref":"#/components/schemas/EffectiveConditions"}}},"EffectiveConditions":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IEffectiveConditions","description":"Scoping conditions attached to a policy-granted action. Mirrors the policy template's conditions. Only present on grants with source 'policy'.","type":"object","additionalProperties":false,"properties":{"workTypes":{"type":"array","items":{"type":"string"}},"locales":{"type":"array","items":{"type":"string"}},"lifecyclePhases":{"type":"array","items":{"type":"string"}},"lifecycleStatuses":{"type":"object","description":"Per-work-type lifecycle status access (the template's workTypeLifecycleAccess). Keyed by work type because status ids are only unique within a work type.","additionalProperties":{"type":"array","items":{"type":"string"}}},"sectionIds":{"type":"array","items":{"type":"string"}},"createSources":{"type":"array","items":{"type":"string"}},"updateTypes":{"type":"array","items":{"type":"string"}},"securityTagId":{"type":"string"},"dataGroups":{"type":"object","description":"Per-work-type entity-collection access (the template's workTypeEntityAccess).","additionalProperties":{"type":"object","additionalProperties":false,"properties":{"creditsAccess":{"type":"boolean"},"mediaAccess":{"type":"array","items":{"type":"string"}},"externalDataAccess":{"type":"boolean"}}}}}}}}}
```

## The CreateRoleRequest object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"CreateRoleRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRoleCreateRequest","description":"Request body for creating a new custom role in a tenant. The `name` is required and must be unique within the tenant. An optional `description` can be provided to explain the role's purpose.","type":"object","properties":{"meta":{"$ref":"#/components/schemas/WriteRequestMeta"},"data":{"allOf":[{"$ref":"#/components/schemas/BaseCreateRequest"},{"additionalProperties":false,"properties":{"attributes":{"type":"object","required":["name"],"additionalProperties":false,"properties":{"name":{"type":"string","description":"The name of the role"},"description":{"type":"string","description":"The description of the role"}}}},"required":["attributes"]}]}},"required":["data"],"additionalProperties":false},"WriteRequestMeta":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IWriteRequestMeta","description":"Optional audit metadata for a write request. `audit.source` is the issuing surface/channel (e.g. studio-web, mcp, api, system); `audit.reason` is a free-text justification. Both are optional and length-capped.","type":"object","additionalProperties":false,"properties":{"audit":{"type":"object","additionalProperties":false,"properties":{"source":{"type":"string","maxLength":64},"reason":{"type":"string","maxLength":256}}}}},"BaseCreateRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseCreateRequest","description":"Base JSON:API shape for create requests. The `type` field is required and must match the target resource type. The `id` field is optional; if omitted, the server generates a unique ID for the new resource.","type":"object","additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"type":"string"}},"required":["type"]}}}}
```

## The RoleFindOneResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"RoleFindOneResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRoleFindOneResponse","description":"The response for a user role find one request.","type":"object","additionalProperties":false,"required":["data","links"],"properties":{"data":{"type":"object","required":["id","type","attributes","relationships","meta"],"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["userRoles"]},"attributes":{"allOf":[{"$ref":"#/components/schemas/BaseResourceAttributes"},{"$ref":"#/components/schemas/UserRoleAttributes"}]},"relationships":{"$ref":"#/components/schemas/RoleRelationships"},"meta":{"type":"object","properties":{"tenantId":{"type":"string"}},"required":["tenantId"]}}},"links":{"type":"object","required":["self"],"properties":{"self":{"type":"string"}},"additionalProperties":false}}},"BaseResourceAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResourceAttributes","description":"Common timestamps present on all resource attribute objects. `created` is the ISO 8601 date-time when the resource was first created; `updated` is the date-time of the most recent modification.","type":"object","additionalProperties":false,"required":["created","updated"],"properties":{"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}},"UserRoleAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IUserRoleAttributes","description":"Attributes of a user role. `name` is the display name (e.g., 'Admin', 'Editor'). `dataSource` indicates whether the role is system-provisioned by Fabric (`fabric`) or created by the tenant (`custom`). Fabric roles cannot be renamed or deleted.","type":"object","required":["name"],"additionalProperties":false,"properties":{"name":{"type":"string","description":"Name of this role"},"description":{"type":"string","description":"Description of this role"},"dataSource":{"type":"string","description":"The data source of the role","enum":["custom","fabric"]},"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}},"RoleRelationships":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRoleRelationships","description":"JSON:API relationship links for a role resource. Contains the owning `tenant` relationship and an optional `author` relationship identifying the user who created the role (with display name and tenant context in meta).","type":"object","properties":{"tenant":{"$ref":"#/components/schemas/TenantRelationship"},"author":{"type":"object","required":["data"],"additionalProperties":false,"properties":{"data":{"type":"object","required":["id","type","meta"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["users"]},"meta":{"type":"object","required":["tenantId","type","displayName"],"properties":{"tenantId":{"type":"string"},"type":{"type":"string"},"displayName":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"links":{"type":"object","properties":{"related":{"type":"string"}},"additionalProperties":false}}}},"required":["tenant"],"additionalProperties":false},"TenantRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantRelationship","description":"A relationship to a tenant","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tenants"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data","links"],"additionalProperties":false},"LinksRelated":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILinks","description":"A JSON:API links object with an absolute or relative 'related' link","type":"object","required":["related"],"properties":{"related":{"type":"string"}},"additionalProperties":false}}}}
```

## The RoleUpdateOneRequest object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"RoleUpdateOneRequest":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRoleUpdateOneRequest","description":"Request body for updating a role's description. Currently only the `description` attribute is updatable via this endpoint. The role name is immutable after creation.","type":"object","properties":{"meta":{"$ref":"#/components/schemas/WriteRequestMeta"},"data":{"allOf":[{"$ref":"#/components/schemas/BaseResource"},{"additionalProperties":false,"properties":{"attributes":{"type":"object","required":["description"],"additionalProperties":false,"properties":{"description":{"type":"string","description":"The description of the role"}}}},"required":["attributes"]}]}},"required":["data"],"additionalProperties":false},"WriteRequestMeta":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IWriteRequestMeta","description":"Optional audit metadata for a write request. `audit.source` is the issuing surface/channel (e.g. studio-web, mcp, api, system); `audit.reason` is a free-text justification. Both are optional and length-capped.","type":"object","additionalProperties":false,"properties":{"audit":{"type":"object","additionalProperties":false,"properties":{"source":{"type":"string","maxLength":64},"reason":{"type":"string","maxLength":256}}}}},"BaseResource":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResource","description":"JSON:API resource identifier. All Origin Studio API resource objects include at least an `id` (unique string identifier) and a `type` (the JSON:API resource type name, e.g. records, contributors).","type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"}},"required":["id","type"],"additionalProperties":false}}}}
```

## The RoleUpdateOneResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"RoleUpdateOneResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRoleUpdateOneResponse","description":"The response for a user role update one request.","type":"object","additionalProperties":false,"required":["data","links"],"properties":{"data":{"type":"object","required":["id","type","attributes","relationships","meta"],"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["userRoles"]},"attributes":{"allOf":[{"$ref":"#/components/schemas/BaseResourceAttributes"},{"$ref":"#/components/schemas/UserRoleAttributes"}]},"relationships":{"$ref":"#/components/schemas/RoleRelationships"},"meta":{"type":"object","properties":{"tenantId":{"type":"string"}},"required":["tenantId"]}}},"links":{"type":"object","required":["self"],"properties":{"self":{"type":"string"}},"additionalProperties":false}}},"BaseResourceAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IBaseResourceAttributes","description":"Common timestamps present on all resource attribute objects. `created` is the ISO 8601 date-time when the resource was first created; `updated` is the date-time of the most recent modification.","type":"object","additionalProperties":false,"required":["created","updated"],"properties":{"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}},"UserRoleAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IUserRoleAttributes","description":"Attributes of a user role. `name` is the display name (e.g., 'Admin', 'Editor'). `dataSource` indicates whether the role is system-provisioned by Fabric (`fabric`) or created by the tenant (`custom`). Fabric roles cannot be renamed or deleted.","type":"object","required":["name"],"additionalProperties":false,"properties":{"name":{"type":"string","description":"Name of this role"},"description":{"type":"string","description":"Description of this role"},"dataSource":{"type":"string","description":"The data source of the role","enum":["custom","fabric"]},"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"}}},"RoleRelationships":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IRoleRelationships","description":"JSON:API relationship links for a role resource. Contains the owning `tenant` relationship and an optional `author` relationship identifying the user who created the role (with display name and tenant context in meta).","type":"object","properties":{"tenant":{"$ref":"#/components/schemas/TenantRelationship"},"author":{"type":"object","required":["data"],"additionalProperties":false,"properties":{"data":{"type":"object","required":["id","type","meta"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["users"]},"meta":{"type":"object","required":["tenantId","type","displayName"],"properties":{"tenantId":{"type":"string"},"type":{"type":"string"},"displayName":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"links":{"type":"object","properties":{"related":{"type":"string"}},"additionalProperties":false}}}},"required":["tenant"],"additionalProperties":false},"TenantRelationship":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ITenantRelationship","description":"A relationship to a tenant","type":"object","properties":{"data":{"additionalProperties":false,"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tenants"]}},"required":["id","type"]},"links":{"$ref":"#/components/schemas/LinksRelated"}},"required":["data","links"],"additionalProperties":false},"LinksRelated":{"$schema":"http://json-schema.org/draft-07/schema#","title":"ILinks","description":"A JSON:API links object with an absolute or relative 'related' link","type":"object","required":["related"],"properties":{"related":{"type":"string"}},"additionalProperties":false}}}}
```

## The UtilizationAttributes object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"UtilizationAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IUtilizationAttributes","description":"Attributes for current utilization data","type":"object","additionalProperties":false,"required":["userCount","recordCount","apiCallCount","deliveryRecordCount","mediaStorageBytes","currentMonthKey","peakUserCount","peakRecordCount","peakApiCallCount","peakDeliveryRecordCount","peakMediaStorageBytes"],"properties":{"currentMonthKey":{"type":"string","description":"Current month key in YYYY-MM format","pattern":"^\\d{4}-\\d{2}$"},"userCount":{"type":"integer","description":"Current number of users"},"recordCount":{"type":"integer","description":"Current number of records"},"apiCallCount":{"type":"integer","description":"Current number of API calls this month"},"deliveryRecordCount":{"type":"integer","description":"Current number of delivery records"},"mediaStorageBytes":{"type":"integer","description":"Current media storage usage in bytes"},"peakUserCount":{"type":"integer","description":"Peak user count for the current month"},"peakRecordCount":{"type":"integer","description":"Peak record count for the current month"},"peakApiCallCount":{"type":"integer","description":"Peak API call count for the current month"},"peakDeliveryRecordCount":{"type":"integer","description":"Peak delivery record count for the current month"},"peakMediaStorageBytes":{"type":"integer","description":"Peak media storage bytes for the current month"},"lastReconciledAt":{"type":"string","format":"date-time","description":"Last time utilization was reconciled"},"updated":{"type":"string","format":"date-time","description":"Last update timestamp"}}}}}}
```

## The UtilizationFindOneResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"UtilizationFindOneResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IUtilizationFindOneResponse","description":"Response for getting current utilization","type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"type":"object","required":["id","type","attributes"],"additionalProperties":false,"properties":{"id":{"type":"string","description":"Utilization ID"},"type":{"type":"string","enum":["utilization"]},"attributes":{"$ref":"#/components/schemas/UtilizationAttributes"}}}}},"UtilizationAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IUtilizationAttributes","description":"Attributes for current utilization data","type":"object","additionalProperties":false,"required":["userCount","recordCount","apiCallCount","deliveryRecordCount","mediaStorageBytes","currentMonthKey","peakUserCount","peakRecordCount","peakApiCallCount","peakDeliveryRecordCount","peakMediaStorageBytes"],"properties":{"currentMonthKey":{"type":"string","description":"Current month key in YYYY-MM format","pattern":"^\\d{4}-\\d{2}$"},"userCount":{"type":"integer","description":"Current number of users"},"recordCount":{"type":"integer","description":"Current number of records"},"apiCallCount":{"type":"integer","description":"Current number of API calls this month"},"deliveryRecordCount":{"type":"integer","description":"Current number of delivery records"},"mediaStorageBytes":{"type":"integer","description":"Current media storage usage in bytes"},"peakUserCount":{"type":"integer","description":"Peak user count for the current month"},"peakRecordCount":{"type":"integer","description":"Peak record count for the current month"},"peakApiCallCount":{"type":"integer","description":"Peak API call count for the current month"},"peakDeliveryRecordCount":{"type":"integer","description":"Peak delivery record count for the current month"},"peakMediaStorageBytes":{"type":"integer","description":"Peak media storage bytes for the current month"},"lastReconciledAt":{"type":"string","format":"date-time","description":"Last time utilization was reconciled"},"updated":{"type":"string","format":"date-time","description":"Last update timestamp"}}}}}}
```

## The UtilizationSnapshotAttributes object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"UtilizationSnapshotAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IUtilizationSnapshotAttributes","description":"Attributes for a utilization snapshot","type":"object","additionalProperties":false,"required":["tenantId","yearMonth","peakUserCount","peakRecordCount","peakApiCallCount","peakDeliveryRecordCount","peakMediaStorageBytes"],"properties":{"yearMonth":{"type":"string","description":"Month in YYYY-MM format","pattern":"^\\d{4}-\\d{2}$"},"plan":{"type":"string","description":"Plan name at the time of the snapshot"},"peakUserCount":{"type":"integer","description":"Peak user count for the month"},"peakRecordCount":{"type":"integer","description":"Peak record count for the month"},"peakApiCallCount":{"type":"integer","description":"Peak API call count for the month"},"peakDeliveryRecordCount":{"type":"integer","description":"Peak delivery record count for the month"},"peakMediaStorageBytes":{"type":"integer","description":"Peak media storage bytes for the month"},"endOfMonthUserCount":{"type":"integer","description":"User count at the end of the month"},"endOfMonthRecordCount":{"type":"integer","description":"Record count at the end of the month"},"endOfMonthDeliveryRecordCount":{"type":"integer","description":"Delivery record count at the end of the month"},"endOfMonthMediaStorageBytes":{"type":"integer","description":"Media storage bytes at the end of the month"},"created":{"type":"string","format":"date-time","description":"Snapshot creation timestamp"}}}}}}
```

## The UtilizationSnapshotFindManyResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"UtilizationSnapshotFindManyResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IUtilizationSnapshotFindManyResponse","description":"Response for listing utilization snapshots","type":"object","additionalProperties":false,"required":["data","meta","links"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","type","attributes","links"],"additionalProperties":false,"properties":{"id":{"type":"string","description":"Snapshot ID"},"type":{"type":"string","enum":["utilizationSnapshots"]},"attributes":{"$ref":"#/components/schemas/UtilizationSnapshotAttributes"},"links":{"type":"object","required":["self"],"additionalProperties":false,"properties":{"self":{"type":"string","description":"Link to this snapshot"}}}}}},"meta":{"type":"object","required":["total"],"additionalProperties":false,"properties":{"total":{"type":"integer","description":"Total number of snapshots available"}}},"links":{"type":"object","required":["self"],"additionalProperties":false,"properties":{"self":{"type":"string","description":"Link to this resource"}}}}},"UtilizationSnapshotAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IUtilizationSnapshotAttributes","description":"Attributes for a utilization snapshot","type":"object","additionalProperties":false,"required":["tenantId","yearMonth","peakUserCount","peakRecordCount","peakApiCallCount","peakDeliveryRecordCount","peakMediaStorageBytes"],"properties":{"yearMonth":{"type":"string","description":"Month in YYYY-MM format","pattern":"^\\d{4}-\\d{2}$"},"plan":{"type":"string","description":"Plan name at the time of the snapshot"},"peakUserCount":{"type":"integer","description":"Peak user count for the month"},"peakRecordCount":{"type":"integer","description":"Peak record count for the month"},"peakApiCallCount":{"type":"integer","description":"Peak API call count for the month"},"peakDeliveryRecordCount":{"type":"integer","description":"Peak delivery record count for the month"},"peakMediaStorageBytes":{"type":"integer","description":"Peak media storage bytes for the month"},"endOfMonthUserCount":{"type":"integer","description":"User count at the end of the month"},"endOfMonthRecordCount":{"type":"integer","description":"Record count at the end of the month"},"endOfMonthDeliveryRecordCount":{"type":"integer","description":"Delivery record count at the end of the month"},"endOfMonthMediaStorageBytes":{"type":"integer","description":"Media storage bytes at the end of the month"},"created":{"type":"string","format":"date-time","description":"Snapshot creation timestamp"}}}}}}
```

## The UtilizationSnapshotFindOneResponse object

```json
{"openapi":"3.0.3","info":{"title":"Fabric API - Audit","version":"0.9.2264"},"components":{"schemas":{"UtilizationSnapshotFindOneResponse":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IUtilizationSnapshotFindOneResponse","description":"Response for getting a single utilization snapshot","type":"object","additionalProperties":false,"required":["data","links"],"properties":{"data":{"type":"object","required":["id","type","attributes"],"additionalProperties":false,"properties":{"id":{"type":"string","description":"Snapshot ID"},"type":{"type":"string","enum":["utilizationSnapshots"]},"attributes":{"$ref":"#/components/schemas/UtilizationSnapshotAttributes"}}},"links":{"type":"object","required":["self"],"additionalProperties":false,"properties":{"self":{"type":"string","description":"Link to this snapshot"}}}}},"UtilizationSnapshotAttributes":{"$schema":"http://json-schema.org/draft-07/schema#","title":"IUtilizationSnapshotAttributes","description":"Attributes for a utilization snapshot","type":"object","additionalProperties":false,"required":["tenantId","yearMonth","peakUserCount","peakRecordCount","peakApiCallCount","peakDeliveryRecordCount","peakMediaStorageBytes"],"properties":{"yearMonth":{"type":"string","description":"Month in YYYY-MM format","pattern":"^\\d{4}-\\d{2}$"},"plan":{"type":"string","description":"Plan name at the time of the snapshot"},"peakUserCount":{"type":"integer","description":"Peak user count for the month"},"peakRecordCount":{"type":"integer","description":"Peak record count for the month"},"peakApiCallCount":{"type":"integer","description":"Peak API call count for the month"},"peakDeliveryRecordCount":{"type":"integer","description":"Peak delivery record count for the month"},"peakMediaStorageBytes":{"type":"integer","description":"Peak media storage bytes for the month"},"endOfMonthUserCount":{"type":"integer","description":"User count at the end of the month"},"endOfMonthRecordCount":{"type":"integer","description":"Record count at the end of the month"},"endOfMonthDeliveryRecordCount":{"type":"integer","description":"Delivery record count at the end of the month"},"endOfMonthMediaStorageBytes":{"type":"integer","description":"Media storage bytes at the end of the month"},"created":{"type":"string","format":"date-time","description":"Snapshot creation timestamp"}}}}}}
```
