Group#

{
    "$schema": "https://json-schema.org/draft/2020-12/schema#",
    "$id": "https://hdfgroup.org/schemas/hdf5/json/group.schema.json",
    "title": "HDF5/JSON Group Schema",
    "description": "JSON Schema describing HDF5 group.",
    "type": "object",
    "$defs": {
        "group": {
            "type": "object",
            "patternProperties": {
                "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$": {
                    "type": "object",
                    "properties": {
                        "alias": {
                            "description": "HDF5 group path names",
                            "type": "array",
                            "minItems": 1,
                            "items": {
                                "type": "string",
                                "pattern": "^(/|(/[^/]+)+)$"
                            }
                        },
                        "created": {
                            "description": "UTC date/time of group creation.",
                            "type": "string",
                            "format": "date-time"
                        },
                        "lastModified": {
                            "description": "UTC date/time of last group content modification.",
                            "type": "string",
                            "format": "date-time"
                        },
                        "attributes": {
                            "description": "All attributes of this HDF5 group.",
                            "type": "array",
                            "$ref": "attribute.schema.json#/$defs/attributes"
                        },
                        "links": {
                            "description": "All links whose source is this HDF5 group.",
                            "type": "array",
                            "$ref": "#/$defs/links"
                        },
                        "creationProperties": {
                            "type": "object",
                            "properties": {
                                "track_times": {
                                    "type": "boolean"
                                },
                                "localHeapSizeHint": {
                                    "type": "integer",
                                    "minimum": 0
                                },
                                "filters": {
                                    "type": "array",
                                    "minItems": 1,
                                    "items": {
                                        "$ref": "filters.schema.json#/$defs/deflate_filter"
                                    }
                                },
                                "linkCreationOrder": {
                                    "type": "string",
                                    "enum": [
                                        "H5P_CRT_ORDER_TRACKED",
                                        "H5P_CRT_ORDER_INDEXED"
                                    ]
                                },
                                "linkPhaseChange": {
                                    "type": "object",
                                    "properties": {
                                        "maxCompact": {
                                            "type": "integer",
                                            "minimum": 0
                                        },
                                        "minDense": {
                                            "type": "integer",
                                            "minimum": 0
                                        }
                                    },
                                    "additionalProperties": false
                                },
                                "linksEstimate": {
                                    "type": "object",
                                    "properties": {
                                        "numEntries": {
                                            "type": "integer",
                                            "minimum": 0
                                        },
                                        "nameLength": {
                                            "type": "integer",
                                            "minimum": 0
                                        }
                                    },
                                    "additionalProperties": false
                                }
                            },
                            "additionalProperties": false
                        }
                    }
                }
            }
        },
        "links": {
            "type": "array",
            "minItems": 1,
            "items": {
                "oneOf": [
                    {
                        "$ref": "#/$defs/hard_link"
                    },
                    {
                        "$ref": "#/$defs/soft_link"
                    },
                    {
                        "$ref": "#/$defs/external_link"
                    },
                    {
                        "$ref": "#/$defs/user_defined_link"
                    }
                ]
            }
        },
        "hard_link": {
            "type": "object",
            "properties": {
                "class": {
                    "const": "H5L_TYPE_HARD"
                },
                "title": {
                    "$ref": "#/$defs/link_name"
                },
                "collection": {
                    "type": "string",
                    "enum": [
                        "datasets",
                        "datatypes",
                        "groups"
                    ]
                },
                "id": {
                    "type": "string",
                    "format": "uuid"
                },
                "creationProperties": {
                    "$ref": "#/$defs/link_creation_props"
                }
            },
            "required": [
                "class",
                "title",
                "collection",
                "id"
            ]
        },
        "soft_link": {
            "type": "object",
            "properties": {
                "class": {
                    "const": "H5L_TYPE_SOFT"
                },
                "title": {
                    "$ref": "#/$defs/link_name"
                },
                "h5path": {
                    "$ref": "#/$defs/h5path"
                },
                "creationProperties": {
                    "$ref": "#/$defs/link_creation_props"
                }
            },
            "required": [
                "class",
                "title",
                "h5path"
            ]
        },
        "external_link": {
            "type": "object",
            "properties": {
                "class": {
                    "const": "H5L_TYPE_EXTERNAL"
                },
                "title": {
                    "$ref": "#/$defs/link_name"
                },
                "file": {
                    "type": "string"
                },
                "h5path": {
                    "$ref": "#/$defs/h5path"
                },
                "creationProperties": {
                    "$ref": "#/$defs/link_creation_props"
                }
            },
            "required": [
                "class",
                "title",
                "file",
                "h5path"
            ]
        },
        "user_defined_link": {
            "type": "object",
            "properties": {
                "class": {
                    "const": "H5L_TYPE_USER_DEFINED"
                },
                "title": {
                    "$ref": "#/$defs/link_name"
                },
                "creationProperties": {
                    "$ref": "#/$defs/link_creation_props"
                },
                "target": {
                    "type": "array",
                    "minItems": 1,
                    "items": {
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 255
                    }
                }
            },
            "required": [
                "class",
                "title"
            ]
        },
        "link_name": {
            "type": "string",
            "pattern": "^[^/]+$"
        },
        "link_creation_props": {
            "type": "object",
            "properties": {
                "charSet": {
                    "type": "string",
                    "enum": [
                        "H5T_CSET_ASCII",
                        "H5T_CSET_UTF8"
                    ]
                },
                "creationOrder": {
                    "type": "integer",
                    "minimum": 0
                }
            },
            "additionalProperties": false
        },
        "h5path": {
            "type": "string",
            "pattern": "^(/?[^/]+)+$"
        }
    }
}