Application Research ORD Documents API

Operations for ORD Document management

Documentation

Specifications

Code Examples

Schemas & Data

OpenAPI Specification

application-research-ord-documents-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Application Research CNAB Bundle API Resources ORD Documents API
  version: 1.0.0
  description: 'API for managing Cloud Native Application Bundles (CNAB).


    This API provides endpoints for managing CNAB bundles, claims, claim results,

    dependencies, parameter sources, relocation mappings, and installation status.

    '
  contact:
    name: CNAB Specification
    url: https://cnab.io
  license:
    name: Apache-2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
servers:
- url: https://api.example.com/v1
  description: Production server
- url: https://staging-api.example.com/v1
  description: Staging server
security:
- bearerAuth: []
- apiKey: []
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:
    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
    IntegrationDependency:
      type: object
      title: Integration Dependency
      description: States that the system can integrate with external systems to achieve an integration purpose
      required:
      - ordId
      - title
      - version
      - releaseStatus
      - visibility
      - partOfPackage
      - mandatory
      properties:
        ordId:
          type: string
          pattern: ^([a-z0-9-]+(?:[.][a-z0-9-]+)*):(integrationDependency):([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'
        version:
          $ref: '#/components/schemas/SemVer'
        lastUpdate:
          type: string
          format: date-time
        visibility:
          $ref: '#/components/schemas/Visibility'
        releaseStatus:
          $ref: '#/components/schemas/ReleaseStatus'
        sunsetDate:
          type: string
          format: date-time
        successors:
          type: array
          items:
            type: string
            pattern: ^([a-z0-9]+(?:[.][a-z0-9]+)*):(integrationDependency):([a-zA-Z0-9._\-]+):(v0|v[1-9][0-9]*)$
            maxLength: 255
        mandatory:
          type: boolean
          description: Whether the integration dependency is mandatory
        aspects:
          type: array
          items:
            $ref: '#/components/schemas/IntegrationAspect'
        relatedIntegrationDependencies:
          type: array
          items:
            type: string
            pattern: ^([a-z0-9-]+(?:[.][a-z0-9-]+)*):(integrationDependency):([a-zA-Z0-9._\-]+):(v0|v[1-9][0-9]*)$
        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'
    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
    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'
    Tag:
      type: string
      pattern: ^[a-zA-Z0-9-_.\/ ]*$
      minLength: 1
    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
    CapabilityDefinition:
      type: object
      title: Capability Definition
      description: Link and categorization of a machine-readable capability definition
      required:
      - type
      - mediaType
      - url
      properties:
        type:
          type: string
          enum:
          - sap.mdo:mdi-capability-definition: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'
    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'
    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
    Industry:
      type: string
      pattern: ^[a-zA-Z0-9-_.\/& ]*$
      minLength: 1
    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
    ReleaseStatus:
      type: string
      enum:
      - beta
      - active
      - deprecated
      - sunset
    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
    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
    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
    DocumentationLabels:
      type: object
      title: Documentation Labels
      additionalProperties:
        type: array
        items:
          type: string
          minLength: 1
    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'
    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
    Labels:
      type: object
      title: Labels
      additionalProperties:
        type: array
        items:
          type: string
          minLength: 1
    ExposedEntityType:
      type: object
      title: Exposed 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
    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
    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
    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'
    LineOfBusiness:
      type: string
      pattern: ^[a-zA-Z0-9-_.\/& ]*$
      minLength: 1
    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
    SystemVersion:
      type: object
      title: System Version
      description: States the design-time version/release of a system instance
      properties:
        version:
          $ref: '#/components/schemas/SemVer'
        title:
          type: string
          minLength: 1
          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'
    ApiModelSelectorJsonPointer:
      type: object
      title: API Model Selector (JSON Pointer)
      required:
      - type
      - jsonPointer
      properties:
        type:
          type: string
          const: json-pointer
        jsonPointer:
          type: string
          minLength: 1
    EventResourceIntegrationAspectSubset:
      type: object
      title: Event Resource Integration Aspect Subset
      required:
      - eventType
      properties:
        eventType:
          type: string
    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
    OrdDocument:
      type: object
      title: ORD Document
      description: "The ORD Document serves as a wrapper for ORD resources and taxonomy, \nadding top-level information specific to the document and the system it describes.\n"
      required:
      - openResourceDiscovery
      properties:
        $schema:
          type: string
          format: uri-reference
          description: URL to the Open Resource Discovery document schema
        openResourceDiscovery:
          type: string
          description: Version of the Open Resource Discovery specification
          enum:
          - '1.0'
          - '1.1'
          - '1.2'
          - '1.3'
          - '1.4'
          - '1.5'
          - '1.6'
          - '1.7'
          - '1.8'
          - '1.9'
          - '1.10'
          - '1.11'
          - '1.12'
        description:
          type: string
          minLength: 1
          description: Optional description of the ORD document itself (CommonMark)
        perspective:
          type: string
          description: Describes the perspective of the ORD document
          enum:
          - system-version
          - system-instance
          - system-independent
          default: system-instance
        describedSystemInstan

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