openapi: 3.1.0
info:
  title: DatasetItem
  version: 1.0.0
  description: Attributes for dataset products exposed via beckn:itemAttributes.
paths: {}
components:
  schemas:
    DatasetItem:
      type: object
      description: Dataset metadata aligned with schema.org Dataset plus Beckn dataset extensions.
      additionalProperties: true
      required:
        - "schema:identifier"
        - "schema:name"
        - "schema:temporalCoverage"
      properties:
        "@context":
          oneOf:
            - type: string
              format: uri
            - type: array
              items:
                type: string
                format: uri
        "@type":
          type: string
          enum: ["DatasetItem"]
        "schema:identifier":
          type: string
        "schema:name":
          type: string
        "schema:description":
          type: string
        "schema:temporalCoverage":
          type: string
        "schema:spatialCoverage":
          oneOf:
            - type: string
            - type: object
        "schema:license":
          oneOf:
            - type: string
            - type: object
        "schema:distribution":
          type: array
          items:
            type: object
            additionalProperties: true
        "schema:variableMeasured":
          type: array
          items:
            oneOf:
              - type: string
              - type: object
        "schema:measurementTechnique":
          oneOf:
            - type: string
            - type: object
        "schema:usageInfo":
          oneOf:
            - type: string
            - type: object
        "schema:conditionsOfAccess":
          oneOf:
            - type: string
            - type: object
        "schema:temporalResolution":
          oneOf:
            - type: string
            - type: object
        "schema:spatialResolution":
          oneOf:
            - type: string
            - type: object
        "schema:creator":
          oneOf:
            - type: string
            - type: object
        "schema:isBasedOn":
          oneOf:
            - type: string
            - type: array
        "dataset:refreshType":
          type: string
        "dataset:refreshFrequency":
          type: string
        "dataset:granularity":
          type: string
        "dataset:rowCountEstimate":
          type: integer
        "dataset:columnCount":
          type: integer
        "dataset:sensitivityLevel":
          type: string
        "dataset:verticalRange":
          oneOf:
            - type: string
            - type: object
        "dataset:dataType":
          type: string
        "dataset:rawUpdateFrequency":
          type: string
        "dataset:latestRawDataAt":
          type: string
          format: date-time
        "dataset:accessMethod":
          type: string
          description: >
            How the dataset is delivered to the consumer.
            INLINE — data embedded in the beckn message via dataPayload.
            DOWNLOAD — consumer fetches from a URL in schema:distribution.
            DATA_ENCLAVE — consumer accesses data within a secure enclave environment.
            OFF_CHANNEL — delivery arranged outside the beckn network.
          enum:
            - INLINE
            - DOWNLOAD
            - DATA_ENCLAVE
            - OFF_CHANNEL
        "dataset:dataPayload":
          description: >
            Optional inline data payload. When present, carries the actual dataset
            content within the beckn message. The @context URI must resolve to a
            valid schema that describes the payload structure. Used when
            dataset:accessMethod is INLINE.
          type: object
          required:
            - "@context"
            - "@type"
          additionalProperties: true
          properties:
            "@context":
              description: JSON-LD context URI resolving to the payload's schema.
              oneOf:
                - type: string
                  format: uri
                - type: array
                  items:
                    type: string
                    format: uri
            "@type":
              description: The type of data payload (e.g., MeterData, BillingSummary, UtilityCustomerCredential).
              type: string
        "dataset:qualityFlags":
          type: object
          additionalProperties: true
          properties:
            "dataset:gapFilledPercent":
              type: number
            "dataset:outlierRemovedPercent":
              type: number
            "dataset:latencyMinutes":
              type: integer
            "dataset:uptime99DayPercent":
              type: number
            "dataset:validationMethod":
              type: string

