Application Research ORD Documents API

Operations for ORD Document management

Operations 5

GET /documents Application Research List all ORD Documents #
POST /documents Application Research Create a new ORD Document #
GET /documents/{documentId} Application Research Get an ORD Document by ID #
PUT /documents/{documentId} Application Research Update an ORD Document #
DELETE /documents/{documentId} Application Research Delete an ORD Document #

Documentation

Specifications

Code Examples

Schemas & Data

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/application-research-ord-documents-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

application-research-ord-documents-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Application Research Open Resource Discovery (ORD) ORD Documents API
  version: 1.12.0
  description: "The Open Resource Discovery (ORD) API provides access to ORD Documents which serve as wrappers \nfor ORD resources and taxonomy. This API enables discovery and management of API resources, \nevent resources, data products, entity types, capabilities, and integration dependencies.\n\nORD enables machine-readable self-description of systems and their capabilities, supporting\nautomated discovery, integration, and governance of enterprise APIs and services.\n"
  contact:
    name: ORD Specification Team
    url: https://open-resource-discovery.org
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
servers:
- url: https://api.example.com/ord/v1
  description: Production server
- url: https://sandbox.example.com/ord/v1
  description: Sandbox server
security:
- oauth2:
  - ord:read
- bearerAuth: []
tags:
- name: ORD Documents
  description: Operations for ORD Document management
