{"openapi":"3.1.0","info":{"title":"J&J LinkedIn connector V2","version":"2026-10-05","description":"Implemented scoped agent API. Preserves V1 compatibility. New permissions default off. Stored reads never imply live provider verification. Scheduled requests are exact revision/time/authority-bound; post-dispatch uncertainty is never automatically resent. Additional provider actions and formats remain unsupported. Stored resource reads support independent read-only grants; the user and agent choose their workflow. Granular writes require read plus their exact action. Draft creation, editing, cancellation, image upload/refresh and reconciliation are independent. Published editing requires edit_published through both API versions without publish; schedule requires publish. Legacy grants retain documented bundled behavior until reviewed by an owner. Page history synchronization explicitly queries LinkedIn under read_page_posts; stored search remains local. Observed records are read-only and grant no publication/edit authority."},"servers":[{"url":"https://linkedin-connect.jjtechnologypartners.com"}],"security":[{"AgentBearer":[]}],"paths":{"/v2/posts":{"get":{"operationId":"searchPosts","summary":"Search stored posts","description":"Default own scope searches stored originating-agent records. Explicit Page scope requires read_page_posts and includes stored published connector records plus provider/owner observations, deduplicated by receipt. Private reference/revision filters are unavailable. Agent filters exclude observations without connector authorship. Stored searches never contact LinkedIn; coverage and lastScan explain incompleteness.","parameters":[{"name":"q","in":"query","schema":{"type":"string","maxLength":300},"description":"Literal caption substring."},{"name":"state","in":"query","schema":{"enum":["draft","approved","checking","publishing","published","uncertain","rejected"]}},{"name":"from","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"to","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"reference","in":"query","schema":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"description":"Exact per-record creation requestKey, preserving the legacy filter."},{"name":"receipt","in":"query","schema":{"type":"string"},"description":"Known share/ugcPost URN or supported LinkedIn feed/update URL; never fetched."},{"name":"organization","in":"query","schema":{"type":"string","pattern":"^urn:li:organization:[0-9]+$"},"description":"Must be the currently selected Page."},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},{"name":"cursor","in":"query","schema":{"type":"string"},"description":"Opaque returned cursor. Preserve filters and page size. Expires after one hour."},{"name":"clientReference","in":"query","schema":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"description":"Exact independent root reference, inherited by every draft revision."},{"name":"revisions","in":"query","schema":{"enum":["all","active"],"default":"all"},"description":"active returns only latest stored lineage revisions; all includes retired originals."},{"name":"scope","in":"query","schema":{"type":"string","enum":["own","page"],"default":"own"},"description":"Page scope requires explicit read_page_posts delegation and returns only stored published receipts with private metadata withheld."},{"name":"agent","in":"query","schema":{"type":"string"},"description":"Optional originating-agent filter in Page scope; own scope permits only the caller."}],"responses":{"200":{"description":"Successful scoped operation.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/Post"},{"$ref":"#/components/schemas/PageHistoryObservation"}]}},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"coverage":{"$ref":"#/components/schemas/HistoryCoverage"},"message":{"type":"string"}},"required":["items","nextCursor"],"additionalProperties":true}}}},"400":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"default":{"description":"Other bounded request/provider faults use the same structured error contract.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"createDraft","summary":"Create an exact referenced draft","description":"Optional independent reference is unique per originating agent and stays reserved after retirement. It does not affect content hashes. Replays bind the reference, content and requestKey and return the originally created record. No provider call.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DraftInput"}}}},"responses":{"200":{"description":"Created or replayed original draft with current stored status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostReview"}}}},"default":{"description":"Other bounded request/provider faults use the same structured error contract.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v2/posts/{postId}":{"get":{"operationId":"readPost","summary":"Read a current stored revision","description":"","parameters":[{"name":"scope","in":"query","schema":{"type":"string","enum":["own","page"],"default":"own"},"description":"Page scope requires explicit read_page_posts delegation and returns only stored published receipts with private metadata withheld."}],"responses":{"200":{"description":"Successful scoped operation.","content":{"application/json":{"schema":{"oneOf":[{"allOf":[{"$ref":"#/components/schemas/Post"},{"$ref":"#/components/schemas/PostReview"}]},{"allOf":[{"$ref":"#/components/schemas/PageHistoryObservation"},{"type":"object","properties":{"review":{"type":"null"},"pendingEdit":{"type":"null"},"schedule":{"type":"null"}},"required":["review","pendingEdit","schedule"]}]}]}}}},"400":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"default":{"description":"Other bounded request/provider faults use the same structured error contract.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"parameters":[{"name":"postId","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"}}]},"/v2/posts/{postId}/review":{"get":{"operationId":"reviewPost","summary":"Review exact caption/images/hash and active schedule","description":"","parameters":[{"name":"scope","in":"query","schema":{"type":"string","enum":["own","page"],"default":"own"},"description":"Page scope requires explicit read_page_posts delegation and returns only stored published receipts with private metadata withheld."}],"responses":{"200":{"description":"Successful scoped operation.","content":{"application/json":{"schema":{"oneOf":[{"allOf":[{"$ref":"#/components/schemas/Post"},{"$ref":"#/components/schemas/PostReview"}]},{"allOf":[{"$ref":"#/components/schemas/PageHistoryObservation"},{"type":"object","properties":{"review":{"type":"null"},"pendingEdit":{"type":"null"},"schedule":{"type":"null"}},"required":["review","pendingEdit","schedule"]}]}]}}}},"400":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"default":{"description":"Other bounded request/provider faults use the same structured error contract.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"parameters":[{"name":"postId","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"}}]},"/v2/posts/{postId}/cancel":{"post":{"operationId":"cancelDraft","summary":"Retire an exact unpublished draft","description":"Only own draft/approved records without a receipt. Atomically retires the draft and queued authority; no provider write.","parameters":[],"responses":{"200":{"description":"Successful scoped operation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LocalOperation"}}}},"400":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"default":{"description":"Other bounded request/provider faults use the same structured error contract.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelDraftInput"}}}}},"parameters":[{"name":"postId","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"}}]},"/v2/posts/{postId}/edit":{"post":{"operationId":"editPostV2","summary":"Revise a draft or published caption","description":"Edit an own draft with edit_draft or own published caption with edit_published under granular grants; read baseline and current selected-Page authority required. Legacy V2 published editing requires draft, publish and edit_published. Exact expectedHash and idempotent requestKey remain mandatory.","parameters":[],"responses":{"200":{"description":"Successful scoped operation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EditResult"}}}},"400":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"default":{"description":"Other bounded request/provider faults use the same structured error contract.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EditInput"}}}}},"parameters":[{"name":"postId","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"}}]},"/v2/posts/{postId}/schedules":{"post":{"operationId":"createSchedule","summary":"Schedule an exact draft","description":"Requires draft/publish/schedule, active original connection and current authority. Dispatch initially opt-in for Rift. Keys bind exact content/time; replay returns original response, not current state.","parameters":[],"responses":{"200":{"description":"Successful scoped operation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Schedule"}}}},"400":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"default":{"description":"Other bounded request/provider faults use the same structured error contract.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleInput"}}}}},"parameters":[{"name":"postId","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"}}]},"/v2/connections/{connectionId}/readiness":{"get":{"operationId":"connectionReadiness","summary":"Read local permission/expiry readiness","description":"Stored checks only; no fresh provider role verification.","parameters":[],"responses":{"200":{"description":"Successful scoped operation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Readiness"}}}},"400":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"default":{"description":"Other bounded request/provider faults use the same structured error contract.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"parameters":[{"name":"connectionId","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"}}]},"/v2/schedules":{"get":{"operationId":"listSchedules","summary":"List own jobs and history","description":"","parameters":[{"name":"state","in":"query","schema":{"enum":["scheduled","checking","dispatched","completed","cancelled","blocked","expired","uncertain"]}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},{"name":"cursor","in":"query","schema":{"type":"string"},"description":"Opaque returned cursor. Preserve filters and page size. Expires after one hour."}],"responses":{"200":{"description":"Successful scoped operation.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Schedule"}},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"limits":{"type":"object"},"dispatchEnabled":{"type":"boolean"}},"required":["items","nextCursor","limits","dispatchEnabled"],"additionalProperties":true}}}},"400":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"default":{"description":"Other bounded request/provider faults use the same structured error contract.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v2/schedules/{scheduleId}":{"get":{"operationId":"readSchedule","summary":"Inspect current job state/version","description":"","parameters":[],"responses":{"200":{"description":"Successful scoped operation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Schedule"}}}},"400":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"default":{"description":"Other bounded request/provider faults use the same structured error contract.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"parameters":[{"name":"scheduleId","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"}}]},"/v2/schedules/{scheduleId}/reschedule":{"post":{"operationId":"reschedule","summary":"Authorize a new time using current authority","description":"Compare-and-set scheduled/blocked/expired jobs whose original draft remains current. Checking/dispatched jobs cannot be rescheduled.","parameters":[],"responses":{"200":{"description":"Successful scoped operation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Schedule"}}}},"400":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"default":{"description":"Other bounded request/provider faults use the same structured error contract.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RescheduleInput"}}}}},"parameters":[{"name":"scheduleId","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"}}]},"/v2/schedules/{scheduleId}/cancel":{"post":{"operationId":"cancelSchedule","summary":"Cancel before dispatch","description":"Cancellation can win during checking. Dispatch/completion/uncertainty returns too_late_to_cancel; request cannot be recalled.","parameters":[],"responses":{"200":{"description":"Successful scoped operation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Schedule"}}}},"400":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"default":{"description":"Other bounded request/provider faults use the same structured error contract.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelScheduleInput"}}}}},"parameters":[{"name":"scheduleId","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"}}]},"/v2/schedules/{scheduleId}/events":{"get":{"operationId":"scheduleEvents","summary":"Read immutable scoped job transitions","description":"","parameters":[{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},{"name":"cursor","in":"query","schema":{"type":"string"},"description":"Opaque returned cursor. Preserve filters and page size. Expires after one hour."}],"responses":{"200":{"description":"Successful scoped operation.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ScheduleEvent"}},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["items","nextCursor"],"additionalProperties":true}}}},"400":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"default":{"description":"Other bounded request/provider faults use the same structured error contract.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"parameters":[{"name":"scheduleId","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"}}]},"/v2/operations":{"get":{"operationId":"listOperations","summary":"List local draft-cancellation outcomes","description":"List own-agent cancellation and direct-content execution projections under current read authority. Scheduled jobs remain in /v2/schedules. Creation membership is frozen; state filters are live. Old local cursors drain their original local snapshot.","parameters":[{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},{"name":"cursor","in":"query","schema":{"type":"string"},"description":"Opaque returned cursor. Preserve filters and page size. Expires after one hour."},{"name":"action","in":"query","schema":{"type":"string","enum":["cancel_draft","publish","edit_published"]}},{"name":"state","in":"query","schema":{"type":"string","enum":["checking","dispatched","completed","failed","uncertain"]}}],"responses":{"200":{"description":"Successful scoped operation.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/LocalOperation"},{"$ref":"#/components/schemas/ContentOperation"}]}},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["items","nextCursor"],"additionalProperties":true}}}},"400":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"default":{"description":"Other bounded request/provider faults use the same structured error contract.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v2/operations/{operationId}":{"get":{"operationId":"readOperation","summary":"Read a local cancellation or scheduled publication outcome","description":"","parameters":[],"responses":{"200":{"description":"Successful scoped operation.","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/LocalOperation"},{"$ref":"#/components/schemas/ScheduledOperation"},{"$ref":"#/components/schemas/ContentOperation"}]}}}},"400":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"default":{"description":"Other bounded request/provider faults use the same structured error contract.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"parameters":[{"name":"operationId","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"}}]},"/v2/events":{"get":{"operationId":"listLocalEvents","summary":"Read scoped stored events","description":"Without mode, retains local cancellation history. Explicit mode=continuous returns ordered local cancellation and schedule transitions with a renewable checkpoint. Source transitions remain authoritative. Direct publish/edit events are not yet covered; this feed never fetches or mutates LinkedIn.","parameters":[{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},{"name":"cursor","in":"query","schema":{"type":"string"},"description":"Drain a frozen high-water page sequence with unchanged limit. Expires after one hour. In continuous mode do not also submit checkpoint."},{"name":"mode","in":"query","schema":{"type":"string","enum":["continuous"]},"description":"Omit for legacy local history."},{"name":"checkpoint","in":"query","schema":{"type":"string","maxLength":4095},"description":"Continuous mode only. Resume after durably processed events; mutually exclusive with cursor. Bound to current agent credential, connection and Page. Renewable 30-day expiry; page size may change."}],"responses":{"200":{"description":"Successful scoped operation.","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Event"}},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["items","nextCursor"],"additionalProperties":true},{"$ref":"#/components/schemas/ContinuousEventFeed"}]}}}},"400":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Event position expired. Start a fresh scan and deduplicate stored event IDs; retryClass=reset_checkpoint.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Structured error; no automatic retry of public writes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"default":{"description":"Other bounded request/provider faults use the same structured error contract.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v2/quotas":{"get":{"summary":"Inspect retained tenant capacity without provider calls or writes","operationId":"readTenantQuotas","responses":{"200":{"description":"Tenant-wide retained record counts, limits and remaining capacity. Snapshot only; claims are atomically enforced."},"403":{"description":"Current read access required"}}}},"/v2/page-history/sync":{"get":{"operationId":"syncPageHistory","summary":"Retrieve one public LinkedIn Page-history page and store observations","description":"Requires read plus explicit read_page_posts on the selected Page. Reserves existing provider budgets, verifies organization role, and calls the Posts author finder in READER context. No provider-supplied URLs are followed. Each request retrieves up to 100 items; use the encrypted nextCursor in cursor on the next request. Cursors expire in one hour and bind actor, credential, Page, connection and authority generations. 401/403 provider access failures return status unavailable and preserve stored history. Other errors fail explicitly. No publication or editing permission is granted. Scan completion is not guaranteed full historical coverage. Provider captions expire after 48 hours; stored searches suppress expired observations even before maintenance deletes them. Owner inputs do not extend API-cache expiry.","parameters":[{"name":"organization","in":"query","schema":{"type":"string"},"description":"Optional; must match selected Page."},{"name":"cursor","in":"query","schema":{"type":"string","maxLength":4096}}],"responses":{"200":{"description":"Bounded retrieval status, observed count, provider access, incomplete coverage and optional nextCursor.","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"enum":["partial","scanned","unavailable"]},"nextCursor":{"type":["string","null"]},"complete":{"const":false},"linkedinQueried":{"const":true},"message":{"type":"string"},"providerAccess":{"enum":["verified","unavailable"]}},"required":["status","complete","linkedinQueried","message","nextCursor"]}}}},"403":{"description":"Current delegated Page/credential access is unavailable or changed."},"409":{"description":"Provider eligibility or tenant history capacity prevents retrieval."},"429":{"description":"Provider budget exhausted; wait before continuing."}}}}},"components":{"securitySchemes":{"AgentBearer":{"type":"http","scheme":"bearer","description":"Connector-issued enrolled-agent credential. Administrative and browser-owner credentials cannot access client content."}},"schemas":{"Error":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"operationId":{"anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},{"type":"null"}]},"retryClass":{"type":"string"},"nextAction":{"type":"string"}},"required":["error","code","message","operationId","retryClass","nextAction"],"additionalProperties":false},"Image":{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"linkedinId":{"type":"string"},"hash":{"type":"string"},"altText":{"type":"string"}},"required":["id","linkedinId","hash"],"additionalProperties":true},"Review":{"type":"object","properties":{"organization":{"type":"string","pattern":"^urn:li:organization:[0-9]+$"},"text":{"type":"string"},"images":{"type":"array","maxItems":20,"items":{"anyOf":[{"$ref":"#/components/schemas/Image"},{"$ref":"#/components/schemas/PageImage"}]}},"hash":{"type":"string","pattern":"^[a-f0-9]{64}$"}},"required":["organization","text","images","hash"],"additionalProperties":false},"Post":{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"organization":{"type":"string","pattern":"^urn:li:organization:[0-9]+$"},"state":{"enum":["draft","approved","checking","publishing","published","uncertain","rejected"]},"createdAt":{"type":"string","format":"date-time"},"text":{"type":"string"},"hash":{"type":"string","pattern":"^[a-f0-9]{64}$"},"originalHash":{"type":"string","pattern":"^[a-f0-9]{64}$"},"images":{"type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/Image"},{"$ref":"#/components/schemas/PageImage"}]}},"clientReference":{"type":["string","null"],"description":"Independent root reference when referenceType=client_reference; otherwise this record creation requestKey compatibility alias."},"linkedinId":{"anyOf":[{"type":"string"},{"type":"null"}]},"publishedUrl":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]},"source":{"const":"connector"},"verifiedAt":{"type":"null"},"error":{"anyOf":[{"type":"string"},{"type":"null"}]},"requestKey":{"type":["string","null"],"pattern":"^[a-zA-Z0-9_-]{1,80}$"},"referenceType":{"enum":["client_reference","request_key","withheld"]},"lineage":{"anyOf":[{"$ref":"#/components/schemas/PostLineage"},{"type":"null"}]},"agentId":{"type":"string"},"readScope":{"enum":["own","page"]},"readOnly":{"const":true},"publicationOperationId":{"anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},{"type":"null"}],"description":"Current direct-publication reference, or latest failed direct attempt after reset. Null for other-agent Page views and scheduled current attempts."}},"required":["id","organization","state","createdAt","text","hash","originalHash","images","clientReference","linkedinId","publishedUrl","source","verifiedAt","error","requestKey","referenceType","lineage","agentId","readScope","publicationOperationId"],"additionalProperties":true,"allOf":[{"if":{"properties":{"readScope":{"const":"page"}},"required":["readScope"]},"then":{"required":["readOnly"],"properties":{"readOnly":{"const":true},"state":{"const":"published"},"requestKey":{"type":"null"},"clientReference":{"type":"null"},"lineage":{"type":"null"},"error":{"type":"null"},"referenceType":{"const":"withheld"},"images":{"items":{"$ref":"#/components/schemas/PageImage"}}}},"else":{"properties":{"requestKey":{"type":"string"},"clientReference":{"type":"string"},"lineage":{"$ref":"#/components/schemas/PostLineage"},"images":{"items":{"$ref":"#/components/schemas/Image"}}}}}]},"PostReview":{"type":"object","properties":{"review":{"$ref":"#/components/schemas/Review"},"pendingEdit":{"anyOf":[{"type":"object"},{"type":"null"}]},"schedule":{"anyOf":[{"type":"object"},{"type":"null"}]}},"required":["review","pendingEdit","schedule"],"additionalProperties":true},"Readiness":{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"organization":{"type":"string","pattern":"^urn:li:organization:[0-9]+$"},"expiresAt":{"type":"string","format":"date-time"},"capabilities":{"type":"array","items":{"type":"string"}},"publishingEnabled":{"type":"boolean"},"scheduleDispatchEnabled":{"type":"boolean"},"lastVerifiedAt":{"type":"null"},"verification":{"const":"stored"},"readOnly":{"type":"boolean","description":"True when the current Page grant has no drafting/write authority. Service eligibility does not grant writes."},"permissionModel":{"type":"string","enum":["legacy","granular"]},"effectiveCapabilities":{"type":"array","items":{"type":"string"},"description":"Raw actions plus implicit reads and historical local draft bundle for legacy grants; does not infer V2 published editing."},"legacyV1PublishedEdit":{"type":"boolean","description":"Legacy V1 compatibility: draft plus publish permits published editing. Granular grants always require edit_published."}},"required":["id","organization","expiresAt","capabilities","publishingEnabled","scheduleDispatchEnabled","lastVerifiedAt","verification","readOnly","permissionModel","effectiveCapabilities","legacyV1PublishedEdit"],"additionalProperties":false},"ScheduleInput":{"type":"object","properties":{"requestKey":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"expectedHash":{"type":"string","pattern":"^[a-f0-9]{64}$"},"publishAt":{"type":"string","format":"date-time","description":"Explicit offset, minute precision, agrees with timezone; one minute to 90 days ahead."},"timezone":{"type":"string","maxLength":80},"expiresAt":{"type":"string","format":"date-time","description":"Optional explicit-offset minute timestamp; after due and at most 15 minutes later."}},"required":["requestKey","expectedHash","publishAt","timezone"],"additionalProperties":false},"RescheduleInput":{"type":"object","properties":{"requestKey":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"expectedVersion":{"type":"integer","minimum":1},"expectedHash":{"type":"string","pattern":"^[a-f0-9]{64}$"},"publishAt":{"type":"string","format":"date-time"},"timezone":{"type":"string","maxLength":80},"expiresAt":{"type":"string","format":"date-time"}},"required":["requestKey","expectedVersion","expectedHash","publishAt","timezone"],"additionalProperties":false},"CancelScheduleInput":{"type":"object","properties":{"requestKey":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"expectedVersion":{"type":"integer","minimum":1}},"required":["requestKey","expectedVersion"],"additionalProperties":false},"CancelDraftInput":{"type":"object","properties":{"requestKey":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"expectedHash":{"type":"string","pattern":"^[a-f0-9]{64}$"}},"required":["requestKey","expectedHash"],"additionalProperties":false},"EditInput":{"type":"object","properties":{"requestKey":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"expectedHash":{"type":"string"},"text":{"type":"string","minLength":1,"maxLength":3000},"images":{"type":"array","maxItems":20,"items":{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"altText":{"type":"string","maxLength":1000}},"required":["id"],"additionalProperties":false}}},"required":["requestKey","expectedHash","text"],"additionalProperties":true},"Schedule":{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"operationId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"postId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"organization":{"type":"string","pattern":"^urn:li:organization:[0-9]+$"},"hash":{"type":"string","pattern":"^[a-f0-9]{64}$"},"state":{"enum":["scheduled","checking","dispatched","completed","cancelled","blocked","expired","uncertain"]},"version":{"type":"integer","minimum":1},"publishAt":{"type":"string","format":"date-time"},"expiresAt":{"type":"string","format":"date-time"},"timezone":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"dispatchedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"error":{"anyOf":[{"type":"string"},{"type":"null"}]},"retryClass":{"type":"string"},"nextAction":{"type":"string"}},"required":["id","operationId","postId","organization","hash","state","version","publishAt","expiresAt","timezone","createdAt","updatedAt","dispatchedAt","error","retryClass","nextAction"],"additionalProperties":true},"LocalOperation":{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"action":{"const":"cancel_draft"},"targetId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"organization":{"type":"string","pattern":"^urn:li:organization:[0-9]+$"},"state":{"const":"completed"},"createdAt":{"type":"string","format":"date-time"},"result":{"type":"object","properties":{"postId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"state":{"const":"rejected"}},"required":["postId","state"],"additionalProperties":false},"retryClass":{"const":"none"},"nextAction":{"const":"none"}},"required":["id","action","targetId","organization","state","createdAt","result","retryClass","nextAction"],"additionalProperties":false},"ScheduledOperation":{"allOf":[{"$ref":"#/components/schemas/Schedule"},{"type":"object","properties":{"action":{"const":"publish_scheduled"},"targetId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"result":{"type":"object","properties":{"postId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"state":{"enum":["draft","approved","checking","publishing","published","uncertain","rejected"]},"linkedinId":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["postId","state","linkedinId"],"additionalProperties":false}},"required":["action","targetId","result"],"additionalProperties":true}]},"Event":{"type":"object","properties":{"id":{"type":"string"},"operationId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"event":{"const":"draft_cancelled"},"organization":{"type":"string","pattern":"^urn:li:organization:[0-9]+$"},"createdAt":{"type":"string","format":"date-time"}},"required":["id","operationId","event","organization","createdAt"],"additionalProperties":false},"ScheduleEvent":{"type":"object","properties":{"id":{"type":"string"},"operationId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"state":{"enum":["scheduled","checking","dispatched","completed","cancelled","blocked","expired","uncertain"]},"version":{"type":"integer"},"createdAt":{"type":"string","format":"date-time"},"error":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","operationId","state","version","createdAt","error"],"additionalProperties":false},"EditResult":{"type":"object","description":"Legacy-compatible stored edit record, including id, post, request_key, expected_hash, text, hash, state, revision_post, created, checking_until, error and images_json. operationId links published edits; draft revisions use null.","required":["id","post","request_key","state"],"additionalProperties":true,"properties":{"operationId":{"anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},{"type":"null"}]}}},"PostLineage":{"type":"object","properties":{"rootId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"previousId":{"anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},{"type":"null"}]},"nextId":{"anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},{"type":"null"}]},"isLatest":{"type":"boolean"}},"required":["rootId","previousId","nextId","isLatest"],"additionalProperties":false},"DraftInput":{"type":"object","properties":{"connectionId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"organization":{"type":"string","pattern":"^urn:li:organization:[0-9]+$"},"text":{"type":"string","minLength":1,"maxLength":3000},"requestKey":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"clientReference":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"images":{"type":"array","maxItems":20,"items":{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"altText":{"type":"string","maxLength":1000}},"required":["id"],"additionalProperties":false}}},"required":["connectionId","organization","text","requestKey"],"additionalProperties":false},"PageImage":{"type":"object","properties":{"linkedinId":{"type":"string"},"altText":{"type":"string"}},"required":["linkedinId","altText"],"additionalProperties":false},"ContinuousEvent":{"type":"object","properties":{"id":{"type":"string"},"operationId":{"type":"string"},"targetId":{"type":"string"},"action":{"enum":["cancel_draft","publish_scheduled","publish","edit_published"]},"event":{"type":"string"},"state":{"type":"string"},"version":{"type":["integer","null"]},"organization":{"type":"string","pattern":"^urn:li:organization:[0-9]+$"},"createdAt":{"type":"string","format":"date-time"}},"required":["id","operationId","targetId","action","event","state","version","organization","createdAt"],"additionalProperties":false},"ContinuousEventFeed":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ContinuousEvent"}},"nextCursor":{"type":["string","null"]},"checkpoint":{"type":"string"},"checkpointExpiresAt":{"type":"string","format":"date-time"},"scope":{"type":"object","properties":{"organization":{"type":"string"},"agent":{"type":"string"}},"required":["organization","agent"],"additionalProperties":false},"freshness":{"const":"stored"},"delivery":{"const":"at_least_once"},"coverage":{"const":["cancel_draft","publish_scheduled","publish","edit_published"]}},"required":["items","nextCursor","checkpoint","checkpointExpiresAt","scope","freshness","delivery","coverage"],"additionalProperties":false},"ContentOperation":{"type":"object","description":"Read-only projection of an authoritative direct publication or published-caption edit attempt.","properties":{"id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"action":{"enum":["publish","edit_published"]},"targetId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"organization":{"type":"string","pattern":"^urn:li:organization:[0-9]+$"},"state":{"enum":["checking","dispatched","completed","failed","uncertain"]},"version":{"type":"integer","minimum":1},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"checkingUntil":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"dispatchedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"origin":{"enum":["live","snapshot"]},"error":{"anyOf":[{"type":"string"},{"type":"null"}]},"result":{"type":"object","properties":{"postId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"hash":{"type":"string"},"expectedHash":{"anyOf":[{"type":"string"},{"type":"null"}]},"linkedinId":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["postId","hash","expectedHash","linkedinId"],"additionalProperties":false},"retryClass":{"enum":["none","explicit_new_request","reconcile_only"]},"nextAction":{"type":"string"}},"required":["id","action","targetId","organization","state","version","createdAt","updatedAt","checkingUntil","dispatchedAt","origin","error","result","retryClass","nextAction"],"additionalProperties":false},"PageHistoryObservation":{"type":"object","properties":{"id":{"type":"string","pattern":"^observed_[a-f0-9]{64}$"},"organization":{"type":"string"},"linkedinId":{"type":"string"},"text":{"type":"string","maxLength":3000},"source":{"enum":["linkedin","owner_import"]},"readScope":{"const":"page"},"readOnly":{"const":true},"state":{"const":"published"},"agentId":{"type":"null"},"hash":{"type":"null"},"verifiedAt":{"type":["string","null"],"format":"date-time"},"publishedAt":{"type":"string","format":"date-time"},"observedAt":{"type":"string","format":"date-time"}},"required":["id","organization","linkedinId","text","source","readOnly","verifiedAt","publishedAt","observedAt"],"additionalProperties":true},"HistoryCoverage":{"type":"object","properties":{"sources":{"type":"array","items":{"enum":["connector","linkedin","owner_import"]}},"linkedinQueried":{"type":"boolean"},"complete":{"const":false},"lastScan":{"type":["object","null"]},"agentFilterExcludesObservations":{"type":"boolean"}},"required":["sources","linkedinQueried","complete"],"additionalProperties":true}}}}