import type * as HydraDB from "../index.js"; export interface HandlerResourceMapping { /** * ACL restricts every object synced from this resource to the listed * principals (emails, or prefixed principals, see the query-side * user_email parameter). Omitted means unrestricted. An explicitly empty * list means private (visible only to unfiltered queries). */ acl?: string[]; /** * AdditionalMetadata is merged into the additional_metadata layer of every * object synced from this resource. Provider-generated fields take precedence. */ additionalMetadata?: Record; /** * Collection is the canonical v2 name for the per-resource sub-tenant * override: routes synced objects from this resource into a specific * collection. Empty means the resource inherits the connector collection. * SubTenantID is the deprecated alias for this field, reconciled by * Configure before toResource runs. */ collection?: string; /** * CustomInstructions optionally steers how documents synced from this * resource are ingested and indexed. When set it replaces the * connector-level custom_instructions for this resource; empty inherits * the connector's value. Max 4000 characters. */ customInstructions?: string; /** * Database is the canonical v2 name for the per-resource tenant override: * routes synced objects from this resource into a specific database. * Empty means the resource inherits the connector database. TenantID is the * deprecated alias for this field, reconciled by Configure before * toResource runs. */ database?: string; /** * Metadata is merged into the tenant metadata layer of every object synced * from this resource. System fields (connector_id, provider) take precedence. */ metadata?: Record; /** Display name for this resource. */ name?: string; /** Resource identifier from the Discover endpoint. */ resourceId: string; /** Type of resource within the provider (e.g. `channel`, `repo`, `linear_team`). */ resourceType?: string; /** * Routes synced objects from this resource into a specific sub-tenant * partition. Overrides the connector-level sub_tenant_id. Deprecated: use * collection. */ subTenantId?: string; /** * SyncMode is the per-resource update strategy for taps that support one * (today: attio objects/lists). "rescan" (default) re-reads the full set * every sync — the only way edits are seen on APIs with no updated_at. * "new_only" bounds each scan to the sync window and stops paging at its * floor — cheap, and an explicit opt-in to not seeing edits until * webhooks land. Stored in the resource's filters and carried to the tap * on every window. */ syncMode?: HydraDB.HandlerResourceMappingSyncMode; /** * Optional per-resource tenant override (for "route specific resources to * different tenants"). Empty means the resource inherits the connector * tenant. Deprecated: use database. */ tenantId?: string; }