Skip to main content

Owners

Generated from apiome-rest/openapi.yaml (API version 1.307.0) — do not edit by hand. How to authenticate is on the REST API reference.

Tag: owners · 10 operations

GET /v1/tenants/{tenant_slug}/owners/{kind}/{entity_id}​

Read an entity's owner

The confirmed owner team, if any, and every suggested owner with its source (gateway_tag, codeowners, spec_extension, …) and source_ref.

kind is project, catalog_item, mcp_endpoint, consumer or connector; reading needs the kind's view and changing needs its edit (projects for projects, catalog items and MCP endpoints, consumer_contracts for consumers, imports for connectors).

Operation id: get_entity_owner_v1_tenants__tenant_slug__owners__kind___entity_id__get

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
kindpathstringyesPath parameter identifying the kind segment.
entity_idpathstringyesPath parameter identifying the entity id segment.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Responses

StatusDescriptionBody
200Successful response for read an entity's owner.application/json OwnersResponse
422Validation Errorapplication/json HTTPValidationError

PUT /v1/tenants/{tenant_slug}/owners/{kind}/{entity_id}​

Assign an entity's owner

Make team (a team slug) the confirmed owner, replacing any previous one. A previous owner that came from a suggestion goes back to being a suggestion.

Audited as owner.assign. kind is project, catalog_item, mcp_endpoint, consumer or connector; reading needs the kind's view and changing needs its edit (projects for projects, catalog items and MCP endpoints, consumer_contracts for consumers, imports for connectors).

Operation id: put_entity_owner_v1_tenants__tenant_slug__owners__kind___entity_id__put

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
kindpathstringyesPath parameter identifying the kind segment.
entity_idpathstringyesPath parameter identifying the entity id segment.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Request body (required)

Request body for assign an entity's owner.

Responses

StatusDescriptionBody
200Successful response for assign an entity's owner.application/json OwnersResponse
422Validation Errorapplication/json HTTPValidationError

DELETE /v1/tenants/{tenant_slug}/owners/{kind}/{entity_id}​

Remove an entity's owner

Remove the confirmed owner. Suggestions are kept; an owner that came from a suggestion becomes a suggestion again.

Audited as owner.remove. kind is project, catalog_item, mcp_endpoint, consumer or connector; reading needs the kind's view and changing needs its edit (projects for projects, catalog items and MCP endpoints, consumer_contracts for consumers, imports for connectors).

Operation id: delete_entity_owner_v1_tenants__tenant_slug__owners__kind___entity_id__delete

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
kindpathstringyesPath parameter identifying the kind segment.
entity_idpathstringyesPath parameter identifying the entity id segment.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Responses

StatusDescriptionBody
200Successful response for remove an entity's owner.application/json OwnersResponse
422Validation Errorapplication/json HTTPValidationError

POST /v1/tenants/{tenant_slug}/owners/{kind}/{entity_id}/confirm​

Confirm a suggested owner

Make a suggested owner the confirmed owner. Name it with team; it may be omitted when only one team is suggested. The owner keeps its source and records who confirmed it (confirmed_by, confirmed_at).

Audited as owner.confirm. kind is project, catalog_item, mcp_endpoint, consumer or connector; reading needs the kind's view and changing needs its edit (projects for projects, catalog items and MCP endpoints, consumer_contracts for consumers, imports for connectors).

Operation id: confirm_entity_owner_v1_tenants__tenant_slug__owners__kind___entity_id__confirm_post

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
kindpathstringyesPath parameter identifying the kind segment.
entity_idpathstringyesPath parameter identifying the entity id segment.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Request body (required)

Request body for confirm a suggested owner.

Responses

StatusDescriptionBody
200Successful response for confirm a suggested owner.application/json OwnersResponse
422Validation Errorapplication/json HTTPValidationError

POST /v1/tenants/{tenant_slug}/owners:assign​

Assign one owner to many entities

Make team the confirmed owner of every entity in entities ([{kind, id}], up to 200), all or nothing: an entity that does not exist fails the whole request with 404.

Needs edit on every kind in the list. Audited as one owner.bulk_assign.

Operation id: bulk_assign_entity_owner_v1_tenants__tenant_slug__owners_assign_post

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Request body (required)

Request body for assign one owner to many entities.

Responses

StatusDescriptionBody
200Successful response for assign one owner to many entities.application/json BulkAssignResponse
422Validation Errorapplication/json HTTPValidationError

GET /v1/tenants/{tenant_slug}/ownership-drift​

List ownership drift

Entities whose confirmed owner team was deleted (deleted_team) or has no members (empty_team), and suggested owners nobody confirmed in 30 days (stale_suggestion). At most 200 rows per reason; counts has the totals.

Requires teams:view.

Operation id: get_ownership_drift_v1_tenants__tenant_slug__ownership_drift_get

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Responses

StatusDescriptionBody
200Successful response for list ownership drift.application/json DriftResponse
422Validation Errorapplication/json HTTPValidationError

GET /v1/tenants/{tenant_slug}/ownership-policy​

Read the ownership policy

