mirror of https://github.com/dotnet/tye.git
2 changed files with 275 additions and 0 deletions
@ -0,0 +1,17 @@ |
|||
# Schema |
|||
|
|||
Configuring a schema for tye.yaml |
|||
|
|||
1. Install the [Yaml](https://marketplace.visualstudio.com/items?itemName=redhat.vscode-yaml) extension. |
|||
2. Open VS Code's settings (`CTRL+,`) |
|||
3. Add a mapping for our schema. |
|||
|
|||
```js |
|||
{ |
|||
"yaml.schemas": { |
|||
"https://raw.githubusercontent.com/dotnet/tye/master/src/schema/tye-schema.json": [ |
|||
"tye.yaml" |
|||
] |
|||
} |
|||
} |
|||
``` |
|||
@ -0,0 +1,258 @@ |
|||
{ |
|||
"$schema": "http://json-schema.org/draft-07/schema#", |
|||
"$id": "http://microsoft.com/dotnet/tye.schema.json", |
|||
"title": "Tye Configuration", |
|||
"description": "Configuration file schema for Tye.", |
|||
"type": "object", |
|||
"properties": { |
|||
"name": { |
|||
"description": "The application name.", |
|||
"type": "string" |
|||
}, |
|||
"registry": { |
|||
"description": "Dockerhub username or hostname of remote registry. Used for tagging images.", |
|||
"type": "string" |
|||
}, |
|||
"services": { |
|||
"description": "The application's services.", |
|||
"type": "array", |
|||
"minItems": 1, |
|||
"items": { |
|||
"type": "object", |
|||
"oneOf": [ |
|||
{ |
|||
"$ref": "#/definitions/executable" |
|||
}, |
|||
{ |
|||
"$ref": "#/definitions/external" |
|||
}, |
|||
{ |
|||
"$ref": "#/definitions/image" |
|||
}, |
|||
{ |
|||
"$ref": "#/definitions/project" |
|||
} |
|||
] |
|||
} |
|||
} |
|||
}, |
|||
"required": [ |
|||
"name", |
|||
"services" |
|||
], |
|||
"definitions": { |
|||
"binding": { |
|||
"anyOf": [ |
|||
{ |
|||
"type": "object", |
|||
"properties": { |
|||
"name": { |
|||
"description": "The binding name.", |
|||
"type": "string" |
|||
}, |
|||
"connectionString": { |
|||
"description": "The connection string.", |
|||
"type": "string" |
|||
} |
|||
}, |
|||
"additionalProperties": false |
|||
}, |
|||
{ |
|||
"type": "object", |
|||
"properties": { |
|||
"name": { |
|||
"description": "The binding name.", |
|||
"type": "string" |
|||
}, |
|||
"port": { |
|||
"description": "The binding port.", |
|||
"type": "integer" |
|||
}, |
|||
"host": { |
|||
"description": "The hostname for the binding.", |
|||
"type": "string" |
|||
}, |
|||
"protocol": { |
|||
"description": "The protocol used by the binding", |
|||
"type": "string" |
|||
} |
|||
}, |
|||
"additionalProperties": false |
|||
}, |
|||
{ |
|||
"type": "object", |
|||
"properties": { |
|||
"name": { |
|||
"description": "The binding name.", |
|||
"type": "string" |
|||
}, |
|||
"autoAssignPort": { |
|||
"description": "Whether to auto-assign a port value.", |
|||
"type": "boolean", |
|||
"default": false |
|||
}, |
|||
"protocol": { |
|||
"description": "The protocol used by the binding", |
|||
"type": "string" |
|||
} |
|||
}, |
|||
"additionalProperties": false |
|||
} |
|||
] |
|||
}, |
|||
"env-var": { |
|||
"type": "object", |
|||
"properties": { |
|||
"name" :{ |
|||
"description": "Environment variable name.", |
|||
"type": "string" |
|||
}, |
|||
"value": { |
|||
"description": "Environment variable value.", |
|||
"type": "string" |
|||
} |
|||
}, |
|||
"required": ["name", "value"], |
|||
"additionalProperties": false |
|||
}, |
|||
"executable": { |
|||
"type": "object", |
|||
"properties": { |
|||
"name": { |
|||
"description": "The service name. Must be unique per-application.", |
|||
"type": "string" |
|||
}, |
|||
"executable": { |
|||
"description": "The file path (or file name if on the system path) of an executable.", |
|||
"type": "string" |
|||
}, |
|||
"workingDirectory": { |
|||
"description": "The working directory to use when launching.", |
|||
"type": "string" |
|||
}, |
|||
"env": { |
|||
"description": "Environment variables to use when launching.", |
|||
"type" : "array", |
|||
"items": { |
|||
"$ref": "#/definitions/env-var" |
|||
} |
|||
}, |
|||
"args": { |
|||
"description": "Command-line arguments to use when launching.", |
|||
"type": "string" |
|||
}, |
|||
"replicas": { |
|||
"description": "Number of service replices to create.", |
|||
"type": "integer" |
|||
}, |
|||
"bindings": { |
|||
"description": "The bindings provided by the service.", |
|||
"type":"array", |
|||
"items": { |
|||
"$ref": "#/definitions/binding" |
|||
} |
|||
} |
|||
}, |
|||
"required": [ |
|||
"name", |
|||
"executable" |
|||
] |
|||
}, |
|||
"external": { |
|||
"properties": { |
|||
"name": { |
|||
"description": "The service name. Must be unique per-application.", |
|||
"type": "string" |
|||
}, |
|||
"external": { |
|||
"description": "Designates as service as external. External services will not be launched and can only provide bindings.", |
|||
"type": "boolean", |
|||
"const": true |
|||
} |
|||
}, |
|||
"additionalProperties": false |
|||
}, |
|||
"image": { |
|||
"type": "object", |
|||
"properties": { |
|||
"name": { |
|||
"description": "The service name. Must be unique per-application.", |
|||
"type": "string" |
|||
}, |
|||
"dockerImage": { |
|||
"description": "The name of a Docker image.", |
|||
"type": "string" |
|||
}, |
|||
"env": { |
|||
"description": "Environment variables to use when launching.", |
|||
"type" : "array", |
|||
"items": { |
|||
"$ref": "#/definitions/env-var" |
|||
} |
|||
}, |
|||
"args": { |
|||
"description": "Command-line arguments to use when launching.", |
|||
"type": "string" |
|||
}, |
|||
"replicas": { |
|||
"description": "Number of service replices to create.", |
|||
"type": "integer" |
|||
}, |
|||
"bindings": { |
|||
"description": "The bindings provided by the service.", |
|||
"type":"array", |
|||
"items": { |
|||
"$ref": "#/definitions/binding" |
|||
} |
|||
} |
|||
}, |
|||
"required": [ |
|||
"name", |
|||
"dockerImage" |
|||
] |
|||
}, |
|||
"project": { |
|||
"type": "object", |
|||
"properties": { |
|||
"name": { |
|||
"description": "The service name. Must be unique per-application.", |
|||
"type": "string" |
|||
}, |
|||
"project": { |
|||
"description": "The relative path to a .NET project file.", |
|||
"type": "string" |
|||
}, |
|||
"env": { |
|||
"description": "Environment variables to use when launching.", |
|||
"type" : "array", |
|||
"items": { |
|||
"$ref": "#/definitions/env-var" |
|||
} |
|||
}, |
|||
"args": { |
|||
"description": "Command-line arguments to use when launching.", |
|||
"type": "string" |
|||
}, |
|||
"build": { |
|||
"description": "Whether to build the project.", |
|||
"type": "boolean" |
|||
}, |
|||
"replicas": { |
|||
"description": "Number of service replices to create.", |
|||
"type": "integer" |
|||
}, |
|||
"bindings": { |
|||
"description": "The bindings provided by the service.", |
|||
"type":"array", |
|||
"items": { |
|||
"$ref": "#/definitions/binding" |
|||
} |
|||
} |
|||
}, |
|||
"required": [ |
|||
"name", |
|||
"project" |
|||
] |
|||
} |
|||
} |
|||
} |
|||
Loading…
Reference in new issue