{
  "$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"
    },
    "hook-class-names": {
      "type": "array",
      "description": "Hook class names that provide connection types to core (deprecated by connection-types)",
      "items": {
        "type": "string"
      },
      "deprecated": {
        "description": "The hook-class-names property has been deprecated in favour of connection-types which is more performant version allowing to only import individual Hooks rather than all hooks at once",
        "deprecatedVersion": "2.2.0"
      }
    },
    "connection-types": {
      "type": "array",
      "description": "Map of connection types mapped to hook class names.",
      "items": {
        "type": "object",
        "properties": {
          "connection-type": {
            "description": "Type of connection defined by the provider",
            "type": "string"
          },
          "hook-class-name": {
            "description": "Hook class name that implements the connection type",
            "type": "string"
          }
        }
      },
      "required": ["connection-type", "hook-class-name"]
    },
    "extra-links": {
      "type": "array",
      "description": "Operator class names that provide extra link functionality",
      "items": {
        "type": "string"
      }
    },
    "secrets-backends": {
      "type": "array",
      "description": "Secrets Backend class names",
      "items": {
        "type": "string"
      }
    },
    "logging": {
      "type": "array",
      "description": "Logging Task Handlers class names",
      "items": {
          "type": "string"
      }
    },
    "auth-backends": {
      "type": "array",
      "description": "API Auth Backend module names",
      "items": {
          "type": "string"
      }
    },
    "task-decorators": {
        "type": "array",
        "description": "Apply custom decorators to the TaskFlow API. Can be accessed by users via '@task.<name>'",
        "items": {
            "name": {
                "type": "string"
            },
            "path": {
                "type": "string"
            }
        }
    }
  },
  "required": [
    "name",
    "description"
  ]
}
