?uem/p1-90`The Transparency Exchange API (TEA) aims to facilitate the automated exchange of supply chain artifacts such as Software Bill of Materials (SBOM), Vulnerability Exploitability eXchange (VEX), and attestations, allowing users to automatically discover and consume transparency-related artifacts for a product. The TEA enhances transparency across the software supply chain by providing a standardized method to share and access critical security and compliance information. This automation benefits release management and optimizes procurement processes, ensuring timely updates and improving risk management. TEA is developed within the OWASP
| Scheme | Type | Description |
|---|---|---|
bearerAuth |
http bearer |
A TEA access token obtained from Resource operations declare both this requirement and an empty alternative so that a server can select which objects require authentication: a client may call without a token. Whether a given endpoint actually requires a token is discovered at runtime from a |
basicAuth |
http basic | API key credentials, presented to /token only: the API key identifier as the user-id and the API key secret as the password (application/x-www-form-urlencoded before they are joined with a colon and Base64-encoded for the Authorization header. Clients and servers shall apply that encoding so credentials containing :, @, or other reserved characters interoperate. Servers shall not accept API key credentials directly on other TEA endpoints; clients shall exchange them for an access token first. |
Unless an operation states otherwise, every operation requires: bearerAuth or none (anonymous access).
GET/discovery
Discovery endpoint which resolves an identifier into one or more product release
Exactly one of the tei and purl query parameters shall be provided. A request with neither, or with both, is rejected with 400.
Discovery by TEI resolves the product across TEA servers, using the domain carried by the TEI (typically after DNS / .well-known selection of an API host). Discovery by
A successful response is a non-empty JSON array of discovery-info objects, ordered by priority when multiple product releases match (first entry highest). If the server does not resolve the identifier, it responds with 404 and error: OBJECT_UNKNOWN, not 200 with an empty array.
Parameter values are the identifier itself (not a pre-encoded wire form). Clients shall apply query-parameter serialization once. Servers shall interpret the value after one query-decoding step. Escapes that are part of a
Example request lines after serialization:
.../discovery?tei=tei%3A%2F%2Fproducts.example.com%2Fuuid%2F47f51950-b0e2-11f1-adc2-1a52914d44b2.../discovery?purl=pkg%3Amaven%2Forg.apache.logging.log4j%2Flog4j-core%402.24.3Unlike /token, this operation is required on a conforming TEA API base for the advertised version. A conforming 404 uses the shared object-not-found response (error-response, typically OBJECT_UNKNOWN) and means this server does not resolve the identifier, not that /discovery is optional or unimplemented. Client recognition of that body and the terminal outcome are defined in the discovery document.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
tei |
query | No | string | Transparency Exchange Identifier (TEI) for the product being discovered, as the logical TEI string. Do not pre-encode for the schema example or client model; apply query-parameter encoding once when forming the HTTP request. |
purl |
query | No | string |
| Status | Description | Schema |
|---|---|---|
200 |
Non-empty array of discovery results for the requested TEI or discovery-info object (productReleaseUuid plus servers). An empty array is not a valid success response; use 404 with error: OBJECT_UNKNOWN when the server does not resolve the identifier. |
Array of discovery-info |
400 |
Request was invalid. For paginated requests, this includes malformed, invalid, expired, or conflicting pageToken values, including conflicts with continuation parameters or path parameters (error: INVALID_PAGE_TOKEN when a TEA error body is present). Other malformed requests may use error: INVALID_REQUEST. |
error-response |
401 |
Authentication required, or the presented access token is expired, revoked, or otherwise invalid. Servers shall include a Servers that require no authentication on any endpoint shall not return this status. On a TEA server where some data is available without authentication, but not all, protected endpoints return |
error-response |
403 |
The client is authenticated, but is not authorized to access this resource or perform this operation. Authorization decisions are server-specific and are not constrained by this specification. Servers may instead conceal the existence of a resource from an authenticated but unauthorized client by answering |
error-response |
404 |
Either the object is unknown to this server, or — where an endpoint documents it — the server does not provide an optional capability or sub-resource for that object. The cases are told apart by the TEA error body, never by the status alone:
Concealment applies only after authentication. A request to a protected object with no valid access token shall receive |
error-response |
| Status | Header | Type | Description |
|---|---|---|---|
401 |
WWW-Authenticate |
string | Bearer challenge, as defined in |
GET/products
Returns a list of TEA products. Note that multiple products may match.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
idType |
query | No | identifier-type |
Type of identifier specified in the idValue parameter |
idValue |
query | No | string | If present, only the objects with the given identifier value will be returned. |
pageSize |
query | No | integer | The maximum number of results to return. Default: 25. Minimum: 1. Maximum: 100. Format: int64. |
pageToken |
query | No | string |
An opaque continuation token produced by a previous response. This token shall be copied verbatim from the The token represents continuation state for the original query, including A Servers shall return |
sortField |
query | No | string (enum) |
The field by which to sort the results. Paginated results shall be ordered first by the selected One of: |
sortOrder |
query | No | string (enum) |
The direction of the sort. The default is The selected sort order applies to both the primary One of: |
| Status | Description | Schema |
|---|---|---|
200 |
A paginated response containing TEA Products | paginated-product-response |
400 |
Request was invalid. For paginated requests, this includes malformed, invalid, expired, or conflicting pageToken values, including conflicts with continuation parameters or path parameters (error: INVALID_PAGE_TOKEN when a TEA error body is present). Other malformed requests may use error: INVALID_REQUEST. |
error-response |
401 |
Authentication required, or the presented access token is expired, revoked, or otherwise invalid. Servers shall include a Servers that require no authentication on any endpoint shall not return this status. On a TEA server where some data is available without authentication, but not all, protected endpoints return |
error-response |
403 |
The client is authenticated, but is not authorized to access this resource or perform this operation. Authorization decisions are server-specific and are not constrained by this specification. Servers may instead conceal the existence of a resource from an authenticated but unauthorized client by answering |
error-response |
| Status | Header | Type | Description |
|---|---|---|---|
401 |
WWW-Authenticate |
string | Bearer challenge, as defined in |
GET/product/{uuid}
Get a TEA Product by
| Status | Description | Schema |
|---|---|---|
200 |
Requested TEA Product found and returned | product |
400 |
Request was invalid. For paginated requests, this includes malformed, invalid, expired, or conflicting pageToken values, including conflicts with continuation parameters or path parameters (error: INVALID_PAGE_TOKEN when a TEA error body is present). Other malformed requests may use error: INVALID_REQUEST. |
error-response |
401 |
Authentication required, or the presented access token is expired, revoked, or otherwise invalid. Servers shall include a Servers that require no authentication on any endpoint shall not return this status. On a TEA server where some data is available without authentication, but not all, protected endpoints return |
error-response |
403 |
The client is authenticated, but is not authorized to access this resource or perform this operation. Authorization decisions are server-specific and are not constrained by this specification. Servers may instead conceal the existence of a resource from an authenticated but unauthorized client by answering |
error-response |
404 |
Either the object is unknown to this server, or — where an endpoint documents it — the server does not provide an optional capability or sub-resource for that object. The cases are told apart by the TEA error body, never by the status alone:
Concealment applies only after authentication. A request to a protected object with no valid access token shall receive |
error-response |
| Status | Header | Type | Description |
|---|---|---|---|
401 |
WWW-Authenticate |
string | Bearer challenge, as defined in |
GET/product/{uuid}/releases
Get releases of the product
| Name | In | Required | Type | Description |
|---|---|---|---|---|
uuid |
path | Yes | uuid |
|
pageSize |
query | No | integer | The maximum number of results to return. Default: 25. Minimum: 1. Maximum: 100. Format: int64. |
pageToken |
query | No | string |
An opaque continuation token produced by a previous response. This token shall be copied verbatim from the The token represents continuation state for the original query, including A Servers shall return |
sortField |
query | No | string (enum) |
The field by which to sort the results. Paginated results shall be ordered first by the selected When When One of: |
sortOrder |
query | No | string (enum) |
The direction of the sort. The default is The selected sort order applies to both the primary One of: |
| Status | Description | Schema |
|---|---|---|
200 |
A paginated response containing TEA Product Releases | paginated-product-release-response |
400 |
Request was invalid. For paginated requests, this includes malformed, invalid, expired, or conflicting pageToken values, including conflicts with continuation parameters or path parameters (error: INVALID_PAGE_TOKEN when a TEA error body is present). Other malformed requests may use error: INVALID_REQUEST. |
error-response |
401 |
Authentication required, or the presented access token is expired, revoked, or otherwise invalid. Servers shall include a Servers that require no authentication on any endpoint shall not return this status. On a TEA server where some data is available without authentication, but not all, protected endpoints return |
error-response |
403 |
The client is authenticated, but is not authorized to access this resource or perform this operation. Authorization decisions are server-specific and are not constrained by this specification. Servers may instead conceal the existence of a resource from an authenticated but unauthorized client by answering |
error-response |
404 |
Either the object is unknown to this server, or — where an endpoint documents it — the server does not provide an optional capability or sub-resource for that object. The cases are told apart by the TEA error body, never by the status alone:
Concealment applies only after authentication. A request to a protected object with no valid access token shall receive |
error-response |
| Status | Header | Type | Description |
|---|---|---|---|
401 |
WWW-Authenticate |
string | Bearer challenge, as defined in |
GET/productReleases
Returns a list of TEA product releases. Note that multiple product releases may match.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
idType |
query | No | identifier-type |
Type of identifier specified in the idValue parameter |
idValue |
query | No | string | If present, only the objects with the given identifier value will be returned. |
pageSize |
query | No | integer | The maximum number of results to return. Default: 25. Minimum: 1. Maximum: 100. Format: int64. |
pageToken |
query | No | string |
An opaque continuation token produced by a previous response. This token shall be copied verbatim from the The token represents continuation state for the original query, including A Servers shall return |
sortField |
query | No | string (enum) |
The field by which to sort the results. Paginated results shall be ordered first by the selected When When One of: |
sortOrder |
query | No | string (enum) |
The direction of the sort. The default is The selected sort order applies to both the primary One of: |
| Status | Description | Schema |
|---|---|---|
200 |
A paginated response containing TEA Product Releases | paginated-product-release-response |
400 |
Request was invalid. For paginated requests, this includes malformed, invalid, expired, or conflicting pageToken values, including conflicts with continuation parameters or path parameters (error: INVALID_PAGE_TOKEN when a TEA error body is present). Other malformed requests may use error: INVALID_REQUEST. |
error-response |
401 |
Authentication required, or the presented access token is expired, revoked, or otherwise invalid. Servers shall include a Servers that require no authentication on any endpoint shall not return this status. On a TEA server where some data is available without authentication, but not all, protected endpoints return |
error-response |
403 |
The client is authenticated, but is not authorized to access this resource or perform this operation. Authorization decisions are server-specific and are not constrained by this specification. Servers may instead conceal the existence of a resource from an authenticated but unauthorized client by answering |
error-response |
| Status | Header | Type | Description |
|---|---|---|---|
401 |
WWW-Authenticate |
string | Bearer challenge, as defined in |
GET/productRelease/{uuid}
Get the TEA Product Release with its latest collection
| Status | Description | Schema |
|---|---|---|
200 |
Requested TEA Product Release and its latest Collection found and returned | product-release-with-collection |
400 |
Request was invalid. For paginated requests, this includes malformed, invalid, expired, or conflicting pageToken values, including conflicts with continuation parameters or path parameters (error: INVALID_PAGE_TOKEN when a TEA error body is present). Other malformed requests may use error: INVALID_REQUEST. |
error-response |
401 |
Authentication required, or the presented access token is expired, revoked, or otherwise invalid. Servers shall include a Servers that require no authentication on any endpoint shall not return this status. On a TEA server where some data is available without authentication, but not all, protected endpoints return |
error-response |
403 |
The client is authenticated, but is not authorized to access this resource or perform this operation. Authorization decisions are server-specific and are not constrained by this specification. Servers may instead conceal the existence of a resource from an authenticated but unauthorized client by answering |
error-response |
404 |
Either the object is unknown to this server, or — where an endpoint documents it — the server does not provide an optional capability or sub-resource for that object. The cases are told apart by the TEA error body, never by the status alone:
Concealment applies only after authentication. A request to a protected object with no valid access token shall receive |
error-response |
| Status | Header | Type | Description |
|---|---|---|---|
401 |
WWW-Authenticate |
string | Bearer challenge, as defined in |
GET/components
Returns a list of TEA components. Note that multiple components may match.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
idType |
query | No | identifier-type |
Type of identifier specified in the idValue parameter |
idValue |
query | No | string | If present, only the objects with the given identifier value will be returned. |
pageSize |
query | No | integer | The maximum number of results to return. Default: 25. Minimum: 1. Maximum: 100. Format: int64. |
pageToken |
query | No | string |
An opaque continuation token produced by a previous response. This token shall be copied verbatim from the The token represents continuation state for the original query, including A Servers shall return |
sortField |
query | No | string (enum) |
The field by which to sort the results. Paginated results shall be ordered first by the selected One of: |
sortOrder |
query | No | string (enum) |
The direction of the sort. The default is The selected sort order applies to both the primary One of: |
| Status | Description | Schema |
|---|---|---|
200 |
A paginated response containing TEA Components | paginated-component-response |
400 |
Request was invalid. For paginated requests, this includes malformed, invalid, expired, or conflicting pageToken values, including conflicts with continuation parameters or path parameters (error: INVALID_PAGE_TOKEN when a TEA error body is present). Other malformed requests may use error: INVALID_REQUEST. |
error-response |
401 |
Authentication required, or the presented access token is expired, revoked, or otherwise invalid. Servers shall include a Servers that require no authentication on any endpoint shall not return this status. On a TEA server where some data is available without authentication, but not all, protected endpoints return |
error-response |
403 |
The client is authenticated, but is not authorized to access this resource or perform this operation. Authorization decisions are server-specific and are not constrained by this specification. Servers may instead conceal the existence of a resource from an authenticated but unauthorized client by answering |
error-response |
| Status | Header | Type | Description |
|---|---|---|---|
401 |
WWW-Authenticate |
string | Bearer challenge, as defined in |
GET/component/{uuid}
Get a TEA Component
| Status | Description | Schema |
|---|---|---|
200 |
Requested TEA Component found and returned | component |
400 |
Request was invalid. For paginated requests, this includes malformed, invalid, expired, or conflicting pageToken values, including conflicts with continuation parameters or path parameters (error: INVALID_PAGE_TOKEN when a TEA error body is present). Other malformed requests may use error: INVALID_REQUEST. |
error-response |
401 |
Authentication required, or the presented access token is expired, revoked, or otherwise invalid. Servers shall include a Servers that require no authentication on any endpoint shall not return this status. On a TEA server where some data is available without authentication, but not all, protected endpoints return |
error-response |
403 |
The client is authenticated, but is not authorized to access this resource or perform this operation. Authorization decisions are server-specific and are not constrained by this specification. Servers may instead conceal the existence of a resource from an authenticated but unauthorized client by answering |
error-response |
404 |
Either the object is unknown to this server, or — where an endpoint documents it — the server does not provide an optional capability or sub-resource for that object. The cases are told apart by the TEA error body, never by the status alone:
Concealment applies only after authentication. A request to a protected object with no valid access token shall receive |
error-response |
| Status | Header | Type | Description |
|---|---|---|---|
401 |
WWW-Authenticate |
string | Bearer challenge, as defined in |
GET/component/{uuid}/releases
Get releases of the component
| Name | In | Required | Type | Description |
|---|---|---|---|---|
uuid |
path | Yes | uuid |
|
pageSize |
query | No | integer | The maximum number of results to return. Default: 25. Minimum: 1. Maximum: 100. Format: int64. |
pageToken |
query | No | string |
An opaque continuation token produced by a previous response. This token shall be copied verbatim from the The token represents continuation state for the original query, including A Servers shall return |
sortField |
query | No | string (enum) |
The field by which to sort the results. Paginated results shall be ordered first by the selected When When One of: |
sortOrder |
query | No | string (enum) |
The direction of the sort. The default is The selected sort order applies to both the primary One of: |
| Status | Description | Schema |
|---|---|---|
200 |
A paginated response containing TEA Component Releases | paginated-component-release-response |
400 |
Request was invalid. For paginated requests, this includes malformed, invalid, expired, or conflicting pageToken values, including conflicts with continuation parameters or path parameters (error: INVALID_PAGE_TOKEN when a TEA error body is present). Other malformed requests may use error: INVALID_REQUEST. |
error-response |
401 |
Authentication required, or the presented access token is expired, revoked, or otherwise invalid. Servers shall include a Servers that require no authentication on any endpoint shall not return this status. On a TEA server where some data is available without authentication, but not all, protected endpoints return |
error-response |
403 |
The client is authenticated, but is not authorized to access this resource or perform this operation. Authorization decisions are server-specific and are not constrained by this specification. Servers may instead conceal the existence of a resource from an authenticated but unauthorized client by answering |
error-response |
404 |
Either the object is unknown to this server, or — where an endpoint documents it — the server does not provide an optional capability or sub-resource for that object. The cases are told apart by the TEA error body, never by the status alone:
Concealment applies only after authentication. A request to a protected object with no valid access token shall receive |
error-response |
| Status | Header | Type | Description |
|---|---|---|---|
401 |
WWW-Authenticate |
string | Bearer challenge, as defined in |
GET/componentReleases
Returns a list of TEA component releases. Note that multiple component releases may match.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
idType |
query | No | identifier-type |
Type of identifier specified in the idValue parameter |
idValue |
query | No | string | If present, only the objects with the given identifier value will be returned. |
pageSize |
query | No | integer | The maximum number of results to return. Default: 25. Minimum: 1. Maximum: 100. Format: int64. |
pageToken |
query | No | string |
An opaque continuation token produced by a previous response. This token shall be copied verbatim from the The token represents continuation state for the original query, including A Servers shall return |
sortField |
query | No | string (enum) |
The field by which to sort the results. Paginated results shall be ordered first by the selected When When One of: |
sortOrder |
query | No | string (enum) |
The direction of the sort. The default is The selected sort order applies to both the primary One of: |
| Status | Description | Schema |
|---|---|---|
200 |
A paginated response containing TEA Component Releases | paginated-component-release-response |
400 |
Request was invalid. For paginated requests, this includes malformed, invalid, expired, or conflicting pageToken values, including conflicts with continuation parameters or path parameters (error: INVALID_PAGE_TOKEN when a TEA error body is present). Other malformed requests may use error: INVALID_REQUEST. |
error-response |
401 |
Authentication required, or the presented access token is expired, revoked, or otherwise invalid. Servers shall include a Servers that require no authentication on any endpoint shall not return this status. On a TEA server where some data is available without authentication, but not all, protected endpoints return |
error-response |
403 |
The client is authenticated, but is not authorized to access this resource or perform this operation. Authorization decisions are server-specific and are not constrained by this specification. Servers may instead conceal the existence of a resource from an authenticated but unauthorized client by answering |
error-response |
| Status | Header | Type | Description |
|---|---|---|---|
401 |
WWW-Authenticate |
string | Bearer challenge, as defined in |
GET/componentRelease/{uuid}
Get the TEA Component Release with its latest collection
| Status | Description | Schema |
|---|---|---|
200 |
Requested TEA Component Release and its latest Collection found and returned | component-release-with-collection |
400 |
Request was invalid. For paginated requests, this includes malformed, invalid, expired, or conflicting pageToken values, including conflicts with continuation parameters or path parameters (error: INVALID_PAGE_TOKEN when a TEA error body is present). Other malformed requests may use error: INVALID_REQUEST. |
error-response |
401 |
Authentication required, or the presented access token is expired, revoked, or otherwise invalid. Servers shall include a Servers that require no authentication on any endpoint shall not return this status. On a TEA server where some data is available without authentication, but not all, protected endpoints return |
error-response |
403 |
The client is authenticated, but is not authorized to access this resource or perform this operation. Authorization decisions are server-specific and are not constrained by this specification. Servers may instead conceal the existence of a resource from an authenticated but unauthorized client by answering |
error-response |
404 |
Either the object is unknown to this server, or — where an endpoint documents it — the server does not provide an optional capability or sub-resource for that object. The cases are told apart by the TEA error body, never by the status alone:
Concealment applies only after authentication. A request to a protected object with no valid access token shall receive |
error-response |
| Status | Header | Type | Description |
|---|---|---|---|
401 |
WWW-Authenticate |
string | Bearer challenge, as defined in |
GET/productRelease/{uuid}/collections
Get the TEA Collections belonging to the TEA Product Release
| Name | In | Required | Type | Description |
|---|---|---|---|---|
uuid |
path | Yes | uuid |
|
pageSize |
query | No | integer | The maximum number of results to return. Default: 25. Minimum: 1. Maximum: 100. Format: int64. |
pageToken |
query | No | string |
An opaque continuation token produced by a previous response. This token shall be copied verbatim from the The token represents continuation state for the original query, including A Servers shall return |
sortField |
query | No | string (enum) |
The field by which to sort the results. Paginated collection results shall be ordered first by the selected The only currently supported collection One of: |
sortOrder |
query | No | string (enum) |
The direction of the sort. The default is The selected sort order applies to both the primary One of: |
| Status | Description | Schema |
|---|---|---|
200 |
A paginated response containing TEA Collections | paginated-collection-response |
400 |
Request was invalid. For paginated requests, this includes malformed, invalid, expired, or conflicting pageToken values, including conflicts with continuation parameters or path parameters (error: INVALID_PAGE_TOKEN when a TEA error body is present). Other malformed requests may use error: INVALID_REQUEST. |
error-response |
401 |
Authentication required, or the presented access token is expired, revoked, or otherwise invalid. Servers shall include a Servers that require no authentication on any endpoint shall not return this status. On a TEA server where some data is available without authentication, but not all, protected endpoints return |
error-response |
403 |
The client is authenticated, but is not authorized to access this resource or perform this operation. Authorization decisions are server-specific and are not constrained by this specification. Servers may instead conceal the existence of a resource from an authenticated but unauthorized client by answering |
error-response |
404 |
Either the object is unknown to this server, or — where an endpoint documents it — the server does not provide an optional capability or sub-resource for that object. The cases are told apart by the TEA error body, never by the status alone:
Concealment applies only after authentication. A request to a protected object with no valid access token shall receive |
error-response |
| Status | Header | Type | Description |
|---|---|---|---|
401 |
WWW-Authenticate |
string | Bearer challenge, as defined in |
GET/productRelease/{uuid}/collection/latest
Get the latest TEA Collection belonging to the TEA Product Release, that is, the collection with the greatest published version.
404 means the release is unknown; a release always has a latest collection.
| Status | Description | Schema |
|---|---|---|
200 |
Requested TEA Collection found and returned | collection |
400 |
Request was invalid. For paginated requests, this includes malformed, invalid, expired, or conflicting pageToken values, including conflicts with continuation parameters or path parameters (error: INVALID_PAGE_TOKEN when a TEA error body is present). Other malformed requests may use error: INVALID_REQUEST. |
error-response |
401 |
Authentication required, or the presented access token is expired, revoked, or otherwise invalid. Servers shall include a Servers that require no authentication on any endpoint shall not return this status. On a TEA server where some data is available without authentication, but not all, protected endpoints return |
error-response |
403 |
The client is authenticated, but is not authorized to access this resource or perform this operation. Authorization decisions are server-specific and are not constrained by this specification. Servers may instead conceal the existence of a resource from an authenticated but unauthorized client by answering |
error-response |
404 |
Either the object is unknown to this server, or — where an endpoint documents it — the server does not provide an optional capability or sub-resource for that object. The cases are told apart by the TEA error body, never by the status alone:
Concealment applies only after authentication. A request to a protected object with no valid access token shall receive |
error-response |
| Status | Header | Type | Description |
|---|---|---|---|
401 |
WWW-Authenticate |
string | Bearer challenge, as defined in |
GET/productRelease/{uuid}/collection/{collectionVersion}
Get a specific Collection (by version) for a TEA Product Release by its
| Status | Description | Schema |
|---|---|---|
200 |
Requested TEA Collection Version found and returned | collection |
400 |
Request was invalid. For paginated requests, this includes malformed, invalid, expired, or conflicting pageToken values, including conflicts with continuation parameters or path parameters (error: INVALID_PAGE_TOKEN when a TEA error body is present). Other malformed requests may use error: INVALID_REQUEST. |
error-response |
401 |
Authentication required, or the presented access token is expired, revoked, or otherwise invalid. Servers shall include a Servers that require no authentication on any endpoint shall not return this status. On a TEA server where some data is available without authentication, but not all, protected endpoints return |
error-response |
403 |
The client is authenticated, but is not authorized to access this resource or perform this operation. Authorization decisions are server-specific and are not constrained by this specification. Servers may instead conceal the existence of a resource from an authenticated but unauthorized client by answering |
error-response |
404 |
Either the object is unknown to this server, or — where an endpoint documents it — the server does not provide an optional capability or sub-resource for that object. The cases are told apart by the TEA error body, never by the status alone:
Concealment applies only after authentication. A request to a protected object with no valid access token shall receive |
error-response |
| Status | Header | Type | Description |
|---|---|---|---|
401 |
WWW-Authenticate |
string | Bearer challenge, as defined in |
GET/componentRelease/{uuid}/collections
Get the TEA Collections belonging to the TEA Component Release
| Name | In | Required | Type | Description |
|---|---|---|---|---|
uuid |
path | Yes | uuid |
|
pageSize |
query | No | integer | The maximum number of results to return. Default: 25. Minimum: 1. Maximum: 100. Format: int64. |
pageToken |
query | No | string |
An opaque continuation token produced by a previous response. This token shall be copied verbatim from the The token represents continuation state for the original query, including A Servers shall return |
sortField |
query | No | string (enum) |
The field by which to sort the results. Paginated collection results shall be ordered first by the selected The only currently supported collection One of: |
sortOrder |
query | No | string (enum) |
The direction of the sort. The default is The selected sort order applies to both the primary One of: |
| Status | Description | Schema |
|---|---|---|
200 |
A paginated response containing TEA Collections | paginated-collection-response |
400 |
Request was invalid. For paginated requests, this includes malformed, invalid, expired, or conflicting pageToken values, including conflicts with continuation parameters or path parameters (error: INVALID_PAGE_TOKEN when a TEA error body is present). Other malformed requests may use error: INVALID_REQUEST. |
error-response |
401 |
Authentication required, or the presented access token is expired, revoked, or otherwise invalid. Servers shall include a Servers that require no authentication on any endpoint shall not return this status. On a TEA server where some data is available without authentication, but not all, protected endpoints return |
error-response |
403 |
The client is authenticated, but is not authorized to access this resource or perform this operation. Authorization decisions are server-specific and are not constrained by this specification. Servers may instead conceal the existence of a resource from an authenticated but unauthorized client by answering |
error-response |
404 |
Either the object is unknown to this server, or — where an endpoint documents it — the server does not provide an optional capability or sub-resource for that object. The cases are told apart by the TEA error body, never by the status alone:
Concealment applies only after authentication. A request to a protected object with no valid access token shall receive |
error-response |
| Status | Header | Type | Description |
|---|---|---|---|
401 |
WWW-Authenticate |
string | Bearer challenge, as defined in |
GET/componentRelease/{uuid}/collection/latest
Get the latest TEA Collection belonging to the TEA Component Release, that is, the collection with the greatest published version.
404 means the release is unknown; a release always has a latest collection.
| Status | Description | Schema |
|---|---|---|
200 |
Requested TEA Collection found and returned | collection |
400 |
Request was invalid. For paginated requests, this includes malformed, invalid, expired, or conflicting pageToken values, including conflicts with continuation parameters or path parameters (error: INVALID_PAGE_TOKEN when a TEA error body is present). Other malformed requests may use error: INVALID_REQUEST. |
error-response |
401 |
Authentication required, or the presented access token is expired, revoked, or otherwise invalid. Servers shall include a Servers that require no authentication on any endpoint shall not return this status. On a TEA server where some data is available without authentication, but not all, protected endpoints return |
error-response |
403 |
The client is authenticated, but is not authorized to access this resource or perform this operation. Authorization decisions are server-specific and are not constrained by this specification. Servers may instead conceal the existence of a resource from an authenticated but unauthorized client by answering |
error-response |
404 |
Either the object is unknown to this server, or — where an endpoint documents it — the server does not provide an optional capability or sub-resource for that object. The cases are told apart by the TEA error body, never by the status alone:
Concealment applies only after authentication. A request to a protected object with no valid access token shall receive |
error-response |
| Status | Header | Type | Description |
|---|---|---|---|
401 |
WWW-Authenticate |
string | Bearer challenge, as defined in |
GET/componentRelease/{uuid}/collection/{collectionVersion}
Get a specific Collection (by version) for a TEA Component Release by its
| Status | Description | Schema |
|---|---|---|
200 |
Requested TEA Collection Version found and returned | collection |
400 |
Request was invalid. For paginated requests, this includes malformed, invalid, expired, or conflicting pageToken values, including conflicts with continuation parameters or path parameters (error: INVALID_PAGE_TOKEN when a TEA error body is present). Other malformed requests may use error: INVALID_REQUEST. |
error-response |
401 |
Authentication required, or the presented access token is expired, revoked, or otherwise invalid. Servers shall include a Servers that require no authentication on any endpoint shall not return this status. On a TEA server where some data is available without authentication, but not all, protected endpoints return |
error-response |
403 |
The client is authenticated, but is not authorized to access this resource or perform this operation. Authorization decisions are server-specific and are not constrained by this specification. Servers may instead conceal the existence of a resource from an authenticated but unauthorized client by answering |
error-response |
404 |
Either the object is unknown to this server, or — where an endpoint documents it — the server does not provide an optional capability or sub-resource for that object. The cases are told apart by the TEA error body, never by the status alone:
Concealment applies only after authentication. A request to a protected object with no valid access token shall receive |
error-response |
| Status | Header | Type | Description |
|---|---|---|---|
401 |
WWW-Authenticate |
string | Bearer challenge, as defined in |
GET/artifact/{uuid}/latest
Get metadata for the latest revision of a specific TEA Artifact, that is, the revision with the greatest published version.
| Status | Description | Schema |
|---|---|---|
200 |
Requested TEA Artifact metadata found and returned | artifact |
400 |
Request was invalid. For paginated requests, this includes malformed, invalid, expired, or conflicting pageToken values, including conflicts with continuation parameters or path parameters (error: INVALID_PAGE_TOKEN when a TEA error body is present). Other malformed requests may use error: INVALID_REQUEST. |
error-response |
401 |
Authentication required, or the presented access token is expired, revoked, or otherwise invalid. Servers shall include a Servers that require no authentication on any endpoint shall not return this status. On a TEA server where some data is available without authentication, but not all, protected endpoints return |
error-response |
403 |
The client is authenticated, but is not authorized to access this resource or perform this operation. Authorization decisions are server-specific and are not constrained by this specification. Servers may instead conceal the existence of a resource from an authenticated but unauthorized client by answering |
error-response |
404 |
Either the object is unknown to this server, or — where an endpoint documents it — the server does not provide an optional capability or sub-resource for that object. The cases are told apart by the TEA error body, never by the status alone:
Concealment applies only after authentication. A request to a protected object with no valid access token shall receive |
error-response |
| Status | Header | Type | Description |
|---|---|---|---|
401 |
WWW-Authenticate |
string | Bearer challenge, as defined in |
GET/artifact/{uuid}/latest/download
Download the content of the latest revision of a specific TEA Artifact.
Equivalent to the versioned download endpoint, resolving to the revision with the greatest published version — the same revision /artifact/{uuid}/latest reports. The content this returns changes when a new revision is published, so unlike the versioned endpoint the response is not immutable: caches shall revalidate it via ETag for the HTTP representation selected after negotiation. The Content-Location header is an absolute versioned URL including the API base, version path, and mediaType query parameter. That URL identifies the revision and format; HTTP content coding can still be negotiated.
When serving the content itself (200), servers shall return a strong ETag for the HTTP representation selected after negotiation, including content coding, and shall honor If-None-Match with 304. ETag is the only conditional validator for these downloads. Servers that support HEAD for this operation shall return the same headers as GET without a response body. 302 redirects are outside conditional semantics: If-None-Match applies only to the TEA-hosted download response, not to following an external Location.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
uuid |
path | Yes | uuid |
|
mediaType |
query | No | string |
Selects which of the artifact revision's Matching against a format's Example after serialization: |
If-None-Match |
header | No | string | Conditional request validator (ETag is the only defined validator. Servers evaluate If-None-Match with the weak comparison function (ETag of the representation selected after negotiation, including content-coding negotiation, and answer 304 when it matches. The corresponding 304 shall carry that representation's validator and shall carry Vary when the 200 would. When present, that ETag is a strong validator. Other validators are not defined for these operations. |
| Status | Description | Schema |
|---|---|---|
200 |
The content of the selected format of the latest revision of the TEA Artifact, as resolved at the time of the request. Identical to |
string |
302 |
The selected representation is available at another location, for example object storage addressed by a pre-signed URL. The client follows the Changing only this response's A client shall not send its TEA access token when following a redirect to a different origin. |
— |
304 |
The representation selected after negotiation has not changed (ETag and Content-Location from the would-be successful response for that representation, and shall repeat Cache-Control and Vary when the corresponding 200 carries them. |
— |
400 |
Request was invalid. For paginated requests, this includes malformed, invalid, expired, or conflicting pageToken values, including conflicts with continuation parameters or path parameters (error: INVALID_PAGE_TOKEN when a TEA error body is present). Other malformed requests may use error: INVALID_REQUEST. |
error-response |
401 |
Authentication required, or the presented access token is expired, revoked, or otherwise invalid. Servers shall include a Servers that require no authentication on any endpoint shall not return this status. On a TEA server where some data is available without authentication, but not all, protected endpoints return |
error-response |
403 |
The client is authenticated, but is not authorized to access this resource or perform this operation. Authorization decisions are server-specific and are not constrained by this specification. Servers may instead conceal the existence of a resource from an authenticated but unauthorized client by answering |
error-response |
404 |
Either the object is unknown to this server, or — where an endpoint documents it — the server does not provide an optional capability or sub-resource for that object. The cases are told apart by the TEA error body, never by the status alone:
Concealment applies only after authentication. A request to a protected object with no valid access token shall receive |
error-response |
406 |
The artifact revision exists, but has no format matching the requested
|
error-response |
| Status | Header | Type | Description |
|---|---|---|---|
200 |
Content-Disposition |
string | Suggested filename for the artifact content, as an attachment disposition per |
200 |
Content-Encoding |
string | HTTP content codings applied to the selected representation, listed in the order applied (.gz file, is not HTTP content coding and shall not be declared here. |
200 |
ETag |
string |
The server shall provide a strong entity tag for the selected HTTP representation. Representations with different bytes shall have different strong entity tags, including representations that differ because of HTTP content coding. Artifact revision immutability does not require all HTTP representations of that revision to share an entity tag. Intermediaries that compress on the fly often weaken the entity tag, which does not meet this requirement. Servers that offer content coding can serve precompressed variants, or assign their own strong entity tag to each coded representation. |
200 |
Cache-Control |
string |
The latest revision is a moving target: which revision it resolves to changes when a new revision is published. Servers shall not mark it immutable and shall require revalidation, so that a cache reuses a stored representation only after confirming, through that representation's As with versioned downloads, responses containing access-controlled content shall use |
200 |
Content-Location |
string | Absolute URL of the versioned content download for the revision and format this response was resolved to, per mediaType query parameter naming the selected format. The URL identifies the revision and format. HTTP content coding can still be negotiated on a follow-up GET. A client that needs a stable reference to that revision and format uses this URL rather than the latest URL.Format: uri. |
200 |
Vary |
string |
If changing or removing the If changing or removing the |
200 |
Repr-Digest |
string | When provided, Repr-Digest shall contain a digest of the complete selected HTTP representation data, including any applied content coding and excluding transfer coding, as defined in |
302 |
Location |
string | Location the selected representation can be retrieved from. Format: uri. |
304 |
ETag |
string | Same ETag the server would have sent on 200 for this operation. |
304 |
Cache-Control |
string | Same Cache-Control the server would have sent on 200 for this operation. |
304 |
Content-Location |
string | Same Content-Location the server would have sent on 200 for this operation.Format: uri. |
304 |
Vary |
string | Same Vary the server would have sent on 200 for this operation, when used. |
401 |
WWW-Authenticate |
string | Bearer challenge, as defined in |
GET/artifact/{uuid}/latest/signature/download
Download the detached signature for the latest revision of a specific TEA Artifact.
Equivalent to the versioned signature endpoint, resolving to the revision with the greatest published version — the same revision /artifact/{uuid}/latest reports. As with the latest content endpoint, the response is not immutable and caches shall revalidate it via ETag for the HTTP representation selected after negotiation. Content-Location is an absolute versioned signature URL including the API base, version path, and mediaType query parameter. That URL identifies the revision and format; HTTP content coding can still be negotiated.
When serving the signature itself (200), servers shall return a strong ETag for the HTTP representation selected after negotiation, including content coding, and shall honor If-None-Match with 304. ETag is the only conditional validator for these downloads. Servers that support HEAD for this operation shall return the same headers as GET without a response body. 302 redirects are outside conditional semantics: If-None-Match applies only to the TEA-hosted download response, not to following an external Location.
404 distinguishes the cases by TEA error body: OBJECT_UNKNOWN when the artifact revision is unknown (or concealed), and SIGNATURE_NOT_FOUND when the revision exists but the selected format has no signature published. A server concealing an artifact from a client shall answer OBJECT_UNKNOWN for every sub-resource of it, including signatures.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
uuid |
path | Yes | uuid |
|
mediaType |
query | No | string |
Selects which of the artifact revision's Matching against a format's Example after serialization: |
If-None-Match |
header | No | string | Conditional request validator (ETag is the only defined validator. Servers evaluate If-None-Match with the weak comparison function (ETag of the representation selected after negotiation, including content-coding negotiation, and answer 304 when it matches. The corresponding 304 shall carry that representation's validator and shall carry Vary when the 200 would. When present, that ETag is a strong validator. Other validators are not defined for these operations. |
| Status | Description | Schema |
|---|---|---|
200 |
The detached signature for the selected format of the latest revision of the TEA Artifact, as resolved at the time of the request. Identical to |
string |
302 |
The selected representation is available at another location, for example object storage addressed by a pre-signed URL. The client follows the Changing only this response's A client shall not send its TEA access token when following a redirect to a different origin. |
— |
304 |
The representation selected after negotiation has not changed (ETag and Content-Location from the would-be successful response for that representation, and shall repeat Cache-Control and Vary when the corresponding 200 carries them. |
— |
400 |
Request was invalid. For paginated requests, this includes malformed, invalid, expired, or conflicting pageToken values, including conflicts with continuation parameters or path parameters (error: INVALID_PAGE_TOKEN when a TEA error body is present). Other malformed requests may use error: INVALID_REQUEST. |
error-response |
401 |
Authentication required, or the presented access token is expired, revoked, or otherwise invalid. Servers shall include a Servers that require no authentication on any endpoint shall not return this status. On a TEA server where some data is available without authentication, but not all, protected endpoints return |
error-response |
403 |
The client is authenticated, but is not authorized to access this resource or perform this operation. Authorization decisions are server-specific and are not constrained by this specification. Servers may instead conceal the existence of a resource from an authenticated but unauthorized client by answering |
error-response |
404 |
Either the object is unknown to this server, or — where an endpoint documents it — the server does not provide an optional capability or sub-resource for that object. The cases are told apart by the TEA error body, never by the status alone:
Concealment applies only after authentication. A request to a protected object with no valid access token shall receive |
error-response |
406 |
The artifact revision exists, but has no format matching the requested
|
error-response |
| Status | Header | Type | Description |
|---|---|---|---|
200 |
Content-Disposition |
string | Suggested filename for the signature, as an attachment disposition per |
200 |
Content-Encoding |
string | HTTP content codings applied to the selected representation, listed in the order applied (.gz file, is not HTTP content coding and shall not be declared here. |
200 |
ETag |
string | The server shall provide a strong entity tag for the selected HTTP representation. Representations with different bytes shall have different strong entity tags, including representations that differ because of HTTP content coding. Artifact revision immutability does not require all HTTP representations of that revision to share an entity tag. Content that is re-signed is published as a new revision. On-the-fly compression follows artifact-etag. |
200 |
Cache-Control |
string |
The latest revision is a moving target: which revision it resolves to changes when a new revision is published. Servers shall not mark it immutable and shall require revalidation, so that a cache reuses a stored representation only after confirming, through that representation's As with versioned downloads, responses containing access-controlled content shall use |
200 |
Content-Location |
string | Absolute URL of the versioned signature download for the revision and format this response was resolved to, per mediaType query parameter naming the selected content format. The URL identifies the revision and format. HTTP content coding can still be negotiated on a follow-up GET.Format: uri. |
200 |
Vary |
string |
If changing or removing the If changing or removing the |
200 |
Repr-Digest |
string | When provided, Repr-Digest shall contain a digest of the complete selected HTTP representation data, including any applied content coding and excluding transfer coding, as defined in |
302 |
Location |
string | Location the selected representation can be retrieved from. Format: uri. |
304 |
ETag |
string | Same ETag the server would have sent on 200 for this operation. |
304 |
Cache-Control |
string | Same Cache-Control the server would have sent on 200 for this operation. |
304 |
Content-Location |
string | Same Content-Location the server would have sent on 200 for this operation.Format: uri. |
304 |
Vary |
string | Same Vary the server would have sent on 200 for this operation, when used. |
401 |
WWW-Authenticate |
string | Bearer challenge, as defined in |
GET/artifact/{uuid}/{artifactVersion}
Get metadata for a specific revision of a specific TEA Artifact
| Status | Description | Schema |
|---|---|---|
200 |
Requested TEA Artifact metadata found and returned | artifact |
400 |
Request was invalid. For paginated requests, this includes malformed, invalid, expired, or conflicting pageToken values, including conflicts with continuation parameters or path parameters (error: INVALID_PAGE_TOKEN when a TEA error body is present). Other malformed requests may use error: INVALID_REQUEST. |
error-response |
401 |
Authentication required, or the presented access token is expired, revoked, or otherwise invalid. Servers shall include a Servers that require no authentication on any endpoint shall not return this status. On a TEA server where some data is available without authentication, but not all, protected endpoints return |
error-response |
403 |
The client is authenticated, but is not authorized to access this resource or perform this operation. Authorization decisions are server-specific and are not constrained by this specification. Servers may instead conceal the existence of a resource from an authenticated but unauthorized client by answering |
error-response |
404 |
Either the object is unknown to this server, or — where an endpoint documents it — the server does not provide an optional capability or sub-resource for that object. The cases are told apart by the TEA error body, never by the status alone:
Concealment applies only after authentication. A request to a protected object with no valid access token shall receive |
error-response |
| Status | Header | Type | Description |
|---|---|---|---|
401 |
WWW-Authenticate |
string | Bearer challenge, as defined in |
GET/artifact/{uuid}/{artifactVersion}/download
Download the content of a specific revision of a specific TEA Artifact.
This endpoint returns the bytes of one format of the artifact revision. It is how a TEA server hosts artifact content itself: a format that has no external url is retrieved from here, selected by its mediaType. A format that has a url is retrieved from that external location instead, and this endpoint is not required to serve it.
A TEA access token is sent only to the TEA server's own API base URL. External url targets are retrieved without it. They are openly accessible or require credentials the client arranges separately. Expiring storage links should not be published in url; the server answers from this endpoint, including with 302.
When serving the content itself (200), servers shall return a strong ETag for the HTTP representation selected after negotiation, including content coding, and shall honor If-None-Match with 304. ETag is the only conditional validator for these downloads. Servers that support HEAD for this operation shall return the same headers as GET without a response body. 302 redirects are outside conditional semantics: If-None-Match applies only to the TEA-hosted download response, not to following an external Location.
How long a cache may retain the response depends on whether the content is publicly accessible: see artifact-cache-control-immutable. Immutability does not imply that shared caches may store access-controlled responses. Successful responses include Content-Location as an absolute URL of this versioned download including the mediaType query parameter. That URL identifies the revision and format; HTTP content coding can still be negotiated.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
uuid |
path | Yes | uuid |
|
artifactVersion |
path | Yes | integer | Version of TEA Artifact |
mediaType |
query | No | string |
Selects which of the artifact revision's Matching against a format's Example after serialization: |
If-None-Match |
header | No | string | Conditional request validator (ETag is the only defined validator. Servers evaluate If-None-Match with the weak comparison function (ETag of the representation selected after negotiation, including content-coding negotiation, and answer 304 when it matches. The corresponding 304 shall carry that representation's validator and shall carry Vary when the 200 would. When present, that ETag is a strong validator. Other validators are not defined for these operations. |
| Status | Description | Schema |
|---|---|---|
200 |
The content of the requested TEA Artifact format. The wire |
string |
302 |
The selected representation is available at another location, for example object storage addressed by a pre-signed URL. The client follows the Changing only this response's A client shall not send its TEA access token when following a redirect to a different origin. |
— |
304 |
The representation selected after negotiation has not changed (ETag and Content-Location from the would-be successful response for that representation, and shall repeat Cache-Control and Vary when the corresponding 200 carries them. |
— |
400 |
Request was invalid. For paginated requests, this includes malformed, invalid, expired, or conflicting pageToken values, including conflicts with continuation parameters or path parameters (error: INVALID_PAGE_TOKEN when a TEA error body is present). Other malformed requests may use error: INVALID_REQUEST. |
error-response |
401 |
Authentication required, or the presented access token is expired, revoked, or otherwise invalid. Servers shall include a Servers that require no authentication on any endpoint shall not return this status. On a TEA server where some data is available without authentication, but not all, protected endpoints return |
error-response |
403 |
The client is authenticated, but is not authorized to access this resource or perform this operation. Authorization decisions are server-specific and are not constrained by this specification. Servers may instead conceal the existence of a resource from an authenticated but unauthorized client by answering |
error-response |
404 |
Either the object is unknown to this server, or — where an endpoint documents it — the server does not provide an optional capability or sub-resource for that object. The cases are told apart by the TEA error body, never by the status alone:
Concealment applies only after authentication. A request to a protected object with no valid access token shall receive |
error-response |
406 |
The artifact revision exists, but has no format matching the requested
|
error-response |
| Status | Header | Type | Description |
|---|---|---|---|
200 |
Content-Disposition |
string | Suggested filename for the artifact content, as an attachment disposition per |
200 |
Content-Encoding |
string | HTTP content codings applied to the selected representation, listed in the order applied (.gz file, is not HTTP content coding and shall not be declared here. |
200 |
ETag |
string |
The server shall provide a strong entity tag for the selected HTTP representation. Representations with different bytes shall have different strong entity tags, including representations that differ because of HTTP content coding. Artifact revision immutability does not require all HTTP representations of that revision to share an entity tag. Intermediaries that compress on the fly often weaken the entity tag, which does not meet this requirement. Servers that offer content coding can serve precompressed variants, or assign their own strong entity tag to each coded representation. |
200 |
Cache-Control |
string |
Cache policy for a specific artifact or signature revision. Artifact and signature bytes remain unchanged after HTTP decoding. A server may use Responses containing access-controlled content shall use |
200 |
Content-Location |
string | Absolute URL of the versioned content download for the revision and format this response was resolved to, per mediaType query parameter naming the selected format. The URL identifies the revision and format. HTTP content coding can still be negotiated on a follow-up GET. A client that needs a stable reference to that revision and format uses this URL rather than the latest URL.Format: uri. |
200 |
Vary |
string |
If changing or removing the If changing or removing the |
200 |
Repr-Digest |
string | When provided, Repr-Digest shall contain a digest of the complete selected HTTP representation data, including any applied content coding and excluding transfer coding, as defined in |
302 |
Location |
string | Location the selected representation can be retrieved from. Format: uri. |
304 |
ETag |
string | Same ETag the server would have sent on 200 for this operation. |
304 |
Cache-Control |
string | Same Cache-Control the server would have sent on 200 for this operation. |
304 |
Content-Location |
string | Same Content-Location the server would have sent on 200 for this operation.Format: uri. |
304 |
Vary |
string | Same Vary the server would have sent on 200 for this operation, when used. |
401 |
WWW-Authenticate |
string | Bearer challenge, as defined in |
GET/artifact/{uuid}/{artifactVersion}/signature/download
Download the detached signature for one format of a specific revision of a specific TEA Artifact.
This is the counterpart of the artifact content endpoint, for TEA servers that host signatures themselves: a format that has no external signatureUrl is retrieved from here, selected by its mediaType. A format that has a signatureUrl is retrieved from that external location instead, and this endpoint is not required to serve it.
Signatures are per format: each format of a revision is a distinct sequence of bytes and therefore has its own signature. The mediaType parameter selects which format's signature is returned, not the format of the signature itself.
This specification makes no assumption about the signature technology in use, and does not model the signing algorithm, key, or certificate chain; the response is the signature as published. A client that cannot determine how to verify what it receives should treat the signature as unusable rather than as invalid.
404 distinguishes the cases by TEA error body: OBJECT_UNKNOWN when the artifact revision is unknown (or concealed), and SIGNATURE_NOT_FOUND when the revision exists but the selected format has no signature published. A server concealing an artifact from a client shall answer OBJECT_UNKNOWN for every sub-resource of it, including signatures.
When serving the signature itself (200), servers shall return a strong ETag for the HTTP representation selected after negotiation, including content coding, and shall honor If-None-Match with 304. ETag is the only conditional validator for these downloads. Servers that support HEAD for this operation shall return the same headers as GET without a response body. 302 redirects are outside conditional semantics: If-None-Match applies only to the TEA-hosted download response, not to following an external Location. Successful responses include Content-Location as an absolute URL of this versioned signature download including the mediaType query parameter. That URL identifies the revision and format; HTTP content coding can still be negotiated.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
uuid |
path | Yes | uuid |
|
artifactVersion |
path | Yes | integer | Version of TEA Artifact |
mediaType |
query | No | string |
Selects which of the artifact revision's Matching against a format's Example after serialization: |
If-None-Match |
header | No | string | Conditional request validator (ETag is the only defined validator. Servers evaluate If-None-Match with the weak comparison function (ETag of the representation selected after negotiation, including content-coding negotiation, and answer 304 when it matches. The corresponding 304 shall carry that representation's validator and shall carry Vary when the 200 would. When present, that ETag is a strong validator. Other validators are not defined for these operations. |
| Status | Description | Schema |
|---|---|---|
200 |
The detached signature for the selected format of the TEA Artifact revision. The wire |
string |
302 |
The selected representation is available at another location, for example object storage addressed by a pre-signed URL. The client follows the Changing only this response's A client shall not send its TEA access token when following a redirect to a different origin. |
— |
304 |
The representation selected after negotiation has not changed (ETag and Content-Location from the would-be successful response for that representation, and shall repeat Cache-Control and Vary when the corresponding 200 carries them. |
— |
400 |
Request was invalid. For paginated requests, this includes malformed, invalid, expired, or conflicting pageToken values, including conflicts with continuation parameters or path parameters (error: INVALID_PAGE_TOKEN when a TEA error body is present). Other malformed requests may use error: INVALID_REQUEST. |
error-response |
401 |
Authentication required, or the presented access token is expired, revoked, or otherwise invalid. Servers shall include a Servers that require no authentication on any endpoint shall not return this status. On a TEA server where some data is available without authentication, but not all, protected endpoints return |
error-response |
403 |
The client is authenticated, but is not authorized to access this resource or perform this operation. Authorization decisions are server-specific and are not constrained by this specification. Servers may instead conceal the existence of a resource from an authenticated but unauthorized client by answering |
error-response |
404 |
Either the object is unknown to this server, or — where an endpoint documents it — the server does not provide an optional capability or sub-resource for that object. The cases are told apart by the TEA error body, never by the status alone:
Concealment applies only after authentication. A request to a protected object with no valid access token shall receive |
error-response |
406 |
The artifact revision exists, but has no format matching the requested
|
error-response |
| Status | Header | Type | Description |
|---|---|---|---|
200 |
Content-Disposition |
string | Suggested filename for the signature, as an attachment disposition per |
200 |
Content-Encoding |
string | HTTP content codings applied to the selected representation, listed in the order applied (.gz file, is not HTTP content coding and shall not be declared here. |
200 |
ETag |
string | The server shall provide a strong entity tag for the selected HTTP representation. Representations with different bytes shall have different strong entity tags, including representations that differ because of HTTP content coding. Artifact revision immutability does not require all HTTP representations of that revision to share an entity tag. Content that is re-signed is published as a new revision. On-the-fly compression follows artifact-etag. |
200 |
Cache-Control |
string |
Cache policy for a specific artifact or signature revision. Artifact and signature bytes remain unchanged after HTTP decoding. A server may use Responses containing access-controlled content shall use |
200 |
Content-Location |
string | Absolute URL of the versioned signature download for the revision and format this response was resolved to, per mediaType query parameter naming the selected content format. The URL identifies the revision and format. HTTP content coding can still be negotiated on a follow-up GET.Format: uri. |
200 |
Vary |
string |
If changing or removing the If changing or removing the |
200 |
Repr-Digest |
string | When provided, Repr-Digest shall contain a digest of the complete selected HTTP representation data, including any applied content coding and excluding transfer coding, as defined in |
302 |
Location |
string | Location the selected representation can be retrieved from. Format: uri. |
304 |
ETag |
string | Same ETag the server would have sent on 200 for this operation. |
304 |
Cache-Control |
string | Same Cache-Control the server would have sent on 200 for this operation. |
304 |
Content-Location |
string | Same Content-Location the server would have sent on 200 for this operation.Format: uri. |
304 |
Vary |
string | Same Vary the server would have sent on 200 for this operation, when used. |
401 |
WWW-Authenticate |
string | Bearer challenge, as defined in |
GET/product/{uuid}/cle
Get the
| Status | Description | Schema |
|---|---|---|
200 |
cle |
|
400 |
Request was invalid. For paginated requests, this includes malformed, invalid, expired, or conflicting pageToken values, including conflicts with continuation parameters or path parameters (error: INVALID_PAGE_TOKEN when a TEA error body is present). Other malformed requests may use error: INVALID_REQUEST. |
error-response |
401 |
Authentication required, or the presented access token is expired, revoked, or otherwise invalid. Servers shall include a Servers that require no authentication on any endpoint shall not return this status. On a TEA server where some data is available without authentication, but not all, protected endpoints return |
error-response |
403 |
The client is authenticated, but is not authorized to access this resource or perform this operation. Authorization decisions are server-specific and are not constrained by this specification. Servers may instead conceal the existence of a resource from an authenticated but unauthorized client by answering |
error-response |
404 |
Either the object is unknown to this server, or — where an endpoint documents it — the server does not provide an optional capability or sub-resource for that object. The cases are told apart by the TEA error body, never by the status alone:
Concealment applies only after authentication. A request to a protected object with no valid access token shall receive |
error-response |
| Status | Header | Type | Description |
|---|---|---|---|
401 |
WWW-Authenticate |
string | Bearer challenge, as defined in |
GET/productRelease/{uuid}/cle
Get the
| Status | Description | Schema |
|---|---|---|
200 |
cle |
|
400 |
Request was invalid. For paginated requests, this includes malformed, invalid, expired, or conflicting pageToken values, including conflicts with continuation parameters or path parameters (error: INVALID_PAGE_TOKEN when a TEA error body is present). Other malformed requests may use error: INVALID_REQUEST. |
error-response |
401 |
Authentication required, or the presented access token is expired, revoked, or otherwise invalid. Servers shall include a Servers that require no authentication on any endpoint shall not return this status. On a TEA server where some data is available without authentication, but not all, protected endpoints return |
error-response |
403 |
The client is authenticated, but is not authorized to access this resource or perform this operation. Authorization decisions are server-specific and are not constrained by this specification. Servers may instead conceal the existence of a resource from an authenticated but unauthorized client by answering |
error-response |
404 |
Either the object is unknown to this server, or — where an endpoint documents it — the server does not provide an optional capability or sub-resource for that object. The cases are told apart by the TEA error body, never by the status alone:
Concealment applies only after authentication. A request to a protected object with no valid access token shall receive |
error-response |
| Status | Header | Type | Description |
|---|---|---|---|
401 |
WWW-Authenticate |
string | Bearer challenge, as defined in |
GET/component/{uuid}/cle
Get the
| Status | Description | Schema |
|---|---|---|
200 |
cle |
|
400 |
Request was invalid. For paginated requests, this includes malformed, invalid, expired, or conflicting pageToken values, including conflicts with continuation parameters or path parameters (error: INVALID_PAGE_TOKEN when a TEA error body is present). Other malformed requests may use error: INVALID_REQUEST. |
error-response |
401 |
Authentication required, or the presented access token is expired, revoked, or otherwise invalid. Servers shall include a Servers that require no authentication on any endpoint shall not return this status. On a TEA server where some data is available without authentication, but not all, protected endpoints return |
error-response |
403 |
The client is authenticated, but is not authorized to access this resource or perform this operation. Authorization decisions are server-specific and are not constrained by this specification. Servers may instead conceal the existence of a resource from an authenticated but unauthorized client by answering |
error-response |
404 |
Either the object is unknown to this server, or — where an endpoint documents it — the server does not provide an optional capability or sub-resource for that object. The cases are told apart by the TEA error body, never by the status alone:
Concealment applies only after authentication. A request to a protected object with no valid access token shall receive |
error-response |
| Status | Header | Type | Description |
|---|---|---|---|
401 |
WWW-Authenticate |
string | Bearer challenge, as defined in |
GET/componentRelease/{uuid}/cle
Get the
| Status | Description | Schema |
|---|---|---|
200 |
cle |
|
400 |
Request was invalid. For paginated requests, this includes malformed, invalid, expired, or conflicting pageToken values, including conflicts with continuation parameters or path parameters (error: INVALID_PAGE_TOKEN when a TEA error body is present). Other malformed requests may use error: INVALID_REQUEST. |
error-response |
401 |
Authentication required, or the presented access token is expired, revoked, or otherwise invalid. Servers shall include a Servers that require no authentication on any endpoint shall not return this status. On a TEA server where some data is available without authentication, but not all, protected endpoints return |
error-response |
403 |
The client is authenticated, but is not authorized to access this resource or perform this operation. Authorization decisions are server-specific and are not constrained by this specification. Servers may instead conceal the existence of a resource from an authenticated but unauthorized client by answering |
error-response |
404 |
Either the object is unknown to this server, or — where an endpoint documents it — the server does not provide an optional capability or sub-resource for that object. The cases are told apart by the TEA error body, never by the status alone:
Concealment applies only after authentication. A request to a protected object with no valid access token shall receive |
error-response |
| Status | Header | Type | Description |
|---|---|---|---|
401 |
WWW-Authenticate |
string | Bearer challenge, as defined in |
POST/token
Exchange credentials for a TEA access token.
A TEA server that requires authentication on any of its endpoints shall implement this endpoint, and shall support the client_credentials grant type with HTTP Basic client authentication (
Clients do not probe this endpoint to discover whether authentication is required: they issue the resource request, and a 401 response carrying a WWW-Authenticate: Bearer challenge is the signal to obtain a token here. A 404 from this endpoint, with or without a TEA error body, means only that it is not implemented. A server that mounts the path without implementing the exchange should answer with the shared object-not-found response and error: NOT_IMPLEMENTED.
Servers may support additional grant types for federated identity, for example SAML 2.0 assertions (
urn:ietf:params:oauth:grant-type:token-exchange) is outside the scope of the TEA 1.0 interoperable authentication profile. TEA 1.0 does not specify the request or response contract for this grant. Implementations may support it as an extension by separate agreement, but clients shall not assume its availability based solely on TEA 1.0 conformance. Such extensions do not remove the requirement for servers requiring authentication to support the client_credentials baseline.
The access token is opaque to the client: clients shall not inspect, parse, or depend on its contents.
The empty security requirement on this operation does not authorize anonymous client_credentials issuance. It only allows the alternate client-authentication methods described above (for example, mutual TLS, client_credentials grant with HTTP Basic, unauthenticated requests shall not be accepted: servers shall respond with 401, error: invalid_client, and a WWW-Authenticate: Basic challenge (see 401-token-error;
Security: basicAuth or none (anonymous access)
Request body:
application/x-www-form-urlencoded—token-request (required)
| Status | Description | Schema |
|---|---|---|
200 |
Credentials accepted, access token issued | token-response |
400 |
The token request was malformed, used an unsupported grant type, or the credentials presented were not valid for the requested grant. | token-error-response |
401 |
Client authentication failed (error: invalid_client). Returned instead of 400 when the client attempted to authenticate using the Authorization header (Authorization: Basic credential. Servers shall include WWW-Authenticate: Basic. |
token-error-response |
404 |
Either the object is unknown to this server, or — where an endpoint documents it — the server does not provide an optional capability or sub-resource for that object. The cases are told apart by the TEA error body, never by the status alone:
Concealment applies only after authentication. A request to a protected object with no valid access token shall receive |
error-response |
| Status | Header | Type | Description |
|---|---|---|---|
200 |
Cache-Control |
string | Servers shall set no-store on token responses ( |
401 |
WWW-Authenticate |
string | Challenge indicating the client authentication methods supported by the token endpoint. |