generated: '2026-09-25' method: derived generator: derive-data-model.py source: - openapi/anysphere-cursor-ai-originservice-api-openapi.yml notation: has_one = property $ref; has_many = array of $ref; belongs_to = _id field summary: entities: 147 entities_in_spec: 147 relationships: 148 entities: - name: AddPullRequestLabelsResponse fields: 1 - name: App fields: 11 description: An Origin app. - name: AppDefaultScopesReplace fields: 1 description: Clean-replace wrapper for `UpdateAppRequest.default_scopes`. - name: AppDisplayMetadata fields: 3 description: Non-sensitive display fields for an app in a namespace catalog. - name: AppEventsReplace fields: 1 description: Clean-replace wrapper for `UpdateAppRequest.events`. - name: AppInstallation fields: 10 description: An installation of an Origin app into a target owner entity. - name: AppInstallationRedirectUrisReplace fields: 1 description: Clean-replace wrapper for `UpdateAppRequest.installation_redirect_uris`. - name: AppSigningKey fields: 2 description: An app signing key. Only the key's identity is returned; the key material - name: BatchGetContentsResponse fields: 2 - name: BatchGetContentsResult fields: 3 description: The outcome for one requested path in a BatchGetContents response. - name: BatchRedeliverWebhookDeliveriesRequest fields: 1 - name: BatchRedeliverWebhookDeliveriesResponse fields: 1 - name: BatchRedeliverWebhookDeliveryResult fields: 2 description: The outcome for one requested delivery id. - name: BatchUpsertCheckRunsResponse fields: 3 - name: Blob fields: 4 description: A Git blob object. - name: Branch fields: 2 description: A repository branch and the commit at its tip. - name: BranchCommit fields: 1 description: The commit a branch points at. - name: CheckRun fields: 21 description: A persisted check run, as returned by `PostCheckRun`. All fields are - name: CheckRunAnnotation fields: 9 description: Persisted append-only annotation. Non-inline annotations omit `location`. - name: CheckRunAnnotationColumnRange fields: 2 description: Optional paired columns for a single-line annotation range. - name: CheckRunAnnotationInput fields: 5 description: Content fields follow common Checks API annotation semantics. Origin groups source - name: CheckRunAnnotationLocation fields: 4 description: Optional source location for a check-run annotation. `path`, `start_line`, - name: CheckRunInput fields: 12 description: A single check run to report. Combined with `CheckSuiteInput`, this is - name: CheckRunOutput fields: 3 description: Human-readable output reported for a check run. - name: CheckRunReference fields: 3 description: Identity and display coordinates of a check run, for embedding in resources - name: CheckRunWriteResult fields: 2 description: 'One check-run write in a `BatchUpsertCheckRuns` response: the stored run' - name: CheckSuite fields: 10 description: A persisted check suite, as returned by `PostCheckRun`. All fields are - name: CheckSuiteInput fields: 4 - name: CheckSuiteReference fields: 1 - name: CodeownerApprovalBlocker fields: 1 - name: CodeownerRequirement fields: 2 description: One owner set that still needs an approval. - name: CommentThread fields: 9 description: 'A pull request comment thread as stored: identity, the version it was' - name: Commit fields: 4 description: A commit with identity fields (`sha`, `parents`) at the top level and - name: CommitAuthor fields: 3 description: Git identity and timestamp for a commit's author or committer. - name: CommitComparison fields: 6 description: A comparison summary without nested commit lists or URL fields. File - name: CommitDetail fields: 4 description: Git-object metadata for a commit. - name: CommitFile fields: 7 description: A single file changed by a commit. Populated only on `GetCommit`. - name: CommitFileChange fields: 5 description: One file change in a commit created from files. Exactly one of `content` - name: CommitParent fields: 1 description: A parent commit reference. Only the SHA is exposed (URLs omitted). - name: CommitSignature fields: 2 description: Name and email recorded for a commit author or committer. - name: CommitStats fields: 3 description: Aggregate line stats for a commit's diff against its base. Populated only - name: CommitTree fields: 1 description: The git tree a commit points at. - name: Content fields: 8 description: Repository file or directory content. - name: CreateCheckRunAnnotationsResponse fields: 1 - name: CreateCommitFromFilesResponse fields: 3 - name: FileCommentAnchor fields: 1 description: Anchor for a new file-level comment thread on the whole file in the pull - name: GetActiveMirrorTransitionJobResponse fields: 2 - name: GetRepoTarballResponse fields: 2 - name: GitCommit fields: 6 description: A Git commit object. - name: GitRef fields: 2 description: A Git reference. - name: GitTag fields: 5 description: An annotated Git tag object. Lightweight tags are refs only and are not - name: GitTree fields: 3 description: A Git tree object. - name: GitTreeEntry fields: 5 description: One entry in a Git tree. - name: GoogleProtobufAny fields: 1 description: Contains an arbitrary serialized message along with a @type that describes the type of the serialized message. - name: GrepContentsMatch fields: 5 description: 'One line of a search result: either a line carrying matches or a line' - name: GrepContentsResponse fields: 2 - name: GrepContentsSubmatch fields: 2 description: One matched range of bytes inside a line. - name: InlineCommentAnchor fields: 4 description: Diff anchor for a new line-anchored comment thread on a file in the pull - name: InstallationAccessToken fields: 2 description: A short-lived installation access token. - name: InstallationReference fields: 2 description: 'Stable identity for an app installation: the installation id plus the' - name: Label fields: 4 - name: ListAppInstallationRepositoriesResponse fields: 3 - name: ListAppInstallationsResponse fields: 2 - name: ListBranchesResponse fields: 2 - name: ListCheckRunAnnotationsResponse fields: 2 - name: ListCheckRunsForCommitResponse fields: 2 - name: ListCheckRunsForSuiteResponse fields: 2 - name: ListCheckSuitesForCommitResponse fields: 2 - name: ListCommitFilesResponse fields: 2 - name: ListCommitsResponse fields: 2 - name: ListComparisonFilesResponse fields: 2 - name: ListLabelsResponse fields: 2 - name: ListMatchingGitRefsResponse fields: 1 - name: ListNamespaceAppsResponse fields: 2 - name: ListNamespaceGrantsResponse fields: 2 - name: ListNamespacesResponse fields: 2 - name: ListPullRequestCommentsResponse fields: 3 - name: ListPullRequestCommitsResponse fields: 2 - name: ListPullRequestFilesResponse fields: 2 - name: ListPullRequestLabelsResponse fields: 1 - name: ListPullRequestRequestedReviewersResponse fields: 2 - name: ListPullRequestReviewsResponse fields: 3 - name: ListPullRequestsResponse fields: 2 - name: ListReposResponse fields: 2 - name: ListRepositoryGrantsResponse fields: 3 - name: ListRulesetsResponse fields: 2 - name: ListSshCertificateAuthoritiesResponse fields: 2 - name: ListWebhookDeliveriesResponse fields: 2 - name: MergeConflictBlocker fields: 3 - name: MergePullRequestResponse fields: 3 - name: MirrorTransitionJob fields: 12 description: An asynchronous job tracking one mirror transition. Jobs are created by - name: NamespaceGrant fields: 4 description: 'One grant of access to an owner: the principal that holds it and the' - name: NamespaceListing fields: 2 description: A namespace in a `ListNamespaces` response, with what the caller may do in it. - name: OriginActor fields: 3 description: A user, app, or service account that performed an externally visible action. - name: OriginAppActor fields: 2 - name: OriginGroup fields: 1 description: Public Origin group identity (`grp_…`). Currently id-only. - name: OriginServiceAccountActor fields: 1 - name: OriginTeamGroup fields: 1 description: 'A fixed group of the team that owns a repository or an owner: every team' - name: OriginUserActor fields: 4 - name: Owner fields: 3 description: The owner of a repo. - name: ParentPullRequestSelector fields: 3 description: Names the stack parent of a pull request, or removes it. Exactly one member - name: PingWebhookRequest fields: 0 - name: PingWebhookResponse fields: 4 - name: PostCheckRunResponse fields: 3 description: The pair `check_run` + `outcome` is the same per-run result a - name: PullRequest fields: 21 description: A pull request. - name: PullRequestComment fields: 6 description: A threaded comment on a pull request. - name: PullRequestFile fields: 7 description: A file changed in a pull request. - name: PullRequestMergeability fields: 8 description: Whether a pull request can be merged, and why not when it cannot. - name: PullRequestMergeabilityBlocker fields: 8 description: One condition preventing a merge. - name: PullRequestRef fields: 2 description: One side (head or base) of a change. - name: PullRequestReference fields: 3 description: Stable identity and display coordinates for an Origin pull request. - name: PullRequestReview fields: 7 description: A pull request review. - name: PullRequestReviewDismissal fields: 3 description: Records that a submitted review no longer counts toward the pull request's - name: PullRequestStackMembership fields: 2 description: 'Membership of a pull request in a stack: a chain of dependent pull requests' - name: PullRequestVersion fields: 4 description: A numbered revision of a change. A new version is recorded when the pull - name: RateLimitResource fields: 4 description: Point budget for one rate limit resource in the current window. - name: RateLimitResources fields: 1 description: Rate limit resources for the authenticated principal. - name: RateLimitStatus fields: 2 description: Rate limit status for the authenticated principal. - name: RemovePullRequestLabelResponse fields: 1 - name: Repo fields: 14 description: A repository. - name: RepositoryGrant fields: 4 description: A permission granted directly on a repository to one user, group, or - name: RepositoryMirror fields: 3 description: The external source and lifecycle state of a mirrored repository. - name: RepositoryReference fields: 3 description: Stable identity and display coordinates for a repository. - name: RequiredApprovalsBlocker fields: 2 - name: RequiredCheck fields: 3 description: A check a repository rule requires on the evaluated head. - name: RequiredChecksBlocker fields: 2 - name: ReviewCommentInput fields: 4 description: One comment filed with a review via `CreatePullRequestReview`. Targets the - name: Ruleset fields: 9 description: A named bundle of branch, merge, and push protections for one repository. - name: RulesetAppBypassActor fields: 1 description: An app principal that may bypass ruleset enforcement. - name: RulesetBypassActor fields: 6 description: A principal that may bypass ruleset enforcement. Identity is a typed - name: RulesetBypassActorInput fields: 5 description: Input for one bypass actor when creating a ruleset. Does not include the - name: RulesetOriginRoleBypassActor fields: 1 description: Bypass granted to holders of a policy-backed Origin role. Payload role is - name: RulesetRule fields: 3 description: One rule inside a repository ruleset. - name: RulesetRuleInput fields: 2 description: Input for one rule when creating a ruleset. Does not include the - name: RulesetTeamBypassActor fields: 2 description: A team principal that may bypass ruleset enforcement. Identity is the - name: RulesetUserBypassActor fields: 1 description: A user principal that may bypass ruleset enforcement. - name: SetPullRequestLabelsResponse fields: 1 - name: SshCertificateAuthority fields: 6 description: 'An SSH certificate authority an owner trusts: user certificates it signs' - name: SshCertificateRequirement fields: 1 description: Whether an owner requires SSH certificates for git over SSH. - name: StackShapeBlocker fields: 2 - name: Status fields: 3 description: 'The canonical error envelope, after google.rpc.Status: a code, a developer-facing message, and typed details — google.rpc.BadRequest field violations for invalid arguments, and a google.rpc.RequestInf' - name: SyncMirrorResponse fields: 1 - name: TaggedObject fields: 2 description: The git object an annotated tag points at. - name: TransitionRepoMirrorResponse fields: 2 - name: WebhookDelivery fields: 6 description: 'A delivery obligation: one event owed to one app. Its id is the' - name: WebhookDeliveryAttempt fields: 7 description: One HTTP POST of a delivery's payload to the app's webhook URL. - name: WebhookEventReference fields: 2 description: The event a delivery carries. `type` is the subscription event type, e.g. relationships: - from: RulesetBypassActor to: RulesetUserBypassActor type: has_one via: user - from: RulesetBypassActor to: RulesetTeamBypassActor type: has_one via: team - from: RulesetBypassActor to: RulesetAppBypassActor type: has_one via: app - from: RulesetBypassActor to: RulesetOriginRoleBypassActor type: has_one via: originRole - from: Ruleset to: RulesetRule type: has_many via: rules - from: Ruleset to: RulesetBypassActor type: has_many via: bypassActors - from: ListCheckSuitesForCommitResponse to: CheckSuite type: has_many via: checkSuites - from: CheckRunAnnotation to: CheckRun type: belongs_to via: checkRunId - from: CheckRunAnnotation to: CheckRunAnnotationLocation type: has_one via: location - from: MergePullRequestResponse to: PullRequest type: has_one via: pullRequest - from: PullRequestStackMembership to: PullRequestReference type: has_one via: parentPullRequest - from: BatchGetContentsResponse to: BatchGetContentsResult type: has_many via: results - from: ListNamespaceAppsResponse to: AppDisplayMetadata type: has_many via: apps - from: CheckRun to: RepositoryReference type: has_one via: repository - from: CheckRun to: CheckSuiteReference type: has_one via: checkSuite - from: CheckRun to: OriginActor type: has_one via: actor - from: CheckRun to: CheckRunOutput type: has_one via: output - from: CheckRun to: OriginActor type: has_one via: rerequestedBy - from: CheckSuite to: RepositoryReference type: has_one via: repository - from: CheckSuite to: OriginActor type: has_one via: actor - from: PullRequestReviewDismissal to: OriginActor type: has_one via: dismissedBy - from: CommitDetail to: CommitAuthor type: has_one via: author - from: CommitDetail to: CommitAuthor type: has_one via: committer - from: CommitDetail to: CommitTree type: has_one via: tree - from: ListNamespacesResponse to: NamespaceListing type: has_many via: namespaces - from: Branch to: BranchCommit type: has_one via: commit - from: ListCheckRunsForCommitResponse to: CheckRun type: has_many via: checkRuns - from: InstallationReference to: Owner type: has_one via: target - from: RepositoryReference to: Owner type: has_one via: owner - from: OriginActor to: OriginUserActor type: has_one via: user - from: OriginActor to: OriginAppActor type: has_one via: app - from: OriginActor to: OriginServiceAccountActor type: has_one via: serviceAccount - from: RateLimitStatus to: RateLimitResources type: has_one via: resources - from: RateLimitStatus to: RateLimitResource type: has_one via: rate - from: RulesetBypassActorInput to: RulesetUserBypassActor type: has_one via: user - from: RulesetBypassActorInput to: RulesetTeamBypassActor type: has_one via: team - from: RulesetBypassActorInput to: RulesetAppBypassActor type: has_one via: app - from: RulesetBypassActorInput to: RulesetOriginRoleBypassActor type: has_one via: originRole - from: ListCheckRunAnnotationsResponse to: CheckRunAnnotation type: has_many via: annotations - from: ListPullRequestCommitsResponse to: Commit type: has_many via: commits - from: Commit to: CommitDetail type: has_one via: commit - from: Commit to: CommitParent type: has_many via: parents - from: Commit to: CommitStats type: has_one via: stats - from: ListCommitFilesResponse to: CommitFile type: has_many via: files - from: ListNamespaceGrantsResponse to: NamespaceGrant type: has_many via: grants - from: ListCheckRunsForSuiteResponse to: CheckRun type: has_many via: checkRuns - from: GitTree to: GitTreeEntry type: has_many via: tree - from: Repo to: Owner type: has_one via: owner - from: Repo to: RepositoryMirror type: has_one via: mirror - from: RequiredCheck to: OriginActor type: has_one via: owner - from: RequiredCheck to: CheckRunReference type: has_one via: checkRun - from: GitCommit to: CommitAuthor type: has_one via: author - from: GitCommit to: CommitAuthor type: has_one via: committer - from: GitCommit to: CommitTree type: has_one via: tree - from: GitCommit to: CommitParent type: has_many via: parents - from: BatchRedeliverWebhookDeliveriesResponse to: BatchRedeliverWebhookDeliveryResult type: has_many via: results - from: RateLimitResources to: RateLimitResource type: has_one via: core - from: GrepContentsResponse to: GrepContentsMatch type: has_many via: matches - from: ListAppInstallationsResponse to: AppInstallation type: has_many via: installations - from: AddPullRequestLabelsResponse to: Label type: has_many via: labels - from: GetActiveMirrorTransitionJobResponse to: MirrorTransitionJob type: has_one via: activeJob - from: GetActiveMirrorTransitionJobResponse to: MirrorTransitionJob type: has_one via: lastJob - from: RemovePullRequestLabelResponse to: Label type: has_many via: labels - from: ListRulesetsResponse to: Ruleset type: has_many via: rulesets - from: ListRulesetsResponse to: RepositoryReference type: has_one via: repository - from: ListComparisonFilesResponse to: CommitFile type: has_many via: files - from: ListMatchingGitRefsResponse to: GitRef type: has_many via: refs - from: CommitComparison to: Commit type: has_one via: baseCommit - from: CommitComparison to: Commit type: has_one via: headCommit - from: CommitComparison to: Commit type: has_one via: mergeBaseCommit - from: Status to: GoogleProtobufAny type: has_many via: details - from: ListAppInstallationRepositoriesResponse to: Repo type: has_many via: repositories - from: RepositoryGrant to: OriginUserActor type: has_one via: user - from: RepositoryGrant to: OriginGroup type: has_one via: group - from: RepositoryGrant to: OriginTeamGroup type: has_one via: teamGroup - from: PullRequestReference to: RepositoryReference type: has_one via: repository - from: PostCheckRunResponse to: CheckSuite type: has_one via: checkSuite - from: PostCheckRunResponse to: CheckRun type: has_one via: checkRun - from: ListPullRequestsResponse to: PullRequest type: has_many via: pullRequests - from: ListLabelsResponse to: Label type: has_many via: labels - from: ListRepositoryGrantsResponse to: RepositoryGrant type: has_many via: grants - from: ListRepositoryGrantsResponse to: RepositoryReference type: has_one via: repository - from: CheckRunReference to: CheckSuiteReference type: has_one via: checkSuite - from: CheckRunAnnotationInput to: CheckRunAnnotationLocation type: has_one via: location - from: ListWebhookDeliveriesResponse to: WebhookDelivery type: has_many via: deliveries - from: BatchUpsertCheckRunsResponse to: CheckSuite type: has_one via: checkSuite - from: BatchUpsertCheckRunsResponse to: CheckRun type: has_many via: checkRuns - from: BatchUpsertCheckRunsResponse to: CheckRunWriteResult type: has_many via: results - from: ListPullRequestLabelsResponse to: Label type: has_many via: labels - from: GitRef to: TaggedObject type: has_one via: object - from: RequiredChecksBlocker to: RequiredCheck type: has_many via: checks - from: PullRequestComment to: CommentThread type: has_one via: thread - from: PullRequestComment to: OriginActor type: has_one via: author - from: CheckRunInput to: CheckRunOutput type: has_one via: output - from: ListBranchesResponse to: Branch type: has_many via: branches - from: CodeownerApprovalBlocker to: CodeownerRequirement type: has_many via: requirements - from: AppInstallation to: App type: belongs_to via: appId - from: AppInstallation to: Owner type: has_one via: target - from: AppInstallation to: OriginUserActor type: has_one via: installedBy - from: WebhookDelivery to: WebhookEventReference type: has_one via: event - from: WebhookDelivery to: InstallationReference type: has_one via: installation - from: WebhookDelivery to: WebhookDeliveryAttempt type: has_one via: lastAttempt - from: TransitionRepoMirrorResponse to: Repo type: has_one via: repository - from: TransitionRepoMirrorResponse to: MirrorTransitionJob type: has_one via: job - from: NamespaceListing to: Owner type: has_one via: namespace - from: NamespaceGrant to: OriginUserActor type: has_one via: user - from: NamespaceGrant to: OriginGroup type: has_one via: group - from: NamespaceGrant to: OriginTeamGroup type: has_one via: teamGroup - from: StackShapeBlocker to: PullRequestReference type: has_many via: relatedPullRequests - from: GrepContentsMatch to: GrepContentsSubmatch type: has_many via: submatches - from: CreateCheckRunAnnotationsResponse to: CheckRunAnnotation type: has_many via: annotations - from: PullRequestReview to: OriginActor type: has_one via: author - from: PullRequestReview to: PullRequestVersion type: has_one via: pullRequestVersion - from: PullRequestReview to: PullRequestReviewDismissal type: has_one via: dismissal - from: CheckRunAnnotationLocation to: CheckRunAnnotationColumnRange type: has_one via: columns - from: ListSshCertificateAuthoritiesResponse to: SshCertificateAuthority type: has_many via: certificateAuthorities - from: BatchGetContentsResult to: Content type: has_one via: content - from: GitTag to: CommitAuthor type: has_one via: tagger - from: GitTag to: TaggedObject type: has_one via: object - from: ReviewCommentInput to: InlineCommentAnchor type: has_one via: inline - from: ReviewCommentInput to: FileCommentAnchor type: has_one via: file - from: ListPullRequestRequestedReviewersResponse to: OriginUserActor type: has_many via: users - from: ListPullRequestRequestedReviewersResponse to: OriginGroup type: has_many via: groups - from: SetPullRequestLabelsResponse to: Label type: has_many via: labels - from: PullRequest to: PullRequestRef type: has_one via: head - from: PullRequest to: PullRequestRef type: has_one via: base - from: PullRequest to: OriginActor type: has_one via: author - from: PullRequest to: Label type: has_many via: labels - from: PullRequest to: PullRequestStackMembership type: has_one via: stack - from: PullRequest to: PullRequestVersion type: has_one via: version - from: ListPullRequestCommentsResponse to: PullRequestComment type: has_many via: comments - from: ListPullRequestCommentsResponse to: PullRequestReference type: has_one via: pullRequest - from: CommentThread to: PullRequestVersion type: has_one via: version - from: ListPullRequestFilesResponse to: PullRequestFile type: has_many via: files - from: PullRequestMergeabilityBlocker to: PullRequestReference type: has_one via: pullRequest - from: PullRequestMergeabilityBlocker to: RequiredChecksBlocker type: has_one via: requiredChecks - from: PullRequestMergeabilityBlocker to: RequiredApprovalsBlocker type: has_one via: requiredApprovals - from: PullRequestMergeabilityBlocker to: CodeownerApprovalBlocker type: has_one via: codeownerApproval - from: PullRequestMergeabilityBlocker to: MergeConflictBlocker type: has_one via: mergeConflict - from: PullRequestMergeabilityBlocker to: StackShapeBlocker type: has_one via: stackShape - from: ListReposResponse to: Repo type: has_many via: repositories - from: CheckRunWriteResult to: CheckRun type: has_one via: checkRun - from: ListPullRequestReviewsResponse to: PullRequestReview type: has_many via: reviews - from: ListPullRequestReviewsResponse to: PullRequestReference type: has_one via: pullRequest - from: PullRequestMergeability to: PullRequestReference type: has_one via: pullRequest - from: PullRequestMergeability to: PullRequestMergeabilityBlocker type: has_many via: blockers - from: PullRequestMergeability to: PullRequestReference type: has_many via: evaluatedPullRequests - from: ListCommitsResponse to: Commit type: has_many via: commits