{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "soundcheck": {
      "type": "object",
      "properties": {
        "collectors": {
          "type": "object",
          "properties": {
            "github": {
              "anyOf": [
                {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                {
                  "type": "object",
                  "properties": {
                    "frequency": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "cron": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "cron"
                          ]
                        },
                        {
                          "type": "object",
                          "properties": {
                            "years": {
                              "type": "number"
                            },
                            "months": {
                              "type": "number"
                            },
                            "weeks": {
                              "type": "number"
                            },
                            "days": {
                              "type": "number"
                            },
                            "hours": {
                              "type": "number"
                            },
                            "minutes": {
                              "type": "number"
                            },
                            "seconds": {
                              "type": "number"
                            },
                            "milliseconds": {
                              "type": "number"
                            }
                          },
                          "description": "Human friendly durations object."
                        }
                      ]
                    },
                    "initialDelay": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "years": {
                              "type": "number"
                            },
                            "months": {
                              "type": "number"
                            },
                            "weeks": {
                              "type": "number"
                            },
                            "days": {
                              "type": "number"
                            },
                            "hours": {
                              "type": "number"
                            },
                            "minutes": {
                              "type": "number"
                            },
                            "seconds": {
                              "type": "number"
                            },
                            "milliseconds": {
                              "type": "number"
                            }
                          },
                          "description": "Human friendly durations object."
                        },
                        {
                          "type": "string"
                        }
                      ]
                    },
                    "batchSize": {
                      "type": "number"
                    },
                    "filter": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              }
                            ]
                          }
                        },
                        {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  }
                                }
                              ]
                            }
                          }
                        }
                      ],
                      "description": "Entity filter, similar to the filter format used by the Catalog API:  {@link  https://backstage.io/docs/reference/catalog-client.entityfilterquery } ."
                    },
                    "filterQuery": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": {
                            "anyOf": [
                              {
                                "not": {}
                              },
                              {
                                "type": [
                                  "string",
                                  "number",
                                  "boolean",
                                  "object"
                                ]
                              }
                            ]
                          },
                          "properties": {},
                          "description": "A filter predicate expression that matches against one or more object properties."
                        },
                        {
                          "type": [
                            "string",
                            "number",
                            "boolean"
                          ],
                          "description": "A primitive value that can be used in filter predicates."
                        },
                        {
                          "type": "object",
                          "properties": {
                            "$all": {
                              "type": "array",
                              "items": {
                                "$ref": "#/definitions/d8ac0d98e1618f46c1e650f8b4e7334514073f01429c3ff645a173dc4e377a82-alias-_dist_index.d.ts-596-2580-_dist_index.d.ts-0-7406235801893"
                              },
                              "description": "Asserts that all of the given predicates must be true."
                            }
                          },
                          "required": [
                            "$all"
                          ]
                        },
                        {
                          "type": "object",
                          "properties": {
                            "$any": {
                              "type": "array",
                              "items": {
                                "$ref": "#/definitions/d8ac0d98e1618f46c1e650f8b4e7334514073f01429c3ff645a173dc4e377a82-alias-_dist_index.d.ts-596-2580-_dist_index.d.ts-0-7406235801893"
                              },
                              "description": "Asserts that at least one of the given predicates must be true."
                            }
                          },
                          "required": [
                            "$any"
                          ]
                        },
                        {
                          "type": "object",
                          "properties": {
                            "$not": {
                              "$ref": "#/definitions/d8ac0d98e1618f46c1e650f8b4e7334514073f01429c3ff645a173dc4e377a82-alias-_dist_index.d.ts-596-2580-_dist_index.d.ts-0-7406235801893",
                              "description": "Asserts that the given predicate must not be true."
                            }
                          },
                          "required": [
                            "$not"
                          ]
                        },
                        {
                          "type": "object",
                          "additionalProperties": {
                            "type": [
                              "object",
                              "number",
                              "string",
                              "boolean",
                              "null"
                            ]
                          },
                          "properties": {
                            "$all": {
                              "not": {}
                            },
                            "$any": {
                              "not": {}
                            },
                            "$not": {
                              "not": {}
                            }
                          },
                          "required": [
                            "$all",
                            "$any",
                            "$not"
                          ],
                          "description": "Represents future additions to the set of filter predicate operators."
                        }
                      ],
                      "description": "A filter predicate that can be evaluated against a value."
                    },
                    "exclude": {
                      "anyOf": [
                        {
                          "type": "object",
                          "additionalProperties": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              }
                            ]
                          }
                        },
                        {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  }
                                }
                              ]
                            }
                          }
                        }
                      ],
                      "description": "Entity filter, similar to the filter format used by the Catalog API:  {@link  https://backstage.io/docs/reference/catalog-client.entityfilterquery } ."
                    },
                    "cache": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "duration": {
                              "anyOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "years": {
                                      "type": "number"
                                    },
                                    "months": {
                                      "type": "number"
                                    },
                                    "weeks": {
                                      "type": "number"
                                    },
                                    "days": {
                                      "type": "number"
                                    },
                                    "hours": {
                                      "type": "number"
                                    },
                                    "minutes": {
                                      "type": "number"
                                    },
                                    "seconds": {
                                      "type": "number"
                                    },
                                    "milliseconds": {
                                      "type": "number"
                                    }
                                  },
                                  "description": "Human friendly durations object."
                                },
                                {
                                  "type": "string"
                                }
                              ]
                            }
                          },
                          "required": [
                            "duration"
                          ]
                        },
                        {
                          "type": "boolean"
                        }
                      ]
                    },
                    "collects": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "factName": {
                            "type": "string"
                          },
                          "type": {
                            "type": "string"
                          },
                          "toolName": {
                            "type": "string"
                          },
                          "state": {
                            "type": "string"
                          },
                          "states": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "severities": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "validities": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          }
                        },
                        "required": [
                          "type"
                        ]
                      }
                    }
                  }
                }
              ],
              "description": "Configuration options for Soundcheck Github Fact Collector.\n\nWhen configured as a string array, entries are treated as remote URLs. URLs ending with '/' are treated as directory URLs — all .yaml/.yml files in the directory are automatically discovered and loaded. New files added to a directory are picked up on the next scheduled remote file update without requiring a config change or redeploy.",
              "visibility": "backend"
            }
          },
          "description": "Yaml configuration options for Soundcheck Fact Collectors. Optional, fact collectors can also be configured via No-Code UI.",
          "visibility": "backend"
        }
      },
      "description": "Configuration options for the soundcheck plugin."
    }
  },
  "definitions": {
    "d8ac0d98e1618f46c1e650f8b4e7334514073f01429c3ff645a173dc4e377a82-alias-_dist_index.d.ts-596-2580-_dist_index.d.ts-0-7406235801893": {
      "anyOf": [
        {
          "type": "object",
          "additionalProperties": {
            "anyOf": [
              {
                "not": {}
              },
              {
                "type": [
                  "string",
                  "number",
                  "boolean",
                  "object"
                ]
              }
            ]
          },
          "properties": {},
          "description": "A filter predicate expression that matches against one or more object properties."
        },
        {
          "type": [
            "string",
            "number",
            "boolean"
          ],
          "description": "A primitive value that can be used in filter predicates."
        },
        {
          "type": "object",
          "properties": {
            "$all": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/d8ac0d98e1618f46c1e650f8b4e7334514073f01429c3ff645a173dc4e377a82-alias-_dist_index.d.ts-596-2580-_dist_index.d.ts-0-7406235801893"
              },
              "description": "Asserts that all of the given predicates must be true."
            }
          },
          "required": [
            "$all"
          ]
        },
        {
          "type": "object",
          "properties": {
            "$any": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/d8ac0d98e1618f46c1e650f8b4e7334514073f01429c3ff645a173dc4e377a82-alias-_dist_index.d.ts-596-2580-_dist_index.d.ts-0-7406235801893"
              },
              "description": "Asserts that at least one of the given predicates must be true."
            }
          },
          "required": [
            "$any"
          ]
        },
        {
          "type": "object",
          "properties": {
            "$not": {
              "$ref": "#/definitions/d8ac0d98e1618f46c1e650f8b4e7334514073f01429c3ff645a173dc4e377a82-alias-_dist_index.d.ts-596-2580-_dist_index.d.ts-0-7406235801893",
              "description": "Asserts that the given predicate must not be true."
            }
          },
          "required": [
            "$not"
          ]
        },
        {
          "type": "object",
          "additionalProperties": {
            "type": [
              "object",
              "number",
              "string",
              "boolean",
              "null"
            ]
          },
          "properties": {
            "$all": {
              "not": {}
            },
            "$any": {
              "not": {}
            },
            "$not": {
              "not": {}
            }
          },
          "required": [
            "$all",
            "$any",
            "$not"
          ],
          "description": "Represents future additions to the set of filter predicate operators."
        }
      ],
      "description": "A filter predicate that can be evaluated against a value."
    }
  }
}
