{ "$schema": "http://json-schema.org/draft-04/schema#", "definitions": { "descriptorschema_2_15.AppInfo": { "type": "object", "properties": { "author-link": { "type": "string" }, "author-name": { "type": "string" }, "description": { "type": "string" }, "name": { "type": "string" }, "version": { "type": "string" } }, "required": [ "name", "version" ], "additionalProperties": false }, "descriptorschema_2_15.HostMounts": { "type": "object", "properties": { "target_mount": { "type": "string" }, "host_mount_path": { "type": "string" }, "description": { "type": "string" } }, "required": [ "target_mount" ], "additionalProperties": false }, "descriptorschema_2_15.SourceDetails": { "type": "object", "properties": { "name": { "type": "string" }, "file": { "type": "string" }, "usage": { "type": "integer" } }, "additionalProperties": false }, "descriptorschema_2_15.Driver": { "type": "object", "properties": { "name": { "type": "string" }, "type": { "type": "string" }, "wrpolicy": { "type": "string" } }, "additionalProperties": false }, "descriptorschema_2_15.FileSystem": { "type": "object", "properties": { "fstype": { "type": "string" }, "permission": { "type": "string" }, "source": { "$ref": "#/definitions/descriptorschema_2_15.SourceDetails" }, "target": { "type": "string" }, "accessmode": { "type": "string" }, "driver": { "$ref": "#/definitions/descriptorschema_2_15.Driver" } }, "required": [ "fstype" ], "additionalProperties": false }, "descriptorschema_2_15.CopyFromHost": { "type": "object", "properties": { "parent-dirname": { "type": "string" }, "nested-dirname": { "type": "string" } }, "required": [ "parent-dirname" ], "additionalProperties": false }, "descriptorschema_2_15.RamFS": { "type": "object", "properties": { "size": { "type": "string" } }, "required": [ "size" ], "additionalProperties": false }, "descriptorschema_2_15.ResourcesRecommendations": { "type": "object", "properties": { "profile": { "type": "string" }, "label": { "type": "string" }, "description": { "type": "string" } }, "required": [ "profile", "label", "description" ], "additionalProperties": false }, "descriptorschema_2_15.Devices": { "type": "object", "properties": { "device-id": { "type": "string" }, "type": { "type": "string" }, "label": { "type": "string" }, "usage": { "type": "string" }, "alias": { "type": "string" }, "function": { "type": "string" }, "mandatory": { "type": "boolean" }, "vendorID": { "type": "string" }, "productID": { "type": "string" }, "mount-point": { "type": "string" }, "device-directory-to-mount": { "type": "string" } }, "required": [ "type", "label" ], "additionalProperties": false }, "descriptorschema_2_15.Ports": { "type": "object", "properties": { "port": { "type": "string" }, "description": { "type": "string" } }, "required": [ "port" ], "additionalProperties": false }, "descriptorschema_2_15.Network": { "type": "object", "properties": { "interface-name": { "type": "string" }, "description": { "type": "string" }, "hint": { "type": "string" }, "type": { "type": "string", "enum": [ "external", "east-west", "eobc" ] }, "ports": { "anyOf": [ { "type": "object", "properties": { "tcp": { "type": "array", "items": [ { "anyOf": [ { "type": "string" }, { "type": "integer" }, { "$ref": "#/definitions/descriptorschema_2_15.Ports" } ] } ] } } }, { "type": "object", "properties": { "udp": { "type": "array", "items": [ { "anyOf": [ { "type": "string" }, { "type": "integer" }, { "$ref": "#/definitions/descriptorschema_2_15.Ports" } ] } ] } } } ] }, "ipv6_required": { "type": "boolean" }, "voice-vlan": { "type": "boolean" }, "mac_forward_enable_mask": { "oneOf": [ { "type": "string" }, { "type": "integer" } ] }, "mac_forward_disable_mask": { "oneOf": [ { "type": "string" }, { "type": "integer" } ] }, "mirroring": { "type": "boolean" } }, "required": [ "interface-name" ], "additionalProperties": false }, "descriptorschema_2_15.Custom_map": { "type": "object", "properties": { "name": { "type": "string" }, "memory": { "oneOf": [ { "type": "string" }, { "type": "integer" } ] }, "cpu": { "oneOf": [ { "type": "string" }, { "type": "integer" } ] }, "disk": { "oneOf": [ { "type": "string" }, { "type": "integer" } ] } }, "required": [ "name", "memory", "cpu" ], "additionalProperties": false }, "descriptorschema_2_15.Graphics": { "type": "object", "properties": { "vnc": { "type": "boolean" } }, "additionalProperties": false }, "descriptorschema_2_15.CharDev": { "type": "object", "properties": { "dev": { "type": "string" }, "type": { "type": "string" } }, "required": [ "dev", "type" ], "additionalProperties": false }, "descriptorschema_2_15.CpuTopologyParams": { "type": "object", "properties": { "sockets-per-core": { "oneOf": [ { "type": "string" }, { "type": "integer" } ] }, "cores": { "oneOf": [ { "type": "string" }, { "type": "integer" } ] } }, "required": [ "sockets-per-core", "cores" ], "additionalProperties": false }, "descriptorschema_2_15.ServiceSecurity": { "type": "object", "properties": { "role": { "type": "array", "items": { "type": "string", "enum": [ "OauthClient", "OauthValidator" ] } }, "type": { "type": "string", "enum": [ "oauth2" ] }, "scopes": { "type": "array", "items": { "type": "string" } } }, "additionalProperties": false }, "descriptorschema_2_15.Resources": { "type": "object", "properties": { "profile": { "type": "string" }, "cpu": { "oneOf": [ { "type": "string" }, { "type": "integer" } ] }, "cpu-percent": { "oneOf": [ { "type": "string" }, { "type": "integer" } ] }, "disk": { "oneOf": [ { "type": "string" }, { "type": "integer" } ] }, "extended-resources": { "type": "boolean" }, "persistent_data_target": { "type": "string" }, "host_mounts": { "type": "array", "items": { "$ref": "#/definitions/descriptorschema_2_15.HostMounts" } }, "filesystem": { "type": "array", "items": { "$ref": "#/definitions/descriptorschema_2_15.FileSystem" } }, "copy-from-host": { "$ref": "#/definitions/descriptorschema_2_15.CopyFromHost" }, "ramfs": { "$ref": "#/definitions/descriptorschema_2_15.RamFS" }, "rootfs_size": { "oneOf": [ { "type": "string" }, { "type": "integer" } ] }, "rootfs_expanded_size": { "oneOf": [ { "type": "string" }, { "type": "integer" } ] }, "memory": { "oneOf": [ { "type": "string" }, { "type": "integer" } ] }, "recommendations": { "type": "array", "items": { "$ref": "#/definitions/descriptorschema_2_15.ResourcesRecommendations" } }, "devices": { "type": "array", "items": { "$ref": "#/definitions/descriptorschema_2_15.Devices" } }, "device-info": { "type": "array", "items": { "type": "string", "enum": [ "udi" ] } }, "platform-env": { "type": "array", "items": { "type": "string" } }, "oauth": { "type": "array", "items": { "type": "string", "enum": [ "OauthClient", "OauthValidator" ] } }, "broker": { "type": "array", "items": { "type": "string", "enum": [ "BrokerClient", "Broker" ] } }, "network": { "type": "array", "items": { "$ref": "#/definitions/descriptorschema_2_15.Network" } }, "custom-map": { "type": "array", "items": { "$ref": "#/definitions/descriptorschema_2_15.Custom_map" } }, "graphics": { "$ref": "#/definitions/descriptorschema_2_15.Graphics" }, "vcpu": { "oneOf": [ { "type": "string" }, { "type": "integer" } ] }, "chardev": { "type": "array", "items": { "$ref": "#/definitions/descriptorschema_2_15.CharDev" } }, "cpu-topology": { "oneOf": [ { "$ref": "#/definitions/descriptorschema_2_15.CpuTopologyParams" } ] }, "visualization": { "type": "boolean" }, "datastore": { "type": "boolean" }, "privileged": { "type": "boolean" }, "randomdev": { "type": "boolean" }, "seed-controller-certificate": { "type": "boolean" }, "access-control": { "$ref": "#/definitions/descriptorschema_2_15.ServiceSecurity" }, "container-size": { "oneOf": [ { "type": "string" }, { "type": "integer" } ] }, "canbus": { "type": "boolean" } }, "additionalProperties": false }, "descriptorschema_2_15.Rescue": { "type": "object", "properties": { "remove_on_rescue": { "type": "string" }, "active_app_callback_on_reset": { "type": "string" }, "callback_timeout": { "type": "integer" } }, "required": [ "remove_on_rescue", "active_app_callback_on_reset", "callback_timeout" ], "additionalProperties": false }, "descriptorschema_2_15.Monitor": { "type": "object", "properties": { "script": { "type": "string" }, "initial_delay_seconds": { "type": "number" }, "period_seconds": { "type": "number" } }, "required": [ "script" ], "additionalProperties": false }, "descriptorschema_2_15.PostUpgrade": { "type": "object", "properties": { "post_script": { "type": "string" }, "initial_wait_time": { "type": "number" } }, "required": [ "post_script" ], "additionalProperties": false }, "descriptorschema_2_15.Session": { "type": "object", "properties": { "disable_session": { "type": "boolean" } }, "additionalProperties": false }, "descriptorschema_2_15.CartridgeDependsOn": { "type": "object", "properties": { "id": { "type": "string" }, "version": { "type": "number" } }, "required": [ "id", "version" ], "additionalProperties": false }, "descriptorschema_2_15.ServiceDependsOn": { "type": "object", "properties": { "id": { "type": "string" }, "min-api-version": { "type": "number" }, "max-api-version": { "type": "number" }, "required": { "type": "boolean" }, "label": { "type": "string" } }, "required": [ "id" ], "additionalProperties": false }, "descriptorschema_2_15.PackageDependsOn": { "type": "object", "properties": { "name": { "type": "string" }, "version": { "type": "string" }, "services": { "type": "array", "items": { "$ref": "#/definitions/descriptorschema_2_15.ServiceDependsOn" } } }, "required": [ "name", "version" ], "additionalProperties": false }, "descriptorschema_2_15.AppSignature": { "type": "object", "properties": { "verify-sign": { "type": "boolean" } }, "additionalProperties": false }, "descriptorschema_2_15.StartupGenericLinux": { "type": "object", "properties": { "runtime": { "type": "string", "enum": [ "generic-linux" ] }, "target": { "type": "string", "pattern": "^[a-zA-Z]([^/]+(/)?)+$" } }, "required": [ "runtime", "target" ], "additionalProperties": false }, "descriptorschema_2_15.RuntimeOptions": { "type": "object", "properties": { "classpath": { "type": "string" } }, "required": [ "classpath" ], "additionalProperties": true }, "descriptorschema_2_15.StartupNotGenericLinux": { "type": "object", "properties": { "runtime": { "not": { "type": "string", "enum": [ "generic-linux" ] } }, "target": { "type": "string", "pattern": "^[a-zA-Z]([^/]+(/)?)+$" }, "runtime-options": { "$ref": "#/definitions/descriptorschema_2_15.RuntimeOptions" }, "runtime-version": { "oneOf": [ { "type": "number" }, { "type": "string" } ] } }, "required": [ "target", "runtime-version" ], "additionalProperties": false }, "descriptorschema_2_15.Child": { "type": "object", "properties": { "manage-child": { "type": "boolean" }, "reserve-disk": { "oneOf": [ { "type": "string" }, { "type": "integer" } ] } }, "additionalProperties": false }, "descriptorschema_2_15.Stop": { "type": "object", "properties": { "target": { "type": "string", "pattern": "^[a-zA-Z]([^/]+(/)?)+$" } }, "required": [ "target" ], "additionalProperties": false }, "descriptorschema_2_15.AppPaas": { "type": "object", "properties": { "cpuarch": { "type": "string" }, "resources": { "$ref": "#/definitions/descriptorschema_2_15.Resources" }, "rescue": { "$ref": "#/definitions/descriptorschema_2_15.Rescue" }, "monitor": { "$ref": "#/definitions/descriptorschema_2_15.Monitor" }, "post_upgrade": { "$ref": "#/definitions/descriptorschema_2_15.PostUpgrade" }, "system-capabilities": { "type": "object", "properties": {} }, "session": { "$ref": "#/definitions/descriptorschema_2_15.Session" }, "depends-on": { "anyOf": [ { "type": "object", "properties": { "cartridges": { "type": "array", "items": { "$ref": "#/definitions/descriptorschema_2_15.CartridgeDependsOn" } } }, "required": [ "cartridges" ] }, { "type": "object", "properties": { "packages": { "type": "array", "items": { "$ref": "#/definitions/descriptorschema_2_15.PackageDependsOn" } } }, "required": [ "packages" ] } ] }, "env": { "type": "object", "properties": {}, "additionalProperties": true }, "type": { "type": "string", "enum": [ "paas" ] }, "signature": { "$ref": "#/definitions/descriptorschema_2_15.AppSignature" }, "startup": { "oneOf": [ { "$ref": "#/definitions/descriptorschema_2_15.StartupGenericLinux" }, { "$ref": "#/definitions/descriptorschema_2_15.StartupNotGenericLinux" } ] }, "child": { "$ref": "#/definitions/descriptorschema_2_15.Child" }, "stop": { "$ref": "#/definitions/descriptorschema_2_15.Stop" } }, "required": [ "type", "startup" ], "additionalProperties": false }, "descriptorschema_2_15.StartupLXC": { "type": "object", "properties": { "rootfs": { "type": "string" }, "target": { "type": "string", "pattern": "^[/a-zA-Z]([^/]+(/)?)+$" } }, "required": [ "rootfs", "target" ], "additionalProperties": false }, "descriptorschema_2_15.AppLXC": { "type": "object", "properties": { "cpuarch": { "type": "string" }, "resources": { "$ref": "#/definitions/descriptorschema_2_15.Resources" }, "rescue": { "$ref": "#/definitions/descriptorschema_2_15.Rescue" }, "monitor": { "$ref": "#/definitions/descriptorschema_2_15.Monitor" }, "post_upgrade": { "$ref": "#/definitions/descriptorschema_2_15.PostUpgrade" }, "system-capabilities": { "type": "object", "properties": {} }, "session": { "$ref": "#/definitions/descriptorschema_2_15.Session" }, "depends-on": { "oneOf": [ { "type": "object", "properties": { "packages": { "type": "array", "items": { "$ref": "#/definitions/descriptorschema_2_15.PackageDependsOn" } } }, "required": [ "packages" ] } ] }, "env": { "type": "object", "properties": {}, "additionalProperties": true }, "cpu-core": { "type": "string" }, "type": { "type": "string", "enum": [ "lxc" ] }, "signature": { "$ref": "#/definitions/descriptorschema_2_15.AppSignature" }, "kernel-version": { "type": "string" }, "startup": { "$ref": "#/definitions/descriptorschema_2_15.StartupLXC" }, "child": { "$ref": "#/definitions/descriptorschema_2_15.Child" } }, "required": [ "cpuarch", "type", "startup" ], "additionalProperties": false }, "descriptorschema_2_15.StartupVM_2_1_CDROM": { "type": "object", "properties": { "target-dev": { "type": "string" }, "file": { "type": "string" } }, "required": [ "target-dev", "file" ], "additionalProperties": false }, "descriptorschema_2_15.StartupVM_2_1_RFS": { "type": "object", "properties": { "rootfs": { "type": "string" }, "kernel": { "type": "string" }, "ostype": { "type": "string" }, "qemu-guest-agent": { "type": "boolean" }, "cdrom": { "$ref": "#/definitions/descriptorschema_2_15.StartupVM_2_1_CDROM" } }, "required": [ "rootfs", "kernel" ], "additionalProperties": false }, "descriptorschema_2_15.StartupVM_2_1_DISKS": { "type": "object", "properties": { "ostype": { "type": "string" }, "qemu-guest-agent": { "type": "boolean" }, "cdrom": { "$ref": "#/definitions/descriptorschema_2_15.StartupVM_2_1_CDROM" }, "disks": { "type": "array", "items": { "type": "object", "properties": { "target-dev": { "type": "string" }, "file": { "type": "string" } } } } }, "required": [ "disks" ], "additionalProperties": false }, "descriptorschema_2_15.AppVM": { "type": "object", "properties": { "cpuarch": { "type": "string" }, "resources": { "$ref": "#/definitions/descriptorschema_2_15.Resources" }, "rescue": { "$ref": "#/definitions/descriptorschema_2_15.Rescue" }, "monitor": { "$ref": "#/definitions/descriptorschema_2_15.Monitor" }, "post_upgrade": { "$ref": "#/definitions/descriptorschema_2_15.PostUpgrade" }, "system-capabilities": { "type": "object", "properties": {} }, "session": { "$ref": "#/definitions/descriptorschema_2_15.Session" }, "depends-on": { "oneOf": [ { "type": "object", "properties": { "packages": { "type": "array", "items": { "$ref": "#/definitions/descriptorschema_2_15.PackageDependsOn" } } }, "required": [ "packages" ] } ] }, "env": { "type": "object", "properties": {}, "additionalProperties": true }, "cpu-core": { "type": "string" }, "type": { "type": "string", "enum": [ "vm" ] }, "signature": { "$ref": "#/definitions/descriptorschema_2_15.AppSignature" }, "startup": { "oneOf": [ { "$ref": "#/definitions/descriptorschema_2_15.StartupVM_2_1_RFS" }, { "$ref": "#/definitions/descriptorschema_2_15.StartupVM_2_1_DISKS" } ] }, "child": { "$ref": "#/definitions/descriptorschema_2_15.Child" } }, "required": [ "cpuarch", "type", "startup" ], "additionalProperties": false }, "descriptorschema_2_15.StartupDocker_2": { "type": "object", "properties": { "image-name": { "type": "string" }, "tag": { "type": "string" }, "target": { "oneOf": [ { "type": "string", "pattern": "^[/a-zA-Z]([^/]+(/)?)+$" }, { "type": "array", "items": { "type": "string" } } ] } }, "required": [ "image-name", "tag", "target" ], "additionalProperties": false }, "descriptorschema_2_15.StartupDocker": { "type": "object", "properties": { "rootfs": { "type": "string" }, "target": { "oneOf": [ { "type": "string", "pattern": "^[/a-zA-Z]([^/]+(/)?)+$" }, { "type": "array", "items": { "type": "string" } } ] }, "user": { "oneOf": [ { "type": "string" }, { "type": "integer" } ] }, "group": { "oneOf": [ { "type": "string" }, { "type": "integer" } ] }, "workdir": { "type": "string" }, "runtime_options": { "type": "string" }, "restricted_disk_options": { "type": "string" }, "unrestricted_disk_options": { "type": "string" }, "args": { "oneOf": [ { "type": "string" }, { "type": "array", "items": { "type": "string" } } ] }, "os-mode": { "type": "boolean" }, "accessmode": { "type": "string", "enum": [ "readonly", "readwrite" ] }, "users": { "type": "string", "enum": [ "single", "multiple" ] } }, "required": [ "rootfs", "target" ], "additionalProperties": false }, "descriptorschema_2_15.AppDocker_2_2": { "type": "object", "properties": { "cpuarch": { "type": "string" }, "resources": { "$ref": "#/definitions/descriptorschema_2_15.Resources" }, "rescue": { "$ref": "#/definitions/descriptorschema_2_15.Rescue" }, "monitor": { "$ref": "#/definitions/descriptorschema_2_15.Monitor" }, "post_upgrade": { "$ref": "#/definitions/descriptorschema_2_15.PostUpgrade" }, "system-capabilities": { "type": "object", "properties": {} }, "session": { "$ref": "#/definitions/descriptorschema_2_15.Session" }, "depends-on": { "oneOf": [ { "type": "object", "properties": { "packages": { "type": "array", "items": { "$ref": "#/definitions/descriptorschema_2_15.PackageDependsOn" } } }, "required": [ "packages" ] } ] }, "env": { "type": "object", "properties": {}, "additionalProperties": true }, "cpu-core": { "type": "string" }, "type": { "type": "string", "enum": [ "docker" ] }, "signature": { "$ref": "#/definitions/descriptorschema_2_15.AppSignature" }, "startup": { "oneOf": [ { "$ref": "#/definitions/descriptorschema_2_15.StartupDocker_2" }, { "$ref": "#/definitions/descriptorschema_2_15.StartupDocker" } ] }, "child": { "$ref": "#/definitions/descriptorschema_2_15.Child" } }, "required": [ "cpuarch", "type", "startup" ], "additionalProperties": false }, "descriptorschema_2_15.Service": { "type": "object", "properties": { "id": { "type": "string" }, "api-version": { "type": "number" }, "version": { "type": "string" }, "description": { "type": "string" }, "port-mapping": { "type": "array", "items": { "type": "string", "pattern": "^[\\w]+:(tcp|udp){1}:[0-9-]+$" } } }, "required": [ "id", "api-version", "version" ], "additionalProperties": false }, "descriptorschema_2_15.ServiceSecuritySchemas": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "oauth2" ] }, "available-scopes": { "type": "array", "items": { "type": "string" } }, "default-scopes": { "type": "array", "items": { "type": "string" } } }, "additionalProperties": false }, "descriptorschema_2_15.ServiceBundle": { "type": "object", "properties": { "provides": { "type": "array", "items": { "$ref": "#/definitions/descriptorschema_2_15.Service" } }, "security-schemas": { "type": "array", "items": { "$ref": "#/definitions/descriptorschema_2_15.ServiceSecuritySchemas" } } }, "required": [ "provides" ], "additionalProperties": false } }, "type": "object", "description": "Schema for IOx application descriptor - version 2.14", "properties": { "descriptor-schema-version": { "oneOf": [ { "type": "string" }, { "type": "number" } ] }, "info": { "$ref": "#/definitions/descriptorschema_2_15.AppInfo" }, "app": { "oneOf": [ { "$ref": "#/definitions/descriptorschema_2_15.AppPaas" }, { "$ref": "#/definitions/descriptorschema_2_15.AppLXC" }, { "$ref": "#/definitions/descriptorschema_2_15.AppVM" }, { "$ref": "#/definitions/descriptorschema_2_15.AppDocker_2_2" } ] }, "service-bundle": { "$ref": "#/definitions/descriptorschema_2_15.ServiceBundle" } }, "required": [ "descriptor-schema-version", "info", "app" ], "additionalProperties": false }