{ "$comment": "This file was automatically generated, do not modify it by hand. Instead, modify the source Typescript file, and run `pnpm types build:catalog-schemas`.", "$id": "catalog-application.manifest.schema.json", "$schema": "http://json-schema.org/draft-07/schema#", "title": "Catalog application item manifest", "description": "Data model of a Catalog application item to apply", "type": "object", "properties": { "categoryId": { "description": "Identifier of the item's category", "type": "string" }, "description": { "description": "Brief description of the item", "type": "string" }, "documentation": { "description": "Documentation of the item", "properties": { "type": { "enum": [ "externalLink", "markdown" ], "type": "string" }, "url": { "type": "string" } }, "required": [ "type", "url" ], "type": "object" }, "imageUrl": { "description": "Url of the image associated with the item", "type": "string" }, "itemId": { "description": "RFC-1035 compliant identifier of the item. It forms a composite PK with tenantId and, if present, version.name", "minLength": 1, "pattern": "^[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?$", "type": "string" }, "lifecycleStatus": { "description": "Lifecycle status of the item", "enum": [ "coming-soon", "draft", "published", "maintenance", "deprecated", "archived" ], "type": "string" }, "name": { "description": "Human-readable name of the item", "minLength": 1, "type": "string" }, "providerId": { "description": "Identifier of the provider used to retrieve markdown documentation content and external resources, if supported by the item type", "type": "string" }, "publishOnMiaDocumentation": { "description": "Flag stating if the resource documentation should be published on Mia-Platform public documentation", "type": "boolean" }, "releaseDate": { "description": "Creation date of this item's release", "format": "date-time", "type": "string" }, "repositoryUrl": { "description": "URL of the repository containing the source code of the resource created by the item", "type": "string" }, "resources": { "additionalProperties": false, "properties": { "collections": { "description": "Collections to be created with the application. The key of each collection MUST be equal to the collection `defaultName` property. Collections only work if a Mia-Platform CRUD Service is already in the project or is created through the application itself.", "patternProperties": { "(^[\\w-]+$)": { "oneOf": [ { "additionalProperties": false, "properties": { "defaultName": { "maxLength": 80, "pattern": "(^[\\w-]+$)", "type": "string" }, "description": { "type": "string" }, "fields": { "items": { "oneOf": [ { "additionalProperties": false, "properties": { "description": { "type": "string" }, "encryptionEnabled": { "type": "boolean" }, "encryptionSearchable": { "type": "boolean" }, "name": { "pattern": "^[^$\\.]+$", "type": "string" }, "nullable": { "type": "boolean" }, "required": { "type": "boolean" }, "schema": { "additionalProperties": false, "properties": { "additionalProperties": { "type": "boolean" }, "encryption": { "properties": { "enabled": { "type": "boolean" }, "searchable": { "type": "boolean" } }, "type": "object" }, "properties": { "additionalProperties": true, "type": "object" }, "required": { "items": { "type": "string" }, "type": "array" }, "type": { "const": "object" } }, "type": "object" }, "sensitivityDescription": { "type": "string" }, "sensitivityValue": { "maximum": 4, "minimum": 0, "type": "number" }, "type": { "enum": [ "RawObject", "Array_RawObject" ], "type": "string" } }, "required": [ "name", "type", "required", "nullable" ], "type": "object" }, { "additionalProperties": false, "properties": { "description": { "type": "string" }, "encryptionEnabled": { "type": "boolean" }, "encryptionSearchable": { "type": "boolean" }, "name": { "pattern": "^[^$\\.]+$", "type": "string" }, "nullable": { "type": "boolean" }, "required": { "type": "boolean" }, "sensitivityDescription": { "type": "string" }, "sensitivityValue": { "maximum": 4, "minimum": 0, "type": "number" }, "type": { "enum": [ "ObjectId", "string", "Date", "boolean", "GeoPoint", "object", "number", "Array", "Array_string", "Array_number" ], "type": "string" } }, "required": [ "name", "type", "required", "nullable" ], "type": "object" } ] }, "type": "array" }, "id": { "type": "string" }, "indexes": { "type": "array", "items": { "oneOf": [ { "type": "object", "properties": { "name": { "type": "string", "pattern": "^[a-zA-Z_][\\w-]*$" }, "type": { "const": "normal" }, "unique": { "type": "boolean" }, "description": { "type": "string" }, "usePartialFilter": { "type": "boolean" }, "partialFilterExpression": { "type": "string" }, "fields": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "pattern": "^_?[ \\w-]+(\\.[\\w-]+|(\\.\\$\\*\\*))*$|^(\\$\\*\\*)$" }, "order": { "type": "number", "enum": [ 1, -1 ] } }, "required": [ "name", "order" ] } } }, "required": [ "name", "type", "unique", "fields" ] }, { "type": "object", "properties": { "name": { "type": "string", "pattern": "^[a-zA-Z_][\\w-]*$" }, "type": { "const": "geo" }, "unique": { "type": "boolean" }, "description": { "type": "string" }, "usePartialFilter": { "type": "boolean" }, "partialFilterExpression": { "type": "string" }, "fields": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "pattern": "^_?[ \\w-]+(\\.[\\w-]+|(\\.\\$\\*\\*))*$|^(\\$\\*\\*)$" }, "order": { "type": "number", "enum": [ 1, -1 ] } }, "required": [ "name", "order" ] } } }, "required": [ "name", "type", "unique", "fields" ] }, { "type": "object", "properties": { "name": { "type": "string", "pattern": "^[a-zA-Z_][\\w-]*$" }, "type": { "const": "hash" }, "unique": { "const": false }, "description": { "type": "string" }, "usePartialFilter": { "type": "boolean" }, "partialFilterExpression": { "type": "string" }, "fields": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "pattern": "^_?[ \\w-]+(\\.[\\w-]+|(\\.\\$\\*\\*))*$|^(\\$\\*\\*)$" }, "order": { "type": "number", "enum": [ 1, -1 ] } }, "required": [ "name", "order" ] } } }, "required": [ "name", "type", "unique", "fields" ] }, { "type": "object", "properties": { "name": { "type": "string", "pattern": "^[a-zA-Z_][\\w-]*$" }, "type": { "const": "ttl" }, "unique": { "type": "boolean" }, "description": { "type": "string" }, "usePartialFilter": { "type": "boolean" }, "partialFilterExpression": { "type": "string" }, "fields": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "pattern": "^_?[ \\w-]+(\\.[\\w-]+|(\\.\\$\\*\\*))*$|^(\\$\\*\\*)$" }, "order": { "type": "number", "enum": [ 1, -1 ] } }, "required": [ "name", "order" ] } }, "expireAfterSeconds": { "type": "number", "minimum": 1 } }, "required": [ "name", "type", "unique", "fields", "expireAfterSeconds" ] } ] } }, "internalEndpoints": { "items": { "additionalProperties": false, "properties": { "basePath": { "type": "string" }, "defaultState": { "type": "string", "enum": [ "DRAFT", "PUBLIC" ] } }, "required": [ "basePath" ], "type": "object" }, "maxItems": 1, "minItems": 1, "type": "array" }, "tags": { "items": { "type": "string" }, "type": "array" }, "type": { "const": "collection" } }, "required": [ "type", "defaultName", "internalEndpoints" ], "type": "object" }, { "additionalProperties": false, "properties": { "defaultName": { "maxLength": 80, "pattern": "(^[\\w-]+$)", "type": "string" }, "defaultPipeline": { "anyOf": [ { "type": "array", "items": { "type": "object", "additionalProperties": true } }, { "type": "string" } ], "deprecated": true }, "defaultSource": { "maxLength": 80, "pattern": "(^[\\w-]+$)", "type": "string", "deprecated": true }, "description": { "type": "string" }, "fields": { "items": { "oneOf": [ { "additionalProperties": false, "properties": { "description": { "type": "string" }, "encryptionEnabled": { "type": "boolean" }, "encryptionSearchable": { "type": "boolean" }, "name": { "pattern": "^[^$\\.]+$", "type": "string" }, "nullable": { "type": "boolean" }, "required": { "type": "boolean" }, "schema": { "additionalProperties": false, "properties": { "additionalProperties": { "type": "boolean" }, "encryption": { "properties": { "enabled": { "type": "boolean" }, "searchable": { "type": "boolean" } }, "type": "object" }, "properties": { "additionalProperties": true, "type": "object" }, "required": { "items": { "type": "string" }, "type": "array" }, "type": { "const": "object" } }, "type": "object" }, "sensitivityDescription": { "type": "string" }, "sensitivityValue": { "maximum": 4, "minimum": 0, "type": "number" }, "type": { "enum": [ "RawObject", "Array_RawObject" ], "type": "string" } }, "required": [ "name", "type", "required", "nullable" ], "type": "object" }, { "additionalProperties": false, "properties": { "description": { "type": "string" }, "encryptionEnabled": { "type": "boolean" }, "encryptionSearchable": { "type": "boolean" }, "name": { "pattern": "^[^$\\.]+$", "type": "string" }, "nullable": { "type": "boolean" }, "required": { "type": "boolean" }, "sensitivityDescription": { "type": "string" }, "sensitivityValue": { "maximum": 4, "minimum": 0, "type": "number" }, "type": { "enum": [ "ObjectId", "string", "Date", "boolean", "GeoPoint", "object", "number", "Array", "Array_string", "Array_number" ], "type": "string" } }, "required": [ "name", "type", "required", "nullable" ], "type": "object" } ] }, "type": "array" }, "id": { "type": "string" }, "indexes": { "type": "array", "items": { "oneOf": [ { "type": "object", "properties": { "name": { "type": "string", "pattern": "^[a-zA-Z_][\\w-]*$" }, "type": { "const": "normal" }, "unique": { "type": "boolean" }, "description": { "type": "string" }, "usePartialFilter": { "type": "boolean" }, "partialFilterExpression": { "type": "string" }, "fields": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "pattern": "^_?[ \\w-]+(\\.[\\w-]+|(\\.\\$\\*\\*))*$|^(\\$\\*\\*)$" }, "order": { "type": "number", "enum": [ 1, -1 ] } }, "required": [ "name", "order" ] } } }, "required": [ "name", "type", "unique", "fields" ] }, { "type": "object", "properties": { "name": { "type": "string", "pattern": "^[a-zA-Z_][\\w-]*$" }, "type": { "const": "geo" }, "unique": { "type": "boolean" }, "description": { "type": "string" }, "usePartialFilter": { "type": "boolean" }, "partialFilterExpression": { "type": "string" }, "fields": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "pattern": "^_?[ \\w-]+(\\.[\\w-]+|(\\.\\$\\*\\*))*$|^(\\$\\*\\*)$" }, "order": { "type": "number", "enum": [ 1, -1 ] } }, "required": [ "name", "order" ] } } }, "required": [ "name", "type", "unique", "fields" ] }, { "type": "object", "properties": { "name": { "type": "string", "pattern": "^[a-zA-Z_][\\w-]*$" }, "type": { "const": "hash" }, "unique": { "const": false }, "description": { "type": "string" }, "usePartialFilter": { "type": "boolean" }, "partialFilterExpression": { "type": "string" }, "fields": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "pattern": "^_?[ \\w-]+(\\.[\\w-]+|(\\.\\$\\*\\*))*$|^(\\$\\*\\*)$" }, "order": { "type": "number", "enum": [ 1, -1 ] } }, "required": [ "name", "order" ] } } }, "required": [ "name", "type", "unique", "fields" ] }, { "type": "object", "properties": { "name": { "type": "string", "pattern": "^[a-zA-Z_][\\w-]*$" }, "type": { "const": "ttl" }, "unique": { "type": "boolean" }, "description": { "type": "string" }, "usePartialFilter": { "type": "boolean" }, "partialFilterExpression": { "type": "string" }, "fields": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "pattern": "^_?[ \\w-]+(\\.[\\w-]+|(\\.\\$\\*\\*))*$|^(\\$\\*\\*)$" }, "order": { "type": "number", "enum": [ 1, -1 ] } }, "required": [ "name", "order" ] } }, "expireAfterSeconds": { "type": "number", "minimum": 1 } }, "required": [ "name", "type", "unique", "fields", "expireAfterSeconds" ] } ] } }, "internalEndpoints": { "items": { "additionalProperties": false, "properties": { "basePath": { "type": "string" }, "defaultState": { "type": "string", "enum": [ "DRAFT", "PUBLIC" ] } }, "required": [ "basePath" ], "type": "object" }, "maxItems": 1, "minItems": 1, "type": "array" }, "tags": { "items": { "type": "string" }, "type": "array" }, "type": { "const": "view" } }, "required": [ "type", "defaultName", "internalEndpoints" ], "type": "object" } ] } }, "additionalProperties": false, "type": "object" }, "endpoints": { "description": "Endpoints to be created with the application. The key of each endpoint MUST be equal to the endpoint `defaultBasePath` property. Endpoints only work if a Mia-Platform API Gateway is already in the project or is created through the application itself.", "patternProperties": { "^(\\/$|(\\/([\\w\\-\\.]|(:[a-zA-Z]))[\\w\\-\\.]*)+)$": { "oneOf": [ { "additionalProperties": false, "properties": { "acl": { "type": "string" }, "allowUnknownRequestContentType": { "default": false, "type": "boolean" }, "allowUnknownResponseContentType": { "default": false, "type": "boolean" }, "backofficeAcl": { "default": { "inherited": true }, "oneOf": [ { "additionalProperties": false, "properties": { "inherited": { "const": false }, "value": { "type": "string" } }, "required": [ "inherited" ], "type": "object" }, { "additionalProperties": false, "properties": { "inherited": { "const": true } }, "required": [ "inherited" ], "type": "object" } ] }, "defaultBasePath": { "pattern": "^(\\/$|(\\/([\\w\\-\\.]|(:[a-zA-Z]))[\\w\\-\\.]*)+)$", "type": "string" }, "defaultPathRewrite": { "type": "string" }, "description": { "type": "string" }, "forceMicroserviceGatewayProxy": { "default": false, "type": "boolean" }, "listeners": { "additionalProperties": { "type": "boolean" }, "type": "object" }, "options": { "type": "object", "properties": { "iframePolicy": { "type": "string", "enum": [ "all", "deny", "sameorigin" ] } } }, "port": { "minLength": 1, "pattern": "^$|^((\\{\\{([A-Z])([A-Z0-9_]*)\\}\\})|([1-9]\\d*|0))$", "type": "string" }, "public": { "type": "boolean" }, "routes": { "additionalProperties": false, "patternProperties": { "^(GET|POST|PUT|PATCH|DELETE|HEAD)(\\/$|(\\/([\\w\\-\\.]|(:[a-zA-Z]))[\\w\\-\\.]*\\/?)+)$": { "additionalProperties": false, "properties": { "acl": { "default": { "inherited": true }, "oneOf": [ { "additionalProperties": false, "properties": { "inherited": { "const": false }, "value": { "type": "string" } }, "required": [ "inherited" ], "type": "object" }, { "additionalProperties": false, "properties": { "inherited": { "const": true } }, "required": [ "inherited" ], "type": "object" } ] }, "allowUnknownRequestContentType": { "default": { "inherited": true }, "oneOf": [ { "additionalProperties": false, "properties": { "inherited": { "const": false }, "value": { "type": "boolean" } }, "required": [ "inherited", "value" ], "type": "object" }, { "additionalProperties": false, "properties": { "inherited": { "const": true } }, "required": [ "inherited" ], "type": "object" } ] }, "allowUnknownResponseContentType": { "default": { "inherited": true }, "oneOf": [ { "additionalProperties": false, "properties": { "inherited": { "const": false }, "value": { "type": "boolean" } }, "required": [ "inherited", "value" ], "type": "object" }, { "additionalProperties": false, "properties": { "inherited": { "const": true } }, "required": [ "inherited" ], "type": "object" } ] }, "backofficeAcl": { "default": { "inherited": true }, "oneOf": [ { "additionalProperties": false, "properties": { "inherited": { "const": false }, "value": { "type": "string" } }, "required": [ "inherited" ], "type": "object" }, { "additionalProperties": false, "properties": { "inherited": { "const": true } }, "required": [ "inherited" ], "type": "object" } ] }, "catchDecorator": { "type": "string" }, "id": { "pattern": "^(GET|POST|PUT|PATCH|DELETE|HEAD)(\\/$|(\\/([\\w\\-\\.]|(:[a-zA-Z]))[\\w\\-\\.]*\\/?)+)$", "type": "string" }, "path": { "pattern": "^(\\/$|(\\/([\\w\\-\\.]|(:[a-zA-Z]))[\\w\\-\\.]*\\/?)+)$", "type": "string" }, "postDecorators": { "default": [], "items": { "type": "string" }, "type": "array" }, "preDecorators": { "default": [], "items": { "type": "string" }, "type": "array" }, "public": { "default": { "inherited": true }, "oneOf": [ { "additionalProperties": false, "properties": { "inherited": { "const": false }, "value": { "type": "boolean" } }, "required": [ "inherited", "value" ], "type": "object" }, { "additionalProperties": false, "properties": { "inherited": { "const": true } }, "required": [ "inherited" ], "type": "object" } ] }, "rateLimit": { "additionalProperties": false, "properties": { "inherited": { "type": "boolean" } }, "required": [ "inherited" ], "type": "object" }, "schema": { "type": "object" }, "secreted": { "default": { "inherited": true }, "oneOf": [ { "additionalProperties": false, "properties": { "inherited": { "const": false }, "value": { "type": "boolean" } }, "required": [ "inherited", "value" ], "type": "object" }, { "additionalProperties": false, "properties": { "inherited": { "const": true } }, "required": [ "inherited" ], "type": "object" } ] }, "showInDocumentation": { "default": { "inherited": true }, "oneOf": [ { "additionalProperties": false, "properties": { "inherited": { "const": false }, "value": { "type": "boolean" } }, "required": [ "inherited", "value" ], "type": "object" }, { "additionalProperties": false, "properties": { "inherited": { "const": true } }, "required": [ "inherited" ], "type": "object" } ] }, "verb": { "enum": [ "GET", "POST", "PUT", "PATCH", "DELETE", "HEAD" ], "type": "string" } }, "required": [ "id", "path", "verb", "public", "secreted", "acl", "showInDocumentation", "allowUnknownRequestContentType", "allowUnknownResponseContentType" ], "type": "object" } }, "type": "object" }, "secreted": { "type": "boolean" }, "service": { "minLength": 1, "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$", "type": "string" }, "showInDocumentation": { "type": "boolean" }, "tags": { "items": { "type": "string" }, "type": "array" }, "type": { "enum": [ "external", "custom", "cross-projects" ], "type": "string" }, "useDownstreamProtocol": { "type": "boolean" } }, "required": [ "type", "defaultBasePath", "service", "tags" ], "type": "object" }, { "additionalProperties": false, "properties": { "acl": { "type": "string" }, "allowUnknownRequestContentType": { "default": false, "type": "boolean" }, "allowUnknownResponseContentType": { "default": false, "type": "boolean" }, "backofficeAcl": { "default": { "inherited": true }, "oneOf": [ { "additionalProperties": false, "properties": { "inherited": { "const": false }, "value": { "type": "string" } }, "required": [ "inherited" ], "type": "object" }, { "additionalProperties": false, "properties": { "inherited": { "const": true } }, "required": [ "inherited" ], "type": "object" } ] }, "collectionId": { "maxLength": 80, "pattern": "(^[\\w-]+$)", "type": "string" }, "defaultBasePath": { "pattern": "^(\\/$|(\\/([\\w\\-\\.]|(:[a-zA-Z]))[\\w\\-\\.]*)+)$", "type": "string" }, "defaultPathRewrite": { "type": "string" }, "description": { "type": "string" }, "forceMicroserviceGatewayProxy": { "default": false, "type": "boolean" }, "listeners": { "additionalProperties": { "type": "boolean" }, "type": "object" }, "pathName": { "type": "string", "pattern": "^\\/(([\\w\\-:])\\/?)*$" }, "options": { "type": "object", "properties": { "iframePolicy": { "type": "string", "enum": [ "all", "deny", "sameorigin" ] } } }, "public": { "type": "boolean" }, "routes": { "additionalProperties": false, "patternProperties": { "^(GET|POST|PUT|PATCH|DELETE|HEAD)(\\/$|(\\/([\\w\\-\\.]|(:[a-zA-Z]))[\\w\\-\\.]*\\/?)+)$": { "additionalProperties": false, "properties": { "acl": { "default": { "inherited": true }, "oneOf": [ { "additionalProperties": false, "properties": { "inherited": { "const": false }, "value": { "type": "string" } }, "required": [ "inherited" ], "type": "object" }, { "additionalProperties": false, "properties": { "inherited": { "const": true } }, "required": [ "inherited" ], "type": "object" } ] }, "allowUnknownRequestContentType": { "default": { "inherited": true }, "oneOf": [ { "additionalProperties": false, "properties": { "inherited": { "const": false }, "value": { "type": "boolean" } }, "required": [ "inherited", "value" ], "type": "object" }, { "additionalProperties": false, "properties": { "inherited": { "const": true } }, "required": [ "inherited" ], "type": "object" } ] }, "allowUnknownResponseContentType": { "default": { "inherited": true }, "oneOf": [ { "additionalProperties": false, "properties": { "inherited": { "const": false }, "value": { "type": "boolean" } }, "required": [ "inherited", "value" ], "type": "object" }, { "additionalProperties": false, "properties": { "inherited": { "const": true } }, "required": [ "inherited" ], "type": "object" } ] }, "backofficeAcl": { "default": { "inherited": true }, "oneOf": [ { "additionalProperties": false, "properties": { "inherited": { "const": false }, "value": { "type": "string" } }, "required": [ "inherited" ], "type": "object" }, { "additionalProperties": false, "properties": { "inherited": { "const": true } }, "required": [ "inherited" ], "type": "object" } ] }, "catchDecorator": { "type": "string" }, "id": { "pattern": "^(GET|POST|PUT|PATCH|DELETE|HEAD)(\\/$|(\\/([\\w\\-\\.]|(:[a-zA-Z]))[\\w\\-\\.]*\\/?)+)$", "type": "string" }, "path": { "pattern": "^(\\/$|(\\/([\\w\\-\\.]|(:[a-zA-Z]))[\\w\\-\\.]*\\/?)+)$", "type": "string" }, "postDecorators": { "default": [], "items": { "type": "string" }, "type": "array" }, "preDecorators": { "default": [], "items": { "type": "string" }, "type": "array" }, "public": { "default": { "inherited": true }, "oneOf": [ { "additionalProperties": false, "properties": { "inherited": { "const": false }, "value": { "type": "boolean" } }, "required": [ "inherited", "value" ], "type": "object" }, { "additionalProperties": false, "properties": { "inherited": { "const": true } }, "required": [ "inherited" ], "type": "object" } ] }, "rateLimit": { "additionalProperties": false, "properties": { "inherited": { "type": "boolean" } }, "required": [ "inherited" ], "type": "object" }, "schema": { "type": "object" }, "secreted": { "default": { "inherited": true }, "oneOf": [ { "additionalProperties": false, "properties": { "inherited": { "const": false }, "value": { "type": "boolean" } }, "required": [ "inherited", "value" ], "type": "object" }, { "additionalProperties": false, "properties": { "inherited": { "const": true } }, "required": [ "inherited" ], "type": "object" } ] }, "showInDocumentation": { "default": { "inherited": true }, "oneOf": [ { "additionalProperties": false, "properties": { "inherited": { "const": false }, "value": { "type": "boolean" } }, "required": [ "inherited", "value" ], "type": "object" }, { "additionalProperties": false, "properties": { "inherited": { "const": true } }, "required": [ "inherited" ], "type": "object" } ] }, "verb": { "enum": [ "GET", "POST", "PUT", "PATCH", "DELETE", "HEAD" ], "type": "string" } }, "required": [ "id", "path", "verb", "public", "secreted", "acl", "showInDocumentation", "allowUnknownRequestContentType", "allowUnknownResponseContentType" ], "type": "object" } }, "type": "object" }, "secreted": { "type": "boolean" }, "showInDocumentation": { "type": "boolean" }, "tags": { "items": { "type": "string" }, "type": "array" }, "type": { "enum": [ "crud", "view" ], "type": "string" } }, "required": [ "type", "defaultBasePath", "collectionId", "tags" ], "type": "object" } ] } }, "additionalProperties": false, "type": "object" }, "listeners": { "additionalProperties": { "additionalProperties": false, "properties": { "description": { "type": "string" }, "name": { "type": "string" }, "ownedBy": { "additionalProperties": false, "properties": { "componentIds": { "items": { "type": "string" }, "type": "array" } }, "required": [ "componentIds" ], "type": "object" }, "port": { "minLength": 1, "pattern": "^$|^((\\{\\{([A-Z])([A-Z0-9_]*)\\}\\})|([1-9]\\d*|0))$", "type": "string" }, "selectedByDefault": { "type": "boolean" } }, "required": [ "name", "port" ], "type": "object" }, "type": "object" }, "services": { "description": "Services to be created with the application. The key of each service MUST be equal to the service `name` property", "patternProperties": { "^[a-z]([-a-z0-9]*[a-z0-9])?$": { "oneOf": [ { "additionalProperties": false, "properties": { "args": { "items": { "type": "string" }, "type": "array" }, "additionalContainers": { "items": { "additionalProperties": false, "properties": { "args": { "items": { "type": "string" }, "type": "array" }, "componentId": { "type": "string" }, "containerPorts": { "items": { "additionalProperties": false, "properties": { "from": { "oneOf": [ { "type": "integer", "minimum": 0, "maximum": 65535 }, { "pattern": "^$|^((\\{\\{([A-Z])([A-Z0-9_]*)\\}\\})|([1-9]\\d*|0))$", "type": "string" } ] }, "name": { "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$", "type": "string" }, "protocol": { "default": "TCP", "enum": [ "TCP", "UDP" ], "type": "string" }, "to": { "oneOf": [ { "type": "integer", "minimum": 0, "maximum": 65535 }, { "pattern": "^$|^((\\{\\{([A-Z])([A-Z0-9_]*)\\}\\})|([1-9]\\d*|0))$", "type": "string" } ] } }, "required": [ "name", "from" ], "type": "object" }, "type": "array" }, "defaultArgs": { "items": { "type": "string" }, "type": "array" }, "defaultEnvironmentVariables": { "items": { "oneOf": [ { "additionalProperties": false, "properties": { "name": { "description": "The variable name (generally, a key written in UPPER_SNAKE_CASE)", "minLength": 1, "type": "string" }, "description": { "description": "A brief description of the variable", "type": "string" }, "managedBy": { "description": "A string that represents the Console section that manages the variable. It only works used in combination with the `readOnly` property set to `true`", "type": "string", "enum": [ "fast-data" ] }, "readOnly": { "description": "A boolean that represents if you can change the value of the variable through the Console", "type": "boolean" }, "value": { "description": "The variable default value. It can contain placeholders that will be replaced with the actual values when the service is created", "type": "string" }, "valueType": { "const": "plain" } }, "required": [ "name", "valueType" ], "type": "object" } ] }, "type": "array" }, "defaultProbes": { "description": "The readiness, liveness, and startup paths of the service. By modifying the map of the probes, you can overwrite the default paths applied by the Console", "additionalProperties": false, "properties": { "liveness": { "oneOf": [ { "additionalProperties": false, "properties": { "cmd": { "items": { "type": "string" }, "type": "array" }, "failureThreshold": { "type": "number" }, "initialDelaySeconds": { "type": "number" }, "periodSeconds": { "type": "number" }, "successThreshold": { "type": "number" }, "timeoutSeconds": { "type": "number" } }, "required": [ "cmd" ], "type": "object" }, { "additionalProperties": false, "properties": { "failureThreshold": { "type": "number" }, "initialDelaySeconds": { "type": "number" }, "periodSeconds": { "type": "number" }, "port": { "type": "string" }, "successThreshold": { "type": "number" }, "timeoutSeconds": { "type": "number" } }, "type": "object" }, { "additionalProperties": false, "properties": { "failureThreshold": { "type": "number" }, "initialDelaySeconds": { "type": "number" }, "path": { "pattern": "^\\/(([\\w\\-:.\\{\\}])\\/?)*$|^$", "type": "string" }, "periodSeconds": { "type": "number" }, "port": { "type": "string" }, "successThreshold": { "type": "number" }, "timeoutSeconds": { "type": "number" } }, "required": [ "path" ], "type": "object" } ] }, "readiness": { "oneOf": [ { "additionalProperties": false, "properties": { "cmd": { "items": { "type": "string" }, "type": "array" }, "failureThreshold": { "type": "number" }, "initialDelaySeconds": { "type": "number" }, "periodSeconds": { "type": "number" }, "successThreshold": { "type": "number" }, "timeoutSeconds": { "type": "number" } }, "required": [ "cmd" ], "type": "object" }, { "additionalProperties": false, "properties": { "failureThreshold": { "type": "number" }, "initialDelaySeconds": { "type": "number" }, "periodSeconds": { "type": "number" }, "port": { "type": "string" }, "successThreshold": { "type": "number" }, "timeoutSeconds": { "type": "number" } }, "type": "object" }, { "additionalProperties": false, "properties": { "failureThreshold": { "type": "number" }, "initialDelaySeconds": { "type": "number" }, "path": { "pattern": "^\\/(([\\w\\-:.\\{\\}])\\/?)*$|^$", "type": "string" }, "periodSeconds": { "type": "number" }, "port": { "type": "string" }, "successThreshold": { "type": "number" }, "timeoutSeconds": { "type": "number" } }, "required": [ "path" ], "type": "object" } ] }, "startup": { "oneOf": [ { "additionalProperties": false, "properties": { "cmd": { "items": { "type": "string" }, "type": "array" }, "failureThreshold": { "type": "number" }, "initialDelaySeconds": { "type": "number" }, "periodSeconds": { "type": "number" }, "successThreshold": { "type": "number" }, "timeoutSeconds": { "type": "number" } }, "required": [ "cmd" ], "type": "object" }, { "additionalProperties": false, "properties": { "failureThreshold": { "type": "number" }, "initialDelaySeconds": { "type": "number" }, "periodSeconds": { "type": "number" }, "port": { "type": "string" }, "successThreshold": { "type": "number" }, "timeoutSeconds": { "type": "number" } }, "type": "object" }, { "additionalProperties": false, "properties": { "failureThreshold": { "type": "number" }, "initialDelaySeconds": { "type": "number" }, "path": { "pattern": "^\\/(([\\w\\-:.\\{\\}])\\/?)*$|^$", "type": "string" }, "periodSeconds": { "type": "number" }, "port": { "type": "string" }, "successThreshold": { "type": "number" }, "timeoutSeconds": { "type": "number" } }, "required": [ "path" ], "type": "object" } ] } }, "type": "object" }, "defaultResources": { "description": "CPU and memory limitations of the service, which can be used to overwrite the default limitations imposed by the Console for these parameters", "additionalProperties": false, "properties": { "cpuLimits": { "additionalProperties": false, "properties": { "max": { "pattern": "(^((\\{\\{([A-Z])([A-Z0-9_]*)\\}\\})|(\\d+))m$)|^$", "type": "string" }, "min": { "pattern": "(^((\\{\\{([A-Z])([A-Z0-9_]*)\\}\\})|(\\d+))m$)|^$", "type": "string" } }, "type": "object" }, "memoryLimits": { "additionalProperties": false, "properties": { "max": { "pattern": "(^((\\{\\{([A-Z])([A-Z0-9_]*)\\}\\})|(\\d+))Mi$)|^$", "type": "string" }, "min": { "pattern": "(^((\\{\\{([A-Z])([A-Z0-9_]*)\\}\\})|(\\d+))Mi$)|^$", "type": "string" } }, "type": "object" } }, "type": "object" }, "description": { "type": "string" }, "dockerImage": { "pattern": "^(?:[a-z0-9.\\-\\/:]+\\/)?([\\w.}{\\-\\/]+)(:[\\w.}{\\-]+)?$", "type": "string" }, "name": { "minLength": 1, "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$", "type": "string" } }, "required": [ "name", "dockerImage" ], "type": "object" }, "type": "array" }, "componentId": { "type": "string" }, "containerPorts": { "items": { "additionalProperties": false, "properties": { "from": { "oneOf": [ { "type": "integer", "minimum": 0, "maximum": 65535 }, { "pattern": "^$|^((\\{\\{([A-Z])([A-Z0-9_]*)\\}\\})|([1-9]\\d*|0))$", "type": "string" } ] }, "name": { "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$", "type": "string" }, "protocol": { "default": "TCP", "enum": [ "TCP", "UDP" ], "type": "string" }, "to": { "oneOf": [ { "type": "integer", "minimum": 0, "maximum": 65535 }, { "pattern": "^$|^((\\{\\{([A-Z])([A-Z0-9_]*)\\}\\})|([1-9]\\d*|0))$", "type": "string" } ] } }, "required": [ "name", "from" ], "type": "object" }, "type": "array" }, "defaultAnnotations": { "description": "The service annotations, which can be used to provide additional information about your services for various purposes. Annotations starting with `mia-platform.eu` are reserved", "items": { "additionalProperties": false, "properties": { "description": { "type": "string" }, "name": { "pattern": "^([a-zA-Z0-9][a-zA-Z0-9\\.\\-]{0,253}[\\/])?([a-zA-Z0-9][a-zA-Z0-9\\.\\-]{0,63}[a-zA-Z0-9]?)$", "type": "string" }, "readOnly": { "type": "boolean" }, "value": { "type": "string" } }, "required": [ "name", "value" ], "type": "object" }, "type": "array" }, "defaultArgs": { "items": { "type": "string" }, "type": "array" }, "defaultConfigMaps": { "description": "The default ConfigMaps, if any, that will be mounted inside the container of the microservice", "items": { "additionalProperties": false, "properties": { "files": { "items": { "properties": { "content": { "type": "string" }, "name": { "type": "string" } }, "required": [ "name", "content" ], "type": "object" }, "type": "array" }, "link": { "properties": { "targetSection": { "type": "string" } }, "type": "object" }, "mountPath": { "pattern": "^[a-zA-Z0-9-/_\\s.|\\\\!\"£$%&()=?^\"{}[\\]*+@]+$", "type": "string" }, "name": { "pattern": "^[a-z][a-z0-9]*(-[a-z0-9]+)*$", "type": "string" }, "subPaths": { "type": "array", "items": { "type": "string" } }, "usePreserve": { "type": "boolean" }, "viewAsReadOnly": { "type": "boolean" } }, "required": [ "name", "files", "mountPath" ], "type": "object" }, "type": "array" }, "defaultDocumentationPath": { "description": "The APIs documentation path", "pattern": "^$|^(\\/$|(\\/([\\w\\-\\.]|(:[a-zA-Z]))[\\w\\-\\.]*)+)$", "type": "string" }, "defaultEnvironmentVariables": { "description": "The environment variables that will overwrite the default environment variables applied by the Console", "items": { "oneOf": [ { "additionalProperties": false, "properties": { "name": { "description": "The variable name (generally, a key written in UPPER_SNAKE_CASE)", "minLength": 1, "type": "string" }, "description": { "description": "A brief description of the variable", "type": "string" }, "managedBy": { "description": "A string that represents the Console section that manages the variable. It only works used in combination with the `readOnly` property set to `true`", "type": "string", "enum": [ "fast-data" ] }, "readOnly": { "description": "A boolean that represents if you can change the value of the variable through the Console", "type": "boolean" }, "value": { "description": "The variable default value. It can contain placeholders that will be replaced with the actual values when the service is created", "type": "string" }, "valueType": { "const": "plain" } }, "required": [ "name", "valueType" ], "type": "object" }, { "additionalProperties": false, "properties": { "name": { "description": "The variable name (generally, a key written in UPPER_SNAKE_CASE)", "minLength": 1, "type": "string" }, "description": { "description": "A brief description of the variable", "type": "string" }, "managedBy": { "description": "A string that represents the Console section that manages the variable. It only works used in combination with the `readOnly` property set to `true`", "type": "string", "enum": [ "fast-data" ] }, "readOnly": { "description": "A boolean that represents if you can change the value of the variable through the Console", "type": "boolean" }, "configMapName": { "pattern": "^[a-z][a-z0-9]*(-[a-z0-9]+)*$", "type": "string" }, "configMapFileName": { "pattern": "^[-._a-zA-Z0-9]+$", "type": "string" }, "valueType": { "const": "configmap" } }, "required": [ "name", "valueType", "secretName", "secretKey" ], "type": "object" }, { "additionalProperties": false, "properties": { "name": { "description": "The variable name (generally, a key written in UPPER_SNAKE_CASE)", "minLength": 1, "type": "string" }, "description": { "description": "A brief description of the variable", "type": "string" }, "managedBy": { "description": "A string that represents the Console section that manages the variable. It only works used in combination with the `readOnly` property set to `true`", "type": "string", "enum": [ "fast-data" ] }, "readOnly": { "description": "A boolean that represents if you can change the value of the variable through the Console", "type": "boolean" }, "secretKey": { "pattern": "^((\\{\\{([A-Z])([A-Z0-9_]*)\\}\\})|[a-zA-Z0-9-_.]*)$", "type": "string" }, "secretName": { "pattern": "^[a-z][a-z0-9]*(-[a-z0-9]+)*$", "type": "string" }, "valueType": { "const": "secret" } }, "required": [ "name", "valueType", "secretName", "secretKey" ], "type": "object" }, { "oneOf": [ { "additionalProperties": false, "properties": { "name": { "description": "The variable name (generally, a key written in UPPER_SNAKE_CASE)", "minLength": 1, "type": "string" }, "description": { "description": "A brief description of the variable", "type": "string" }, "managedBy": { "description": "A string that represents the Console section that manages the variable. It only works used in combination with the `readOnly` property set to `true`", "type": "string", "enum": [ "fast-data" ] }, "readOnly": { "description": "A boolean that represents if you can change the value of the variable through the Console", "type": "boolean" }, "fieldPath": { "description": "The field path of the Downward API that contains the value of the variable", "oneOf": [ { "type": "string", "enum": [ "metadata.name", "metadata.namespace", "metadata.uid", "spec.serviceAccountName", "spec.nodeName", "status.hostIP", "status.podIP", "status.podIPs" ] }, { "type": "string", "pattern": "^metadata.annotations\\['([a-zA-Z0-9][a-zA-Z0-9\\.\\-]{0,253}[\\/])?([a-zA-Z0-9][a-zA-Z0-9\\.\\-]{0,63}[a-zA-Z0-9]?)'\\]$" }, { "type": "string", "pattern": "^metadata.labels\\['([a-zA-Z0-9][a-zA-Z0-9\\.\\-]{0,253}[\\/])?([a-zA-Z0-9][a-zA-Z0-9\\.\\-]{0,63}[a-zA-Z0-9]?)'\\]$" } ] }, "valueType": { "const": "downwardAPI" } }, "required": [ "fieldPath", "name", "valueType" ], "type": "object" }, { "additionalProperties": false, "properties": { "name": { "description": "The variable name (generally, a key written in UPPER_SNAKE_CASE)", "minLength": 1, "type": "string" }, "description": { "description": "A brief description of the variable", "type": "string" }, "managedBy": { "description": "A string that represents the Console section that manages the variable. It only works used in combination with the `readOnly` property set to `true`", "type": "string", "enum": [ "fast-data" ] }, "readOnly": { "description": "A boolean that represents if you can change the value of the variable through the Console", "type": "boolean" }, "fieldPath": { "type": "string", "enum": [ "resource.limits.cpu", "resource.requests.cpu", "resource.limits.memory", "resource.requests.memory", "resource.limits.ephemeral-storage", "resource.requests.ephemeral-storage" ] }, "valueType": { "const": "downwardAPI" }, "containerName": { "description": "The name of the container where the field is located", "type": "string" } }, "required": [ "fieldPath", "name", "valueType", "containerName" ], "type": "object" } ] } ] }, "type": "array" }, "defaultLabels": { "description": "The service labels, which can be used to categorize, group, and select your service. Labels starting with \"mia-platform.eu\" are reserved", "items": { "additionalProperties": false, "properties": { "description": { "type": "string" }, "name": { "pattern": "^([a-zA-Z0-9][a-zA-Z0-9\\.\\-]{0,253}[\\/])?([a-zA-Z0-9][a-zA-Z0-9\\.\\-]{0,63}[a-zA-Z0-9]?)$", "type": "string" }, "readOnly": { "type": "boolean" }, "value": { "type": "string" } }, "required": [ "name", "value" ], "type": "object" }, "type": "array" }, "defaultLogParser": { "enum": [ "mia-plain", "mia-json", "mia-nginx" ], "type": "string" }, "defaultMonitoring": { "additionalProperties": false, "properties": { "endpoints": { "items": { "additionalProperties": false, "properties": { "interval": { "type": "string", "pattern": "^(\\d)+[s]$" }, "path": { "type": "string", "pattern": "^\\/(([\\w-])\\/?)*$" }, "port": { "type": "string" } }, "required": [ "interval", "path", "port" ], "type": "object" }, "type": "array" } }, "type": "object" }, "defaultProbes": { "description": "The readiness, liveness, and startup paths of the service. By modifying the map of the probes, you can overwrite the default paths applied by the Console", "additionalProperties": false, "properties": { "liveness": { "oneOf": [ { "additionalProperties": false, "properties": { "cmd": { "items": { "type": "string" }, "type": "array" }, "failureThreshold": { "type": "number" }, "initialDelaySeconds": { "type": "number" }, "periodSeconds": { "type": "number" }, "successThreshold": { "type": "number" }, "timeoutSeconds": { "type": "number" } }, "required": [ "cmd" ], "type": "object" }, { "additionalProperties": false, "properties": { "failureThreshold": { "type": "number" }, "initialDelaySeconds": { "type": "number" }, "periodSeconds": { "type": "number" }, "port": { "type": "string" }, "successThreshold": { "type": "number" }, "timeoutSeconds": { "type": "number" } }, "type": "object" }, { "additionalProperties": false, "properties": { "failureThreshold": { "type": "number" }, "initialDelaySeconds": { "type": "number" }, "path": { "pattern": "^\\/(([\\w\\-:.\\{\\}])\\/?)*$|^$", "type": "string" }, "periodSeconds": { "type": "number" }, "port": { "type": "string" }, "successThreshold": { "type": "number" }, "timeoutSeconds": { "type": "number" } }, "required": [ "path" ], "type": "object" } ] }, "readiness": { "oneOf": [ { "additionalProperties": false, "properties": { "cmd": { "items": { "type": "string" }, "type": "array" }, "failureThreshold": { "type": "number" }, "initialDelaySeconds": { "type": "number" }, "periodSeconds": { "type": "number" }, "successThreshold": { "type": "number" }, "timeoutSeconds": { "type": "number" } }, "required": [ "cmd" ], "type": "object" }, { "additionalProperties": false, "properties": { "failureThreshold": { "type": "number" }, "initialDelaySeconds": { "type": "number" }, "periodSeconds": { "type": "number" }, "port": { "type": "string" }, "successThreshold": { "type": "number" }, "timeoutSeconds": { "type": "number" } }, "type": "object" }, { "additionalProperties": false, "properties": { "failureThreshold": { "type": "number" }, "initialDelaySeconds": { "type": "number" }, "path": { "pattern": "^\\/(([\\w\\-:.\\{\\}])\\/?)*$|^$", "type": "string" }, "periodSeconds": { "type": "number" }, "port": { "type": "string" }, "successThreshold": { "type": "number" }, "timeoutSeconds": { "type": "number" } }, "required": [ "path" ], "type": "object" } ] }, "startup": { "oneOf": [ { "additionalProperties": false, "properties": { "cmd": { "items": { "type": "string" }, "type": "array" }, "failureThreshold": { "type": "number" }, "initialDelaySeconds": { "type": "number" }, "periodSeconds": { "type": "number" }, "successThreshold": { "type": "number" }, "timeoutSeconds": { "type": "number" } }, "required": [ "cmd" ], "type": "object" }, { "additionalProperties": false, "properties": { "failureThreshold": { "type": "number" }, "initialDelaySeconds": { "type": "number" }, "periodSeconds": { "type": "number" }, "port": { "type": "string" }, "successThreshold": { "type": "number" }, "timeoutSeconds": { "type": "number" } }, "type": "object" }, { "additionalProperties": false, "properties": { "failureThreshold": { "type": "number" }, "initialDelaySeconds": { "type": "number" }, "path": { "pattern": "^\\/(([\\w\\-:.\\{\\}])\\/?)*$|^$", "type": "string" }, "periodSeconds": { "type": "number" }, "port": { "type": "string" }, "successThreshold": { "type": "number" }, "timeoutSeconds": { "type": "number" } }, "required": [ "path" ], "type": "object" } ] } }, "type": "object" }, "defaultResources": { "description": "CPU and memory limitations of the service, which can be used to overwrite the default limitations imposed by the Console for these parameters", "additionalProperties": false, "properties": { "cpuLimits": { "additionalProperties": false, "properties": { "max": { "pattern": "(^((\\{\\{([A-Z])([A-Z0-9_]*)\\}\\})|(\\d+))m$)|^$", "type": "string" }, "min": { "pattern": "(^((\\{\\{([A-Z])([A-Z0-9_]*)\\}\\})|(\\d+))m$)|^$", "type": "string" } }, "type": "object" }, "memoryLimits": { "additionalProperties": false, "properties": { "max": { "pattern": "(^((\\{\\{([A-Z])([A-Z0-9_]*)\\}\\})|(\\d+))Mi$)|^$", "type": "string" }, "min": { "pattern": "(^((\\{\\{([A-Z])([A-Z0-9_]*)\\}\\})|(\\d+))Mi$)|^$", "type": "string" } }, "type": "object" } }, "type": "object" }, "defaultSecrets": { "description": "The default secrets, if any, to be mounted inside the container of the microservice", "items": { "additionalProperties": false, "properties": { "mountPath": { "pattern": "^[a-zA-Z0-9-/_\\s.|\\\\!\"£$%&()=?^\"{}[\\]*+@]+$", "type": "string" }, "name": { "pattern": "^[a-z][a-z0-9]*(-[a-z0-9]+)*$", "type": "string" } }, "required": [ "name", "mountPath" ], "type": "object" }, "type": "array" }, "defaultTerminationGracePeriodSeconds": { "type": "number" }, "description": { "type": "string" }, "dockerImage": { "pattern": "^(?:[a-z0-9.\\-\\/:]+\\/)?([\\w.}{\\-\\/]+)(:[\\w.}{\\-]+)?$", "type": "string" }, "execPreStop": { "type": "array", "items": { "type": "string" } }, "links": { "description": "Custom links to other Console pages", "items": { "properties": { "enableIf": { "description": "The name of a feature toggle to be used to optionally display the link", "type": "string" }, "hidePrefix": { "description": "Flag stating if the `label` should not be prefixed by a \"View\" copy", "type": "boolean" }, "label": { "description": "The label to be shown in the link button. It does not support internationalization. Unless property `hidePrefix` is set to `false`, the label will be shown right next to a \"View\" copy", "type": "string" }, "targetSection": { "description": "The name of the registered microfrontend where the link should land", "examples": [ "flow-manager" ], "type": "string" } }, "type": "object" }, "type": "array" }, "mapEnvVarToMountPath": { "type": "object", "additionalProperties": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "file", "folder" ] }, "envName": { "type": "string" } }, "additionalProperties": false, "required": [ "type", "envName" ] } }, "name": { "minLength": 1, "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$", "type": "string" }, "tags": { "items": { "type": "string" }, "type": "array" }, "type": { "const": "plugin" } }, "required": [ "name", "type", "dockerImage" ], "type": "object" }, { "additionalProperties": false, "properties": { "archiveUrl": { "minLength": 1, "type": "string" }, "componentId": { "type": "string" }, "containerPorts": { "items": { "additionalProperties": false, "properties": { "from": { "oneOf": [ { "type": "integer", "minimum": 0, "maximum": 65535 }, { "pattern": "^$|^((\\{\\{([A-Z])([A-Z0-9_]*)\\}\\})|([1-9]\\d*|0))$", "type": "string" } ] }, "name": { "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$", "type": "string" }, "protocol": { "default": "TCP", "enum": [ "TCP", "UDP" ], "type": "string" }, "to": { "oneOf": [ { "type": "integer", "minimum": 0, "maximum": 65535 }, { "pattern": "^$|^((\\{\\{([A-Z])([A-Z0-9_]*)\\}\\})|([1-9]\\d*|0))$", "type": "string" } ] } }, "required": [ "name", "from" ], "type": "object" }, "type": "array" }, "defaultAnnotations": { "description": "The service annotations, which can be used to provide additional information about your services for various purposes. Annotations starting with `mia-platform.eu` are reserved", "items": { "additionalProperties": false, "properties": { "description": { "type": "string" }, "name": { "pattern": "^([a-zA-Z0-9][a-zA-Z0-9\\.\\-]{0,253}[\\/])?([a-zA-Z0-9][a-zA-Z0-9\\.\\-]{0,63}[a-zA-Z0-9]?)$", "type": "string" }, "readOnly": { "type": "boolean" }, "value": { "type": "string" } }, "required": [ "name", "value" ], "type": "object" }, "type": "array" }, "defaultArgs": { "items": { "type": "string" }, "type": "array" }, "defaultConfigMaps": { "description": "The default ConfigMaps, if any, that will be mounted inside the container of the microservice", "items": { "additionalProperties": false, "properties": { "files": { "items": { "properties": { "content": { "type": "string" }, "name": { "type": "string" } }, "required": [ "name", "content" ], "type": "object" }, "type": "array" }, "link": { "properties": { "targetSection": { "type": "string" } }, "type": "object" }, "mountPath": { "pattern": "^[a-zA-Z0-9-/_\\s.|\\\\!\"£$%&()=?^\"{}[\\]*+@]+$", "type": "string" }, "name": { "pattern": "^[a-z][a-z0-9]*(-[a-z0-9]+)*$", "type": "string" }, "subPaths": { "type": "array", "items": { "type": "string" } }, "usePreserve": { "type": "boolean" }, "viewAsReadOnly": { "type": "boolean" } }, "required": [ "name", "files", "mountPath" ], "type": "object" }, "type": "array" }, "defaultDocumentationPath": { "description": "The APIs documentation path", "pattern": "^$|^(\\/$|(\\/([\\w\\-\\.]|(:[a-zA-Z]))[\\w\\-\\.]*)+)$", "type": "string" }, "defaultEnvironmentVariables": { "description": "The environment variables that will overwrite the default environment variables applied by the Console", "items": { "oneOf": [ { "additionalProperties": false, "properties": { "name": { "description": "The variable name (generally, a key written in UPPER_SNAKE_CASE)", "minLength": 1, "type": "string" }, "description": { "description": "A brief description of the variable", "type": "string" }, "managedBy": { "description": "A string that represents the Console section that manages the variable. It only works used in combination with the `readOnly` property set to `true`", "type": "string", "enum": [ "fast-data" ] }, "readOnly": { "description": "A boolean that represents if you can change the value of the variable through the Console", "type": "boolean" }, "value": { "description": "The variable default value. It can contain placeholders that will be replaced with the actual values when the service is created", "type": "string" }, "valueType": { "const": "plain" } }, "required": [ "name", "valueType" ], "type": "object" }, { "additionalProperties": false, "properties": { "name": { "description": "The variable name (generally, a key written in UPPER_SNAKE_CASE)", "minLength": 1, "type": "string" }, "description": { "description": "A brief description of the variable", "type": "string" }, "managedBy": { "description": "A string that represents the Console section that manages the variable. It only works used in combination with the `readOnly` property set to `true`", "type": "string", "enum": [ "fast-data" ] }, "readOnly": { "description": "A boolean that represents if you can change the value of the variable through the Console", "type": "boolean" }, "configMapName": { "pattern": "^[a-z][a-z0-9]*(-[a-z0-9]+)*$", "type": "string" }, "configMapFileName": { "pattern": "^[-._a-zA-Z0-9]+$", "type": "string" }, "valueType": { "const": "configmap" } }, "required": [ "name", "valueType", "secretName", "secretKey" ], "type": "object" }, { "additionalProperties": false, "properties": { "name": { "description": "The variable name (generally, a key written in UPPER_SNAKE_CASE)", "minLength": 1, "type": "string" }, "description": { "description": "A brief description of the variable", "type": "string" }, "managedBy": { "description": "A string that represents the Console section that manages the variable. It only works used in combination with the `readOnly` property set to `true`", "type": "string", "enum": [ "fast-data" ] }, "readOnly": { "description": "A boolean that represents if you can change the value of the variable through the Console", "type": "boolean" }, "secretKey": { "pattern": "^((\\{\\{([A-Z])([A-Z0-9_]*)\\}\\})|[a-zA-Z0-9-_.]*)$", "type": "string" }, "secretName": { "pattern": "^[a-z][a-z0-9]*(-[a-z0-9]+)*$", "type": "string" }, "valueType": { "const": "secret" } }, "required": [ "name", "valueType", "secretName", "secretKey" ], "type": "object" }, { "oneOf": [ { "additionalProperties": false, "properties": { "name": { "description": "The variable name (generally, a key written in UPPER_SNAKE_CASE)", "minLength": 1, "type": "string" }, "description": { "description": "A brief description of the variable", "type": "string" }, "managedBy": { "description": "A string that represents the Console section that manages the variable. It only works used in combination with the `readOnly` property set to `true`", "type": "string", "enum": [ "fast-data" ] }, "readOnly": { "description": "A boolean that represents if you can change the value of the variable through the Console", "type": "boolean" }, "fieldPath": { "description": "The field path of the Downward API that contains the value of the variable", "oneOf": [ { "type": "string", "enum": [ "metadata.name", "metadata.namespace", "metadata.uid", "spec.serviceAccountName", "spec.nodeName", "status.hostIP", "status.podIP", "status.podIPs" ] }, { "type": "string", "pattern": "^metadata.annotations\\['([a-zA-Z0-9][a-zA-Z0-9\\.\\-]{0,253}[\\/])?([a-zA-Z0-9][a-zA-Z0-9\\.\\-]{0,63}[a-zA-Z0-9]?)'\\]$" }, { "type": "string", "pattern": "^metadata.labels\\['([a-zA-Z0-9][a-zA-Z0-9\\.\\-]{0,253}[\\/])?([a-zA-Z0-9][a-zA-Z0-9\\.\\-]{0,63}[a-zA-Z0-9]?)'\\]$" } ] }, "valueType": { "const": "downwardAPI" } }, "required": [ "fieldPath", "name", "valueType" ], "type": "object" }, { "additionalProperties": false, "properties": { "name": { "description": "The variable name (generally, a key written in UPPER_SNAKE_CASE)", "minLength": 1, "type": "string" }, "description": { "description": "A brief description of the variable", "type": "string" }, "managedBy": { "description": "A string that represents the Console section that manages the variable. It only works used in combination with the `readOnly` property set to `true`", "type": "string", "enum": [ "fast-data" ] }, "readOnly": { "description": "A boolean that represents if you can change the value of the variable through the Console", "type": "boolean" }, "fieldPath": { "type": "string", "enum": [ "resource.limits.cpu", "resource.requests.cpu", "resource.limits.memory", "resource.requests.memory", "resource.limits.ephemeral-storage", "resource.requests.ephemeral-storage" ] }, "valueType": { "const": "downwardAPI" }, "containerName": { "description": "The name of the container where the field is located", "type": "string" } }, "required": [ "fieldPath", "name", "valueType", "containerName" ], "type": "object" } ] } ] }, "type": "array" }, "defaultLabels": { "description": "The service labels, which can be used to categorize, group, and select your service. Labels starting with \"mia-platform.eu\" are reserved", "items": { "additionalProperties": false, "properties": { "description": { "type": "string" }, "name": { "pattern": "^([a-zA-Z0-9][a-zA-Z0-9\\.\\-]{0,253}[\\/])?([a-zA-Z0-9][a-zA-Z0-9\\.\\-]{0,63}[a-zA-Z0-9]?)$", "type": "string" }, "readOnly": { "type": "boolean" }, "value": { "type": "string" } }, "required": [ "name", "value" ], "type": "object" }, "type": "array" }, "defaultLogParser": { "enum": [ "mia-plain", "mia-json", "mia-nginx" ], "type": "string" }, "defaultMonitoring": { "additionalProperties": false, "properties": { "endpoints": { "items": { "additionalProperties": false, "properties": { "interval": { "type": "string", "pattern": "^(\\d)+[s]$" }, "path": { "type": "string", "pattern": "^\\/(([\\w-])\\/?)*$" }, "port": { "type": "string" } }, "required": [ "interval", "path", "port" ], "type": "object" }, "type": "array" } }, "type": "object" }, "defaultProbes": { "description": "The readiness, liveness, and startup paths of the service. By modifying the map of the probes, you can overwrite the default paths applied by the Console", "additionalProperties": false, "properties": { "liveness": { "oneOf": [ { "additionalProperties": false, "properties": { "cmd": { "items": { "type": "string" }, "type": "array" }, "failureThreshold": { "type": "number" }, "initialDelaySeconds": { "type": "number" }, "periodSeconds": { "type": "number" }, "successThreshold": { "type": "number" }, "timeoutSeconds": { "type": "number" } }, "required": [ "cmd" ], "type": "object" }, { "additionalProperties": false, "properties": { "failureThreshold": { "type": "number" }, "initialDelaySeconds": { "type": "number" }, "periodSeconds": { "type": "number" }, "port": { "type": "string" }, "successThreshold": { "type": "number" }, "timeoutSeconds": { "type": "number" } }, "type": "object" }, { "additionalProperties": false, "properties": { "failureThreshold": { "type": "number" }, "initialDelaySeconds": { "type": "number" }, "path": { "pattern": "^\\/(([\\w\\-:.\\{\\}])\\/?)*$|^$", "type": "string" }, "periodSeconds": { "type": "number" }, "port": { "type": "string" }, "successThreshold": { "type": "number" }, "timeoutSeconds": { "type": "number" } }, "required": [ "path" ], "type": "object" } ] }, "readiness": { "oneOf": [ { "additionalProperties": false, "properties": { "cmd": { "items": { "type": "string" }, "type": "array" }, "failureThreshold": { "type": "number" }, "initialDelaySeconds": { "type": "number" }, "periodSeconds": { "type": "number" }, "successThreshold": { "type": "number" }, "timeoutSeconds": { "type": "number" } }, "required": [ "cmd" ], "type": "object" }, { "additionalProperties": false, "properties": { "failureThreshold": { "type": "number" }, "initialDelaySeconds": { "type": "number" }, "periodSeconds": { "type": "number" }, "port": { "type": "string" }, "successThreshold": { "type": "number" }, "timeoutSeconds": { "type": "number" } }, "type": "object" }, { "additionalProperties": false, "properties": { "failureThreshold": { "type": "number" }, "initialDelaySeconds": { "type": "number" }, "path": { "pattern": "^\\/(([\\w\\-:.\\{\\}])\\/?)*$|^$", "type": "string" }, "periodSeconds": { "type": "number" }, "port": { "type": "string" }, "successThreshold": { "type": "number" }, "timeoutSeconds": { "type": "number" } }, "required": [ "path" ], "type": "object" } ] }, "startup": { "oneOf": [ { "additionalProperties": false, "properties": { "cmd": { "items": { "type": "string" }, "type": "array" }, "failureThreshold": { "type": "number" }, "initialDelaySeconds": { "type": "number" }, "periodSeconds": { "type": "number" }, "successThreshold": { "type": "number" }, "timeoutSeconds": { "type": "number" } }, "required": [ "cmd" ], "type": "object" }, { "additionalProperties": false, "properties": { "failureThreshold": { "type": "number" }, "initialDelaySeconds": { "type": "number" }, "periodSeconds": { "type": "number" }, "port": { "type": "string" }, "successThreshold": { "type": "number" }, "timeoutSeconds": { "type": "number" } }, "type": "object" }, { "additionalProperties": false, "properties": { "failureThreshold": { "type": "number" }, "initialDelaySeconds": { "type": "number" }, "path": { "pattern": "^\\/(([\\w\\-:.\\{\\}])\\/?)*$|^$", "type": "string" }, "periodSeconds": { "type": "number" }, "port": { "type": "string" }, "successThreshold": { "type": "number" }, "timeoutSeconds": { "type": "number" } }, "required": [ "path" ], "type": "object" } ] } }, "type": "object" }, "defaultResources": { "description": "CPU and memory limitations of the service, which can be used to overwrite the default limitations imposed by the Console for these parameters", "additionalProperties": false, "properties": { "cpuLimits": { "additionalProperties": false, "properties": { "max": { "pattern": "(^((\\{\\{([A-Z])([A-Z0-9_]*)\\}\\})|(\\d+))m$)|^$", "type": "string" }, "min": { "pattern": "(^((\\{\\{([A-Z])([A-Z0-9_]*)\\}\\})|(\\d+))m$)|^$", "type": "string" } }, "type": "object" }, "memoryLimits": { "additionalProperties": false, "properties": { "max": { "pattern": "(^((\\{\\{([A-Z])([A-Z0-9_]*)\\}\\})|(\\d+))Mi$)|^$", "type": "string" }, "min": { "pattern": "(^((\\{\\{([A-Z])([A-Z0-9_]*)\\}\\})|(\\d+))Mi$)|^$", "type": "string" } }, "type": "object" } }, "type": "object" }, "defaultSecrets": { "description": "The default secrets, if any, to be mounted inside the container of the microservice", "items": { "additionalProperties": false, "properties": { "mountPath": { "pattern": "^[a-zA-Z0-9-/_\\s.|\\\\!\"£$%&()=?^\"{}[\\]*+@]+$", "type": "string" }, "name": { "pattern": "^[a-z][a-z0-9]*(-[a-z0-9]+)*$", "type": "string" } }, "required": [ "name", "mountPath" ], "type": "object" }, "type": "array" }, "defaultTerminationGracePeriodSeconds": { "type": "number" }, "description": { "type": "string" }, "dockerImage": { "pattern": "^(?:[a-z0-9.\\-\\/:]+\\/)?([\\w.}{\\-\\/]+)(:[\\w.}{\\-]+)?$", "type": "string" }, "mapEnvVarToMountPath": { "type": "object", "additionalProperties": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "file", "folder" ] }, "envName": { "type": "string" } }, "additionalProperties": false, "required": [ "type", "envName" ] } }, "name": { "minLength": 1, "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$", "type": "string" }, "pipelines": { "properties": { "azure-pipelines": { "type": "object", "properties": { "branch": { "type": "string" }, "path": { "type": "string" }, "providerId": { "type": "string" } } }, "github-actions": { "type": "object", "properties": { "branch": { "type": "string" }, "path": { "type": "string" }, "providerId": { "type": "string" } } }, "gitlab-ci": { "type": "object", "properties": { "branch": { "type": "string" }, "path": { "type": "string" }, "providerId": { "type": "string" } } }, "jenkins": { "properties": { "gitWebhookOptions": { "type": "object" }, "gitlabWebhookOptions": { "$comment": "Deprecated", "type": "object" }, "providerId": { "type": "string" }, "xmlTemplate": { "properties": { "gitBranch": { "type": "string" }, "gitPath": { "type": "string" }, "gitProjectId": { "type": "string" }, "gitlabBranch": { "$comment": "Deprecated", "type": "string" }, "gitlabPath": { "$comment": "Deprecated", "type": "string" }, "gitlabProjectId": { "$comment": "Deprecated", "type": "string" } }, "type": "object" } }, "type": "object" }, "webhook": { "properties": { "providerId": { "type": "string" }, "token": { "type": "string" }, "url": { "type": "string" } }, "type": "object" } }, "type": "object" }, "type": { "const": "example" } }, "required": [ "name", "type", "archiveUrl" ], "type": "object" }, { "additionalProperties": false, "properties": { "archiveUrl": { "minLength": 1, "type": "string" }, "componentId": { "type": "string" }, "containerPorts": { "items": { "additionalProperties": false, "properties": { "from": { "oneOf": [ { "type": "integer", "minimum": 0, "maximum": 65535 }, { "pattern": "^$|^((\\{\\{([A-Z])([A-Z0-9_]*)\\}\\})|([1-9]\\d*|0))$", "type": "string" } ] }, "name": { "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$", "type": "string" }, "protocol": { "default": "TCP", "enum": [ "TCP", "UDP" ], "type": "string" }, "to": { "oneOf": [ { "type": "integer", "minimum": 0, "maximum": 65535 }, { "pattern": "^$|^((\\{\\{([A-Z])([A-Z0-9_]*)\\}\\})|([1-9]\\d*|0))$", "type": "string" } ] } }, "required": [ "name", "from" ], "type": "object" }, "type": "array" }, "defaultAnnotations": { "description": "The service annotations, which can be used to provide additional information about your services for various purposes. Annotations starting with `mia-platform.eu` are reserved", "items": { "additionalProperties": false, "properties": { "description": { "type": "string" }, "name": { "pattern": "^([a-zA-Z0-9][a-zA-Z0-9\\.\\-]{0,253}[\\/])?([a-zA-Z0-9][a-zA-Z0-9\\.\\-]{0,63}[a-zA-Z0-9]?)$", "type": "string" }, "readOnly": { "type": "boolean" }, "value": { "type": "string" } }, "required": [ "name", "value" ], "type": "object" }, "type": "array" }, "defaultArgs": { "items": { "type": "string" }, "type": "array" }, "defaultConfigMaps": { "description": "The default ConfigMaps, if any, that will be mounted inside the container of the microservice", "items": { "additionalProperties": false, "properties": { "files": { "items": { "properties": { "content": { "type": "string" }, "name": { "type": "string" } }, "required": [ "name", "content" ], "type": "object" }, "type": "array" }, "link": { "properties": { "targetSection": { "type": "string" } }, "type": "object" }, "mountPath": { "pattern": "^[a-zA-Z0-9-/_\\s.|\\\\!\"£$%&()=?^\"{}[\\]*+@]+$", "type": "string" }, "name": { "pattern": "^[a-z][a-z0-9]*(-[a-z0-9]+)*$", "type": "string" }, "subPaths": { "type": "array", "items": { "type": "string" } }, "usePreserve": { "type": "boolean" }, "viewAsReadOnly": { "type": "boolean" } }, "required": [ "name", "files", "mountPath" ], "type": "object" }, "type": "array" }, "defaultDocumentationPath": { "description": "The APIs documentation path", "pattern": "^$|^(\\/$|(\\/([\\w\\-\\.]|(:[a-zA-Z]))[\\w\\-\\.]*)+)$", "type": "string" }, "defaultEnvironmentVariables": { "description": "The environment variables that will overwrite the default environment variables applied by the Console", "items": { "oneOf": [ { "additionalProperties": false, "properties": { "name": { "description": "The variable name (generally, a key written in UPPER_SNAKE_CASE)", "minLength": 1, "type": "string" }, "description": { "description": "A brief description of the variable", "type": "string" }, "managedBy": { "description": "A string that represents the Console section that manages the variable. It only works used in combination with the `readOnly` property set to `true`", "type": "string", "enum": [ "fast-data" ] }, "readOnly": { "description": "A boolean that represents if you can change the value of the variable through the Console", "type": "boolean" }, "value": { "description": "The variable default value. It can contain placeholders that will be replaced with the actual values when the service is created", "type": "string" }, "valueType": { "const": "plain" } }, "required": [ "name", "valueType" ], "type": "object" }, { "additionalProperties": false, "properties": { "name": { "description": "The variable name (generally, a key written in UPPER_SNAKE_CASE)", "minLength": 1, "type": "string" }, "description": { "description": "A brief description of the variable", "type": "string" }, "managedBy": { "description": "A string that represents the Console section that manages the variable. It only works used in combination with the `readOnly` property set to `true`", "type": "string", "enum": [ "fast-data" ] }, "readOnly": { "description": "A boolean that represents if you can change the value of the variable through the Console", "type": "boolean" }, "configMapName": { "pattern": "^[a-z][a-z0-9]*(-[a-z0-9]+)*$", "type": "string" }, "configMapFileName": { "pattern": "^[-._a-zA-Z0-9]+$", "type": "string" }, "valueType": { "const": "configmap" } }, "required": [ "name", "valueType", "secretName", "secretKey" ], "type": "object" }, { "additionalProperties": false, "properties": { "name": { "description": "The variable name (generally, a key written in UPPER_SNAKE_CASE)", "minLength": 1, "type": "string" }, "description": { "description": "A brief description of the variable", "type": "string" }, "managedBy": { "description": "A string that represents the Console section that manages the variable. It only works used in combination with the `readOnly` property set to `true`", "type": "string", "enum": [ "fast-data" ] }, "readOnly": { "description": "A boolean that represents if you can change the value of the variable through the Console", "type": "boolean" }, "secretKey": { "pattern": "^((\\{\\{([A-Z])([A-Z0-9_]*)\\}\\})|[a-zA-Z0-9-_.]*)$", "type": "string" }, "secretName": { "pattern": "^[a-z][a-z0-9]*(-[a-z0-9]+)*$", "type": "string" }, "valueType": { "const": "secret" } }, "required": [ "name", "valueType", "secretName", "secretKey" ], "type": "object" }, { "oneOf": [ { "additionalProperties": false, "properties": { "name": { "description": "The variable name (generally, a key written in UPPER_SNAKE_CASE)", "minLength": 1, "type": "string" }, "description": { "description": "A brief description of the variable", "type": "string" }, "managedBy": { "description": "A string that represents the Console section that manages the variable. It only works used in combination with the `readOnly` property set to `true`", "type": "string", "enum": [ "fast-data" ] }, "readOnly": { "description": "A boolean that represents if you can change the value of the variable through the Console", "type": "boolean" }, "fieldPath": { "description": "The field path of the Downward API that contains the value of the variable", "oneOf": [ { "type": "string", "enum": [ "metadata.name", "metadata.namespace", "metadata.uid", "spec.serviceAccountName", "spec.nodeName", "status.hostIP", "status.podIP", "status.podIPs" ] }, { "type": "string", "pattern": "^metadata.annotations\\['([a-zA-Z0-9][a-zA-Z0-9\\.\\-]{0,253}[\\/])?([a-zA-Z0-9][a-zA-Z0-9\\.\\-]{0,63}[a-zA-Z0-9]?)'\\]$" }, { "type": "string", "pattern": "^metadata.labels\\['([a-zA-Z0-9][a-zA-Z0-9\\.\\-]{0,253}[\\/])?([a-zA-Z0-9][a-zA-Z0-9\\.\\-]{0,63}[a-zA-Z0-9]?)'\\]$" } ] }, "valueType": { "const": "downwardAPI" } }, "required": [ "fieldPath", "name", "valueType" ], "type": "object" }, { "additionalProperties": false, "properties": { "name": { "description": "The variable name (generally, a key written in UPPER_SNAKE_CASE)", "minLength": 1, "type": "string" }, "description": { "description": "A brief description of the variable", "type": "string" }, "managedBy": { "description": "A string that represents the Console section that manages the variable. It only works used in combination with the `readOnly` property set to `true`", "type": "string", "enum": [ "fast-data" ] }, "readOnly": { "description": "A boolean that represents if you can change the value of the variable through the Console", "type": "boolean" }, "fieldPath": { "type": "string", "enum": [ "resource.limits.cpu", "resource.requests.cpu", "resource.limits.memory", "resource.requests.memory", "resource.limits.ephemeral-storage", "resource.requests.ephemeral-storage" ] }, "valueType": { "const": "downwardAPI" }, "containerName": { "description": "The name of the container where the field is located", "type": "string" } }, "required": [ "fieldPath", "name", "valueType", "containerName" ], "type": "object" } ] } ] }, "type": "array" }, "defaultLabels": { "description": "The service labels, which can be used to categorize, group, and select your service. Labels starting with \"mia-platform.eu\" are reserved", "items": { "additionalProperties": false, "properties": { "description": { "type": "string" }, "name": { "pattern": "^([a-zA-Z0-9][a-zA-Z0-9\\.\\-]{0,253}[\\/])?([a-zA-Z0-9][a-zA-Z0-9\\.\\-]{0,63}[a-zA-Z0-9]?)$", "type": "string" }, "readOnly": { "type": "boolean" }, "value": { "type": "string" } }, "required": [ "name", "value" ], "type": "object" }, "type": "array" }, "defaultLogParser": { "enum": [ "mia-plain", "mia-json", "mia-nginx" ], "type": "string" }, "defaultMonitoring": { "additionalProperties": false, "properties": { "endpoints": { "items": { "additionalProperties": false, "properties": { "interval": { "type": "string", "pattern": "^(\\d)+[s]$" }, "path": { "type": "string", "pattern": "^\\/(([\\w-])\\/?)*$" }, "port": { "type": "string" } }, "required": [ "interval", "path", "port" ], "type": "object" }, "type": "array" } }, "type": "object" }, "defaultProbes": { "description": "The readiness, liveness, and startup paths of the service. By modifying the map of the probes, you can overwrite the default paths applied by the Console", "additionalProperties": false, "properties": { "liveness": { "oneOf": [ { "additionalProperties": false, "properties": { "cmd": { "items": { "type": "string" }, "type": "array" }, "failureThreshold": { "type": "number" }, "initialDelaySeconds": { "type": "number" }, "periodSeconds": { "type": "number" }, "successThreshold": { "type": "number" }, "timeoutSeconds": { "type": "number" } }, "required": [ "cmd" ], "type": "object" }, { "additionalProperties": false, "properties": { "failureThreshold": { "type": "number" }, "initialDelaySeconds": { "type": "number" }, "periodSeconds": { "type": "number" }, "port": { "type": "string" }, "successThreshold": { "type": "number" }, "timeoutSeconds": { "type": "number" } }, "type": "object" }, { "additionalProperties": false, "properties": { "failureThreshold": { "type": "number" }, "initialDelaySeconds": { "type": "number" }, "path": { "pattern": "^\\/(([\\w\\-:.\\{\\}])\\/?)*$|^$", "type": "string" }, "periodSeconds": { "type": "number" }, "port": { "type": "string" }, "successThreshold": { "type": "number" }, "timeoutSeconds": { "type": "number" } }, "required": [ "path" ], "type": "object" } ] }, "readiness": { "oneOf": [ { "additionalProperties": false, "properties": { "cmd": { "items": { "type": "string" }, "type": "array" }, "failureThreshold": { "type": "number" }, "initialDelaySeconds": { "type": "number" }, "periodSeconds": { "type": "number" }, "successThreshold": { "type": "number" }, "timeoutSeconds": { "type": "number" } }, "required": [ "cmd" ], "type": "object" }, { "additionalProperties": false, "properties": { "failureThreshold": { "type": "number" }, "initialDelaySeconds": { "type": "number" }, "periodSeconds": { "type": "number" }, "port": { "type": "string" }, "successThreshold": { "type": "number" }, "timeoutSeconds": { "type": "number" } }, "type": "object" }, { "additionalProperties": false, "properties": { "failureThreshold": { "type": "number" }, "initialDelaySeconds": { "type": "number" }, "path": { "pattern": "^\\/(([\\w\\-:.\\{\\}])\\/?)*$|^$", "type": "string" }, "periodSeconds": { "type": "number" }, "port": { "type": "string" }, "successThreshold": { "type": "number" }, "timeoutSeconds": { "type": "number" } }, "required": [ "path" ], "type": "object" } ] }, "startup": { "oneOf": [ { "additionalProperties": false, "properties": { "cmd": { "items": { "type": "string" }, "type": "array" }, "failureThreshold": { "type": "number" }, "initialDelaySeconds": { "type": "number" }, "periodSeconds": { "type": "number" }, "successThreshold": { "type": "number" }, "timeoutSeconds": { "type": "number" } }, "required": [ "cmd" ], "type": "object" }, { "additionalProperties": false, "properties": { "failureThreshold": { "type": "number" }, "initialDelaySeconds": { "type": "number" }, "periodSeconds": { "type": "number" }, "port": { "type": "string" }, "successThreshold": { "type": "number" }, "timeoutSeconds": { "type": "number" } }, "type": "object" }, { "additionalProperties": false, "properties": { "failureThreshold": { "type": "number" }, "initialDelaySeconds": { "type": "number" }, "path": { "pattern": "^\\/(([\\w\\-:.\\{\\}])\\/?)*$|^$", "type": "string" }, "periodSeconds": { "type": "number" }, "port": { "type": "string" }, "successThreshold": { "type": "number" }, "timeoutSeconds": { "type": "number" } }, "required": [ "path" ], "type": "object" } ] } }, "type": "object" }, "defaultResources": { "description": "CPU and memory limitations of the service, which can be used to overwrite the default limitations imposed by the Console for these parameters", "additionalProperties": false, "properties": { "cpuLimits": { "additionalProperties": false, "properties": { "max": { "pattern": "(^((\\{\\{([A-Z])([A-Z0-9_]*)\\}\\})|(\\d+))m$)|^$", "type": "string" }, "min": { "pattern": "(^((\\{\\{([A-Z])([A-Z0-9_]*)\\}\\})|(\\d+))m$)|^$", "type": "string" } }, "type": "object" }, "memoryLimits": { "additionalProperties": false, "properties": { "max": { "pattern": "(^((\\{\\{([A-Z])([A-Z0-9_]*)\\}\\})|(\\d+))Mi$)|^$", "type": "string" }, "min": { "pattern": "(^((\\{\\{([A-Z])([A-Z0-9_]*)\\}\\})|(\\d+))Mi$)|^$", "type": "string" } }, "type": "object" } }, "type": "object" }, "defaultSecrets": { "description": "The default secrets, if any, to be mounted inside the container of the microservice", "items": { "additionalProperties": false, "properties": { "mountPath": { "pattern": "^[a-zA-Z0-9-/_\\s.|\\\\!\"£$%&()=?^\"{}[\\]*+@]+$", "type": "string" }, "name": { "pattern": "^[a-z][a-z0-9]*(-[a-z0-9]+)*$", "type": "string" } }, "required": [ "name", "mountPath" ], "type": "object" }, "type": "array" }, "defaultTerminationGracePeriodSeconds": { "type": "number" }, "description": { "type": "string" }, "dockerImage": { "pattern": "^(?:[a-z0-9.\\-\\/:]+\\/)?([\\w.}{\\-\\/]+)(:[\\w.}{\\-]+)?$", "type": "string" }, "mapEnvVarToMountPath": { "type": "object", "additionalProperties": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "file", "folder" ] }, "envName": { "type": "string" } }, "additionalProperties": false, "required": [ "type", "envName" ] } }, "name": { "minLength": 1, "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$", "type": "string" }, "pipelines": { "properties": { "azure-pipelines": { "type": "object", "properties": { "branch": { "type": "string" }, "path": { "type": "string" }, "providerId": { "type": "string" } } }, "github-actions": { "type": "object", "properties": { "branch": { "type": "string" }, "path": { "type": "string" }, "providerId": { "type": "string" } } }, "gitlab-ci": { "type": "object", "properties": { "branch": { "type": "string" }, "path": { "type": "string" }, "providerId": { "type": "string" } } }, "jenkins": { "properties": { "gitWebhookOptions": { "type": "object" }, "gitlabWebhookOptions": { "$comment": "Deprecated", "type": "object" }, "providerId": { "type": "string" }, "xmlTemplate": { "properties": { "gitBranch": { "type": "string" }, "gitPath": { "type": "string" }, "gitProjectId": { "type": "string" }, "gitlabBranch": { "$comment": "Deprecated", "type": "string" }, "gitlabPath": { "$comment": "Deprecated", "type": "string" }, "gitlabProjectId": { "$comment": "Deprecated", "type": "string" } }, "type": "object" } }, "type": "object" }, "webhook": { "properties": { "providerId": { "type": "string" }, "token": { "type": "string" }, "url": { "type": "string" } }, "type": "object" } }, "type": "object" }, "type": { "const": "template" } }, "required": [ "name", "type", "archiveUrl" ], "type": "object" } ] } }, "additionalProperties": false, "minProperties": 1, "type": "object" }, "unsecretedVariables": { "additionalProperties": { "additionalProperties": false, "properties": { "noProductionEnv": { "type": "string" }, "productionEnv": { "type": "string" } }, "required": [ "productionEnv", "noProductionEnv" ], "type": "object" }, "type": "object" } }, "required": [ "services" ], "type": "object", "examples": [ { "services": { "e-commerce-service": { "type": "plugin", "name": "e-commerce-service", "description": "Backend for an E-Commerce", "tags": [ "e-commerce", "backend" ], "links": [ { "label": "Configurator", "targetSection": "flow-manager" } ], "componentId": "e-commerce", "dockerImage": "e-commerce-service:1.0.0", "containerPorts": [ { "from": 3000, "to": 80, "name": "http" } ], "defaultAnnotations": [ { "name": "domain", "value": "orders" } ], "defaultLabels": [ { "name": "technologies", "value": "javascript" } ], "defaultDocumentationPath": "/documentation/json", "defaultLogParser": "mia-json", "defaultEnvironmentVariables": [ { "name": "LOG_LEVEL", "valueType": "plain", "value": "{{LOG_LEVEL}}" } ], "defaultConfigMaps": [ { "name": "e-commerce-service-config", "mountPath": "/home/node", "files": [ { "name": "config.json", "content": "{ \"mongodbUrl\": \"{{MONGODB_URL}}\" }" } ] } ], "defaultSecrets": [ { "name": "private-key", "mountPath": "/home/node" } ], "defaultProbes": { "liveness": { "port": "3000", "path": "/healthz" }, "readiness": { "port": "3000", "path": "/healthz" }, "startup": { "port": "3000", "path": "/healthz" } }, "defaultResources": { "memoryLimits": { "max": "250Mi", "min": "150Mi" }, "cpuLimits": { "min": "150m", "max": "200m" } } }, "crud-service": { "type": "plugin", "name": "crud-service", "componentId": "crud-service", "dockerImage": "nexus.mia-platform.eu/core/crud-service:7.2.3" } }, "endpoints": { "/e-commerce": { "defaultBasePath": "/e-commerce", "defaultPathRewrite": "/", "public": true, "secreted": false, "service": "e-commerce-service", "tags": [ "e-commerce" ], "type": "custom" } }, "collections": { "items": { "id": "items", "type": "collection", "defaultName": "items", "internalEndpoints": [ { "basePath": "/items" } ], "fields": [ { "name": "name", "nullable": false, "required": true, "type": "string" } ] } }, "unsecretedVariables": { "LOG_LEVEL": { "noProductionEnv": "debug", "productionEnv": "info" } } } ] }, "supportedBy": { "description": "Identifier of the company that has produced the item", "type": "string" }, "supportedByImageUrl": { "description": "Url of the image associated with the company that has produced the item", "type": "string" }, "tenantId": { "description": "Identifier of the tenant to which the item belongs. It forms a composite PK with itemId and, if present, version.name", "type": "string" }, "type": { "const": "application" }, "visibility": { "description": "Visibility of the item", "properties": { "allTenants": { "default": false, "description": "If true, the item will be accessible to all companies", "type": "boolean" }, "public": { "default": false, "description": "If true, the item will be accessible from any user that access the Console, even if not authenticated", "type": "boolean" } }, "type": "object" }, "$schema": { "type": "string" } }, "additionalProperties": false, "required": [ "name", "itemId", "tenantId", "type", "resources", "lifecycleStatus" ] }