123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155 |
- {
- "$schema": "http://json-schema.org/draft-07/schema",
- "$id": "https://joystream.org/AddClassSchema.schema.json",
- "title": "AddClassSchema",
- "description": "JSON schema to describe a new schema for a certain class in Joystream network",
- "type": "object",
- "additionalProperties": false,
- "required": ["className", "newProperties"],
- "properties": {
- "className": { "type": "string" },
- "existingProperties": {
- "type": "array",
- "uniqueItems": true,
- "items": { "$ref": "#/definitions/PropertyInSchemIndex" }
- },
- "newProperties": {
- "type": "array",
- "uniqueItems": true,
- "items": { "$ref": "#/definitions/Property" }
- }
- },
- "definitions": {
- "ClassId": {
- "type": "integer",
- "minimum": 1
- },
- "PropertyInSchemIndex": {
- "type": "integer",
- "minimum": 0
- },
- "DefaultBoolean": {
- "type": "boolean",
- "default": false
- },
- "Property": {
- "type": "object",
- "additionalProperties": false,
- "required": ["name", "property_type"],
- "properties": {
- "property_type": {
- "oneOf": [{ "$ref": "#/definitions/SinglePropertyVariant" }, { "$ref": "#/definitions/VecPropertyVariant" }]
- },
- "name": { "$ref": "#/definitions/PropertyName" },
- "description": { "$ref": "#/definitions/PropertyDescription" },
- "required": { "$ref": "#/definitions/DefaultBoolean" },
- "unique": { "$ref": "#/definitions/DefaultBoolean" },
- "locking_policy": { "$ref": "#/definitions/LockingPolicy" }
- }
- },
- "PropertyName": {
- "type": "string",
- "minLength": 1,
- "maxLength": 49
- },
- "PropertyDescription": {
- "type": "string",
- "minLength": 1,
- "maxLength": 500,
- "default": ""
- },
- "SinglePropertyType": {
- "oneOf": [
- { "$ref": "#/definitions/PrimitiveProperty", "description": "Primitive property (bool/integer)" },
- { "$ref": "#/definitions/TextProperty" },
- { "$ref": "#/definitions/HashProperty" },
- { "$ref": "#/definitions/ReferenceProperty" }
- ]
- },
- "SinglePropertyVariant": {
- "type": "object",
- "additionalProperties": false,
- "required": ["Single"],
- "properties": {
- "Single": { "$ref": "#/definitions/SinglePropertyType" }
- }
- },
- "VecPropertyType": {
- "type": "object",
- "additionalProperties": false,
- "required": ["vec_type", "max_length"],
- "properties": {
- "vec_type": { "$ref": "#/definitions/SinglePropertyType" },
- "max_length": { "$ref": "#/definitions/MaxVecItems" }
- }
- },
- "VecPropertyVariant": {
- "type": "object",
- "additionalProperties": false,
- "required": ["Vector"],
- "properties": {
- "Vector": { "$ref": "#/definitions/VecPropertyType" }
- }
- },
- "PrimitiveProperty": {
- "type": "string",
- "enum": ["Bool", "Uint16", "Uint32", "Uint64", "Int16", "Int32", "Int64"]
- },
- "TextProperty": {
- "type": "object",
- "additionalProperties": false,
- "required": ["Text"],
- "properties": {
- "Text": { "$ref": "#/definitions/MaxTextLength" }
- }
- },
- "HashProperty": {
- "type": "object",
- "additionalProperties": false,
- "required": ["Hash"],
- "properties": {
- "Hash": { "$ref": "#/definitions/MaxTextLength" }
- }
- },
- "MaxTextLength": {
- "type": "integer",
- "minimum": 1,
- "maximum": 65535
- },
- "MaxVecItems": {
- "type": "integer",
- "minimum": 1,
- "maximum": 65535
- },
- "ReferenceProperty": {
- "type": "object",
- "additionalProperties": false,
- "required": ["Reference"],
- "properties": {
- "Reference": {
- "type": "object",
- "additionalProperties": false,
- "required": ["className"],
- "properties": {
- "className": {
- "type": "string",
- "description": "Referenced class name"
- },
- "sameOwner": {
- "$ref": "#/definitions/DefaultBoolean",
- "description": "Whether same owner (controller) is required"
- }
- }
- }
- }
- },
- "LockingPolicy": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "is_locked_from_maintainer": { "$ref": "#/definitions/DefaultBoolean" },
- "is_locked_from_controller": { "$ref": "#/definitions/DefaultBoolean" }
- }
- }
- }
- }
|