stackalytics/etc/default_data.schema.json

249 lines
8.1 KiB
JSON

{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"required": ["users", "releases", "companies", "repos", "project_types"],
"properties": {
"users": {
"type": "array",
"items": {
"type": "object",
"properties": {
"launchpad_id": {
"type": "string",
"pattern": "^[a-z\\d\\.-]+$"
},
"github_id": {
"type": "string"
},
"gerrit_id": {
"type": "string"
},
"ldap_id": {
"type": "string"
},
"user_name": {
"type": "string"
},
"emails": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[a-z\\d_\\.\\+-]+@([a-z\\d\\.-]+\\.)+(([a-z]+)|\\(none\\))$"
},
"minItems": 1
},
"companies": {
"type": "array",
"items": {
"type": "object",
"properties": {
"company_name": {
"type": "string"
},
"end_date": {
"$ref": "#/definitions/date_format"
}
},
"required": ["company_name", "end_date"],
"additionalProperties": false
},
"minItems": 1
}
},
"required": ["user_name", "emails"],
"additionalProperties": false
}
},
"releases": {
"type": "array",
"items": {
"type": "object",
"properties": {
"release_name": {
"type": "string"
},
"end_date": {
"$ref": "#/definitions/date_format"
}
},
"required": ["release_name", "end_date"],
"additionalProperties": false
}
},
"repos": {
"type": "array",
"items": {
"type": "object",
"properties": {
"uri": {
"type": "string"
},
"organization": {
"type": "string"
},
"module": {
"type": "string"
},
"releases": {
"type": "array",
"items": {
"type": "object",
"properties": {
"branch": {
"type": "string"
},
"tag_from": {
"type": "string"
},
"tag_to": {
"type": "string"
},
"release_name": {
"type": "string"
}
},
"required": ["tag_from", "tag_to", "release_name"]
}
},
"aliases": {
"type": "array",
"items": {
"type": "string"
}
},
"default_branch": {
"type": "string"
}
},
"required": ["uri", "module", "organization"],
"additionalProperties": false
}
},
"companies": {
"type": "array",
"items": {
"type": "object",
"properties": {
"company_name": {
"type": "string"
},
"domains": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[a-z\\d\\.-]*$"
}
},
"aliases": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": ["company_name", "domains"],
"additionalProperties": false
}
},
"project_sources": {
"type": "array",
"items": {
"type": "object",
"properties": {
"organization": {
"type": "string"
},
"uri": {
"type": "string"
},
"git_base_uri": {
"type": "string"
},
"ssh_key_filename": {
"type": "string"
},
"ssh_username": {
"type": "string"
},
"exclude": {
"type": "array",
"items": {
"type": "string"
}
},
"default_branch": {
"type": "string"
}
},
"required": ["organization"],
"additionalProperties": false
}
},
"module_groups": {
"type": "array",
"items": {
"type": "object",
"properties": {
"module_group_name": {
"type": "string",
"pattern": "^[\\w-]+$"
},
"modules": {
"type": ["array"],
"items": {
"type": "string"
}
}
},
"required": ["module_group_name", "modules"],
"additionalProperties": false
}
},
"mail_lists": {
"type": "array",
"items": {
"type": "string"
}
},
"member_lists": {
"type": "array",
"items": {
"type": "string"
}
},
"project_types": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^[\\w:-]+$"
},
"child": {
"type": "boolean"
},
"title": {
"type": "string"
},
"modules": {
"type": ["array"],
"items": {
"type": "string",
"pattern": "^[\\w:-]+$"
}
}
},
"required": ["id", "title", "modules"],
"additionalProperties": false
}
}
},
"definitions": {
"date_format": {
"type": ["string", "null"],
"pattern": "^20\\d{2}-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-[0-3]\\d$"
}
}
}