diff --git a/spec/openapi.yaml b/spec/openapi.yaml index e01f787..575be7f 100644 --- a/spec/openapi.yaml +++ b/spec/openapi.yaml @@ -17,60 +17,46 @@ servers: - url: http://localhost/tea/v1 description: Local development paths: - /product/{uuid}: - get: - description: Returns the corresponding TEA components for a given TEA product UUID. - operationId: getTeaProductByUuid - parameters: - - name: uuid - in: path - required: true - description: UUID of the TEA product in the TEA server - schema: - type: string - format: uuid + /product/search: + post: + description: | + Search for a TEA Product by it's TEI (Transparency Exchange Identifier). + operationId: searchProduct + requestBody: + description: Search criteria for a TEA Product + required: true + content: + application/json: + schema: + type: object + properties: + tei: + $ref: "#/components/schemas/tei" responses: '200': - description: Requested TEA Product found and returned - content: + description: TEA Product found and returned + content: application/json: schema: - $ref: "#/components/schemas/product" + "$ref": "#/components/schemas/product" '400': $ref: "#/components/responses/400-invalid-request" '404': - $ref: "#/components/responses/404-object-by-id-not-found" + description: No TEA Product on this TEA Service with supplied TEI tags: - TEA Product - /products: - get: - description: Returns a list of TEA products. Note that multiple products may - match. - operationId: getTeaProductByIdentifier - parameters: - - $ref: "#/components/parameters/page-offset" - - $ref: "#/components/parameters/page-size" - - $ref: "#/components/parameters/id-type" - - $ref: "#/components/parameters/id-value" - responses: - '200': - $ref: "#/components/responses/paginated-product" - '400': - $ref: "#/components/responses/400-invalid-request" - tags: - - TEA Product - /component/{uuid}: + + /component/{id}: get: - description: Get a TEA Component + description: Get a TEA Component by it's Identifier operationId: getTeaComponentById parameters: - - name: uuid + - name: id in: path required: true - description: UUID of TEA Component in the TEA server + description: Identifier of the TEA Component to request from the TEA Service schema: - type: string - format: uuid + $ref: "#/components/schemas/uuid" responses: '200': description: Requested TEA Component found and returned @@ -84,45 +70,46 @@ paths: $ref: "#/components/responses/404-object-by-id-not-found" tags: - TEA Component - /component/{uuid}/releases: + + /component/{id}/collections: get: - description: Get releases of the component - operationId: getReleasesByComponentId + description: Get a list of TEA Collections for this TEA Component + operationId: getCollectionsForComponent parameters: - - name: uuid + - name: id in: path required: true - description: UUID of TEA Component in the TEA server + description: ID of TEA Component in the TEA Service schema: - type: string - format: uuid + $ref: "#/components/schemas/uuid" responses: '200': - description: Requested Releases of TEA Component found and returned + description: Requested TEA Collection found and returned content: application/json: schema: + # TODO: Paginate this response type: array items: - "$ref": "#/components/schemas/release" + "$ref": "#/components/schemas/collection" '400': $ref: "#/components/responses/400-invalid-request" '404': $ref: "#/components/responses/404-object-by-id-not-found" tags: - - TEA Component - /release/{uuid}/collection/latest: + - TEA Collection + + /component/{id}/collection/latest: get: - description: Get the latest TEA Collection belonging to the TEA Release - operationId: getLatestCollection + description: Get the latest TEA Collection belonging for this TEA Component + operationId: getLatestCollectionForComponent parameters: - - name: uuid + - name: id in: path required: true - description: UUID of TEA Release in the TEA server + description: ID of TEA Component in the TEA Service schema: - type: string - format: uuid + $ref: "#/components/schemas/uuid" responses: '200': description: Requested TEA Collection found and returned @@ -135,46 +122,20 @@ paths: '404': $ref: "#/components/responses/404-object-by-id-not-found" tags: - - TEA Release - /release/{uuid}/collections: - get: - description: Get the TEA Collections belonging to the TEA Release - operationId: getCollectionsByReleaseId + - TEA Collection + + /component/{id}/collection/{version}: + get: + description: Get the specified TEA Collection version belonging for this TEA Component + operationId: getCollectionForComponentByVersion parameters: - - name: uuid + - name: id in: path required: true - description: UUID of TEA Release in the TEA server + description: ID of TEA Component in the TEA Service schema: - type: string - format: uuid - responses: - '200': - description: Requested TEA Collection found and returned - content: - application/json: - schema: - type: array - items: - "$ref": "#/components/schemas/collection" - '400': - $ref: "#/components/responses/400-invalid-request" - '404': - $ref: "#/components/responses/404-object-by-id-not-found" - tags: - - TEA Release - /release/{uuid}/collection/{collectionVersion}: - get: - description: Get a specific Collection (by version) for a TEA Release by its UUID - operationId: getCollection - parameters: - - name: uuid - in: path - required: true - description: UUID of TEA Collection in the TEA server - schema: - "$ref": "#/components/schemas/uuid" - - name: collectionVersion + $ref: "#/components/schemas/uuid" + - name: version in: path required: true description: Version of TEA Collection @@ -192,16 +153,198 @@ paths: '404': $ref: "#/components/responses/404-object-by-id-not-found" tags: - - TEA Release - /artifact/{uuid}: + - TEA Collection + + + # OLD + # /product/{uuid}: + # get: + # description: Returns the corresponding TEA components for a given TEA product UUID. + # operationId: getTeaProductByUuid + # parameters: + # - name: uuid + # in: path + # required: true + # description: UUID of the TEA product in the TEA server + # schema: + # type: string + # format: uuid + # responses: + # '200': + # description: Requested TEA Product found and returned + # content: + # application/json: + # schema: + # $ref: "#/components/schemas/product" + # '400': + # $ref: "#/components/responses/400-invalid-request" + # '404': + # $ref: "#/components/responses/404-object-by-id-not-found" + # tags: + # - TEA Product + + # /product/{uuid}/releases: + # get: + # description: Get a list of Product Releases for this Product + # operationId: getProductReleasesForProduct + # parameters: + # - name: uuid + # in: path + # required: true + # description: UUID of the TEA Product in the TEA server + # schema: + # type: string + # format: uuid + # responses: + # '200': + # $ref: "#/components/responses/paginated-product-release" + # '204': + # description: No Product Releases published for this TEA Product + # tags: + # - TEA Product Release + # /component/{uuid}: + # get: + # description: Get a TEA Component + # operationId: getTeaComponentById + # parameters: + # - name: uuid + # in: path + # required: true + # description: UUID of TEA Component in the TEA server + # schema: + # type: string + # format: uuid + # responses: + # '200': + # description: Requested TEA Component found and returned + # content: + # application/json: + # schema: + # "$ref": "#/components/schemas/component" + # '400': + # $ref: "#/components/responses/400-invalid-request" + # '404': + # $ref: "#/components/responses/404-object-by-id-not-found" + # tags: + # - TEA Component + # /component/{uuid}/releases: + # get: + # description: Get releases of the component + # operationId: getReleasesByComponentId + # parameters: + # - name: uuid + # in: path + # required: true + # description: UUID of TEA Component in the TEA server + # schema: + # type: string + # format: uuid + # responses: + # '200': + # description: Requested Releases of TEA Component found and returned + # content: + # application/json: + # schema: + # type: array + # items: + # "$ref": "#/components/schemas/release" + # '400': + # $ref: "#/components/responses/400-invalid-request" + # '404': + # $ref: "#/components/responses/404-object-by-id-not-found" + # tags: + # - TEA Component + # /release/{uuid}/collection: + # get: + # description: Get the latest TEA Collection belonging to the TEA Release + # operationId: getLatestCollectionByReleaseId + # parameters: + # - name: uuid + # in: path + # required: true + # description: UUID of TEA Release in the TEA server + # schema: + # type: string + # format: uuid + # responses: + # '200': + # description: Requested TEA Collection found and returned + # content: + # application/json: + # schema: + # "$ref": "#/components/schemas/collection" + # '400': + # $ref: "#/components/responses/400-invalid-request" + # '404': + # $ref: "#/components/responses/404-object-by-id-not-found" + # tags: + # - TEA Release + # /release/{uuid}/collections: + # get: + # description: Get the TEA Collections belonging to the TEA Release + # operationId: getCollectionsByReleaseId + # parameters: + # - name: uuid + # in: path + # required: true + # description: UUID of TEA Release in the TEA server + # schema: + # type: string + # format: uuid + # responses: + # '200': + # description: Requested TEA Collection found and returned + # content: + # application/json: + # schema: + # type: array + # items: + # "$ref": "#/components/schemas/collection" + # '400': + # $ref: "#/components/responses/400-invalid-request" + # '404': + # $ref: "#/components/responses/404-object-by-id-not-found" + # tags: + # - TEA Release + # /release/{uuid}/collection/{version}: + # get: + # description: Get all versions of a TEA Collection by its UUID + # operationId: getTeaCollectionVersionByCollectionIdAndVersion + # parameters: + # - name: uuid + # in: path + # required: true + # description: UUID of TEA Collection in the TEA server + # schema: + # "$ref": "#/components/schemas/uuid" + # - name: version + # in: path + # required: true + # description: Version of TEA Collection + # schema: + # type: integer + # responses: + # '200': + # description: Requested TEA Collection Version found and returned + # content: + # application/json: + # schema: + # "$ref": "#/components/schemas/collection" + # '400': + # $ref: "#/components/responses/400-invalid-request" + # '404': + # $ref: "#/components/responses/404-object-by-id-not-found" + # tags: + # - TEA Release + /artifact/{id}: get: - description: Get metadata for specific TEA artifact + description: Get metadata for specific TEA Artifact operationId: getArtifact parameters: - - name: uuid + - name: id in: path required: true - description: UUID of TEA Artifact in the TEA server + description: ID of TEA Artifact in the TEA Service schema: "$ref": "#/components/schemas/uuid" responses: @@ -224,10 +367,7 @@ components: # date-time: type: string - description: Timestamp format: date-time - pattern: "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$" - example: '2024-03-20T15:30:00Z' identifier: type: object description: An identifier with a specified type @@ -245,9 +385,19 @@ components: - CPE - TEI - PURL + tei: + type: string + description: Transparency Exchange Identifier + pattern: "^urn:tei:(ean|hash|purl|swid|uuid):([a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.+[a-z0-9][a-z0-9-]{0,61}[a-z0-9]):(.*)$" + examples: + - urn:tei:ean:philips-hue.com:8719514329928 + - urn:tei:hash:cyclonedx.org:SHA256:fd44efd601f651c8865acf0dfeacb0df19a2b50ec69ead0262096fd2f67197b9 + - urn:tei:purl:cyclonedx.org:pkg:pypi/cyclonedx-python-lib@8.4.0?extension=whl&qualifier=py3-none-any + - urn:tei:swid:redhat.com: + - urn:tei:uuid:dependencytrack.org:e59390a2-a0b2-4a62-bf0a-459599a8c92f uuid: type: string - description: A UUID + description: A UUIDv4 string format: uuid pattern: "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$" @@ -258,12 +408,31 @@ components: type: object description: A TEA product properties: - uuid: - description: A unique identifier for the TEA product - "$ref": "#/components/schemas/uuid" + # uuid: + # description: A unique identifier for the TEA product + # "$ref": "#/components/schemas/uuid" name: type: string description: Product name + version: + type: string + description: | + Product version, if applicable. + + **Note:** `TEI` + `Product Version` must be unique within a TEA Service. + createdAt: + description: "When this Product was published to this TEA Service" + $ref: "#/components/schemas/date-time" + updatedAt: + description: "When this Product was updated in this TEA Service" + $ref: "#/components/schemas/date-time" + preRelease: + type: boolean + default: false + description: | + A flag indicating if this is a pre-release (e.g. a beta). + + This flag can be updated from `true` to `false`. identifiers: type: array description: List of identifiers for the product @@ -278,20 +447,25 @@ components: required: - uuid - name + - createdAt + - preRelease - identifiers - components examples: - uuid: 09e8c73b-ac45-4475-acac-33e6a7314e6d name: Apache Log4j 2 + version: 2.12.0 + createdAt: 2017-07-21T17:32:28.003Z + preRelease: false identifiers: - idType: CPE - idValue: cpe:2.3:a:apache:log4j + idValue: cpe:2.3:a:apache:log4j:2.12.0 - idType: PURL - idValue: pkg:maven/org.apache.logging.log4j/log4j-api + idValue: pkg:maven/org.apache.logging.log4j/log4j-api@2.12.0 - idType: PURL - idValue: pkg:maven/org.apache.logging.log4j/log4j-core + idValue: pkg:maven/org.apache.logging.log4j/log4j-core@2.12.0 - idType: PURL - idValue: pkg:maven/org.apache.logging.log4j/log4j-layout-template-json + idValue: pkg:maven/org.apache.logging.log4j/log4j-layout-template-json@2.12.0 components: - 3910e0fd-aff4-48d6-b75f-8bf6b84687f0 - b844c9bd-55d6-478c-af59-954a932b6ad3 @@ -302,7 +476,16 @@ components: # component: type: object - description: A TEA component + description: | + A TEA Component - which is part of a TEA Product. + + For example, a Philips Hue Starter Pack might be a Product comprised of 3 Components: + 1. Philips Hue Bridge + 2. Philips Hue Button + 3. Philips Hue Bulb + + It is also permissible for a TEA Component to also be a TEA Product by also creating a + separate TEA Product that refers to same TEA Component. properties: uuid: description: A unique identifier for the TEA component @@ -310,89 +493,75 @@ components: name: type: string description: Component name - identifiers: - type: array - description: List of identifiers for the component - items: - "$ref": "#/components/schemas/identifier" + version: + type: string + description: Component version, which might differ from the TEA Product version required: - uuid - name - - identifiers - - versions examples: - uuid: 3910e0fd-aff4-48d6-b75f-8bf6b84687f0 name: Apache Log4j API - identifiers: - - idType: PURL - idValue: pkg:maven/org.apache.logging.log4j/log4j-api + version: 2.12.0 + - uuid: b844c9bd-55d6-478c-af59-954a932b6ad3 name: Apache Log4j Core - identifiers: - - idType: CPE - idValue: cpe:2.3:a:apache:log4j - - idType: PURL - idValue: pkg:maven/org.apache.logging.log4j/log4j-core + version: 2.12.0 # # TEA Release and related objects # - release: - type: object - properties: - uuid: - description: A unique identifier for the TEA Component Release - "$ref": "#/components/schemas/uuid" - version: - description: Version number - type: string - example: 1.2.3 - createdDate: - description: Timestamp when this Release was created in TEA (for sorting purposes) - "$ref": "#/components/schemas/date-time" - releaseDate: - description: Timestamp of the release - "$ref": "#/components/schemas/date-time" - preRelease: - type: boolean - description: | - A flag indicating pre-release (or beta) status. - May be disabled after the creation of the release object, but can't be enabled after creation of an object. - identifiers: - type: array - description: List of identifiers for the component - items: - "$ref": "#/components/schemas/identifier" - # add lifecycle here - required: - - uuid - - version - - createdDate - examples: - # Apache Tomcat 11.0.6 - - uuid: 605d0ecb-1057-40e4-9abf-c400b10f0345 - version: "11.0.6" - createdDate: 2025-04-01T15:43:00Z - releaseDate: 2025-04-01T15:43:00Z - identifiers: - - idType: PURL - idValue: pkg:maven/org.apache.tomcat/tomcat@11.0.6 - # Different release of Apache Tomcat - - uuid: da89e38e-95e7-44ca-aa7d-f3b6b34c7fab - version: "10.1.40" - createdDate: 2025-04-01T18:20:00Z - releaseDate: 2025-04-01T18:20:00Z - identifiers: - - idType: PURL - idValue: pkg:maven/org.apache.tomcat/tomcat@10.1.40 - # A pre-release of Apache Tomcat - - uuid: 95f481df-f760-47f4-b2f2-f8b76d858450 - version: "11.0.0-M26" - createdDate: 2024-09-13T17:49:00Z - preRelease: true - identifiers: - - idType: PURL - idValue: pkg:maven/org.apache.tomcat/tomcat@11.0.0-M26 + # release: + # type: object + # properties: + # uuid: + # description: A unique identifier for the TEA Component Release + # "$ref": "#/components/schemas/uuid" + # version: + # description: Version number + # type: string + # example: 1.2.3 + # releaseDate: + # description: Timestamp of the release (for sorting purposes) + # "$ref": "#/components/schemas/date-time" + # preRelease: + # type: boolean + # description: | + # A flag indicating pre-release (or beta) status. + # May be disabled after the creation of the release object, but can't be enabled after creation of an object. + # identifiers: + # type: array + # description: List of identifiers for the component + # items: + # "$ref": "#/components/schemas/identifier" + # # add lifecycle here + # required: + # - uuid + # - version + # - releaseDate + # examples: + # # Apache Tomcat 11.0.6 + # - uuid: 605d0ecb-1057-40e4-9abf-c400b10f0345 + # version: "11.0.6" + # releaseDate: 2025-04-01T15:43:00Z + # identifiers: + # - idType: PURL + # idValue: pkg:maven/org.apache.tomcat/tomcat@11.0.6 + # # Different release of Apache Tomcat + # - uuid: da89e38e-95e7-44ca-aa7d-f3b6b34c7fab + # version: "10.1.40" + # releaseDate: 2025-04-01T18:20:00Z + # identifiers: + # - idType: PURL + # idValue: pkg:maven/org.apache.tomcat/tomcat@10.1.40 + # # A pre-release of Apache Tomcat + # - uuid: 95f481df-f760-47f4-b2f2-f8b76d858450 + # version: "11.0.0-M26" + # releaseDate: 2024-09-13T17:49:00Z + # preRelease: true + # identifiers: + # - idType: PURL + # idValue: pkg:maven/org.apache.tomcat/tomcat@11.0.0-M26 # # TEA Collection and related objects @@ -401,19 +570,20 @@ components: type: object description: A collection of security-related documents properties: - uuid: + id: description: | - UUID of the TEA Collection object. - Note that this is equal to the UUID of the associated TEA Component Release object. - When updating a collection, only the `version` is changed. + ID of this TEA Collection object. + + **Note:** When updating a TEA Collection, only the `version` is changed, the `id` remains static. "$ref": "#/components/schemas/uuid" version: type: integer description: | TEA Collection version, incremented each time its content changes. - Versions start with 1. - date: - description: The date when the TEA Collection version was created. + + Versioning starts at `1`. + createdAt: + description: The date when this TEA Collection version was created "$ref": "#/components/schemas/date-time" updateReason: description: Reason for the update/release of the TEA Collection object. @@ -425,12 +595,42 @@ components: "$ref": "#/components/schemas/artifact" examples: # Documents in the latest release of Log4j Core - - uuid: 4c72fe22-9d83-4c2f-8eba-d6db484f32c8 + - id: 4c72fe22-9d83-4c2f-8eba-d6db484f32c8 version: 3 - date: 2024-12-13T00:00:00Z + createdAt: 2024-12-13T01:00:00Z + updateReason: + type: VEX_UPDATED + comment: VEX added/update in BOM + artifacts: + - uuid: 1cb47b95-8bf8-3bad-a5a4-0d54d86e10ce + name: Build SBOM + type: BOM + formats: + - mime_type: application/vnd.cyclonedx+xml + description: CycloneDX SBOM (XML) + url: https://repo.maven.apache.org/maven2/org/apache/logging/log4j/log4j-core/2.24.3/log4j-core-2.24.3-cyclonedx.xml + signature_url: https://repo.maven.apache.org/maven2/org/apache/logging/log4j/log4j-core/2.24.3/log4j-core-2.24.3-cyclonedx.xml.asc + checksums: + - algType: MD5 + algValue: 2e1a525afc81b0a8ecff114b8b743de9 + - algType: SHA-1 + algValue: 5a7d4caef63c5c5ccdf07c39337323529eb5a770 + - uuid: dfa35519-9734-4259-bba1-3e825cf4be06 + name: Vulnerability Disclosure Report + type: vulnerability-assertion + formats: + - mime_type: application/vnd.cyclonedx+xml + description: CycloneDX VDR (XML) + url: https://logging.apache.org/cyclonedx/vdr.xml + checksums: + - algType: SHA-256 + algValue: 75b81020b3917cb682b1a7605ade431e062f7a4c01a412f0b87543b6e995ad2a + - id: 356da364-6c0b-4658-94f6-746de5f73260 + version: 2 + createdAt: 2024-12-13T00:00:00Z updateReason: type: ARTIFACT_UPDATED - comment: VDR file updated + comment: VDR added artifacts: - uuid: 1cb47b95-8bf8-3bad-a5a4-0d54d86e10ce name: Build SBOM @@ -455,6 +655,26 @@ components: checksums: - algType: SHA-256 algValue: 75b81020b3917cb682b1a7605ade431e062f7a4c01a412f0b87543b6e995ad2a + - id: a5972b84-22d4-4c87-b9e0-67d68ad0ccc3 + version: 1 + createdAt: 2024-11-13T00:00:00Z + updateReason: + type: INITIAL_RELEASE + comment: First release + artifacts: + - uuid: 1cb47b95-8bf8-3bad-a5a4-0d54d86e10ce + name: Build SBOM + type: BOM + formats: + - mime_type: application/vnd.cyclonedx+xml + description: CycloneDX SBOM (XML) + url: https://repo.maven.apache.org/maven2/org/apache/logging/log4j/log4j-core/2.24.3/log4j-core-2.24.3-cyclonedx.xml + signature_url: https://repo.maven.apache.org/maven2/org/apache/logging/log4j/log4j-core/2.24.3/log4j-core-2.24.3-cyclonedx.xml.asc + checksums: + - algType: MD5 + algValue: 2e1a525afc81b0a8ecff114b8b743de9 + - algType: SHA-1 + algValue: 5a7d4caef63c5c5ccdf07c39337323529eb5a770 collection-update-reason: type: object @@ -483,8 +703,8 @@ components: type: object description: A security-related document properties: - uuid: - description: UUID of the TEA Artifact object. + id: + description: ID of the TEA Artifact object "$ref": "#/components/schemas/uuid" name: type: string @@ -605,19 +825,45 @@ components: description: Object requested by identifier not found content: application/json: {} - paginated-product: - description: A paginated response containing TEA Products - content: - application/json: - schema: - allOf: - - $ref: "#/components/schemas/pagination-details" - - type: object - properties: - results: - type: array - items: - "$ref": "#/components/schemas/product" + # paginated-product: + # description: A paginated response containing TEA Products + # content: + # application/json: + # schema: + # allOf: + # - $ref: "#/components/schemas/pagination-details" + # - type: object + # properties: + # results: + # type: array + # items: + # "$ref": "#/components/schemas/product" + # paginated-product-release: + # description: A pagninated response of TEA Product Releases + # content: + # application/json: + # schema: + # allOf: + # - $ref: "#/components/schemas/pagination-details" + # - type: object + # properties: + # results: + # type: array + # items: + # "$ref": "#/components/schemas/productRelease" + # paginated-component: + # description: A pagninated response of TEA Components + # content: + # application/json: + # schema: + # allOf: + # - $ref: "#/components/schemas/pagination-details" + # - type: object + # properties: + # results: + # type: array + # items: + # "$ref": "#/components/schemas/component" parameters: # Pagination page-offset: @@ -638,44 +884,6 @@ components: type: integer format: int64 default: 100 - # - # Query by identifier - # - # Since OpenAPI 3.0 it is possible to use RFC 6570-based serialization for JSON parameters of type array or object: - # https://swagger.io/docs/specification/v3_0/serialization/ - # - # Unfortunately many tools don't support it, for example, - # the `openapi-generator` for Java does not handle this correctly. - # https://github.com/OpenAPITools/openapi-generator/issues/4808 - # - # This can be uncommented, when RFC 6570-base serialization reaches a wider adoption: - # - # identifier-param: - # name: identifierParam - # description: If present, only the objects with the given identifier will be returned. - # in: query - # schema: - # $ref: "#/components/schemas/identifier" - # style: form - # explode: true - # - # In the meantime we explode the object manually: - id-type: - # To allow RFC 6570 in the future without breaking changes to the HTTP API, - # the name of this parameter should be identical to the equivalent property in /components/schemas/identifier - name: idType - description: Type of identifier specified in the `idValue` parameter - in: query - schema: - $ref: "#/components/schemas/identifier-type" - id-value: - # To allow RFC 6570 in the future without breaking changes to the HTTP API, - # the name of this parameter should be identical to the equivalent property in /components/schemas/identifier - name: idValue - description: If present, only the objects with the given identifier value will be returned. - in: query - schema: - type: string securitySchemes: bearerAuth: @@ -690,7 +898,7 @@ security: tags: - name: TEA Product - name: TEA Component - - name: TEA Release + - name: TEA Collection - name: TEA Artifact externalDocs: description: Transparency Exchange API specification