{
    "$schema": "https://json-schema.org/draft/2019-09/hyper-schema#",
    "title": "Dataset Publishing State Aspect",
    "description": "Specifies the state and other metadata associated with publication of data within MAGDA system.",
    "type": "object",
    "properties": {
        "state": {
            "title": "State of dataset",
            "type": "string",
            "default": "published",
            "enum": ["draft", "published", "archived"]
        },
        "hasEverPublished": {
            "title": "Has ever published",
            "description": "Whether the dataset has ever been published before. If `true`, editing workflow UI (rather than creation workflow) will be shown.",
            "type": "boolean",
            "default": false
        },
        "custodianOrgUnitId": {
            "title": "the id of organisational unit that should be referenced as the data custodian",
            "type": "string",
            "minLength": 36,
            "maxLength": 36
        },
        "managingOrgUnitId": {
            "title": "the id of organisational unit that is responsible for maintaining this dataset",
            "type": "string",
            "minLength": 36,
            "maxLength": 36
        },
        "level": {
            "title": "Level dataset is visible at",
            "type": "string",
            "default": "organization",
            "enum": [
                "organization",
                "custodian",
                "team",
                "creatorOrgUnit",
                "selectedOrgUnit"
            ]
        },
        "contactPointDisplay": {
            "title": "What should be shown for the contact point(s) of a dataset",
            "type": "string",
            "enum": ["team", "organization", "custodian"]
        },
        "publishAsOpenData": {
            "title": "The open data platforms that this should be published on",
            "description": "A map of ids of open data portals to a boolean of whether or not they should be published on that platform. It's assumed that the absence of a platform means that it shouldn't be published on that platform.",
            "type": "object",
            "patternProperties": {
                ".{1,}": {
                    "type": "boolean"
                }
            }
        }
    }
}
