@stencila/schema
Version:
Stencila schema and other specifications
269 lines (268 loc) • 7.62 kB
JSON
{
"title": "SoftwareSession",
"@id": "stencila:SoftwareSession",
"extends": "Thing",
"role": "primary",
"status": "unstable",
"category": "code",
"description": "Definition of a compute session, including its software and compute resource\nrequirements and status.\n",
"$comment": "Usually used to define the environment that is required to execute an\nexecutable document.\n",
"properties": {
"type": {
"@id": "schema:type",
"description": "The name of the type.",
"type": "string",
"enum": [
"SoftwareSession"
],
"default": "SoftwareSession",
"from": "Entity"
},
"id": {
"@id": "schema:id",
"description": "The identifier for this item.",
"type": "string",
"from": "Entity"
},
"meta": {
"@id": "stencila:meta",
"description": "Metadata associated with this item.",
"type": "object",
"from": "Entity"
},
"alternateNames": {
"@id": "schema:alternateName",
"description": "Alternate names (aliases) for the item.",
"type": "array",
"items": {
"type": "string"
},
"from": "Thing",
"aliases": [
"alternateName"
]
},
"description": {
"@id": "schema:description",
"description": "A description of the item.",
"anyOf": [
{
"type": "string"
},
{
"type": "array",
"items": {
"$ref": "Node.schema.json"
}
}
],
"from": "Thing"
},
"identifiers": {
"@id": "schema:identifier",
"description": "Any kind of identifier for any kind of Thing.",
"$comment": "Some identifiers have specific properties e.g the `issn` property for\nthe `Periodical` type. These should be used in preference to this\nproperty which is intended for identifiers that do not yet have a\nspecific property. Identifiers can be represented as strings, but\nusing a `PropertyValue` will usually be better because it allows\nfor `propertyID` (i.e. the type of identifier).\n",
"type": "array",
"items": {
"anyOf": [
{
"type": "string"
},
{
"$ref": "PropertyValue.schema.json"
}
]
},
"from": "Thing",
"aliases": [
"identifier"
]
},
"name": {
"@id": "schema:name",
"description": "The name of the item.",
"type": "string",
"from": "Thing"
},
"url": {
"@id": "schema:url",
"description": "The URL of the item.",
"type": "string",
"format": "uri",
"from": "Thing"
},
"environment": {
"@id": "stencila:environment",
"description": "The software environment to execute this session in.",
"allOf": [
{
"$ref": "SoftwareEnvironment.schema.json"
}
],
"from": "SoftwareSession"
},
"dateStart": {
"@id": "schema:startDate",
"description": "The date-time that the session began.",
"anyOf": [
{
"$ref": "Date.schema.json"
},
{
"type": "string",
"format": "date"
},
{
"type": "string",
"format": "date-time"
}
],
"from": "SoftwareSession"
},
"dateEnd": {
"@id": "schema:endDate",
"description": "The date-time that the session ended.",
"anyOf": [
{
"$ref": "Date.schema.json"
},
{
"type": "string",
"format": "date"
},
{
"type": "string",
"format": "date-time"
}
],
"from": "SoftwareSession"
},
"status": {
"@id": "stencila:sessionStatus",
"description": "The status of the session (starting, stopped, etc).",
"enum": [
"unknown",
"starting",
"started",
"stopping",
"stopped",
"failed"
],
"from": "SoftwareSession"
},
"clientsRequest": {
"@id": "stencila:clientsRequest",
"description": "The maximum number of concurrent clients requested for the session.",
"type": "number",
"minimum": 0,
"from": "SoftwareSession"
},
"clientsLimit": {
"@id": "stencila:clientsLimit",
"description": "The maximum number of concurrent clients the session is limited to.",
"type": "number",
"minimum": 0,
"from": "SoftwareSession"
},
"durationRequest": {
"@id": "stencila:durationRequest",
"description": "The maximum duration (seconds) requested for the session.",
"type": "number",
"minimum": 0,
"from": "SoftwareSession"
},
"durationLimit": {
"@id": "stencila:durationLimit",
"description": "The maximum duration (seconds) the session is limited to.",
"type": "number",
"minimum": 0,
"from": "SoftwareSession"
},
"timeoutRequest": {
"@id": "stencila:timeoutRequest",
"description": "The inactivity timeout (seconds) requested for the session.",
"type": "number",
"minimum": 0,
"from": "SoftwareSession"
},
"timeoutLimit": {
"@id": "stencila:timeoutLimit",
"description": "The inactivity timeout (seconds) the session is limited to.",
"type": "number",
"minimum": 0,
"from": "SoftwareSession"
},
"cpuRequest": {
"@id": "stencila:cpuRequest",
"description": "The amount of CPU requested for the session.",
"type": "number",
"minimum": 0,
"from": "SoftwareSession"
},
"cpuLimit": {
"@id": "stencila:cpuLimit",
"description": "The amount of CPU the session is limited to.",
"type": "number",
"minimum": 0,
"from": "SoftwareSession"
},
"memoryRequest": {
"@id": "stencila:memoryRequest",
"description": "The amount of memory requested for the session.",
"type": "number",
"minimum": 0,
"from": "SoftwareSession"
},
"memoryLimit": {
"@id": "stencila:memoryLimit",
"description": "The amount of memory that the session is limited to.",
"type": "number",
"minimum": 0,
"from": "SoftwareSession"
},
"networkTransferRequest": {
"@id": "stencila:networkTransferRequest",
"description": "The amount of network data transfer (GiB) requested for the session.",
"type": "number",
"minimum": 0,
"from": "SoftwareSession"
},
"networkTransferLimit": {
"@id": "stencila:networkTransferLimit",
"description": "The amount of network data transfer (GiB) that the session is limited to.",
"type": "number",
"minimum": 0,
"from": "SoftwareSession"
},
"volumeMounts": {
"@id": "stencila:volumeMounts",
"description": "Volumes to mount in the session.",
"type": "array",
"items": [
{
"$ref": "VolumeMount.schema.json"
}
],
"from": "SoftwareSession",
"aliases": [
"volumeMount"
]
}
},
"file": "SoftwareSession.schema.yaml",
"children": [],
"descendants": [],
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://schema.stenci.la/v0/SoftwareSession.schema.json",
"source": "https://github.com/stencila/schema/blob/master/SoftwareSession.schema.yaml",
"type": "object",
"propertyAliases": {
"alternateName": "alternateNames",
"identifier": "identifiers",
"volumeMount": "volumeMounts"
},
"additionalProperties": false,
"required": [
"type"
]
}