The catch-all team for findings on entities with no confirmed owner, and whether a project needs a confirmed owner to publish.

Requires teams:view.

Operation id: get_ownership_policy_v1_tenants__tenant_slug__ownership_policy_get

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Responses

StatusDescriptionBody
200Successful response for read the ownership policy.application/json OwnershipPolicy
422Validation Errorapplication/json HTTPValidationError

PUT /v1/tenants/{tenant_slug}/ownership-policy​

Change the ownership policy

Set unowned_findings_team (a team slug, or null for none) and/or require_owner_to_publish. Omitted fields are left alone.

Audited as ownership_policy.update. Requires teams:edit.

Operation id: put_ownership_policy_v1_tenants__tenant_slug__ownership_policy_put

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Request body (required)

Request body for change the ownership policy.

Responses

StatusDescriptionBody
200Successful response for change the ownership policy.application/json OwnershipPolicy
422Validation Errorapplication/json HTTPValidationError

GET /v1/tenants/{tenant_slug}/ownership-policy/publish-gate​

Preview the owner gate for a project

What the owner gate will say when a version of project is published: disabled (the gate is off), satisfied (the project has a confirmed owner) or blocked (reason no-owner).

Requires versions:view.

Operation id: get_owner_publish_gate_v1_tenants__tenant_slug__ownership_policy_publish_gate_get

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
projectquerystringyesThe project's id.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Responses

StatusDescriptionBody
200Successful response for preview the owner gate for a project.application/json OwnerGateResponse
422Validation Errorapplication/json HTTPValidationError

GET /v1/tenants/{tenant_slug}/unowned-findings​

List unowned findings

Findings that reached no team because their entity has no confirmed owner — never dropped, kept here, newest first. One row per entity and finding type, with occurrences and the latest payload. Assigning an owner (PUT /v1/tenants/{tenant}/owners/{kind}/{id}) routes the next occurrence to the team and clears the row.

Requires teams:view.

Operation id: get_unowned_findings_v1_tenants__tenant_slug__unowned_findings_get

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
typequeryenum "owner_finding", "owner_breaking_change", "owner_verification_drift", "owner_gate_blocked", "owner_trust_drift", "owner_shadow_api", … or nullnoQuery parameter: type.
limitqueryintegernoMaximum number of rows to return.
offsetqueryintegernoNumber of rows to skip before returning results.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Responses

StatusDescriptionBody
200Successful response for list unowned findings.application/json UnownedFindingsResponse
422Validation Errorapplication/json HTTPValidationError

Schemas used​

BulkAssignInput​

Make one team the confirmed owner of many entities.

PropertyTypeRequiredDescription
teamstringyesTeam.
entitiesarray of EntityRefyesEntities.

BulkAssignResponse​

The owners of every entity a bulk assignment touched.

PropertyTypeRequiredDescription
resultsarray of OwnersResponsenoResults.
countintegeryesNumber of count.

DriftResponse​

The ownership drift report.

PropertyTypeRequiredDescription
itemsarray of DriftItemnoItems.
countsmap of integernoRows per reason (before the per-reason cap).
stale_after_daysintegeryesStale After Days.

HTTPValidationError​

Validation error response emitted when request data fails schema checks.

PropertyTypeRequiredDescription
detailarray of ValidationErrornoDetail.

OwnerAssignInput​

Make a team the confirmed owner.

PropertyTypeRequiredDescription
teamstringyesThe team's slug.

OwnerConfirmInput​

Confirm a suggestion. team may be omitted when there is exactly one suggestion.

PropertyTypeRequiredDescription
teamstring or nullnoTeam.

OwnerGateResponse​

The owner gate's verdict for one project.

PropertyTypeRequiredDescription
statusstringyesdisabled, satisfied or blocked.
messagestringyesMessage.
reasonstring or nullnono-owner when blocked.
teammap of string or null or nullnoTeam.

OwnersResponse​

An entity's owner and suggestions.

PropertyTypeRequiredDescription
kindstringyesKind.
entity_idstringyesEntity ID.
ownerOwnerRecord or nullnoThe confirmed owner, if any.
suggestionsarray of OwnerRecordnoSuggested owners with their source; none of them receives findings.
factsmap of boolean or nullnoowner.present (a confirmed, live owner team) and owner.contactable (it has an on-call or chat link) — the facts GVM-1.x ladders read (CDG-2.5).

OwnershipPolicy​

The tenant's ownership policy.

PropertyTypeRequiredDescription
unowned_findings_teamPolicyTeam or nullnoCatch-all team for findings on entities with no confirmed owner; null when none.
require_owner_to_publishbooleanyesWhen true, a version of a project with no confirmed owner cannot be published.

OwnershipPolicyInput​

A policy change. Omitted fields are left alone; unowned_findings_team: null clears it.

PropertyTypeRequiredDescription
unowned_findings_teamstring or nullnoA team slug.
require_owner_to_publishboolean or nullnoRequire Owner To Publish.

UnownedFindingsResponse​

A page of the report.

PropertyTypeRequiredDescription
itemsarray of UnownedFindingnoItems.
totalintegeryesTotal.