{
  "schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://hl7.erp.uno/schema/Extension.schema.json",
  "$ref": "#/definitions/Extension",
  "description": "see https://hl7.org/fhir/R5/json.html for information about the FHIR Json Schemas",
  "definitions": {
    "Extension": {
      "allOf": [
        {
          "description": "Optional Extension Element - found in all resources.",
          "properties": {
            "url": {
              "description": "Source of the definition for the extension code - a logical name or a URL.",
              "type": "string"
            },
            "valueBoolean": {
              "description": "Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list).",
              "type": "boolean"
            },
            "valueInteger": {
              "description": "Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list).",
              "pattern": "-?([0]|([1-9][0-9]*))",
              "type": "number"
            },
            "valueDecimal": {
              "description": "Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list).",
              "pattern": "-?([0]|([1-9][0-9]*))(\\.[0-9]+)?",
              "type": "number"
            },
            "valueBase64Binary": {
              "description": "Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list).",
              "type": "string"
            },
            "valueInstant": {
              "description": "Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list).",
              "type": "string"
            },
            "valueString": {
              "description": "Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list).",
              "type": "string"
            },
            "valueUri": {
              "description": "Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list).",
              "type": "string"
            },
            "valueDate": {
              "description": "Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list).",
              "pattern": "-?[0-9]{4}(-(0[1-9]|1[0-2])(-(0[0-9]|[1-2][0-9]|3[0-1]))?)?",
              "type": "string"
            },
            "valueDateTime": {
              "description": "Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list).",
              "pattern": "-?[0-9]{4}(-(0[1-9]|1[0-2])(-(0[0-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\\.[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)))?)?)?",
              "type": "string"
            },
            "valueTime": {
              "description": "Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list).",
              "pattern": "([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\\.[0-9]+)?",
              "type": "string"
            },
            "valueCode": {
              "description": "Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list).",
              "pattern": "[^\\s]+([\\s]?[^\\s]+)*",
              "type": "string"
            },
            "valueOid": {
              "description": "Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list).",
              "pattern": "urn:oid:(0|[1-9][0-9]*)(\\.(0|[1-9][0-9]*))*",
              "type": "string"
            },
            "valueUuid": {
              "description": "Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list).",
              "pattern": "urn:uuid:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
              "type": "string"
            },
            "valueId": {
              "description": "Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list).",
              "pattern": "[A-Za-z0-9\\-\\.]{1,64}",
              "type": "string"
            },
            "valueUnsignedInt": {
              "description": "Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list).",
              "pattern": "[0]|([1-9][0-9]*)",
              "type": "number"
            },
            "valuePositiveInt": {
              "description": "Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list).",
              "pattern": "[1-9][0-9]*",
              "type": "number"
            },
            "valueMarkdown": {
              "description": "Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list).",
              "type": "string"
            },
            "valueNarrative": {
              "description": "Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list).",
              "$ref": "Narrative.schema.json#/definitions/Narrative"
            },
            "valueAnnotation": {
              "description": "Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list).",
              "$ref": "Annotation.schema.json#/definitions/Annotation"
            },
            "valueAttachment": {
              "description": "Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list).",
              "$ref": "Attachment.schema.json#/definitions/Attachment"
            },
            "valueIdentifier": {
              "description": "Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list).",
              "$ref": "Identifier.schema.json#/definitions/Identifier"
            },
            "valueCoding": {
              "description": "Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list).",
              "$ref": "Coding.schema.json#/definitions/Coding"
            },
            "valueQuantity": {
              "description": "Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list).",
              "$ref": "Quantity.schema.json#/definitions/Quantity"
            },
            "valueDuration": {
              "description": "Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list).",
              "$ref": "Duration.schema.json#/definitions/Duration"
            },
            "valueSimpleQuantity": {
              "description": "Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list).",
              "$ref": "Quantity.schema.json#/definitions/Quantity"
            },
            "valueDistance": {
              "description": "Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list).",
              "$ref": "Distance.schema.json#/definitions/Distance"
            },
            "valueCount": {
              "description": "Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list).",
              "$ref": "Count.schema.json#/definitions/Count"
            },
            "valueMoney": {
              "description": "Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list).",
              "$ref": "Money.schema.json#/definitions/Money"
            },
            "valueAge": {
              "description": "Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list).",
              "$ref": "Age.schema.json#/definitions/Age"
            },
            "valueRange": {
              "description": "Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list).",
              "$ref": "Range.schema.json#/definitions/Range"
            },
            "valuePeriod": {
              "description": "Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list).",
              "$ref": "Period.schema.json#/definitions/Period"
            },
            "valueRatio": {
              "description": "Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list).",
              "$ref": "Ratio.schema.json#/definitions/Ratio"
            },
            "valueReference": {
              "description": "Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list).",
              "$ref": "Reference.schema.json#/definitions/Reference"
            },
            "valueSignature": {
              "description": "Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list).",
              "$ref": "Signature.schema.json#/definitions/Signature"
            },
            "valueAddress": {
              "description": "Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list).",
              "$ref": "Address.schema.json#/definitions/Address"
            },
            "valueContactPoint": {
              "description": "Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list).",
              "$ref": "ContactPoint.schema.json#/definitions/ContactPoint"
            },
            "valueTiming": {
              "description": "Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list).",
              "$ref": "Timing.schema.json#/definitions/Timing"
            },
            "valueMeta": {
              "description": "Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list).",
              "$ref": "Meta.schema.json#/definitions/Meta"
            },
            "valueContactDetail": {
              "description": "Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list).",
              "$ref": "ContactDetail.schema.json#/definitions/ContactDetail"
            },
            "valueContributor": {
              "description": "Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list).",
              "$ref": "Contributor.schema.json#/definitions/Contributor"
            },
            "valueDataRequirement": {
              "description": "Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list).",
              "$ref": "DataRequirement.schema.json#/definitions/DataRequirement"
            },
            "valueTriggerDefinition": {
              "description": "Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list).",
              "$ref": "TriggerDefinition.schema.json#/definitions/TriggerDefinition"
            }
          }
        }
      ]
    }
  }
}