$schema: https://json-schema.org/draft/2020-12/schema
title: ILIAD APKG Registry Record
description: 'GeoJSON Feature representing one Application Package entry in the ILIAD
  APKG registry (https://iliad-registry.inesctec.pt/collections/apkg). Conforms to
  OGC API Records record envelope (type, id, geometry, properties) with the properties
  payload following the APKG Metadata Profile.

  '
type: object
required:
- type
- id
- geometry
- properties
properties:
  type:
    type: string
    enum:
    - Feature
    x-jsonld-id: '@type'
  id:
    type: string
    description: APKG URN, identical to properties.identifier.
    examples:
    - urn:apkg:tool:inesctec:pt:wo-data-filter:0.1.0
    x-jsonld-id: '@id'
  geometry:
    description: Spatial coverage of the application package as a GeoJSON geometry.
    oneOf:
    - $ref: https://geojson.org/schema/Geometry.json
    - type: 'null'
    x-jsonld-id: http://purl.org/apkg/terms/hasGeometry
  properties:
    type: object
    required:
    - identifier
    - id
    - class
    - name
    - family
    - latest
    - sdDatePublished
    - sdPublisher
    properties:
      identifier:
        type: string
        description: URN-form identifier of this application package (versioned).
        examples:
        - urn:apkg:tool:inesctec:pt:wo-data-filter:0.1.0
        x-jsonld-id: http://purl.org/dc/terms/identifier
        x-jsonld-type: http://www.w3.org/2001/XMLSchema#anyURI
      id:
        type: string
        description: Short, unversioned identifier within the URN.
        examples:
        - wo-data-filter
        x-jsonld-id: https://schema.org/identifier
      family:
        type: string
        description: Family identifier (URN without version) grouping all versions.
        examples:
        - urn:apkg:tool:inesctec:pt:wo-data-filter
        x-jsonld-id: http://purl.org/apkg/terms/family
        x-jsonld-type: http://www.w3.org/2001/XMLSchema#anyURI
      latest:
        type: boolean
        description: True when this is the latest published version of the family.
        x-jsonld-id: http://purl.org/apkg/terms/latest
      class:
        type: string
        description: CWL process class.
        enum:
        - CommandLineTool
        - Workflow
        x-jsonld-id: http://purl.org/dc/terms/type
      name:
        type: string
        x-jsonld-id: https://schema.org/name
      description:
        type: string
        x-jsonld-id: https://schema.org/description
      keywords:
        type: array
        items:
          type: string
        x-jsonld-id: https://schema.org/keywords
      software_version:
        type: string
        x-jsonld-id: https://schema.org/softwareVersion
      programming_language:
        type:
        - string
        - 'null'
        x-jsonld-id: https://schema.org/programmingLanguage
      cwl:
        type: string
        description: Full CWL document (YAML) as a string.
        x-jsonld-id: http://purl.org/apkg/terms/cwl
      url:
        type: string
        format: uri
        description: Self-link to the registry entry.
        x-jsonld-id: https://schema.org/url
        x-jsonld-type: http://www.w3.org/2001/XMLSchema#anyURI
      registration_url:
        type:
        - string
        - 'null'
        format: uri
        description: Original URL where the application package was registered.
        x-jsonld-id: http://purl.org/apkg/terms/originalURL
        x-jsonld-type: http://www.w3.org/2001/XMLSchema#anyURI
      code_repository:
        type:
        - string
        - 'null'
        format: uri
        x-jsonld-id: https://schema.org/codeRepository
        x-jsonld-type: http://www.w3.org/2001/XMLSchema#anyURI
      license:
        type:
        - string
        - 'null'
        description: SPDX expression, license URI, or null when undeclared.
        x-jsonld-id: https://schema.org/license
        x-jsonld-type: http://www.w3.org/2001/XMLSchema#anyURI
      citation:
        type:
        - string
        - 'null'
        x-jsonld-id: https://schema.org/citation
      date_created:
        type:
        - string
        - 'null'
        description: Creation date (ISO 8601 date or date-time).
        x-jsonld-id: https://schema.org/dateCreated
        x-jsonld-type: http://www.w3.org/2001/XMLSchema#date
      sdDatePublished:
        type: string
        format: date-time
        x-jsonld-id: https://schema.org/sdDatePublished
        x-jsonld-type: http://www.w3.org/2001/XMLSchema#dateTime
      author:
        type: array
        items:
          $ref: '#/$defs/Agent'
        x-jsonld-id: https://schema.org/author
      contributor:
        oneOf:
        - type: array
          items:
            $ref: '#/$defs/Agent'
        - type: 'null'
        x-jsonld-id: https://schema.org/contributor
      maintainer:
        oneOf:
        - type: array
          items:
            $ref: '#/$defs/Agent'
        - type: 'null'
        x-jsonld-id: https://schema.org/maintainer
      producer:
        type: array
        items:
          $ref: '#/$defs/Organization'
        x-jsonld-id: https://schema.org/producer
      source_organization:
        type: array
        items:
          $ref: '#/$defs/Organization'
        x-jsonld-id: https://schema.org/sourceOrganization
      sdPublisher:
        type: array
        items:
          $ref: '#/$defs/Organization'
        x-jsonld-id: https://schema.org/sdPublisher
      spatial_coverage:
        $ref: '#/$defs/GeoShape'
        x-jsonld-id: https://schema.org/spatialCoverage
      temporal_coverage:
        type:
        - string
        - 'null'
        description: ISO 8601 time interval (e.g. "2014-01-01T00:00:00Z/").
        x-jsonld-id: http://purl.org/apkg/terms/hasTemporalCoverage
      inputs:
        type: array
        description: CWL input parameters.
        items:
          $ref: '#/$defs/Parameter'
        x-jsonld-id: http://purl.org/apkg/terms/hasInput
      outputs:
        type: array
        description: CWL output parameters.
        items:
          $ref: '#/$defs/Parameter'
        x-jsonld-id: http://purl.org/apkg/terms/hasOutput
      Secrets:
        oneOf:
        - $ref: '#/$defs/Secrets'
        - type: 'null'
        description: CWL cwltool:Secrets block when present.
        x-jsonld-id: http://commonwl.org/cwltool#Secrets
    additionalProperties: true
    x-jsonld-id: '@nest'
    x-jsonld-extra-terms:
      file_format: https://schema.org/fileFormat
      publisher: https://schema.org/publisher
      inXSDDateTime: http://www.w3.org/2006/time#inXSDDateTime
      hasBeginning: http://www.w3.org/2006/time#hasBeginning
      hasEnd: http://www.w3.org/2006/time#hasEnd
      links:
        x-jsonld-id: http://purl.org/apkg/terms/hasLink
        x-jsonld-context:
          rel: http://purl.org/dc/terms/type
          type: http://www.w3.org/ns/dcat#mediaType
          href:
            '@id': https://schema.org/url
            '@type': http://www.w3.org/2001/XMLSchema#anyURI
          title: http://purl.org/dc/terms/title
$defs:
  Agent:
    type: object
    description: Person or organisation associated with the application package.
    properties:
      name:
        type: string
        x-jsonld-id: https://schema.org/name
      email:
        type: string
        format: email
        x-jsonld-id: https://schema.org/email
      class:
        type: string
        description: schema.org class hint (Person / Organization).
        x-jsonld-id: http://purl.org/dc/terms/type
      url:
        type: string
        format: uri
        x-jsonld-id: https://schema.org/url
        x-jsonld-type: http://www.w3.org/2001/XMLSchema#anyURI
    additionalProperties: true
  Organization:
    type: object
    properties:
      name:
        type: string
        x-jsonld-id: https://schema.org/name
      url:
        type: string
        format: uri
        x-jsonld-id: https://schema.org/url
        x-jsonld-type: http://www.w3.org/2001/XMLSchema#anyURI
      class:
        type: string
        x-jsonld-id: http://purl.org/dc/terms/type
      address:
        type: object
        properties:
          address_country:
            type: string
        additionalProperties: true
    additionalProperties: true
  GeoShape:
    type: object
    description: schema:GeoShape bounding-box description.
    properties:
      class:
        type: string
        examples:
        - schema:GeoShape
        x-jsonld-id: http://purl.org/dc/terms/type
      box:
        type: string
        description: Bounding box as 'south west north east' (schema:box).
      geo:
        type: object
        properties:
          box:
            type: string
        additionalProperties: true
    additionalProperties: true
  Parameter:
    type: object
    description: CWL input or output parameter.
    properties:
      id:
        type: string
        x-jsonld-id: '@id'
      doc:
        type:
        - string
        - 'null'
      type:
        type: string
        description: CWL type expression (e.g. "string", "string?", "float", "File",
          "Directory").
        x-jsonld-id: '@type'
      label:
        type:
        - string
        - 'null'
        x-jsonld-id: http://purl.org/apkg/terms/label
      format:
        type:
        - string
        - 'null'
        description: EDAM format URI or CWL format reference.
      fileFormat:
        type:
        - string
        - 'null'
        description: schema:fileFormat (MIME type when a File).
      default:
        description: Default value (any JSON type) for the parameter.
      keywords:
        type: array
        items:
          type: string
        x-jsonld-id: https://schema.org/keywords
      loadContents:
        type:
        - boolean
        - 'null'
      loadListing:
        type:
        - string
        - 'null'
    additionalProperties: true
  Secrets:
    type: object
    properties:
      secrets:
        type: array
        items:
          type: string
    additionalProperties: true
additionalProperties: true
x-jsonld-extra-terms:
  sh: http://www.w3.org/ns/shacl
x-jsonld-prefixes:
  dct: http://purl.org/dc/terms/
  cwltool: http://commonwl.org/cwltool#
  apkg: http://purl.org/apkg/terms/
  xsd: http://www.w3.org/2001/XMLSchema#
  schema: https://schema.org/
  time: http://www.w3.org/2006/time#
  dcat: http://www.w3.org/ns/dcat#
  geojson: https://purl.org/geojson/vocab#