paths:
  /documents:
    get:
      tags:
      - ORD Documents
      summary: Application Research List all ORD Documents
      description: Retrieves a list of all available ORD Documents
      operationId: listOrdDocuments
      parameters:
      - $ref: '#/components/parameters/LimitParam'
      - $ref: '#/components/parameters/OffsetParam'
      - $ref: '#/components/parameters/PerspectiveParam'
      responses:
        '200':
          description: Successfully retrieved list of ORD Documents
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrdDocumentList'
              examples:
                documentList:
                  $ref: '#/components/examples/OrdDocumentListExample'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/InternalServerError'
    post:
      tags:
      - ORD Documents
      summary: Application Research Create a new ORD Document
      description: Creates a new ORD Document with the provided resources and taxonomy
      operationId: createOrdDocument
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrdDocument'
            examples:
              iotPlatform:
                $ref: '#/components/examples/IoTPlatformOrdDocumentExample'
              successFactors:
                $ref: '#/components/examples/SuccessFactorsOrdDocumentExample'
      responses:
        '201':
          description: Successfully created ORD Document
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrdDocument'
              examples:
                created:
                  $ref: '#/components/examples/IoTPlatformOrdDocumentExample'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '409':
          $ref: '#/components/responses/Conflict'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /documents/{documentId}:
    get:
      tags:
      - ORD Documents
      summary: Application Research Get an ORD Document by ID
      description: Retrieves a specific ORD Document by its identifier
      operationId: getOrdDocument
      parameters:
      - $ref: '#/components/parameters/DocumentIdParam'
      responses:
        '200':
          description: Successfully retrieved ORD Document
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrdDocument'
              examples:
                iotPlatform:
                  $ref: '#/components/examples/IoTPlatformOrdDocumentExample'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
    put:
      tags:
      - ORD Documents
      summary: Application Research Update an ORD Document
      description: Updates an existing ORD Document
      operationId: updateOrdDocument
      parameters:
      - $ref: '#/components/parameters/DocumentIdParam'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrdDocument'
            examples:
              update:
                $ref: '#/components/examples/IoTPlatformOrdDocumentExample'
      responses:
        '200':
          description: Successfully updated ORD Document
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrdDocument'
              examples:
                updated:
                  $ref: '#/components/examples/IoTPlatformOrdDocumentExample'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
    delete:
      tags:
      - ORD Documents
      summary: Application Research Delete an ORD Document
      description: Deletes an ORD Document
      operationId: deleteOrdDocument
      parameters:
      - $ref: '#/components/parameters/DocumentIdParam'
      responses:
        '204':
          description: Successfully deleted ORD Document
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  schemas:
    ReleaseStatus:
      type: string
      enum:
      - beta
      - active
      - deprecated
      - sunset
    ConsumptionBundle:
      type: object
      title: Consumption Bundle
      description: Groups APIs and Events that can be consumed with the same credentials
      required:
      - ordId
      - title
      properties:
        ordId:
          type: string
          pattern: ^([a-z0-9]+(?:[.][a-z0-9]+)*):(consumptionBundle):([a-zA-Z0-9._\-]+):(v0|v[1-9][0-9]*)$
          maxLength: 255
        localId:
          type: string
          maxLength: 255
        correlationIds:
          type: array
          items:
            $ref: '#/components/schemas/CorrelationId'
        title:
          type: string
          minLength: 1
          maxLength: 255
        shortDescription:
          type: string
          minLength: 1
          maxLength: 255
        description:
          type: string
          minLength: 1
        version:
          $ref: '#/components/schemas/SemVer'
        lastUpdate:
          type: string
          format: date-time
        visibility:
          $ref: '#/components/schemas/Visibility'
        credentialExchangeStrategies:
          type: array
          items:
            $ref: '#/components/schemas/CredentialExchangeStrategy'
        links:
          type: array
          items:
            $ref: '#/components/schemas/Link'
        tags:
          type: array
          items:
            $ref: '#/components/schemas/Tag'
        labels:
          $ref: '#/components/schemas/Labels'
        documentationLabels:
          $ref: '#/components/schemas/DocumentationLabels'
    GroupType:
      type: object
      title: Group Type
      description: Defines the semantics of group assignments
      required:
      - groupTypeId
      - title
      properties:
        groupTypeId:
          type: string
          pattern: ^([a-z0-9-]+(?:[.][a-z0-9-]+)*):([a-zA-Z0-9._\-\/]+)$
        title:
          type: string
          minLength: 1
          maxLength: 255
        description:
          type: string
          minLength: 1
    PolicyLevel:
      type: string
      description: Policy level for compliance
      oneOf:
      - type: string
        pattern: ^([a-z0-9-]+(?:[.][a-z0-9-]+)*):([a-zA-Z0-9._\-]+):(v0|v[1-9][0-9]*)$
      - type: string
        enum:
        - none
        - custom
    EventResourceIntegrationAspect:
      type: object
      title: Event Resource Integration Aspect
      required:
      - ordId
      properties:
        ordId:
          type: string
          pattern: ^([a-z0-9]+(?:[.][a-z0-9]+)*):(eventResource):([a-zA-Z0-9._\-]+):(v0|v[1-9][0-9]*)$
          maxLength: 255
        minVersion:
          $ref: '#/components/schemas/SemVer'
        subset:
          type: array
          items:
            $ref: '#/components/schemas/EventResourceIntegrationAspectSubset'
        systemTypeRestriction:
          type: array
          minItems: 1
          items:
            type: string
            pattern: ^[a-z0-9]+(?:[.][a-z0-9]+){1}$
    SystemType:
      type: object
      title: System Type
      description: The abstract type of an application or service
      properties:
        systemNamespace:
          type: string
          pattern: ^[a-z0-9]+(?:[.][a-z0-9]+){1}$
          maxLength: 32
        correlationIds:
          type: array
          items:
            $ref: '#/components/schemas/CorrelationId'
        labels:
          $ref: '#/components/schemas/Labels'
        documentationLabels:
          $ref: '#/components/schemas/DocumentationLabels'
        tags:
          type: array
          items:
            $ref: '#/components/schemas/Tag'
    EntityTypeOrdIdTarget:
      type: object
      title: Entity Type Target (ORD ID)
      required:
      - ordId
      properties:
        ordId:
          type: string
          pattern: ^([a-z0-9]+(?:[.][a-z0-9]+)*):(entityType):([a-zA-Z0-9._\-]+):(v0|v[1-9][0-9]*)$
          maxLength: 255
    ChangelogEntry:
      type: object
      title: Changelog Entry
      required:
      - version
      - releaseStatus
      - date
      properties:
        version:
          type: string
          minLength: 1
        releaseStatus:
          $ref: '#/components/schemas/ReleaseStatus'
        date:
          type: string
          format: date
        description:
          type: string
          minLength: 1
        url:
          type: string
          format: uri
    EntityTypeCorrelationIdTarget:
      type: object
      title: Entity Type Target (Correlation ID)
      required:
      - correlationId
      properties:
        correlationId:
          $ref: '#/components/schemas/CorrelationId'
    Visibility:
      type: string
      enum:
      - public
      - internal
      - private
    SpecificationId:
      type: string
      pattern: ^([a-z0-9]+(?:[.][a-z0-9]+)*):([a-zA-Z0-9._\-]+):(v0|v[1-9][0-9]*)$
      maxLength: 255
      description: Valid Specification ID
    Link:
      type: object
      title: Link
      required:
      - title
      - url
      properties:
        title:
          type: string
          minLength: 1
        url:
          type: string
          format: uri
        description:
          type: string
          minLength: 1
    SystemInstance:
      type: object
      title: System Instance
      description: A concrete, running instance of a system type
      properties:
        baseUrl:
          type: string
          format: uri-reference
          pattern: ^http[s]?:\/\/[^:\/\s]+\.[^:\/\s\.]+(:\d+)?(\/[a-zA-Z0-9-\._~]+)*$
        localId:
          type: string
          maxLength: 255
        correlationIds:
          type: array
          items:
            $ref: '#/components/schemas/CorrelationId'
        labels:
          $ref: '#/components/schemas/Labels'
        documentationLabels:
          $ref: '#/components/schemas/DocumentationLabels'
        tags:
          type: array
          items:
            $ref: '#/components/schemas/Tag'
    Tag:
      type: string
      pattern: ^[a-zA-Z0-9-_.\/ ]*$
      minLength: 1
    EventResourceDefinition:
      type: object
      title: Event Resource Definition
      description: Link and categorization of a machine-readable event definition
      required:
      - type
      - mediaType
      - url
      properties:
        type:
          type: string
          enum:
          - asyncapi-v2
          - sap-csn-interop-effective-v1
          - custom
        customType:
          $ref: '#/components/schemas/SpecificationId'
        mediaType:
          type: string
          enum:
          - application/json
          - application/xml
          - text/yaml
          - text/plain
          - application/octet-stream
        url:
          type: string
          format: uri-reference
        accessStrategies:
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/AccessStrategy'
    Tombstone:
      type: object
      title: Tombstone
      description: Indicates that a previously published ORD resource has been removed
      required:
      - removalDate
      properties:
        ordId:
          type: string
          pattern: ^([a-z0-9]+(?:[.][a-z0-9]+)*):(package|consumptionBundle|product|vendor|apiResource|eventResource|capability|entityType|integrationDependency|dataProduct):([a-zA-Z0-9._\-]+):(v0|v[1-9][0-9]*|)?$
          maxLength: 255
        groupId:
          $ref: '#/components/schemas/GroupId'
        groupTypeId:
          type: string
          pattern: ^([a-z0-9-]+(?:[.][a-z0-9-]+)*):([a-zA-Z0-9._\-\/]+)$
        removalDate:
          type: string
          format: date-time
        description:
          type: string
          minLength: 1
    ApiResource:
      type: object
      title: API Resource
      description: High-level description of an exposed API
      required:
      - ordId
      - title
      - shortDescription
      - description
      - version
      - releaseStatus
      - apiProtocol
      - visibility
      - partOfPackage
      properties:
        ordId:
          type: string
          pattern: ^([a-z0-9]+(?:[.][a-z0-9]+)*):(apiResource):([a-zA-Z0-9._\-]+):(v0|v[1-9][0-9]*)$
          maxLength: 255
        localId:
          type: string
          maxLength: 255
        correlationIds:
          type: array
          items:
            $ref: '#/components/schemas/CorrelationId'
        title:
          type: string
          minLength: 1
          maxLength: 255
        shortDescription:
          type: string
          minLength: 1
          maxLength: 255
        description:
          type: string
          minLength: 1
        partOfPackage:
          type: string
          pattern: ^([a-z0-9]+(?:[.][a-z0-9]+)*):(package):([a-zA-Z0-9._\-]+):(v0|v[1-9][0-9]*)$
          maxLength: 255
        partOfGroups:
          type: array
          items:
            $ref: '#/components/schemas/GroupId'
        partOfConsumptionBundles:
          type: array
          items:
            $ref: '#/components/schemas/ConsumptionBundleReference'
        defaultConsumptionBundle:
          type: string
          pattern: ^([a-z0-9]+(?:[.][a-z0-9]+)*):(consumptionBundle):([a-zA-Z0-9._\-]+):(v0|v[1-9][0-9]*)$
          maxLength: 255
        partOfProducts:
          type: array
          items:
            type: string
            pattern: ^([a-z0-9]+(?:[.][a-z0-9]+)*):(product):([a-zA-Z0-9._\-]+):()$
            maxLength: 255
        version:
          $ref: '#/components/schemas/SemVer'
        lastUpdate:
          type: string
          format: date-time
        visibility:
          $ref: '#/components/schemas/Visibility'
        releaseStatus:
          $ref: '#/components/schemas/ReleaseStatus'
        disabled:
          type: boolean
          default: false
        minSystemVersion:
          type: string
        deprecationDate:
          type: string
          format: date-time
        sunsetDate:
          type: string
          format: date-time
        successors:
          type: array
          items:
            type: string
            pattern: ^([a-z0-9]+(?:[.][a-z0-9]+)*):(apiResource):([a-zA-Z0-9._\-]+):(v0|v[1-9][0-9]*)$
            maxLength: 255
        changelogEntries:
          type: array
          items:
            $ref: '#/components/schemas/ChangelogEntry'
        entryPoints:
          type: array
          items:
            type: string
            format: uri-reference
        direction:
          type: string
          enum:
          - inbound
          - mixed
          - outbound
          default: inbound
        apiProtocol:
          $ref: '#/components/schemas/ApiProtocol'
        resourceDefinitions:
          type: array
          items:
            $ref: '#/components/schemas/ApiResourceDefinition'
        implementationStandard:
          type: string
        customImplementationStandard:
          $ref: '#/components/schemas/SpecificationId'
        customImplementationStandardDescription:
          type: string
        compatibleWith:
          type: array
          items:
            type: string
            pattern: ^([a-z0-9]+(?:[.][a-z0-9]+)*):(apiResource):([a-zA-Z0-9._\-]+):(v0|v[1-9][0-9]*)$
        responsible:
          $ref: '#/components/schemas/CorrelationId'
        supportedUseCases:
          type: array
          items:
            type: string
            enum:
            - data-federation
            - snapshot
            - incremental
            - streaming
        usage:
          type: string
          enum:
          - external
          - local
          default: external
        entityTypeMappings:
          type: array
          items:
            $ref: '#/components/schemas/EntityTypeMapping'
        exposedEntityTypes:
          type: array
          items:
            $ref: '#/components/schemas/ExposedEntityType'
        apiResourceLinks:
          type: array
          items:
            $ref: '#/components/schemas/ApiEventResourceLink'
        links:
          type: array
          items:
            $ref: '#/components/schemas/Link'
        extensible:
          $ref: '#/components/schemas/Extensible'
        countries:
          type: array
          items:
            type: string
            pattern: ^[A-Z]{2}$
        lineOfBusiness:
          type: array
          items:
            $ref: '#/components/schemas/LineOfBusiness'
        industry:
          type: array
          items:
            $ref: '#/components/schemas/Industry'
        tags:
          type: array
          items:
            $ref: '#/components/schemas/Tag'
        labels:
          $ref: '#/components/schemas/Labels'
        documentationLabels:
          $ref: '#/components/schemas/DocumentationLabels'
        policyLevel:
          $ref: '#/components/schemas/PolicyLevel'
        customPolicyLevel:
          $ref: '#/components/schemas/CustomPolicyLevel'
        policyLevels:
          type: array
          items:
            $ref: '#/components/schemas/PolicyLevelId'
        systemInstanceAware:
          type: boolean
          default: false
    DataProductInputPort:
      type: object
      title: Data Product Input Port
      required:
      - ordId
      properties:
        ordId:
          type: string
          pattern: ^([a-z0-9]+(?:[.][a-z0-9]+)*):(integrationDependency):([a-zA-Z0-9._\-]+):(v0|v[1-9][0-9]*)$
          maxLength: 255
    ApiModelSelectorJsonPointer:
      type: object
      title: API Model Selector (JSON Pointer)
      required:
      - type
      - jsonPointer
      properties:
        type:
          type: string
          const: json-pointer
        jsonPointer:
          type: string
          minLength: 1
    EntityTypeMapping:
      type: object
      title: Entity Type Mapping
      required:
      - entityTypeTargets
      properties:
        apiModelSelectors:
          type: array
          items:
            oneOf:
            - $ref: '#/components/schemas/ApiModelSelectorOData'
            - $ref: '#/components/schemas/ApiModelSelectorJsonPointer'
        entityTypeTargets:
          type: array
          minItems: 1
          items:
            oneOf:
            - $ref: '#/components/schemas/EntityTypeOrdIdTarget'
            - $ref: '#/components/schemas/EntityTypeCorrelationIdTarget'
    PolicyLevelId:
      type: string
      pattern: ^([a-z0-9]+(?:[.][a-z0-9]+)*):([a-zA-Z0-9._\-]+):(v0|v[1-9][0-9]*)$
      maxLength: 255
    CustomPolicyLevel:
      type: string
      pattern: ^([a-z0-9]+(?:[.][a-z0-9]+)*):([a-zA-Z0-9._\-]+):(v0|v[1-9][0-9]*)$
      maxLength: 255
    Capability:
      type: object
      title: Capability
      description: Describes use-case specific capabilities, features, or configuration
      required:
      - ordId
      - type
      - title
      - version
      - releaseStatus
      - visibility
      - partOfPackage
      properties:
        ordId:
          type: string
          pattern: ^([a-z0-9-]+(?:[.][a-z0-9-]+)*):(capability):([a-zA-Z0-9._\-]+):(v0|v[1-9][0-9]*)$
          maxLength: 255
        localId:
          type: string
          maxLength: 255
        correlationIds:
          type: array
          items:
            $ref: '#/components/schemas/CorrelationId'
        type:
          type: string
          description: Type of the capability
        customType:
          $ref: '#/components/schemas/SpecificationId'
        title:
          type: string
          minLength: 1
          maxLength: 255
        shortDescription:
          type: string
          minLength: 1
          maxLength: 255
        description:
          type: string
          minLength: 1
        partOfPackage:
          type: string
          pattern: ^([a-z0-9]+(?:[.][a-z0-9]+)*):(package):([a-zA-Z0-9._\-]+):(v0|v[1-9][0-9]*)$
          maxLength: 255
        partOfGroups:
          type: array
          items:
            $ref: '#/components/schemas/GroupId'
        version:
          $ref: '#/components/schemas/SemVer'
        lastUpdate:
          type: string
          format: date-time
        visibility:
          $ref: '#/components/schemas/Visibility'
        releaseStatus:
          $ref: '#/components/schemas/ReleaseStatus'
        disabled:
          type: boolean
          default: false
        minSystemVersion:
          type: string
        relatedEntityTypes:
          type: array
          items:
            type: string
            pattern: ^([a-z0-9]+(?:[.][a-z0-9]+)*):(entityType):([a-zA-Z0-9._\-]+):(v0|v[1-9][0-9]*)$
        definitions:
          type: array
          items:
            $ref: '#/components/schemas/CapabilityDefinition'
        links:
          type: array
          items:
            $ref: '#/components/schemas/Link'
        tags:
          type: array
          items:
            $ref: '#/components/schemas/Tag'
        labels:
          $ref: '#/components/schemas/Labels'
        documentationLabels:
          $ref: '#/components/schemas/DocumentationLabels'
        systemInstanceAware:
          type: boolean
          default: false
    EventResource:
      type: object
      title: Event Resource
      description: High-level description of a collection of related events
      required:
      - ordId
      - title
      - shortDescription
      - description
      - version
      - visibility
      - partOfPackage
      - releaseStatus
      properties:
        ordId:
          type: string
          pattern: ^([a-z0-9]+(?:[.][a-z0-9]+)*):(eventResource):([a-zA-Z0-9._\-]+):(v0|v[1-9][0-9]*)$
          maxLength: 255
        localId:
          type: string
          maxLength: 255
        correlationIds:
          type: array
          items:
            $ref: '#/components/schemas/CorrelationId'
        title:
          type: string
          minLength: 1
          maxLength: 255
        shortDescription:
          type: string
          minLength: 1
          maxLength: 255
        description:
          type: string
          minLength: 1
        partOfPackage:
          type: string
          pattern: ^([a-z0-9]+(?:[.][a-z0-9]+)*):(package):([a-zA-Z0-9._\-]+):(v0|v[1-9][0-9]*)$
          maxLength: 255
        partOfGroups:
          type: array
          items:
            $ref: '#/components/schemas/GroupId'
        partOfConsumptionBundles:
          type: array
          items:
            $ref: '#/components/schemas/ConsumptionBundleReference'
        defaultConsumptionBundle:
          type: string
          pattern: ^([a-z0-9]+(?:[.][a-z0-9]+)*):(consumptionBundle):([a-zA-Z0-9._\-]+):(v0|v[1-9][0-9]*)$
          maxLength: 255
        partOfProducts:
          type: array
          items:
            type: string
            pattern: ^([a-z0-9]+(?:[.][a-z0-9]+)*):(product):([a-zA-Z0-9._\-]+):()$
            maxLength: 255
        version:
          $ref: '#/components/schemas/SemVer'
        lastUpdate:
          type: string
          format: date-time
        visibility:
          $ref: '#/components/schemas/Visibility'
        releaseStatus:
          $ref: '#/components/schemas/ReleaseStatus'
        disabled:
          type: boolean
          default: false
        minSystemVersion:
          type: string
        deprecationDate:
          type: string
          format: date-time
        sunsetDate:
          type: string
          format: date-time
        successors:
          type: array
          items:
            type: string
            pattern: ^([a-z0-9]+(?:[.][a-z0-9]+)*):(eventResource):([a-zA-Z0-9._\-]+):(v0|v[1-9][0-9]*)$
            maxLength: 255
        changelogEntries:
          type: array
          items:
            $ref: '#/components/schemas/ChangelogEntry'
        resourceDefinitions:
          type: array
          items:
            $ref: '#/components/schemas/EventResourceDefinition'
        implementationStandard:
          type: string
        customImplementationStandard:
          $ref: '#/components/schemas/SpecificationId'
        customImplementationStandardDescription:
          type: string
        compatibleWith:
          type: array
          items:
            type: string
            pattern: ^([a-z0-9]+(?:[.][a-z0-9]+)*):(eventResource):([a-zA-Z0-9._\-]+):(v0|v[1-9][0-9]*)$
        responsible:
          $ref: '#/components/schemas/CorrelationId'
        entityTypeMappings:
          type: array
          items:
            $ref: '#/components/schemas/EntityTypeMapping'
        exposedEntityTypes:
          type: array
          items:
            $ref: '#/components/schemas/ExposedEntityType'
        eventResourceLinks:
          type: array
          items:
            $ref: '#/components/schemas/ApiEventResourceLink'
        links:
          type: array
          items:
            $ref: '#/components/schemas/Link'
        extensible:
          $ref: '#/components/schemas/Extensible'
        countries:
          type: array
          items:
            type: string
            pattern: ^[A-Z]{2}$
        lineOfBusiness:
          type: array
          items:
            $ref: '#/components/schemas/LineOfBusiness'
        industry:
          type: array
          items:
            $ref: '#/components/schemas/Industry'
        tags:
          type: array
          items:
            $ref: '#/components/schemas/Tag'
        labels:
          $ref: '#/components/schemas/Labels'
        documentationLabels:
          $ref: '#/components/schemas/DocumentationLabels'
        policyLevel:
          $ref: '#/components/schemas/PolicyLevel'
        customPolicyLevel:
          $ref: '#/components/schemas/CustomPolicyLevel'
        policyLevels:
          type: array
          items:
            $ref: '#/components/schemas/PolicyLevelId'
        systemInstanceAware:
          type: boolean
          default: false
    ApiModelSelectorOData:
      type: object
      title: API Model Selector (OData)
      required:
      - type
      - entitySetName
      properties:
        type:
          type: string
          const: odata
        entitySetName:
          type: string
          minLength: 1
    Extensible:
      type: object
      title: Extensible
      required:
      - supported
      properties:
        supported:
          type: string
          enum:
          - 'no'
          - manual
          - automatic
        description:
          type: string
          minLength: 1
    CredentialExchangeStrategy:
      type: object
      title: Credential Exchange Strategy
      description: Specifies how credentials can be obtained
      required:
      - type
      properties:
        type:
          type: string
        customType:
          $ref: '#/components/schemas/SpecificationId'
        customDescription:
          type: string
          minLength: 1
        callbackUrl:
          type: string
          format: uri
    DataProductOutputPort:
      type: object
      title: Data Product Output Port
      required:
      - ordId
      properties:
        ordId:
          type: string
          pattern: ^([a-z0-9]+(?:[.][a-z0-9]+)*):(apiResource|eventResource):([a-zA-Z0-9._\-]+):(v0|v[1-9][0-9]*)$
          maxLength: 255
    CorrelationId:
      type: string
      pattern: ^([a-z0-9]+(?:[.][a-z0-9]+)*):([a-zA-Z0-9._\-\/]+):([a-zA-Z0-9._\-\/]+)$
      maxLength: 255
      description: Correlation ID for referencing related data
    ApiEventResourceLink:
      type: object
      title: API/Event Resource Link
      required:
      - type
      - url
      properties:
        type:
          type: string
          enum:
          - api-documentation
          - authentication
          - client-registration
          - console
          - payment
          - service-level-agreement
          - support
          - custom
        customType:
          $ref: '#/components/schemas/SpecificationId'
        url:
          type: string
          format: uri-reference
    ConsumptionBundleReference:
      type: object
      title: Consumption Bundle Reference
      description: Reference to a Consumption Bundle
      required:
      - ordId
      properties:
        ordId:
          type: string
          pattern: ^([a-z0-9]+(?:[.][a-z0-9]+)*):(consumptionBundle):([a-zA-Z0-9._\-]+):(v0|v[1-9][0-9]*)$
          maxLength: 255
        defaultEntryPoint:
          type: string
          format: uri-reference
    RelatedEntityType:
      type: object
      title: Related Entity Type
      required:
      - ordId
      properties:
        ordId:
          type: string
          pattern: ^([a-z0-9]+(?:[.][a-z0-9]+)*):(entityType):([a-zA-Z0-9._\-]+):(v0|v[1-9][0-9]*)$
          maxLength: 255
        relationType:
          type: string
          enum:
          - part-of
          - can-share-identity
    PackageLink:
      type: object
      title: Package Link
      required:
      - type
      - url
      properties:
        type:
          type: string
          enum:
          - terms-of-service
          - license
          - client-registration
          - payment
          - sandbox
          - service-level-agreement
          - support
          - custom
        customType:
          $ref: '#/components/schemas/SpecificationId'
        url:
          type: string
          format: uri
    DocumentationLabels:
      type: object
      title: Documentation Labels
      additionalProperties:
        type: array
        items:
          type: string
          minLength: 1
    Vendor:
      type: object
      title: Vendor
      description: The vendor of a product or package
      required:
      - ordId
      - title
      properties:
        ordId:
          type: string
          pattern: ^([a-z0-9]+):(vendor):([a-zA-Z0-9._\-]+):()$
          maxLength: 255
        title:
          type: string
          minLength: 1
          maxLength: 255
        partners:
          type: array
          items:
            type: string
            pattern: ^([a-z0-9]+(?:[.][a-z0-9]+)*):(vendor):([a-zA-Z0-9._\-]+):()$
        tags:
          type: array
          items:
            $ref: '#/components/schemas/Tag'
        labels:
          $ref: '#/components/schemas/Labels'
        documentationLabels:
          $ref: '#/components/schemas/DocumentationLabels'
    LineOfBusiness:
      type: string
      pattern: ^[a-zA-Z0-9-_.\/& ]*$
      minLength: 1
    ApiResourceDefinition:
      type: object
      title: API Resource Definition
      description: Link and categorization of a machine-readable API definition
      required:
      - type
      - mediaType
      - url
      properties:
        type:
          type: string
          description: Type of the API Resource Definition
          enum:
          - openapi-v2
          - openapi-v3
          - openapi-v3.1+
          - raml-v1
          - edmx
          - csdl-json
          - graphql-sdl
          - wsdl-v1
          - wsdl-v2
          - a2a-agent-card
          - sap-rfc-metadata-v1
          - sap-sql-api-definition-v1
          - sap-csn-interop-effective-v1
          - custom
        customType:
          $ref: '#/comp

# --- truncated at 32 KB (63 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/application-research/refs/heads/main/openapi/application-research-ord-documents-api-openapi.yml