| { |
| "$schema": "http://json-schema.org/draft-07/schema#", |
| "type": "object", |
| "properties": { |
| "package-name": { |
| "description": "Package name available under which the package is available in the PyPI repository.", |
| "type": "string" |
| }, |
| "name": { |
| "description": "Provider name", |
| "type": "string" |
| }, |
| "description": { |
| "description": "Information about the package in RST format", |
| "type": "string" |
| }, |
| "versions": { |
| "description": "List of available versions in PyPI. Sorted descending according to release date.", |
| "type": "array", |
| "items": { |
| "type": "string" |
| } |
| }, |
| "integrations": { |
| "description": "List of integrations supported by the provider.", |
| "type": "array", |
| "items": { |
| "type": "object", |
| "properties": { |
| "integration-name": { |
| "type": "string", |
| "description": "Name of the integration." |
| }, |
| "external-doc-url": { |
| "type": "string", |
| "description": "URL to external documentation for the integration." |
| }, |
| "how-to-guide": { |
| "description": "List of paths to how-to-guide for the integration. The path must start with '/docs/'", |
| "type": "array", |
| "items": { |
| "type": "string" |
| } |
| }, |
| "logo": { |
| "description": "Path to the logo for the integration. The path must start with '/integration-logos/'", |
| "type": "string" |
| }, |
| "tags": { |
| "description": "List of tags describing the integration. While we're using RST, only one tag is supported per integration.", |
| "type": "array", |
| "items": { |
| "type": "string", |
| "enum": [ |
| "apache", |
| "aws", |
| "azure", |
| "gcp", |
| "gmp", |
| "google", |
| "protocol", |
| "service", |
| "software", |
| "yandex" |
| ] |
| }, |
| "minItems": 1, |
| "maxItems": 1 |
| } |
| }, |
| "additionalProperties": false, |
| "required": [ |
| "integration-name", |
| "external-doc-url", |
| "tags" |
| ] |
| } |
| }, |
| "operators": { |
| "type": "array", |
| "items": { |
| "type": "object", |
| "properties": { |
| "integration-name": { |
| "type": "string", |
| "description": "Integration name. It must have a matching item in the 'integration' section of any provider." |
| }, |
| "python-modules": { |
| "description": "List of python modules containing the operators.", |
| "type": "array", |
| "items": { |
| "type": "string" |
| } |
| } |
| }, |
| "additionalProperties": false, |
| "required": [ |
| "integration-name", |
| "python-modules" |
| ] |
| } |
| }, |
| "sensors": { |
| "type": "array", |
| "items": { |
| "type": "object", |
| "properties": { |
| "integration-name": { |
| "type": "string", |
| "description": "Integration name. It must have a matching item in the 'integration' section of any provider." |
| }, |
| "python-modules": { |
| "description": "List of python modules containing the sensors.", |
| "type": "array", |
| "items": { |
| "type": "string" |
| } |
| } |
| }, |
| "required": [ |
| "integration-name", |
| "python-modules" |
| ], |
| "additionalProperties": true |
| } |
| }, |
| "hooks": { |
| "type": "array", |
| "items": { |
| "type": "object", |
| "properties": { |
| "integration-name": { |
| "type": "string", |
| "description": "Integration name. It must have a matching item in the 'integration' section of any provider." |
| }, |
| "python-modules": { |
| "description": "List of python modules containing the hooks.", |
| "type": "array", |
| "items": { |
| "type": "string" |
| } |
| } |
| }, |
| "additionalProperties": false, |
| "required": [ |
| "integration-name", |
| "python-modules" |
| ] |
| } |
| }, |
| "transfers": { |
| "type": "array", |
| "items": { |
| "type": "object", |
| "properties": { |
| "how-to-guide": { |
| "description": "Path to how-to-guide for the transfer. The path must start with '/docs/'", |
| "type": "string" |
| }, |
| "source-integration-name": { |
| "type": "string", |
| "description": "Integration name. It must have a matching item in the 'integration' section of any provider." |
| }, |
| "target-integration-name": { |
| "type": "string", |
| "description": "Target integration name. It must have a matching item in the 'integration' section of any provider." |
| }, |
| "python-module": { |
| "type": "string", |
| "description": "List of python modules containing the transfers." |
| } |
| }, |
| "additionalProperties": false, |
| "required": [ |
| "source-integration-name", |
| "target-integration-name", |
| "python-module" |
| ] |
| } |
| }, |
| "hook-class-names": { |
| "type": "array", |
| "description": "Hook class names that provide connection types to core", |
| "items": { |
| "type": "string" |
| } |
| }, |
| "extra-links": { |
| "type": "array", |
| "description": "Class name that provide extra link functionality", |
| "items": { |
| "type": "string" |
| } |
| } |
| }, |
| "additionalProperties": false, |
| "required": [ |
| "name", |
| "package-name", |
| "description", |
| "versions" |
| ] |
| } |