From 69d61a0d03e6d45850aa1a5c84802f9bba703e03 Mon Sep 17 00:00:00 2001 From: flankbot <65345839+flankbot@users.noreply.github.com> Date: Fri, 6 Sep 2024 15:18:17 +0300 Subject: [PATCH] chore: update schemas (#1024) Co-authored-by: Moshe Immermam --- schema/openapi/canary.schema.json | 3983 +++++++++++++- schema/openapi/canary.spec.schema.json | 279 +- schema/openapi/component.schema.json | 4460 +++++++++++++++- schema/openapi/component.spec.schema.json | 303 +- schema/openapi/config_aws.schema.json | 515 +- schema/openapi/config_azure.schema.json | 474 +- schema/openapi/config_azuredevops.schema.json | 462 +- schema/openapi/config_file.schema.json | 380 +- .../openapi/config_githubactions.schema.json | 461 +- schema/openapi/config_kubernetes.schema.json | 608 ++- .../openapi/config_kubernetesfile.schema.json | 491 +- schema/openapi/config_sql.schema.json | 469 +- schema/openapi/config_trivy.schema.json | 425 +- schema/openapi/connection.schema.json | 956 +++- .../openapi/health_alertmanager.schema.json | 299 +- schema/openapi/health_awsconfig.schema.json | 294 +- .../openapi/health_awsconfigrule.schema.json | 305 +- schema/openapi/health_azuredevops.schema.json | 300 +- schema/openapi/health_catalog.schema.json | 246 +- schema/openapi/health_cloudwatch.schema.json | 302 +- .../openapi/health_containerdPull.schema.json | 261 +- .../openapi/health_containerdPush.schema.json | 168 +- .../health_databasebackupcheck.schema.json | 303 +- schema/openapi/health_dns.schema.json | 185 +- schema/openapi/health_dockerPull.schema.json | 261 +- schema/openapi/health_dockerPush.schema.json | 255 +- schema/openapi/health_dynatrace.schema.json | 275 +- .../openapi/health_elasticsearch.schema.json | 284 +- schema/openapi/health_exec.schema.json | 399 +- schema/openapi/health_folder.schema.json | 435 +- schema/openapi/health_gitProtocol.schema.json | 278 +- schema/openapi/health_github.schema.json | 273 +- schema/openapi/health_helm.schema.json | 260 +- schema/openapi/health_http.schema.json | 387 +- schema/openapi/health_icmp.schema.json | 170 +- schema/openapi/health_jmeter.schema.json | 261 +- schema/openapi/health_junit.schema.json | 212 +- schema/openapi/health_kubernetes.schema.json | 303 +- schema/openapi/health_ldap.schema.json | 258 +- schema/openapi/health_mongodb.schema.json | 179 +- schema/openapi/health_mssql.schema.json | 281 +- schema/openapi/health_mysql.schema.json | 281 +- schema/openapi/health_namespace.schema.json | 222 +- schema/openapi/health_opensearch.schema.json | 286 +- schema/openapi/health_pod.schema.json | 212 +- schema/openapi/health_postgres.schema.json | 281 +- schema/openapi/health_prometheus.schema.json | 348 +- schema/openapi/health_redis.schema.json | 254 +- schema/openapi/health_restic.schema.json | 266 +- schema/openapi/health_s3.schema.json | 272 +- schema/openapi/health_tcp.schema.json | 164 +- schema/openapi/health_webhook.schema.json | 266 +- schema/openapi/incident-rules.schema.json | 564 +- schema/openapi/notification.schema.json | 231 +- schema/openapi/playbook-spec.schema.json | 983 +++- schema/openapi/playbook.schema.json | 1142 +++- schema/openapi/scrape_config.schema.json | 2373 ++++++++- schema/openapi/scrape_config.spec.schema.json | 949 +++- schema/openapi/topology.schema.json | 4574 ++++++++++++++++- schema/openapi/topology.spec.schema.json | 367 +- 60 files changed, 35478 insertions(+), 257 deletions(-) diff --git a/schema/openapi/canary.schema.json b/schema/openapi/canary.schema.json index 1ef60b90..8ba8c436 100644 --- a/schema/openapi/canary.schema.json +++ b/schema/openapi/canary.schema.json @@ -1 +1,3982 @@ -{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://github.com/flanksource/canary-checker/api/v1/canary","$ref":"#/$defs/Canary","$defs":{"AWSConnection":{"properties":{"connection":{"type":"string"},"accessKey":{"$ref":"#/$defs/EnvVar"},"secretKey":{"$ref":"#/$defs/EnvVar"},"sessionToken":{"$ref":"#/$defs/EnvVar"},"region":{"type":"string"},"endpoint":{"type":"string"},"skipTLSVerify":{"type":"boolean"}},"additionalProperties":false,"type":"object"},"AlertManagerCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"connection":{"type":"string"},"url":{"type":"string"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"},"relationships":{"$ref":"#/$defs/CheckRelationship"},"alerts":{"items":{"type":"string"},"type":"array"},"filters":{"additionalProperties":{"type":"string"},"type":"object"},"exclude_filters":{"additionalProperties":{"type":"string"},"type":"object"},"ignore":{"items":{"type":"string"},"type":"array"}},"additionalProperties":false,"type":"object","required":["name"]},"Artifact":{"properties":{"path":{"type":"string"}},"additionalProperties":false,"type":"object","required":["path"]},"Authentication":{"properties":{"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"}},"additionalProperties":false,"type":"object"},"AwsConfigCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"query":{"type":"string"},"connection":{"type":"string"},"accessKey":{"$ref":"#/$defs/EnvVar"},"secretKey":{"$ref":"#/$defs/EnvVar"},"sessionToken":{"$ref":"#/$defs/EnvVar"},"region":{"type":"string"},"endpoint":{"type":"string"},"skipTLSVerify":{"type":"boolean"},"aggregatorName":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name","query"]},"AwsConfigRuleCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"ignoreRules":{"items":{"type":"string"},"type":"array"},"rules":{"items":{"type":"string"},"type":"array"},"complianceTypes":{"items":{"type":"string"},"type":"array"},"connection":{"type":"string"},"accessKey":{"$ref":"#/$defs/EnvVar"},"secretKey":{"$ref":"#/$defs/EnvVar"},"sessionToken":{"$ref":"#/$defs/EnvVar"},"region":{"type":"string"},"endpoint":{"type":"string"},"skipTLSVerify":{"type":"boolean"}},"additionalProperties":false,"type":"object","required":["name"]},"AzureConnection":{"properties":{"connection":{"type":"string"},"clientID":{"$ref":"#/$defs/EnvVar"},"clientSecret":{"$ref":"#/$defs/EnvVar"},"tenantID":{"type":"string"}},"additionalProperties":false,"type":"object"},"AzureDevopsCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"connection":{"type":"string"},"organization":{"type":"string"},"personalAccessToken":{"$ref":"#/$defs/EnvVar"},"project":{"type":"string"},"pipeline":{"type":"string"},"variables":{"additionalProperties":{"type":"string"},"type":"object"},"branch":{"items":{"type":"string"},"type":"array"},"thresholdMillis":{"type":"integer"}},"additionalProperties":false,"type":"object","required":["name","organization","personalAccessToken","project","pipeline","variables","branch","thresholdMillis"]},"Canary":{"properties":{"kind":{"type":"string"},"apiVersion":{"type":"string"},"metadata":{"$ref":"#/$defs/ObjectMeta"},"spec":{"$ref":"#/$defs/CanarySpec"},"status":{"$ref":"#/$defs/CanaryStatus"}},"additionalProperties":false,"type":"object"},"CanarySpec":{"properties":{"replicas":{"type":"integer"},"env":{"additionalProperties":{"$ref":"#/$defs/VarSource"},"type":"object"},"http":{"items":{"$ref":"#/$defs/HTTPCheck"},"type":"array"},"dns":{"items":{"$ref":"#/$defs/DNSCheck"},"type":"array"},"docker":{"items":{"$ref":"#/$defs/DockerPullCheck"},"type":"array"},"dockerPush":{"items":{"$ref":"#/$defs/DockerPushCheck"},"type":"array"},"containerd":{"items":{"$ref":"#/$defs/ContainerdPullCheck"},"type":"array"},"containerdPush":{"items":{"$ref":"#/$defs/ContainerdPushCheck"},"type":"array"},"s3":{"items":{"$ref":"#/$defs/S3Check"},"type":"array"},"tcp":{"items":{"$ref":"#/$defs/TCPCheck"},"type":"array"},"pod":{"items":{"$ref":"#/$defs/PodCheck"},"type":"array"},"ldap":{"items":{"$ref":"#/$defs/LDAPCheck"},"type":"array"},"icmp":{"items":{"$ref":"#/$defs/ICMPCheck"},"type":"array"},"postgres":{"items":{"$ref":"#/$defs/PostgresCheck"},"type":"array"},"mssql":{"items":{"$ref":"#/$defs/MssqlCheck"},"type":"array"},"mysql":{"items":{"$ref":"#/$defs/MysqlCheck"},"type":"array"},"restic":{"items":{"$ref":"#/$defs/ResticCheck"},"type":"array"},"jmeter":{"items":{"$ref":"#/$defs/JmeterCheck"},"type":"array"},"junit":{"items":{"$ref":"#/$defs/JunitCheck"},"type":"array"},"helm":{"items":{"$ref":"#/$defs/HelmCheck"},"type":"array"},"namespace":{"items":{"$ref":"#/$defs/NamespaceCheck"},"type":"array"},"redis":{"items":{"$ref":"#/$defs/RedisCheck"},"type":"array"},"prometheus":{"items":{"$ref":"#/$defs/PrometheusCheck"},"type":"array"},"mongodb":{"items":{"$ref":"#/$defs/MongoDBCheck"},"type":"array"},"cloudwatch":{"items":{"$ref":"#/$defs/CloudWatchCheck"},"type":"array"},"github":{"items":{"$ref":"#/$defs/GitHubCheck"},"type":"array"},"gitProtocol":{"items":{"$ref":"#/$defs/GitProtocolCheck"},"type":"array"},"kubernetes":{"items":{"$ref":"#/$defs/KubernetesCheck"},"type":"array"},"kubernetesResource":{"items":{"$ref":"#/$defs/KubernetesResourceCheck"},"type":"array"},"folder":{"items":{"$ref":"#/$defs/FolderCheck"},"type":"array"},"exec":{"items":{"$ref":"#/$defs/ExecCheck"},"type":"array"},"awsConfig":{"items":{"$ref":"#/$defs/AwsConfigCheck"},"type":"array"},"awsConfigRule":{"items":{"$ref":"#/$defs/AwsConfigRuleCheck"},"type":"array"},"databaseBackup":{"items":{"$ref":"#/$defs/DatabaseBackupCheck"},"type":"array"},"catalog":{"items":{"$ref":"#/$defs/CatalogCheck"},"type":"array"},"opensearch":{"items":{"$ref":"#/$defs/OpenSearchCheck"},"type":"array"},"elasticsearch":{"items":{"$ref":"#/$defs/ElasticsearchCheck"},"type":"array"},"alertmanager":{"items":{"$ref":"#/$defs/AlertManagerCheck"},"type":"array"},"dynatrace":{"items":{"$ref":"#/$defs/DynatraceCheck"},"type":"array"},"azureDevops":{"items":{"$ref":"#/$defs/AzureDevopsCheck"},"type":"array"},"webhook":{"$ref":"#/$defs/WebhookCheck"},"interval":{"type":"integer"},"schedule":{"type":"string"},"icon":{"type":"string"},"severity":{"type":"string"},"owner":{"type":"string"},"resultMode":{"type":"string"}},"additionalProperties":false,"type":"object"},"CanaryStatus":{"properties":{"persistedID":{"type":"string"},"lastTransitionedTime":{"$ref":"#/$defs/Time"},"lastCheck":{"$ref":"#/$defs/Time"},"message":{"type":"string"},"errorMessage":{"type":"string"},"status":{"type":"string"},"checks":{"additionalProperties":{"type":"string"},"type":"object"},"observedGeneration":{"type":"integer"},"checkStatus":{"additionalProperties":{"$ref":"#/$defs/CheckStatus"},"type":"object"},"uptime1h":{"type":"string"},"latency1h":{"type":"string"},"replicas":{"type":"integer"}},"additionalProperties":false,"type":"object"},"CatalogCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"selector":{"$ref":"#/$defs/ResourceSelectors"}},"additionalProperties":false,"type":"object","required":["name","selector"]},"CheckRelationship":{"properties":{"components":{"items":{"$ref":"#/$defs/LookupSpec"},"type":"array"},"configs":{"items":{"$ref":"#/$defs/LookupSpec"},"type":"array"}},"additionalProperties":false,"type":"object"},"CheckStatus":{"properties":{"lastTransitionedTime":{"$ref":"#/$defs/Time"},"lastCheck":{"$ref":"#/$defs/Time"},"message":{"type":"string"},"errorMessage":{"type":"string"},"uptime1h":{"type":"string"},"latency1h":{"type":"string"}},"additionalProperties":false,"type":"object"},"CloudWatchCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"connection":{"type":"string"},"accessKey":{"$ref":"#/$defs/EnvVar"},"secretKey":{"$ref":"#/$defs/EnvVar"},"sessionToken":{"$ref":"#/$defs/EnvVar"},"region":{"type":"string"},"endpoint":{"type":"string"},"skipTLSVerify":{"type":"boolean"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"actionPrefix":{"type":"string"},"alarmPrefix":{"type":"string"},"alarms":{"items":{"type":"string"},"type":"array"},"state":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name"]},"ConfigMapKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"},"optional":{"type":"boolean"}},"additionalProperties":false,"type":"object","required":["key"]},"ContainerdPullCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"image":{"type":"string"},"auth":{"$ref":"#/$defs/Authentication"},"expectedDigest":{"type":"string"},"expectedSize":{"type":"integer"}},"additionalProperties":false,"type":"object","required":["name","image"]},"ContainerdPushCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"image":{"type":"string"},"username":{"type":"string"},"password":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name","image"]},"DNSCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"server":{"type":"string"},"port":{"type":"integer"},"query":{"type":"string"},"querytype":{"type":"string"},"minrecords":{"type":"integer"},"exactreply":{"items":{"type":"string"},"type":"array"},"timeout":{"type":"integer"},"thresholdMillis":{"type":"integer"}},"additionalProperties":false,"type":"object","required":["name"]},"DatabaseBackupCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"gcp":{"$ref":"#/$defs/GCPDatabase"},"maxAge":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name"]},"DockerPullCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"image":{"type":"string"},"auth":{"$ref":"#/$defs/Authentication"},"expectedDigest":{"type":"string"},"expectedSize":{"type":"integer"}},"additionalProperties":false,"type":"object","required":["name","image"]},"DockerPushCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"image":{"type":"string"},"auth":{"$ref":"#/$defs/Authentication"}},"additionalProperties":false,"type":"object","required":["name","image"]},"DynatraceCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"connection":{"type":"string"},"host":{"type":"string"},"scheme":{"type":"string"},"apiKey":{"$ref":"#/$defs/EnvVar"}},"additionalProperties":false,"type":"object","required":["name"]},"ElasticsearchCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"connection":{"type":"string"},"url":{"type":"string"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"},"query":{"type":"string"},"index":{"type":"string"},"results":{"type":"integer"}},"additionalProperties":false,"type":"object","required":["name"]},"EnvVar":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueFrom":{"$ref":"#/$defs/EnvVarSource"}},"additionalProperties":false,"type":"object"},"EnvVarSource":{"properties":{"serviceAccount":{"type":"string"},"helmRef":{"$ref":"#/$defs/HelmRefKeySelector"},"configMapKeyRef":{"$ref":"#/$defs/ConfigMapKeySelector"},"secretKeyRef":{"$ref":"#/$defs/SecretKeySelector"}},"additionalProperties":false,"type":"object"},"ExecCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"script":{"type":"string"},"connections":{"$ref":"#/$defs/ExecConnections"},"env":{"items":{"$ref":"#/$defs/EnvVar"},"type":"array"},"checkout":{"$ref":"#/$defs/GitCheckout"},"artifacts":{"items":{"$ref":"#/$defs/Artifact"},"type":"array"}},"additionalProperties":false,"type":"object","required":["name","script"]},"ExecConnections":{"properties":{"aws":{"$ref":"#/$defs/AWSConnection"},"gcp":{"$ref":"#/$defs/GCPConnection"},"azure":{"$ref":"#/$defs/AzureConnection"}},"additionalProperties":false,"type":"object"},"FieldsV1":{"properties":{},"additionalProperties":false,"type":"object"},"FolderCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"path":{"type":"string"},"recursive":{"type":"boolean"},"filter":{"$ref":"#/$defs/FolderFilter"},"minAge":{"type":"string"},"maxAge":{"type":"string"},"minCount":{"type":"integer"},"maxCount":{"type":"integer"},"minSize":{"type":"string"},"maxSize":{"type":"string"},"availableSize":{"type":"string"},"totalSize":{"type":"string"},"awsConnection":{"$ref":"#/$defs/S3Connection"},"gcpConnection":{"$ref":"#/$defs/GCSConnection"},"smbConnection":{"$ref":"#/$defs/SMBConnection"},"sftpConnection":{"$ref":"#/$defs/SFTPConnection"}},"additionalProperties":false,"type":"object","required":["name","path"]},"FolderFilter":{"properties":{"minAge":{"type":"string"},"maxAge":{"type":"string"},"since":{"type":"string"},"minSize":{"type":"string"},"maxSize":{"type":"string"},"regex":{"type":"string"}},"additionalProperties":false,"type":"object"},"GCPConnection":{"properties":{"connection":{"type":"string"},"endpoint":{"type":"string"},"credentials":{"$ref":"#/$defs/EnvVar"}},"additionalProperties":false,"type":"object"},"GCPDatabase":{"properties":{"project":{"type":"string"},"instance":{"type":"string"},"gcpConnection":{"$ref":"#/$defs/GCPConnection"}},"additionalProperties":false,"type":"object","required":["project","instance"]},"GCSConnection":{"properties":{"connection":{"type":"string"},"endpoint":{"type":"string"},"credentials":{"$ref":"#/$defs/EnvVar"},"bucket":{"type":"string"}},"additionalProperties":false,"type":"object"},"GitCheckout":{"properties":{"url":{"type":"string"},"connection":{"type":"string"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"},"certificate":{"$ref":"#/$defs/EnvVar"},"destination":{"type":"string"}},"additionalProperties":false,"type":"object"},"GitHubCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"connection":{"type":"string"},"query":{"type":"string"},"githubToken":{"$ref":"#/$defs/EnvVar"}},"additionalProperties":false,"type":"object","required":["name","query"]},"GitProtocolCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"filename":{"type":"string"},"repository":{"type":"string"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"}},"additionalProperties":false,"type":"object","required":["name","repository","username","password"]},"HTTPCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"connection":{"type":"string"},"url":{"type":"string"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"},"endpoint":{"type":"string"},"thresholdMillis":{"type":"integer"},"responseCodes":{"items":{"type":"integer"},"type":"array"},"responseContent":{"type":"string"},"responseJSONContent":{"$ref":"#/$defs/JSONCheck"},"maxSSLExpiry":{"type":"integer"},"method":{"type":"string"},"ntlm":{"type":"boolean"},"ntlmv2":{"type":"boolean"},"body":{"type":"string"},"headers":{"items":{"$ref":"#/$defs/EnvVar"},"type":"array"},"templateBody":{"type":"boolean"},"env":{"items":{"$ref":"#/$defs/EnvVar"},"type":"array"},"oauth2":{"$ref":"#/$defs/Oauth2Config"}},"additionalProperties":false,"type":"object","required":["name"]},"HelmCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"chartmuseum":{"type":"string"},"project":{"type":"string"},"auth":{"$ref":"#/$defs/Authentication"},"cafile":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name"]},"HelmRefKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"ICMPCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"endpoint":{"type":"string"},"thresholdMillis":{"type":"integer"},"packetLossThreshold":{"type":"integer"},"packetCount":{"type":"integer"}},"additionalProperties":false,"type":"object","required":["name"]},"JSONCheck":{"properties":{"path":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false,"type":"object","required":["path","value"]},"JmeterCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"jmx":{"$ref":"#/$defs/EnvVar"},"host":{"type":"string"},"port":{"type":"integer"},"properties":{"items":{"type":"string"},"type":"array"},"systemProperties":{"items":{"type":"string"},"type":"array"},"responseDuration":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name","jmx"]},"JunitCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"testResults":{"type":"string"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"timeout":{"type":"integer"},"spec":true,"artifacts":{"items":{"$ref":"#/$defs/Artifact"},"type":"array"}},"additionalProperties":false,"type":"object","required":["name","testResults","spec"]},"KubernetesCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"namespaceSelector":{"$ref":"#/$defs/ResourceSelector"},"resource":{"$ref":"#/$defs/ResourceSelector"},"kubeconfig":{"$ref":"#/$defs/EnvVar"},"ignore":{"items":{"type":"string"},"type":"array"},"kind":{"type":"string"},"healthy":{"type":"boolean"},"ready":{"type":"boolean"}},"additionalProperties":false,"type":"object","required":["name","kind"]},"KubernetesResourceCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"staticResources":{"items":{"$ref":"#/$defs/Unstructured"},"type":"array"},"resources":{"items":{"$ref":"#/$defs/Unstructured"},"type":"array"},"checks":{"items":{"$ref":"#/$defs/KubernetesResourceChecks"},"type":"array"},"checkRetries":{"$ref":"#/$defs/KubernetesResourceCheckRetries"},"clearResources":{"type":"boolean"},"kubeconfig":{"$ref":"#/$defs/EnvVar"},"waitFor":{"$ref":"#/$defs/KubernetesResourceCheckWaitFor"}},"additionalProperties":false,"type":"object","required":["name","resources"]},"KubernetesResourceCheckRetries":{"properties":{"delay":{"type":"string"},"timeout":{"type":"string"},"interval":{"type":"string"}},"additionalProperties":false,"type":"object"},"KubernetesResourceCheckWaitFor":{"properties":{"expr":{"type":"string"},"disable":{"type":"boolean"},"delete":{"type":"boolean"},"timeout":{"type":"string"},"interval":{"type":"string"}},"additionalProperties":false,"type":"object"},"KubernetesResourceChecks":{"properties":{"replicas":{"type":"integer"},"env":{"additionalProperties":{"$ref":"#/$defs/VarSource"},"type":"object"},"http":{"items":{"$ref":"#/$defs/HTTPCheck"},"type":"array"},"dns":{"items":{"$ref":"#/$defs/DNSCheck"},"type":"array"},"docker":{"items":{"$ref":"#/$defs/DockerPullCheck"},"type":"array"},"dockerPush":{"items":{"$ref":"#/$defs/DockerPushCheck"},"type":"array"},"containerd":{"items":{"$ref":"#/$defs/ContainerdPullCheck"},"type":"array"},"containerdPush":{"items":{"$ref":"#/$defs/ContainerdPushCheck"},"type":"array"},"s3":{"items":{"$ref":"#/$defs/S3Check"},"type":"array"},"tcp":{"items":{"$ref":"#/$defs/TCPCheck"},"type":"array"},"pod":{"items":{"$ref":"#/$defs/PodCheck"},"type":"array"},"ldap":{"items":{"$ref":"#/$defs/LDAPCheck"},"type":"array"},"icmp":{"items":{"$ref":"#/$defs/ICMPCheck"},"type":"array"},"postgres":{"items":{"$ref":"#/$defs/PostgresCheck"},"type":"array"},"mssql":{"items":{"$ref":"#/$defs/MssqlCheck"},"type":"array"},"mysql":{"items":{"$ref":"#/$defs/MysqlCheck"},"type":"array"},"restic":{"items":{"$ref":"#/$defs/ResticCheck"},"type":"array"},"jmeter":{"items":{"$ref":"#/$defs/JmeterCheck"},"type":"array"},"junit":{"items":{"$ref":"#/$defs/JunitCheck"},"type":"array"},"helm":{"items":{"$ref":"#/$defs/HelmCheck"},"type":"array"},"namespace":{"items":{"$ref":"#/$defs/NamespaceCheck"},"type":"array"},"redis":{"items":{"$ref":"#/$defs/RedisCheck"},"type":"array"},"prometheus":{"items":{"$ref":"#/$defs/PrometheusCheck"},"type":"array"},"mongodb":{"items":{"$ref":"#/$defs/MongoDBCheck"},"type":"array"},"cloudwatch":{"items":{"$ref":"#/$defs/CloudWatchCheck"},"type":"array"},"github":{"items":{"$ref":"#/$defs/GitHubCheck"},"type":"array"},"gitProtocol":{"items":{"$ref":"#/$defs/GitProtocolCheck"},"type":"array"},"kubernetes":{"items":{"$ref":"#/$defs/KubernetesCheck"},"type":"array"},"kubernetesResource":{"items":{"$ref":"#/$defs/KubernetesResourceCheck"},"type":"array"},"folder":{"items":{"$ref":"#/$defs/FolderCheck"},"type":"array"},"exec":{"items":{"$ref":"#/$defs/ExecCheck"},"type":"array"},"awsConfig":{"items":{"$ref":"#/$defs/AwsConfigCheck"},"type":"array"},"awsConfigRule":{"items":{"$ref":"#/$defs/AwsConfigRuleCheck"},"type":"array"},"databaseBackup":{"items":{"$ref":"#/$defs/DatabaseBackupCheck"},"type":"array"},"catalog":{"items":{"$ref":"#/$defs/CatalogCheck"},"type":"array"},"opensearch":{"items":{"$ref":"#/$defs/OpenSearchCheck"},"type":"array"},"elasticsearch":{"items":{"$ref":"#/$defs/ElasticsearchCheck"},"type":"array"},"alertmanager":{"items":{"$ref":"#/$defs/AlertManagerCheck"},"type":"array"},"dynatrace":{"items":{"$ref":"#/$defs/DynatraceCheck"},"type":"array"},"azureDevops":{"items":{"$ref":"#/$defs/AzureDevopsCheck"},"type":"array"},"webhook":{"$ref":"#/$defs/WebhookCheck"},"interval":{"type":"integer"},"schedule":{"type":"string"},"icon":{"type":"string"},"severity":{"type":"string"},"owner":{"type":"string"},"resultMode":{"type":"string"}},"additionalProperties":false,"type":"object"},"LDAPCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"connection":{"type":"string"},"url":{"type":"string"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"},"bindDN":{"type":"string"},"userSearch":{"type":"string"},"skipTLSVerify":{"type":"boolean"}},"additionalProperties":false,"type":"object","required":["name","bindDN"]},"Labels":{"additionalProperties":{"type":"string"},"type":"object"},"Lookup":{"properties":{"expr":{"type":"string"},"value":{"type":"string"},"label":{"type":"string"}},"additionalProperties":false,"type":"object"},"LookupSpec":{"properties":{"name":{"$ref":"#/$defs/Lookup"},"namespace":{"$ref":"#/$defs/Lookup"},"type":{"$ref":"#/$defs/Lookup"}},"additionalProperties":false,"type":"object"},"ManagedFieldsEntry":{"properties":{"manager":{"type":"string"},"operation":{"type":"string"},"apiVersion":{"type":"string"},"time":{"$ref":"#/$defs/Time"},"fieldsType":{"type":"string"},"fieldsV1":{"$ref":"#/$defs/FieldsV1"},"subresource":{"type":"string"}},"additionalProperties":false,"type":"object"},"MetricLabel":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueExpr":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name"]},"MetricLabels":{"items":{"$ref":"#/$defs/MetricLabel"},"type":"array"},"Metrics":{"properties":{"name":{"type":"string"},"labels":{"$ref":"#/$defs/MetricLabels"},"type":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false,"type":"object"},"MongoDBCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"connection":{"type":"string"},"url":{"type":"string"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"}},"additionalProperties":false,"type":"object","required":["name"]},"MssqlCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"connection":{"type":"string"},"url":{"type":"string"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"},"query":{"type":"string"},"results":{"type":"integer"}},"additionalProperties":false,"type":"object","required":["name"]},"MysqlCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"connection":{"type":"string"},"url":{"type":"string"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"},"query":{"type":"string"},"results":{"type":"integer"}},"additionalProperties":false,"type":"object","required":["name"]},"NamespaceCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"namespaceNamePrefix":{"type":"string"},"namespaceLabels":{"additionalProperties":{"type":"string"},"type":"object"},"namespaceAnnotations":{"additionalProperties":{"type":"string"},"type":"object"},"podSpec":{"type":"string"},"schedule_timeout":{"type":"integer"},"readyTimeout":{"type":"integer"},"httpTimeout":{"type":"integer"},"deleteTimeout":{"type":"integer"},"ingressTimeout":{"type":"integer"},"httpRetryInterval":{"type":"integer"},"deadline":{"type":"integer"},"port":{"type":"integer"},"path":{"type":"string"},"ingressName":{"type":"string"},"ingressHost":{"type":"string"},"expectedContent":{"type":"string"},"expectedHttpStatuses":{"items":{"type":"integer"},"type":"array"},"priorityClass":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name","podSpec"]},"Oauth2Config":{"properties":{"scope":{"items":{"type":"string"},"type":"array"},"tokenURL":{"type":"string"},"params":{"additionalProperties":{"type":"string"},"type":"object"}},"additionalProperties":false,"type":"object"},"ObjectFieldSelector":{"properties":{"apiVersion":{"type":"string"},"fieldPath":{"type":"string"}},"additionalProperties":false,"type":"object","required":["fieldPath"]},"ObjectMeta":{"properties":{"name":{"type":"string"},"generateName":{"type":"string"},"namespace":{"type":"string"},"selfLink":{"type":"string"},"uid":{"type":"string"},"resourceVersion":{"type":"string"},"generation":{"type":"integer"},"creationTimestamp":{"$ref":"#/$defs/Time"},"deletionTimestamp":{"$ref":"#/$defs/Time"},"deletionGracePeriodSeconds":{"type":"integer"},"labels":{"additionalProperties":{"type":"string"},"type":"object"},"annotations":{"additionalProperties":{"type":"string"},"type":"object"},"ownerReferences":{"items":{"$ref":"#/$defs/OwnerReference"},"type":"array"},"finalizers":{"items":{"type":"string"},"type":"array"},"managedFields":{"items":{"$ref":"#/$defs/ManagedFieldsEntry"},"type":"array"}},"additionalProperties":false,"type":"object"},"OpenSearchCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"connection":{"type":"string"},"url":{"type":"string"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"},"query":{"type":"string"},"index":{"type":"string"},"results":{"type":"integer"}},"additionalProperties":false,"type":"object","required":["name","query","index"]},"OwnerReference":{"properties":{"apiVersion":{"type":"string"},"kind":{"type":"string"},"name":{"type":"string"},"uid":{"type":"string"},"controller":{"type":"boolean"},"blockOwnerDeletion":{"type":"boolean"}},"additionalProperties":false,"type":"object","required":["apiVersion","kind","name","uid"]},"PodCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"spec":{"type":"string"},"scheduleTimeout":{"type":"integer"},"readyTimeout":{"type":"integer"},"httpTimeout":{"type":"integer"},"deleteTimeout":{"type":"integer"},"ingressTimeout":{"type":"integer"},"httpRetryInterval":{"type":"integer"},"deadline":{"type":"integer"},"port":{"type":"integer"},"path":{"type":"string"},"ingressName":{"type":"string"},"ingressHost":{"type":"string"},"ingressClass":{"type":"string"},"expectedContent":{"type":"string"},"expectedHttpStatuses":{"items":{"type":"integer"},"type":"array"},"priorityClass":{"type":"string"},"roundRobinNodes":{"type":"boolean"}},"additionalProperties":false,"type":"object","required":["name"]},"PostgresCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"connection":{"type":"string"},"url":{"type":"string"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"},"query":{"type":"string"},"results":{"type":"integer"}},"additionalProperties":false,"type":"object","required":["name"]},"PrometheusCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"host":{"type":"string"},"connection":{"type":"string"},"url":{"type":"string"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"},"query":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name","query"]},"RedisCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"connection":{"type":"string"},"url":{"type":"string"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"},"addr":{"type":"string"},"db":{"type":"integer"}},"additionalProperties":false,"type":"object","required":["name"]},"ResourceSelector":{"properties":{"name":{"type":"string"},"labelSelector":{"type":"string"},"fieldSelector":{"type":"string"}},"additionalProperties":false,"type":"object"},"ResourceSelectors":{"items":{"$ref":"#/$defs/ResourceSelector"},"type":"array"},"ResticCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"connection":{"type":"string"},"awsConnectionName":{"type":"string"},"repository":{"type":"string"},"password":{"$ref":"#/$defs/EnvVar"},"maxAge":{"type":"string"},"checkIntegrity":{"type":"boolean"},"accessKey":{"$ref":"#/$defs/EnvVar"},"secretKey":{"$ref":"#/$defs/EnvVar"},"caCert":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name","repository","password","maxAge"]},"S3Check":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"connection":{"type":"string"},"accessKey":{"$ref":"#/$defs/EnvVar"},"secretKey":{"$ref":"#/$defs/EnvVar"},"sessionToken":{"$ref":"#/$defs/EnvVar"},"region":{"type":"string"},"endpoint":{"type":"string"},"skipTLSVerify":{"type":"boolean"},"bucket":{"type":"string"},"objectPath":{"type":"string"},"usePathStyle":{"type":"boolean"},"bucketName":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name"]},"S3Connection":{"properties":{"connection":{"type":"string"},"accessKey":{"$ref":"#/$defs/EnvVar"},"secretKey":{"$ref":"#/$defs/EnvVar"},"sessionToken":{"$ref":"#/$defs/EnvVar"},"region":{"type":"string"},"endpoint":{"type":"string"},"skipTLSVerify":{"type":"boolean"},"bucket":{"type":"string"},"objectPath":{"type":"string"},"usePathStyle":{"type":"boolean"}},"additionalProperties":false,"type":"object"},"SFTPConnection":{"properties":{"connection":{"type":"string"},"port":{"type":"integer"},"host":{"type":"string"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"}},"additionalProperties":false,"type":"object","required":["host"]},"SMBConnection":{"properties":{"connection":{"type":"string"},"port":{"type":"integer"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"},"domain":{"type":"string"}},"additionalProperties":false,"type":"object"},"SecretKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"},"optional":{"type":"boolean"}},"additionalProperties":false,"type":"object","required":["key"]},"TCPCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"endpoint":{"type":"string"},"thresholdMillis":{"type":"integer"}},"additionalProperties":false,"type":"object","required":["name"]},"Template":{"properties":{"template":{"type":"string"},"jsonPath":{"type":"string"},"expr":{"type":"string"},"javascript":{"type":"string"}},"additionalProperties":false,"type":"object"},"Time":{"properties":{},"additionalProperties":false,"type":"object"},"Unstructured":{"properties":{"Object":{"type":"object"}},"additionalProperties":false,"type":"object","required":["Object"]},"VarSource":{"properties":{"fieldRef":{"$ref":"#/$defs/ObjectFieldSelector"},"value":{"type":"string"},"configMapKeyRef":{"$ref":"#/$defs/ConfigMapKeySelector"},"secretKeyRef":{"$ref":"#/$defs/SecretKeySelector"}},"additionalProperties":false,"type":"object"},"WebhookCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"token":{"$ref":"#/$defs/EnvVar"}},"additionalProperties":false,"type":"object","required":["name"]}}} \ No newline at end of file +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://github.com/flanksource/canary-checker/api/v1/canary", + "$ref": "#/$defs/Canary", + "$defs": { + "AWSConnection": { + "properties": { + "connection": { + "type": "string" + }, + "accessKey": { + "$ref": "#/$defs/EnvVar" + }, + "secretKey": { + "$ref": "#/$defs/EnvVar" + }, + "sessionToken": { + "$ref": "#/$defs/EnvVar" + }, + "assumeRole": { + "type": "string" + }, + "region": { + "type": "string" + }, + "endpoint": { + "type": "string" + }, + "skipTLSVerify": { + "type": "boolean" + } + }, + "additionalProperties": false, + "type": "object" + }, + "AlertManagerCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "connection": { + "type": "string" + }, + "url": { + "type": "string" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "alerts": { + "items": { + "type": "string" + }, + "type": "array" + }, + "filters": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "exclude_filters": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "ignore": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "Artifact": { + "properties": { + "path": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "path" + ] + }, + "Authentication": { + "properties": { + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + } + }, + "additionalProperties": false, + "type": "object" + }, + "AwsConfigCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "query": { + "type": "string" + }, + "connection": { + "type": "string" + }, + "accessKey": { + "$ref": "#/$defs/EnvVar" + }, + "secretKey": { + "$ref": "#/$defs/EnvVar" + }, + "sessionToken": { + "$ref": "#/$defs/EnvVar" + }, + "assumeRole": { + "type": "string" + }, + "region": { + "type": "string" + }, + "endpoint": { + "type": "string" + }, + "skipTLSVerify": { + "type": "boolean" + }, + "aggregatorName": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "query" + ] + }, + "AwsConfigRuleCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "ignoreRules": { + "items": { + "type": "string" + }, + "type": "array" + }, + "rules": { + "items": { + "type": "string" + }, + "type": "array" + }, + "complianceTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "connection": { + "type": "string" + }, + "accessKey": { + "$ref": "#/$defs/EnvVar" + }, + "secretKey": { + "$ref": "#/$defs/EnvVar" + }, + "sessionToken": { + "$ref": "#/$defs/EnvVar" + }, + "assumeRole": { + "type": "string" + }, + "region": { + "type": "string" + }, + "endpoint": { + "type": "string" + }, + "skipTLSVerify": { + "type": "boolean" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "AzureConnection": { + "properties": { + "connection": { + "type": "string" + }, + "clientID": { + "$ref": "#/$defs/EnvVar" + }, + "clientSecret": { + "$ref": "#/$defs/EnvVar" + }, + "tenantID": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "AzureDevopsCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "connection": { + "type": "string" + }, + "organization": { + "type": "string" + }, + "personalAccessToken": { + "$ref": "#/$defs/EnvVar" + }, + "project": { + "type": "string" + }, + "pipeline": { + "type": "string" + }, + "variables": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "branch": { + "items": { + "type": "string" + }, + "type": "array" + }, + "thresholdMillis": { + "type": "integer" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "organization", + "personalAccessToken", + "project", + "pipeline", + "variables", + "branch", + "thresholdMillis" + ] + }, + "Canary": { + "properties": { + "kind": { + "type": "string" + }, + "apiVersion": { + "type": "string" + }, + "metadata": { + "$ref": "#/$defs/ObjectMeta" + }, + "spec": { + "$ref": "#/$defs/CanarySpec" + }, + "status": { + "$ref": "#/$defs/CanaryStatus" + } + }, + "additionalProperties": false, + "type": "object" + }, + "CanarySpec": { + "properties": { + "replicas": { + "type": "integer" + }, + "env": { + "additionalProperties": { + "$ref": "#/$defs/VarSource" + }, + "type": "object" + }, + "http": { + "items": { + "$ref": "#/$defs/HTTPCheck" + }, + "type": "array" + }, + "dns": { + "items": { + "$ref": "#/$defs/DNSCheck" + }, + "type": "array" + }, + "docker": { + "items": { + "$ref": "#/$defs/DockerPullCheck" + }, + "type": "array" + }, + "dockerPush": { + "items": { + "$ref": "#/$defs/DockerPushCheck" + }, + "type": "array" + }, + "containerd": { + "items": { + "$ref": "#/$defs/ContainerdPullCheck" + }, + "type": "array" + }, + "containerdPush": { + "items": { + "$ref": "#/$defs/ContainerdPushCheck" + }, + "type": "array" + }, + "s3": { + "items": { + "$ref": "#/$defs/S3Check" + }, + "type": "array" + }, + "tcp": { + "items": { + "$ref": "#/$defs/TCPCheck" + }, + "type": "array" + }, + "pod": { + "items": { + "$ref": "#/$defs/PodCheck" + }, + "type": "array" + }, + "ldap": { + "items": { + "$ref": "#/$defs/LDAPCheck" + }, + "type": "array" + }, + "icmp": { + "items": { + "$ref": "#/$defs/ICMPCheck" + }, + "type": "array" + }, + "postgres": { + "items": { + "$ref": "#/$defs/PostgresCheck" + }, + "type": "array" + }, + "mssql": { + "items": { + "$ref": "#/$defs/MssqlCheck" + }, + "type": "array" + }, + "mysql": { + "items": { + "$ref": "#/$defs/MysqlCheck" + }, + "type": "array" + }, + "restic": { + "items": { + "$ref": "#/$defs/ResticCheck" + }, + "type": "array" + }, + "jmeter": { + "items": { + "$ref": "#/$defs/JmeterCheck" + }, + "type": "array" + }, + "junit": { + "items": { + "$ref": "#/$defs/JunitCheck" + }, + "type": "array" + }, + "helm": { + "items": { + "$ref": "#/$defs/HelmCheck" + }, + "type": "array" + }, + "namespace": { + "items": { + "$ref": "#/$defs/NamespaceCheck" + }, + "type": "array" + }, + "redis": { + "items": { + "$ref": "#/$defs/RedisCheck" + }, + "type": "array" + }, + "prometheus": { + "items": { + "$ref": "#/$defs/PrometheusCheck" + }, + "type": "array" + }, + "mongodb": { + "items": { + "$ref": "#/$defs/MongoDBCheck" + }, + "type": "array" + }, + "cloudwatch": { + "items": { + "$ref": "#/$defs/CloudWatchCheck" + }, + "type": "array" + }, + "github": { + "items": { + "$ref": "#/$defs/GitHubCheck" + }, + "type": "array" + }, + "gitProtocol": { + "items": { + "$ref": "#/$defs/GitProtocolCheck" + }, + "type": "array" + }, + "kubernetes": { + "items": { + "$ref": "#/$defs/KubernetesCheck" + }, + "type": "array" + }, + "kubernetesResource": { + "items": { + "$ref": "#/$defs/KubernetesResourceCheck" + }, + "type": "array" + }, + "folder": { + "items": { + "$ref": "#/$defs/FolderCheck" + }, + "type": "array" + }, + "exec": { + "items": { + "$ref": "#/$defs/ExecCheck" + }, + "type": "array" + }, + "awsConfig": { + "items": { + "$ref": "#/$defs/AwsConfigCheck" + }, + "type": "array" + }, + "awsConfigRule": { + "items": { + "$ref": "#/$defs/AwsConfigRuleCheck" + }, + "type": "array" + }, + "databaseBackup": { + "items": { + "$ref": "#/$defs/DatabaseBackupCheck" + }, + "type": "array" + }, + "catalog": { + "items": { + "$ref": "#/$defs/CatalogCheck" + }, + "type": "array" + }, + "opensearch": { + "items": { + "$ref": "#/$defs/OpenSearchCheck" + }, + "type": "array" + }, + "elasticsearch": { + "items": { + "$ref": "#/$defs/ElasticsearchCheck" + }, + "type": "array" + }, + "alertmanager": { + "items": { + "$ref": "#/$defs/AlertManagerCheck" + }, + "type": "array" + }, + "dynatrace": { + "items": { + "$ref": "#/$defs/DynatraceCheck" + }, + "type": "array" + }, + "azureDevops": { + "items": { + "$ref": "#/$defs/AzureDevopsCheck" + }, + "type": "array" + }, + "webhook": { + "$ref": "#/$defs/WebhookCheck" + }, + "interval": { + "type": "integer" + }, + "schedule": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "severity": { + "type": "string" + }, + "owner": { + "type": "string" + }, + "resultMode": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "CanaryStatus": { + "properties": { + "persistedID": { + "type": "string" + }, + "lastTransitionedTime": { + "$ref": "#/$defs/Time" + }, + "lastCheck": { + "$ref": "#/$defs/Time" + }, + "message": { + "type": "string" + }, + "errorMessage": { + "type": "string" + }, + "status": { + "type": "string" + }, + "checks": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "observedGeneration": { + "type": "integer" + }, + "checkStatus": { + "additionalProperties": { + "$ref": "#/$defs/CheckStatus" + }, + "type": "object" + }, + "uptime1h": { + "type": "string" + }, + "latency1h": { + "type": "string" + }, + "replicas": { + "type": "integer" + }, + "selector": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "CatalogCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "selector": { + "$ref": "#/$defs/ResourceSelectors" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "selector" + ] + }, + "CheckRelationship": { + "properties": { + "components": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + }, + "configs": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object" + }, + "CheckStatus": { + "properties": { + "lastTransitionedTime": { + "$ref": "#/$defs/Time" + }, + "lastCheck": { + "$ref": "#/$defs/Time" + }, + "message": { + "type": "string" + }, + "errorMessage": { + "type": "string" + }, + "uptime1h": { + "type": "string" + }, + "latency1h": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "CloudWatchCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "connection": { + "type": "string" + }, + "accessKey": { + "$ref": "#/$defs/EnvVar" + }, + "secretKey": { + "$ref": "#/$defs/EnvVar" + }, + "sessionToken": { + "$ref": "#/$defs/EnvVar" + }, + "assumeRole": { + "type": "string" + }, + "region": { + "type": "string" + }, + "endpoint": { + "type": "string" + }, + "skipTLSVerify": { + "type": "boolean" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "actionPrefix": { + "type": "string" + }, + "alarmPrefix": { + "type": "string" + }, + "alarms": { + "items": { + "type": "string" + }, + "type": "array" + }, + "state": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "ConfigMapKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + }, + "optional": { + "type": "boolean" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "ContainerdPullCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "image": { + "type": "string" + }, + "auth": { + "$ref": "#/$defs/Authentication" + }, + "expectedDigest": { + "type": "string" + }, + "expectedSize": { + "type": "integer" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "image" + ] + }, + "ContainerdPushCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "image": { + "type": "string" + }, + "username": { + "type": "string" + }, + "password": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "image" + ] + }, + "DNSCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "server": { + "type": "string" + }, + "port": { + "type": "integer" + }, + "query": { + "type": "string" + }, + "querytype": { + "type": "string" + }, + "minrecords": { + "type": "integer" + }, + "exactreply": { + "items": { + "type": "string" + }, + "type": "array" + }, + "timeout": { + "type": "integer" + }, + "thresholdMillis": { + "type": "integer" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "DatabaseBackupCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "gcp": { + "$ref": "#/$defs/GCPDatabase" + }, + "maxAge": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "DockerPullCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "image": { + "type": "string" + }, + "auth": { + "$ref": "#/$defs/Authentication" + }, + "expectedDigest": { + "type": "string" + }, + "expectedSize": { + "type": "integer" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "image" + ] + }, + "DockerPushCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "image": { + "type": "string" + }, + "auth": { + "$ref": "#/$defs/Authentication" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "image" + ] + }, + "DynatraceCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "connection": { + "type": "string" + }, + "host": { + "type": "string" + }, + "scheme": { + "type": "string" + }, + "apiKey": { + "$ref": "#/$defs/EnvVar" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "ElasticsearchCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "connection": { + "type": "string" + }, + "url": { + "type": "string" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + }, + "query": { + "type": "string" + }, + "index": { + "type": "string" + }, + "results": { + "type": "integer" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "EnvVar": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "$ref": "#/$defs/EnvVarSource" + } + }, + "additionalProperties": false, + "type": "object" + }, + "EnvVarSource": { + "properties": { + "serviceAccount": { + "type": "string" + }, + "helmRef": { + "$ref": "#/$defs/HelmRefKeySelector" + }, + "configMapKeyRef": { + "$ref": "#/$defs/ConfigMapKeySelector" + }, + "secretKeyRef": { + "$ref": "#/$defs/SecretKeySelector" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ExecCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "script": { + "type": "string" + }, + "connections": { + "$ref": "#/$defs/ExecConnections" + }, + "env": { + "items": { + "$ref": "#/$defs/EnvVar" + }, + "type": "array" + }, + "checkout": { + "$ref": "#/$defs/GitCheckout" + }, + "artifacts": { + "items": { + "$ref": "#/$defs/Artifact" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "script" + ] + }, + "ExecConnections": { + "properties": { + "aws": { + "$ref": "#/$defs/AWSConnection" + }, + "gcp": { + "$ref": "#/$defs/GCPConnection" + }, + "azure": { + "$ref": "#/$defs/AzureConnection" + } + }, + "additionalProperties": false, + "type": "object" + }, + "FieldsV1": { + "properties": {}, + "additionalProperties": false, + "type": "object" + }, + "FolderCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "path": { + "type": "string" + }, + "recursive": { + "type": "boolean" + }, + "filter": { + "$ref": "#/$defs/FolderFilter" + }, + "minAge": { + "type": "string" + }, + "maxAge": { + "type": "string" + }, + "minCount": { + "type": "integer" + }, + "maxCount": { + "type": "integer" + }, + "minSize": { + "type": "string" + }, + "maxSize": { + "type": "string" + }, + "availableSize": { + "type": "string" + }, + "totalSize": { + "type": "string" + }, + "awsConnection": { + "$ref": "#/$defs/S3Connection" + }, + "gcpConnection": { + "$ref": "#/$defs/GCSConnection" + }, + "smbConnection": { + "$ref": "#/$defs/SMBConnection" + }, + "sftpConnection": { + "$ref": "#/$defs/SFTPConnection" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "path" + ] + }, + "FolderFilter": { + "properties": { + "minAge": { + "type": "string" + }, + "maxAge": { + "type": "string" + }, + "since": { + "type": "string" + }, + "minSize": { + "type": "string" + }, + "maxSize": { + "type": "string" + }, + "regex": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "GCPConnection": { + "properties": { + "connection": { + "type": "string" + }, + "endpoint": { + "type": "string" + }, + "credentials": { + "$ref": "#/$defs/EnvVar" + } + }, + "additionalProperties": false, + "type": "object" + }, + "GCPDatabase": { + "properties": { + "project": { + "type": "string" + }, + "instance": { + "type": "string" + }, + "gcpConnection": { + "$ref": "#/$defs/GCPConnection" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "project", + "instance" + ] + }, + "GCSConnection": { + "properties": { + "connection": { + "type": "string" + }, + "endpoint": { + "type": "string" + }, + "credentials": { + "$ref": "#/$defs/EnvVar" + }, + "bucket": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "GitCheckout": { + "properties": { + "url": { + "type": "string" + }, + "connection": { + "type": "string" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + }, + "certificate": { + "$ref": "#/$defs/EnvVar" + }, + "destination": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "GitHubCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "connection": { + "type": "string" + }, + "query": { + "type": "string" + }, + "githubToken": { + "$ref": "#/$defs/EnvVar" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "query" + ] + }, + "GitProtocolCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "filename": { + "type": "string" + }, + "repository": { + "type": "string" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "repository", + "username", + "password" + ] + }, + "HTTPCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "connection": { + "type": "string" + }, + "url": { + "type": "string" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + }, + "endpoint": { + "type": "string" + }, + "thresholdMillis": { + "type": "integer" + }, + "responseCodes": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "responseContent": { + "type": "string" + }, + "responseJSONContent": { + "$ref": "#/$defs/JSONCheck" + }, + "maxSSLExpiry": { + "type": "integer" + }, + "method": { + "type": "string" + }, + "ntlm": { + "type": "boolean" + }, + "ntlmv2": { + "type": "boolean" + }, + "body": { + "type": "string" + }, + "headers": { + "items": { + "$ref": "#/$defs/EnvVar" + }, + "type": "array" + }, + "templateBody": { + "type": "boolean" + }, + "env": { + "items": { + "$ref": "#/$defs/EnvVar" + }, + "type": "array" + }, + "oauth2": { + "$ref": "#/$defs/Oauth2Config" + }, + "tlsConfig": { + "$ref": "#/$defs/TLSConfig" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "HelmCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "chartmuseum": { + "type": "string" + }, + "project": { + "type": "string" + }, + "auth": { + "$ref": "#/$defs/Authentication" + }, + "cafile": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "HelmRefKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "ICMPCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "endpoint": { + "type": "string" + }, + "thresholdMillis": { + "type": "integer" + }, + "packetLossThreshold": { + "type": "integer" + }, + "packetCount": { + "type": "integer" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "JSONCheck": { + "properties": { + "path": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "path", + "value" + ] + }, + "JmeterCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "jmx": { + "$ref": "#/$defs/EnvVar" + }, + "host": { + "type": "string" + }, + "port": { + "type": "integer" + }, + "properties": { + "items": { + "type": "string" + }, + "type": "array" + }, + "systemProperties": { + "items": { + "type": "string" + }, + "type": "array" + }, + "responseDuration": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "jmx" + ] + }, + "JunitCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "testResults": { + "type": "string" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "timeout": { + "type": "integer" + }, + "spec": true, + "artifacts": { + "items": { + "$ref": "#/$defs/Artifact" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "testResults", + "spec" + ] + }, + "KubernetesCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "namespaceSelector": { + "$ref": "#/$defs/ResourceSelector" + }, + "resource": { + "$ref": "#/$defs/ResourceSelector" + }, + "kubeconfig": { + "$ref": "#/$defs/EnvVar" + }, + "ignore": { + "items": { + "type": "string" + }, + "type": "array" + }, + "kind": { + "type": "string" + }, + "healthy": { + "type": "boolean" + }, + "ready": { + "type": "boolean" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "kind" + ] + }, + "KubernetesResourceCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "staticResources": { + "items": { + "$ref": "#/$defs/Unstructured" + }, + "type": "array" + }, + "resources": { + "items": { + "$ref": "#/$defs/Unstructured" + }, + "type": "array" + }, + "checks": { + "items": { + "$ref": "#/$defs/KubernetesResourceChecks" + }, + "type": "array" + }, + "checkRetries": { + "$ref": "#/$defs/KubernetesResourceCheckRetries" + }, + "clearResources": { + "type": "boolean" + }, + "kubeconfig": { + "$ref": "#/$defs/EnvVar" + }, + "waitFor": { + "$ref": "#/$defs/KubernetesResourceCheckWaitFor" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "resources" + ] + }, + "KubernetesResourceCheckRetries": { + "properties": { + "delay": { + "type": "string" + }, + "timeout": { + "type": "string" + }, + "interval": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "KubernetesResourceCheckWaitFor": { + "properties": { + "expr": { + "type": "string" + }, + "disable": { + "type": "boolean" + }, + "delete": { + "type": "boolean" + }, + "timeout": { + "type": "string" + }, + "interval": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "KubernetesResourceChecks": { + "properties": { + "replicas": { + "type": "integer" + }, + "env": { + "additionalProperties": { + "$ref": "#/$defs/VarSource" + }, + "type": "object" + }, + "http": { + "items": { + "$ref": "#/$defs/HTTPCheck" + }, + "type": "array" + }, + "dns": { + "items": { + "$ref": "#/$defs/DNSCheck" + }, + "type": "array" + }, + "docker": { + "items": { + "$ref": "#/$defs/DockerPullCheck" + }, + "type": "array" + }, + "dockerPush": { + "items": { + "$ref": "#/$defs/DockerPushCheck" + }, + "type": "array" + }, + "containerd": { + "items": { + "$ref": "#/$defs/ContainerdPullCheck" + }, + "type": "array" + }, + "containerdPush": { + "items": { + "$ref": "#/$defs/ContainerdPushCheck" + }, + "type": "array" + }, + "s3": { + "items": { + "$ref": "#/$defs/S3Check" + }, + "type": "array" + }, + "tcp": { + "items": { + "$ref": "#/$defs/TCPCheck" + }, + "type": "array" + }, + "pod": { + "items": { + "$ref": "#/$defs/PodCheck" + }, + "type": "array" + }, + "ldap": { + "items": { + "$ref": "#/$defs/LDAPCheck" + }, + "type": "array" + }, + "icmp": { + "items": { + "$ref": "#/$defs/ICMPCheck" + }, + "type": "array" + }, + "postgres": { + "items": { + "$ref": "#/$defs/PostgresCheck" + }, + "type": "array" + }, + "mssql": { + "items": { + "$ref": "#/$defs/MssqlCheck" + }, + "type": "array" + }, + "mysql": { + "items": { + "$ref": "#/$defs/MysqlCheck" + }, + "type": "array" + }, + "restic": { + "items": { + "$ref": "#/$defs/ResticCheck" + }, + "type": "array" + }, + "jmeter": { + "items": { + "$ref": "#/$defs/JmeterCheck" + }, + "type": "array" + }, + "junit": { + "items": { + "$ref": "#/$defs/JunitCheck" + }, + "type": "array" + }, + "helm": { + "items": { + "$ref": "#/$defs/HelmCheck" + }, + "type": "array" + }, + "namespace": { + "items": { + "$ref": "#/$defs/NamespaceCheck" + }, + "type": "array" + }, + "redis": { + "items": { + "$ref": "#/$defs/RedisCheck" + }, + "type": "array" + }, + "prometheus": { + "items": { + "$ref": "#/$defs/PrometheusCheck" + }, + "type": "array" + }, + "mongodb": { + "items": { + "$ref": "#/$defs/MongoDBCheck" + }, + "type": "array" + }, + "cloudwatch": { + "items": { + "$ref": "#/$defs/CloudWatchCheck" + }, + "type": "array" + }, + "github": { + "items": { + "$ref": "#/$defs/GitHubCheck" + }, + "type": "array" + }, + "gitProtocol": { + "items": { + "$ref": "#/$defs/GitProtocolCheck" + }, + "type": "array" + }, + "kubernetes": { + "items": { + "$ref": "#/$defs/KubernetesCheck" + }, + "type": "array" + }, + "kubernetesResource": { + "items": { + "$ref": "#/$defs/KubernetesResourceCheck" + }, + "type": "array" + }, + "folder": { + "items": { + "$ref": "#/$defs/FolderCheck" + }, + "type": "array" + }, + "exec": { + "items": { + "$ref": "#/$defs/ExecCheck" + }, + "type": "array" + }, + "awsConfig": { + "items": { + "$ref": "#/$defs/AwsConfigCheck" + }, + "type": "array" + }, + "awsConfigRule": { + "items": { + "$ref": "#/$defs/AwsConfigRuleCheck" + }, + "type": "array" + }, + "databaseBackup": { + "items": { + "$ref": "#/$defs/DatabaseBackupCheck" + }, + "type": "array" + }, + "catalog": { + "items": { + "$ref": "#/$defs/CatalogCheck" + }, + "type": "array" + }, + "opensearch": { + "items": { + "$ref": "#/$defs/OpenSearchCheck" + }, + "type": "array" + }, + "elasticsearch": { + "items": { + "$ref": "#/$defs/ElasticsearchCheck" + }, + "type": "array" + }, + "alertmanager": { + "items": { + "$ref": "#/$defs/AlertManagerCheck" + }, + "type": "array" + }, + "dynatrace": { + "items": { + "$ref": "#/$defs/DynatraceCheck" + }, + "type": "array" + }, + "azureDevops": { + "items": { + "$ref": "#/$defs/AzureDevopsCheck" + }, + "type": "array" + }, + "webhook": { + "$ref": "#/$defs/WebhookCheck" + }, + "interval": { + "type": "integer" + }, + "schedule": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "severity": { + "type": "string" + }, + "owner": { + "type": "string" + }, + "resultMode": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "LDAPCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "connection": { + "type": "string" + }, + "url": { + "type": "string" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + }, + "bindDN": { + "type": "string" + }, + "userSearch": { + "type": "string" + }, + "skipTLSVerify": { + "type": "boolean" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "bindDN" + ] + }, + "Labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "Lookup": { + "properties": { + "expr": { + "type": "string" + }, + "value": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ManagedFieldsEntry": { + "properties": { + "manager": { + "type": "string" + }, + "operation": { + "type": "string" + }, + "apiVersion": { + "type": "string" + }, + "time": { + "$ref": "#/$defs/Time" + }, + "fieldsType": { + "type": "string" + }, + "fieldsV1": { + "$ref": "#/$defs/FieldsV1" + }, + "subresource": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "MetricLabel": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "MetricLabels": { + "items": { + "$ref": "#/$defs/MetricLabel" + }, + "type": "array" + }, + "Metrics": { + "properties": { + "name": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/MetricLabels" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "MongoDBCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "connection": { + "type": "string" + }, + "url": { + "type": "string" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "MssqlCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "connection": { + "type": "string" + }, + "url": { + "type": "string" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + }, + "query": { + "type": "string" + }, + "results": { + "type": "integer" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "MysqlCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "connection": { + "type": "string" + }, + "url": { + "type": "string" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + }, + "query": { + "type": "string" + }, + "results": { + "type": "integer" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "NamespaceCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "namespaceNamePrefix": { + "type": "string" + }, + "namespaceLabels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "namespaceAnnotations": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "podSpec": { + "type": "string" + }, + "schedule_timeout": { + "type": "integer" + }, + "readyTimeout": { + "type": "integer" + }, + "httpTimeout": { + "type": "integer" + }, + "deleteTimeout": { + "type": "integer" + }, + "ingressTimeout": { + "type": "integer" + }, + "httpRetryInterval": { + "type": "integer" + }, + "deadline": { + "type": "integer" + }, + "port": { + "type": "integer" + }, + "path": { + "type": "string" + }, + "ingressName": { + "type": "string" + }, + "ingressHost": { + "type": "string" + }, + "expectedContent": { + "type": "string" + }, + "expectedHttpStatuses": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "priorityClass": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "podSpec" + ] + }, + "OAuth": { + "properties": { + "clientID": { + "$ref": "#/$defs/EnvVar" + }, + "clientSecret": { + "$ref": "#/$defs/EnvVar" + }, + "scope": { + "items": { + "type": "string" + }, + "type": "array" + }, + "tokenURL": { + "type": "string" + }, + "params": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "additionalProperties": false, + "type": "object" + }, + "Oauth2Config": { + "properties": { + "scope": { + "items": { + "type": "string" + }, + "type": "array" + }, + "tokenURL": { + "type": "string" + }, + "params": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ObjectFieldSelector": { + "properties": { + "apiVersion": { + "type": "string" + }, + "fieldPath": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "fieldPath" + ] + }, + "ObjectMeta": { + "properties": { + "name": { + "type": "string" + }, + "generateName": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "selfLink": { + "type": "string" + }, + "uid": { + "type": "string" + }, + "resourceVersion": { + "type": "string" + }, + "generation": { + "type": "integer" + }, + "creationTimestamp": { + "$ref": "#/$defs/Time" + }, + "deletionTimestamp": { + "$ref": "#/$defs/Time" + }, + "deletionGracePeriodSeconds": { + "type": "integer" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "annotations": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "ownerReferences": { + "items": { + "$ref": "#/$defs/OwnerReference" + }, + "type": "array" + }, + "finalizers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "managedFields": { + "items": { + "$ref": "#/$defs/ManagedFieldsEntry" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object" + }, + "OpenSearchCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "connection": { + "type": "string" + }, + "url": { + "type": "string" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + }, + "query": { + "type": "string" + }, + "index": { + "type": "string" + }, + "results": { + "type": "integer" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "query", + "index" + ] + }, + "OwnerReference": { + "properties": { + "apiVersion": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "name": { + "type": "string" + }, + "uid": { + "type": "string" + }, + "controller": { + "type": "boolean" + }, + "blockOwnerDeletion": { + "type": "boolean" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "apiVersion", + "kind", + "name", + "uid" + ] + }, + "PodCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "spec": { + "type": "string" + }, + "scheduleTimeout": { + "type": "integer" + }, + "readyTimeout": { + "type": "integer" + }, + "httpTimeout": { + "type": "integer" + }, + "deleteTimeout": { + "type": "integer" + }, + "ingressTimeout": { + "type": "integer" + }, + "httpRetryInterval": { + "type": "integer" + }, + "deadline": { + "type": "integer" + }, + "port": { + "type": "integer" + }, + "path": { + "type": "string" + }, + "ingressName": { + "type": "string" + }, + "ingressHost": { + "type": "string" + }, + "ingressClass": { + "type": "string" + }, + "expectedContent": { + "type": "string" + }, + "expectedHttpStatuses": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "priorityClass": { + "type": "string" + }, + "roundRobinNodes": { + "type": "boolean" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "PostgresCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "connection": { + "type": "string" + }, + "url": { + "type": "string" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + }, + "query": { + "type": "string" + }, + "results": { + "type": "integer" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "PrometheusCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "host": { + "type": "string" + }, + "connection": { + "type": "string" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + }, + "ntlm": { + "type": "boolean" + }, + "ntlmv2": { + "type": "boolean" + }, + "digest": { + "type": "boolean" + }, + "url": { + "type": "string" + }, + "bearer": { + "$ref": "#/$defs/EnvVar" + }, + "oauth": { + "$ref": "#/$defs/OAuth" + }, + "tls": { + "$ref": "#/$defs/TLSConfig" + }, + "query": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "query" + ] + }, + "RedisCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "connection": { + "type": "string" + }, + "url": { + "type": "string" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + }, + "addr": { + "type": "string" + }, + "db": { + "type": "integer" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "RelationshipSelectorTemplate": { + "properties": { + "id": { + "$ref": "#/$defs/Lookup" + }, + "external_id": { + "$ref": "#/$defs/Lookup" + }, + "name": { + "$ref": "#/$defs/Lookup" + }, + "namespace": { + "$ref": "#/$defs/Lookup" + }, + "type": { + "$ref": "#/$defs/Lookup" + }, + "agent": { + "$ref": "#/$defs/Lookup" + }, + "scope": { + "$ref": "#/$defs/Lookup" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ResourceSelector": { + "properties": { + "name": { + "type": "string" + }, + "labelSelector": { + "type": "string" + }, + "fieldSelector": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ResourceSelectors": { + "items": { + "$ref": "#/$defs/ResourceSelector" + }, + "type": "array" + }, + "ResticCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "connection": { + "type": "string" + }, + "awsConnectionName": { + "type": "string" + }, + "repository": { + "type": "string" + }, + "password": { + "$ref": "#/$defs/EnvVar" + }, + "maxAge": { + "type": "string" + }, + "checkIntegrity": { + "type": "boolean" + }, + "accessKey": { + "$ref": "#/$defs/EnvVar" + }, + "secretKey": { + "$ref": "#/$defs/EnvVar" + }, + "caCert": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "repository", + "password", + "maxAge" + ] + }, + "S3Check": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "connection": { + "type": "string" + }, + "accessKey": { + "$ref": "#/$defs/EnvVar" + }, + "secretKey": { + "$ref": "#/$defs/EnvVar" + }, + "sessionToken": { + "$ref": "#/$defs/EnvVar" + }, + "assumeRole": { + "type": "string" + }, + "region": { + "type": "string" + }, + "endpoint": { + "type": "string" + }, + "skipTLSVerify": { + "type": "boolean" + }, + "bucket": { + "type": "string" + }, + "objectPath": { + "type": "string" + }, + "usePathStyle": { + "type": "boolean" + }, + "bucketName": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "S3Connection": { + "properties": { + "connection": { + "type": "string" + }, + "accessKey": { + "$ref": "#/$defs/EnvVar" + }, + "secretKey": { + "$ref": "#/$defs/EnvVar" + }, + "sessionToken": { + "$ref": "#/$defs/EnvVar" + }, + "assumeRole": { + "type": "string" + }, + "region": { + "type": "string" + }, + "endpoint": { + "type": "string" + }, + "skipTLSVerify": { + "type": "boolean" + }, + "bucket": { + "type": "string" + }, + "objectPath": { + "type": "string" + }, + "usePathStyle": { + "type": "boolean" + } + }, + "additionalProperties": false, + "type": "object" + }, + "SFTPConnection": { + "properties": { + "connection": { + "type": "string" + }, + "port": { + "type": "integer" + }, + "host": { + "type": "string" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + } + }, + "additionalProperties": false, + "type": "object" + }, + "SMBConnection": { + "properties": { + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + }, + "connection": { + "type": "string" + }, + "port": { + "type": "integer" + }, + "domain": { + "type": "string" + }, + "share": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "SecretKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + }, + "optional": { + "type": "boolean" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "TCPCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "endpoint": { + "type": "string" + }, + "thresholdMillis": { + "type": "integer" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "TLSConfig": { + "properties": { + "insecureSkipVerify": { + "type": "boolean" + }, + "handshakeTimeout": { + "type": "integer" + }, + "ca": { + "$ref": "#/$defs/EnvVar" + }, + "cert": { + "$ref": "#/$defs/EnvVar" + }, + "key": { + "$ref": "#/$defs/EnvVar" + } + }, + "additionalProperties": false, + "type": "object" + }, + "Template": { + "properties": { + "template": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "Time": { + "properties": {}, + "additionalProperties": false, + "type": "object" + }, + "Unstructured": { + "properties": { + "Object": { + "type": "object" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "Object" + ] + }, + "VarSource": { + "properties": { + "fieldRef": { + "$ref": "#/$defs/ObjectFieldSelector" + }, + "value": { + "type": "string" + }, + "configMapKeyRef": { + "$ref": "#/$defs/ConfigMapKeySelector" + }, + "secretKeyRef": { + "$ref": "#/$defs/SecretKeySelector" + } + }, + "additionalProperties": false, + "type": "object" + }, + "WebhookCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "token": { + "$ref": "#/$defs/EnvVar" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + } + } +} \ No newline at end of file diff --git a/schema/openapi/canary.spec.schema.json b/schema/openapi/canary.spec.schema.json index 9e83d551..abbb9b00 100644 --- a/schema/openapi/canary.spec.schema.json +++ b/schema/openapi/canary.spec.schema.json @@ -17,6 +17,9 @@ "sessionToken": { "$ref": "#/$defs/EnvVar" }, + "assumeRole": { + "type": "string" + }, "region": { "type": "string" }, @@ -170,6 +173,9 @@ "transform": { "$ref": "#/$defs/Template" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "query": { "type": "string" }, @@ -185,6 +191,9 @@ "sessionToken": { "$ref": "#/$defs/EnvVar" }, + "assumeRole": { + "type": "string" + }, "region": { "type": "string" }, @@ -240,6 +249,9 @@ "transform": { "$ref": "#/$defs/Template" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "ignoreRules": { "items": { "type": "string" @@ -270,6 +282,9 @@ "sessionToken": { "$ref": "#/$defs/EnvVar" }, + "assumeRole": { + "type": "string" + }, "region": { "type": "string" }, @@ -339,6 +354,9 @@ "transform": { "$ref": "#/$defs/Template" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "connection": { "type": "string" }, @@ -711,6 +729,9 @@ }, "replicas": { "type": "integer" + }, + "selector": { + "type": "string" } }, "additionalProperties": false, @@ -751,6 +772,9 @@ "transform": { "$ref": "#/$defs/Template" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "selector": { "$ref": "#/$defs/ResourceSelectors" } @@ -766,13 +790,13 @@ "properties": { "components": { "items": { - "$ref": "#/$defs/LookupSpec" + "$ref": "#/$defs/RelationshipSelectorTemplate" }, "type": "array" }, "configs": { "items": { - "$ref": "#/$defs/LookupSpec" + "$ref": "#/$defs/RelationshipSelectorTemplate" }, "type": "array" } @@ -842,6 +866,9 @@ "sessionToken": { "$ref": "#/$defs/EnvVar" }, + "assumeRole": { + "type": "string" + }, "region": { "type": "string" }, @@ -860,6 +887,9 @@ "transform": { "$ref": "#/$defs/Template" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "actionPrefix": { "type": "string" }, @@ -926,6 +956,9 @@ }, "type": "array" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "image": { "type": "string" }, @@ -972,6 +1005,9 @@ }, "type": "array" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "image": { "type": "string" }, @@ -1015,6 +1051,9 @@ }, "type": "array" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "server": { "type": "string" }, @@ -1084,6 +1123,9 @@ "transform": { "$ref": "#/$defs/Template" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "gcp": { "$ref": "#/$defs/GCPDatabase" }, @@ -1123,6 +1165,9 @@ }, "type": "array" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "image": { "type": "string" }, @@ -1169,6 +1214,9 @@ }, "type": "array" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "image": { "type": "string" }, @@ -1218,6 +1266,9 @@ "transform": { "$ref": "#/$defs/Template" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "connection": { "type": "string" }, @@ -1272,6 +1323,9 @@ "transform": { "$ref": "#/$defs/Template" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "connection": { "type": "string" }, @@ -1368,6 +1422,9 @@ "transform": { "$ref": "#/$defs/Template" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "script": { "type": "string" }, @@ -1452,6 +1509,9 @@ "transform": { "$ref": "#/$defs/Template" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "path": { "type": "string" }, @@ -1640,6 +1700,9 @@ "transform": { "$ref": "#/$defs/Template" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "connection": { "type": "string" }, @@ -1692,6 +1755,9 @@ "transform": { "$ref": "#/$defs/Template" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "filename": { "type": "string" }, @@ -1749,6 +1815,9 @@ "transform": { "$ref": "#/$defs/Template" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "connection": { "type": "string" }, @@ -1811,6 +1880,9 @@ }, "oauth2": { "$ref": "#/$defs/Oauth2Config" + }, + "tlsConfig": { + "$ref": "#/$defs/TLSConfig" } }, "additionalProperties": false, @@ -1845,6 +1917,9 @@ }, "type": "array" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "chartmuseum": { "type": "string" }, @@ -1905,6 +1980,9 @@ }, "type": "array" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "endpoint": { "type": "string" }, @@ -1966,6 +2044,9 @@ }, "type": "array" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "jmx": { "$ref": "#/$defs/EnvVar" }, @@ -2036,6 +2117,9 @@ "transform": { "$ref": "#/$defs/Template" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "timeout": { "type": "integer" }, @@ -2090,6 +2174,9 @@ "transform": { "$ref": "#/$defs/Template" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "namespaceSelector": { "$ref": "#/$defs/ResourceSelector" }, @@ -2157,6 +2244,9 @@ "transform": { "$ref": "#/$defs/Template" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "staticResources": { "items": { "$ref": "#/$defs/Unstructured" @@ -2521,6 +2611,9 @@ }, "type": "array" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "connection": { "type": "string" }, @@ -2571,21 +2664,6 @@ "additionalProperties": false, "type": "object" }, - "LookupSpec": { - "properties": { - "name": { - "$ref": "#/$defs/Lookup" - }, - "namespace": { - "$ref": "#/$defs/Lookup" - }, - "type": { - "$ref": "#/$defs/Lookup" - } - }, - "additionalProperties": false, - "type": "object" - }, "ManagedFieldsEntry": { "properties": { "manager": { @@ -2735,6 +2813,9 @@ "transform": { "$ref": "#/$defs/Template" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "connection": { "type": "string" }, @@ -2795,6 +2876,9 @@ "transform": { "$ref": "#/$defs/Template" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "connection": { "type": "string" }, @@ -2846,6 +2930,9 @@ }, "type": "array" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "namespaceNamePrefix": { "type": "string" }, @@ -2917,6 +3004,33 @@ "podSpec" ] }, + "OAuth": { + "properties": { + "clientID": { + "$ref": "#/$defs/EnvVar" + }, + "clientSecret": { + "$ref": "#/$defs/EnvVar" + }, + "scope": { + "items": { + "type": "string" + }, + "type": "array" + }, + "tokenURL": { + "type": "string" + }, + "params": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "additionalProperties": false, + "type": "object" + }, "Oauth2Config": { "properties": { "scope": { @@ -3054,6 +3168,9 @@ "transform": { "$ref": "#/$defs/Template" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "connection": { "type": "string" }, @@ -3140,6 +3257,9 @@ }, "type": "array" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "spec": { "type": "string" }, @@ -3236,6 +3356,9 @@ "transform": { "$ref": "#/$defs/Template" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "connection": { "type": "string" }, @@ -3296,21 +3419,42 @@ "transform": { "$ref": "#/$defs/Template" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "host": { "type": "string" }, "connection": { "type": "string" }, - "url": { - "type": "string" - }, "username": { "$ref": "#/$defs/EnvVar" }, "password": { "$ref": "#/$defs/EnvVar" }, + "ntlm": { + "type": "boolean" + }, + "ntlmv2": { + "type": "boolean" + }, + "digest": { + "type": "boolean" + }, + "url": { + "type": "string" + }, + "bearer": { + "$ref": "#/$defs/EnvVar" + }, + "oauth": { + "$ref": "#/$defs/OAuth" + }, + "tls": { + "$ref": "#/$defs/TLSConfig" + }, "query": { "type": "string" } @@ -3348,6 +3492,9 @@ }, "type": "array" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "connection": { "type": "string" }, @@ -3373,6 +3520,39 @@ "name" ] }, + "RelationshipSelectorTemplate": { + "properties": { + "id": { + "$ref": "#/$defs/Lookup" + }, + "external_id": { + "$ref": "#/$defs/Lookup" + }, + "name": { + "$ref": "#/$defs/Lookup" + }, + "namespace": { + "$ref": "#/$defs/Lookup" + }, + "type": { + "$ref": "#/$defs/Lookup" + }, + "agent": { + "$ref": "#/$defs/Lookup" + }, + "scope": { + "$ref": "#/$defs/Lookup" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "additionalProperties": false, + "type": "object" + }, "ResourceSelector": { "properties": { "name": { @@ -3420,6 +3600,9 @@ }, "type": "array" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "connection": { "type": "string" }, @@ -3483,6 +3666,9 @@ }, "type": "array" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "connection": { "type": "string" }, @@ -3495,6 +3681,9 @@ "sessionToken": { "$ref": "#/$defs/EnvVar" }, + "assumeRole": { + "type": "string" + }, "region": { "type": "string" }, @@ -3537,6 +3726,9 @@ "sessionToken": { "$ref": "#/$defs/EnvVar" }, + "assumeRole": { + "type": "string" + }, "region": { "type": "string" }, @@ -3578,27 +3770,27 @@ } }, "additionalProperties": false, - "type": "object", - "required": [ - "host" - ] + "type": "object" }, "SMBConnection": { "properties": { - "connection": { - "type": "string" - }, - "port": { - "type": "integer" - }, "username": { "$ref": "#/$defs/EnvVar" }, "password": { "$ref": "#/$defs/EnvVar" }, + "connection": { + "type": "string" + }, + "port": { + "type": "integer" + }, "domain": { "type": "string" + }, + "share": { + "type": "string" } }, "additionalProperties": false, @@ -3648,6 +3840,9 @@ }, "type": "array" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "endpoint": { "type": "string" }, @@ -3661,6 +3856,27 @@ "name" ] }, + "TLSConfig": { + "properties": { + "insecureSkipVerify": { + "type": "boolean" + }, + "handshakeTimeout": { + "type": "integer" + }, + "ca": { + "$ref": "#/$defs/EnvVar" + }, + "cert": { + "$ref": "#/$defs/EnvVar" + }, + "key": { + "$ref": "#/$defs/EnvVar" + } + }, + "additionalProperties": false, + "type": "object" + }, "Template": { "properties": { "template": { @@ -3749,6 +3965,9 @@ "transform": { "$ref": "#/$defs/Template" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "token": { "$ref": "#/$defs/EnvVar" } diff --git a/schema/openapi/component.schema.json b/schema/openapi/component.schema.json index 7f9a881a..1799912b 100644 --- a/schema/openapi/component.schema.json +++ b/schema/openapi/component.schema.json @@ -1 +1,4459 @@ -{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://github.com/flanksource/canary-checker/api/v1/component","$ref":"#/$defs/Component","$defs":{"AWSConnection":{"properties":{"connection":{"type":"string"},"accessKey":{"$ref":"#/$defs/EnvVar"},"secretKey":{"$ref":"#/$defs/EnvVar"},"sessionToken":{"$ref":"#/$defs/EnvVar"},"region":{"type":"string"},"endpoint":{"type":"string"},"skipTLSVerify":{"type":"boolean"}},"additionalProperties":false,"type":"object"},"AlertManagerCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"connection":{"type":"string"},"url":{"type":"string"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"},"relationships":{"$ref":"#/$defs/CheckRelationship"},"alerts":{"items":{"type":"string"},"type":"array"},"filters":{"additionalProperties":{"type":"string"},"type":"object"},"exclude_filters":{"additionalProperties":{"type":"string"},"type":"object"},"ignore":{"items":{"type":"string"},"type":"array"}},"additionalProperties":false,"type":"object","required":["name"]},"Artifact":{"properties":{"path":{"type":"string"}},"additionalProperties":false,"type":"object","required":["path"]},"Authentication":{"properties":{"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"}},"additionalProperties":false,"type":"object"},"AwsConfigCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"query":{"type":"string"},"connection":{"type":"string"},"accessKey":{"$ref":"#/$defs/EnvVar"},"secretKey":{"$ref":"#/$defs/EnvVar"},"sessionToken":{"$ref":"#/$defs/EnvVar"},"region":{"type":"string"},"endpoint":{"type":"string"},"skipTLSVerify":{"type":"boolean"},"aggregatorName":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name","query"]},"AwsConfigRuleCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"ignoreRules":{"items":{"type":"string"},"type":"array"},"rules":{"items":{"type":"string"},"type":"array"},"complianceTypes":{"items":{"type":"string"},"type":"array"},"connection":{"type":"string"},"accessKey":{"$ref":"#/$defs/EnvVar"},"secretKey":{"$ref":"#/$defs/EnvVar"},"sessionToken":{"$ref":"#/$defs/EnvVar"},"region":{"type":"string"},"endpoint":{"type":"string"},"skipTLSVerify":{"type":"boolean"}},"additionalProperties":false,"type":"object","required":["name"]},"AzureConnection":{"properties":{"connection":{"type":"string"},"clientID":{"$ref":"#/$defs/EnvVar"},"clientSecret":{"$ref":"#/$defs/EnvVar"},"tenantID":{"type":"string"}},"additionalProperties":false,"type":"object"},"AzureDevopsCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"connection":{"type":"string"},"organization":{"type":"string"},"personalAccessToken":{"$ref":"#/$defs/EnvVar"},"project":{"type":"string"},"pipeline":{"type":"string"},"variables":{"additionalProperties":{"type":"string"},"type":"object"},"branch":{"items":{"type":"string"},"type":"array"},"thresholdMillis":{"type":"integer"}},"additionalProperties":false,"type":"object","required":["name","organization","personalAccessToken","project","pipeline","variables","branch","thresholdMillis"]},"CanarySpec":{"properties":{"replicas":{"type":"integer"},"env":{"additionalProperties":{"$ref":"#/$defs/VarSource"},"type":"object"},"http":{"items":{"$ref":"#/$defs/HTTPCheck"},"type":"array"},"dns":{"items":{"$ref":"#/$defs/DNSCheck"},"type":"array"},"docker":{"items":{"$ref":"#/$defs/DockerPullCheck"},"type":"array"},"dockerPush":{"items":{"$ref":"#/$defs/DockerPushCheck"},"type":"array"},"containerd":{"items":{"$ref":"#/$defs/ContainerdPullCheck"},"type":"array"},"containerdPush":{"items":{"$ref":"#/$defs/ContainerdPushCheck"},"type":"array"},"s3":{"items":{"$ref":"#/$defs/S3Check"},"type":"array"},"tcp":{"items":{"$ref":"#/$defs/TCPCheck"},"type":"array"},"pod":{"items":{"$ref":"#/$defs/PodCheck"},"type":"array"},"ldap":{"items":{"$ref":"#/$defs/LDAPCheck"},"type":"array"},"icmp":{"items":{"$ref":"#/$defs/ICMPCheck"},"type":"array"},"postgres":{"items":{"$ref":"#/$defs/PostgresCheck"},"type":"array"},"mssql":{"items":{"$ref":"#/$defs/MssqlCheck"},"type":"array"},"mysql":{"items":{"$ref":"#/$defs/MysqlCheck"},"type":"array"},"restic":{"items":{"$ref":"#/$defs/ResticCheck"},"type":"array"},"jmeter":{"items":{"$ref":"#/$defs/JmeterCheck"},"type":"array"},"junit":{"items":{"$ref":"#/$defs/JunitCheck"},"type":"array"},"helm":{"items":{"$ref":"#/$defs/HelmCheck"},"type":"array"},"namespace":{"items":{"$ref":"#/$defs/NamespaceCheck"},"type":"array"},"redis":{"items":{"$ref":"#/$defs/RedisCheck"},"type":"array"},"prometheus":{"items":{"$ref":"#/$defs/PrometheusCheck"},"type":"array"},"mongodb":{"items":{"$ref":"#/$defs/MongoDBCheck"},"type":"array"},"cloudwatch":{"items":{"$ref":"#/$defs/CloudWatchCheck"},"type":"array"},"github":{"items":{"$ref":"#/$defs/GitHubCheck"},"type":"array"},"gitProtocol":{"items":{"$ref":"#/$defs/GitProtocolCheck"},"type":"array"},"kubernetes":{"items":{"$ref":"#/$defs/KubernetesCheck"},"type":"array"},"kubernetesResource":{"items":{"$ref":"#/$defs/KubernetesResourceCheck"},"type":"array"},"folder":{"items":{"$ref":"#/$defs/FolderCheck"},"type":"array"},"exec":{"items":{"$ref":"#/$defs/ExecCheck"},"type":"array"},"awsConfig":{"items":{"$ref":"#/$defs/AwsConfigCheck"},"type":"array"},"awsConfigRule":{"items":{"$ref":"#/$defs/AwsConfigRuleCheck"},"type":"array"},"databaseBackup":{"items":{"$ref":"#/$defs/DatabaseBackupCheck"},"type":"array"},"catalog":{"items":{"$ref":"#/$defs/CatalogCheck"},"type":"array"},"opensearch":{"items":{"$ref":"#/$defs/OpenSearchCheck"},"type":"array"},"elasticsearch":{"items":{"$ref":"#/$defs/ElasticsearchCheck"},"type":"array"},"alertmanager":{"items":{"$ref":"#/$defs/AlertManagerCheck"},"type":"array"},"dynatrace":{"items":{"$ref":"#/$defs/DynatraceCheck"},"type":"array"},"azureDevops":{"items":{"$ref":"#/$defs/AzureDevopsCheck"},"type":"array"},"webhook":{"$ref":"#/$defs/WebhookCheck"},"interval":{"type":"integer"},"schedule":{"type":"string"},"icon":{"type":"string"},"severity":{"type":"string"},"owner":{"type":"string"},"resultMode":{"type":"string"}},"additionalProperties":false,"type":"object"},"CatalogCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"selector":{"$ref":"#/$defs/ResourceSelectors"}},"additionalProperties":false,"type":"object","required":["name","selector"]},"CheckRelationship":{"properties":{"components":{"items":{"$ref":"#/$defs/LookupSpec"},"type":"array"},"configs":{"items":{"$ref":"#/$defs/LookupSpec"},"type":"array"}},"additionalProperties":false,"type":"object"},"CloudWatchCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"connection":{"type":"string"},"accessKey":{"$ref":"#/$defs/EnvVar"},"secretKey":{"$ref":"#/$defs/EnvVar"},"sessionToken":{"$ref":"#/$defs/EnvVar"},"region":{"type":"string"},"endpoint":{"type":"string"},"skipTLSVerify":{"type":"boolean"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"actionPrefix":{"type":"string"},"alarmPrefix":{"type":"string"},"alarms":{"items":{"type":"string"},"type":"array"},"state":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name"]},"Component":{"properties":{"kind":{"type":"string"},"apiVersion":{"type":"string"},"metadata":{"$ref":"#/$defs/ObjectMeta"},"spec":{"$ref":"#/$defs/ComponentSpec"},"status":{"$ref":"#/$defs/ComponentStatus"}},"additionalProperties":false,"type":"object"},"ComponentCheck":{"properties":{"selector":{"$ref":"#/$defs/ResourceSelector"},"inline":{"$ref":"#/$defs/CanarySpec"}},"additionalProperties":false,"type":"object"},"ComponentChecks":{"items":{"$ref":"#/$defs/ComponentCheck"},"type":"array"},"ComponentSpec":{"properties":{"name":{"type":"string"},"namespace":{"type":"string"},"tooltip":{"type":"string"},"icon":{"type":"string"},"owner":{"type":"string"},"externalID":{"type":"string"},"id":{"$ref":"#/$defs/Template"},"order":{"type":"integer"},"labels":{"additionalProperties":{"type":"string"},"type":"object"},"hidden":{"type":"boolean"},"type":{"type":"string"},"lifecycle":{"type":"string"},"relationships":{"items":{"$ref":"#/$defs/RelationshipSpec"},"type":"array"},"properties":{"items":{"$ref":"#/$defs/Property"},"type":"array"},"lookup":{"$ref":"#/$defs/CanarySpec"},"components":{"items":{"$ref":"#/$defs/ComponentSpecObject"},"type":"array"},"selectors":{"$ref":"#/$defs/ResourceSelectors"},"checks":{"$ref":"#/$defs/ComponentChecks"},"configs":{"$ref":"#/$defs/ConfigQueries"},"summary":{"$ref":"#/$defs/Summary"},"forEach":{"$ref":"#/$defs/ForEach"},"logs":{"$ref":"#/$defs/LogSelectors"},"parentLookup":{"$ref":"#/$defs/ParentLookup"}},"additionalProperties":false,"type":"object"},"ComponentSpecObject":{"properties":{"name":{"type":"string"},"namespace":{"type":"string"},"tooltip":{"type":"string"},"icon":{"type":"string"},"owner":{"type":"string"},"externalID":{"type":"string"},"id":{"$ref":"#/$defs/Template"},"order":{"type":"integer"},"labels":{"additionalProperties":{"type":"string"},"type":"object"},"hidden":{"type":"boolean"},"type":{"type":"string"},"lifecycle":{"type":"string"},"relationships":{"items":{"$ref":"#/$defs/RelationshipSpec"},"type":"array"},"properties":{"items":{"$ref":"#/$defs/Property"},"type":"array"},"lookup":{"$ref":"#/$defs/CanarySpec"},"components":{"items":{"$ref":"#/$defs/ComponentSpecObject"},"type":"array"},"selectors":{"$ref":"#/$defs/ResourceSelectors"},"checks":{"$ref":"#/$defs/ComponentChecks"},"configs":{"$ref":"#/$defs/ConfigQueries"},"summary":{"$ref":"#/$defs/Summary"},"forEach":{"$ref":"#/$defs/ForEach"},"logs":{"$ref":"#/$defs/LogSelectors"},"parentLookup":{"$ref":"#/$defs/ParentLookup"}},"additionalProperties":false,"type":"object"},"ComponentStatus":{"properties":{"status":{"$ref":"#/$defs/ComponentStatus"}},"additionalProperties":false,"type":"object"},"ConfigLookup":{"properties":{"id":{"type":"string"},"config":{"$ref":"#/$defs/ConfigQuery"},"field":{"type":"string"},"display":{"$ref":"#/$defs/Display"}},"additionalProperties":false,"type":"object"},"ConfigMapKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"},"optional":{"type":"boolean"}},"additionalProperties":false,"type":"object","required":["key"]},"ConfigQueries":{"items":{"$ref":"#/$defs/ConfigQuery"},"type":"array"},"ConfigQuery":{"properties":{"agent":{"type":"string"},"cache":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"types":{"$ref":"#/$defs/Items"},"statuses":{"$ref":"#/$defs/Items"},"tagSelector":{"type":"string"},"labelSelector":{"type":"string"},"fieldSelector":{"type":"string"},"class":{"type":"string"},"external_id":{"type":"string"},"tags":{"additionalProperties":{"type":"string"},"type":"object"},"type":{"type":"string"}},"additionalProperties":false,"type":"object"},"ContainerdPullCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"image":{"type":"string"},"auth":{"$ref":"#/$defs/Authentication"},"expectedDigest":{"type":"string"},"expectedSize":{"type":"integer"}},"additionalProperties":false,"type":"object","required":["name","image"]},"ContainerdPushCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"image":{"type":"string"},"username":{"type":"string"},"password":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name","image"]},"DNSCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"server":{"type":"string"},"port":{"type":"integer"},"query":{"type":"string"},"querytype":{"type":"string"},"minrecords":{"type":"integer"},"exactreply":{"items":{"type":"string"},"type":"array"},"timeout":{"type":"integer"},"thresholdMillis":{"type":"integer"}},"additionalProperties":false,"type":"object","required":["name"]},"DatabaseBackupCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"gcp":{"$ref":"#/$defs/GCPDatabase"},"maxAge":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name"]},"Display":{"properties":{"template":{"type":"string"},"jsonPath":{"type":"string"},"expr":{"type":"string"},"javascript":{"type":"string"}},"additionalProperties":false,"type":"object"},"DockerPullCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"image":{"type":"string"},"auth":{"$ref":"#/$defs/Authentication"},"expectedDigest":{"type":"string"},"expectedSize":{"type":"integer"}},"additionalProperties":false,"type":"object","required":["name","image"]},"DockerPushCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"image":{"type":"string"},"auth":{"$ref":"#/$defs/Authentication"}},"additionalProperties":false,"type":"object","required":["name","image"]},"DynatraceCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"connection":{"type":"string"},"host":{"type":"string"},"scheme":{"type":"string"},"apiKey":{"$ref":"#/$defs/EnvVar"}},"additionalProperties":false,"type":"object","required":["name"]},"ElasticsearchCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"connection":{"type":"string"},"url":{"type":"string"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"},"query":{"type":"string"},"index":{"type":"string"},"results":{"type":"integer"}},"additionalProperties":false,"type":"object","required":["name"]},"EnvVar":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueFrom":{"$ref":"#/$defs/EnvVarSource"}},"additionalProperties":false,"type":"object"},"EnvVarSource":{"properties":{"serviceAccount":{"type":"string"},"helmRef":{"$ref":"#/$defs/HelmRefKeySelector"},"configMapKeyRef":{"$ref":"#/$defs/ConfigMapKeySelector"},"secretKeyRef":{"$ref":"#/$defs/SecretKeySelector"}},"additionalProperties":false,"type":"object"},"ExecCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"script":{"type":"string"},"connections":{"$ref":"#/$defs/ExecConnections"},"env":{"items":{"$ref":"#/$defs/EnvVar"},"type":"array"},"checkout":{"$ref":"#/$defs/GitCheckout"},"artifacts":{"items":{"$ref":"#/$defs/Artifact"},"type":"array"}},"additionalProperties":false,"type":"object","required":["name","script"]},"ExecConnections":{"properties":{"aws":{"$ref":"#/$defs/AWSConnection"},"gcp":{"$ref":"#/$defs/GCPConnection"},"azure":{"$ref":"#/$defs/AzureConnection"}},"additionalProperties":false,"type":"object"},"FieldsV1":{"properties":{},"additionalProperties":false,"type":"object"},"FolderCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"path":{"type":"string"},"recursive":{"type":"boolean"},"filter":{"$ref":"#/$defs/FolderFilter"},"minAge":{"type":"string"},"maxAge":{"type":"string"},"minCount":{"type":"integer"},"maxCount":{"type":"integer"},"minSize":{"type":"string"},"maxSize":{"type":"string"},"availableSize":{"type":"string"},"totalSize":{"type":"string"},"awsConnection":{"$ref":"#/$defs/S3Connection"},"gcpConnection":{"$ref":"#/$defs/GCSConnection"},"smbConnection":{"$ref":"#/$defs/SMBConnection"},"sftpConnection":{"$ref":"#/$defs/SFTPConnection"}},"additionalProperties":false,"type":"object","required":["name","path"]},"FolderFilter":{"properties":{"minAge":{"type":"string"},"maxAge":{"type":"string"},"since":{"type":"string"},"minSize":{"type":"string"},"maxSize":{"type":"string"},"regex":{"type":"string"}},"additionalProperties":false,"type":"object"},"ForEach":{"properties":{"components":{"items":{"$ref":"#/$defs/ComponentSpec"},"type":"array"},"properties":{"$ref":"#/$defs/Properties"},"configs":{"items":{"$ref":"#/$defs/ConfigQuery"},"type":"array"},"selectors":{"$ref":"#/$defs/ResourceSelectors"},"relationships":{"items":{"$ref":"#/$defs/RelationshipSpec"},"type":"array"},"checks":{"$ref":"#/$defs/ComponentChecks"}},"additionalProperties":false,"type":"object"},"GCPConnection":{"properties":{"connection":{"type":"string"},"endpoint":{"type":"string"},"credentials":{"$ref":"#/$defs/EnvVar"}},"additionalProperties":false,"type":"object"},"GCPDatabase":{"properties":{"project":{"type":"string"},"instance":{"type":"string"},"gcpConnection":{"$ref":"#/$defs/GCPConnection"}},"additionalProperties":false,"type":"object","required":["project","instance"]},"GCSConnection":{"properties":{"connection":{"type":"string"},"endpoint":{"type":"string"},"credentials":{"$ref":"#/$defs/EnvVar"},"bucket":{"type":"string"}},"additionalProperties":false,"type":"object"},"GitCheckout":{"properties":{"url":{"type":"string"},"connection":{"type":"string"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"},"certificate":{"$ref":"#/$defs/EnvVar"},"destination":{"type":"string"}},"additionalProperties":false,"type":"object"},"GitHubCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"connection":{"type":"string"},"query":{"type":"string"},"githubToken":{"$ref":"#/$defs/EnvVar"}},"additionalProperties":false,"type":"object","required":["name","query"]},"GitProtocolCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"filename":{"type":"string"},"repository":{"type":"string"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"}},"additionalProperties":false,"type":"object","required":["name","repository","username","password"]},"HTTPCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"connection":{"type":"string"},"url":{"type":"string"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"},"endpoint":{"type":"string"},"thresholdMillis":{"type":"integer"},"responseCodes":{"items":{"type":"integer"},"type":"array"},"responseContent":{"type":"string"},"responseJSONContent":{"$ref":"#/$defs/JSONCheck"},"maxSSLExpiry":{"type":"integer"},"method":{"type":"string"},"ntlm":{"type":"boolean"},"ntlmv2":{"type":"boolean"},"body":{"type":"string"},"headers":{"items":{"$ref":"#/$defs/EnvVar"},"type":"array"},"templateBody":{"type":"boolean"},"env":{"items":{"$ref":"#/$defs/EnvVar"},"type":"array"},"oauth2":{"$ref":"#/$defs/Oauth2Config"}},"additionalProperties":false,"type":"object","required":["name"]},"HelmCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"chartmuseum":{"type":"string"},"project":{"type":"string"},"auth":{"$ref":"#/$defs/Authentication"},"cafile":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name"]},"HelmRefKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"ICMPCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"endpoint":{"type":"string"},"thresholdMillis":{"type":"integer"},"packetLossThreshold":{"type":"integer"},"packetCount":{"type":"integer"}},"additionalProperties":false,"type":"object","required":["name"]},"Items":{"items":{"type":"string"},"type":"array"},"JSONCheck":{"properties":{"path":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false,"type":"object","required":["path","value"]},"JmeterCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"jmx":{"$ref":"#/$defs/EnvVar"},"host":{"type":"string"},"port":{"type":"integer"},"properties":{"items":{"type":"string"},"type":"array"},"systemProperties":{"items":{"type":"string"},"type":"array"},"responseDuration":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name","jmx"]},"JunitCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"testResults":{"type":"string"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"timeout":{"type":"integer"},"spec":true,"artifacts":{"items":{"$ref":"#/$defs/Artifact"},"type":"array"}},"additionalProperties":false,"type":"object","required":["name","testResults","spec"]},"KubernetesCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"namespaceSelector":{"$ref":"#/$defs/ResourceSelector"},"resource":{"$ref":"#/$defs/ResourceSelector"},"kubeconfig":{"$ref":"#/$defs/EnvVar"},"ignore":{"items":{"type":"string"},"type":"array"},"kind":{"type":"string"},"healthy":{"type":"boolean"},"ready":{"type":"boolean"}},"additionalProperties":false,"type":"object","required":["name","kind"]},"KubernetesResourceCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"staticResources":{"items":{"$ref":"#/$defs/Unstructured"},"type":"array"},"resources":{"items":{"$ref":"#/$defs/Unstructured"},"type":"array"},"checks":{"items":{"$ref":"#/$defs/KubernetesResourceChecks"},"type":"array"},"checkRetries":{"$ref":"#/$defs/KubernetesResourceCheckRetries"},"clearResources":{"type":"boolean"},"kubeconfig":{"$ref":"#/$defs/EnvVar"},"waitFor":{"$ref":"#/$defs/KubernetesResourceCheckWaitFor"}},"additionalProperties":false,"type":"object","required":["name","resources"]},"KubernetesResourceCheckRetries":{"properties":{"delay":{"type":"string"},"timeout":{"type":"string"},"interval":{"type":"string"}},"additionalProperties":false,"type":"object"},"KubernetesResourceCheckWaitFor":{"properties":{"expr":{"type":"string"},"disable":{"type":"boolean"},"delete":{"type":"boolean"},"timeout":{"type":"string"},"interval":{"type":"string"}},"additionalProperties":false,"type":"object"},"KubernetesResourceChecks":{"properties":{"replicas":{"type":"integer"},"env":{"additionalProperties":{"$ref":"#/$defs/VarSource"},"type":"object"},"http":{"items":{"$ref":"#/$defs/HTTPCheck"},"type":"array"},"dns":{"items":{"$ref":"#/$defs/DNSCheck"},"type":"array"},"docker":{"items":{"$ref":"#/$defs/DockerPullCheck"},"type":"array"},"dockerPush":{"items":{"$ref":"#/$defs/DockerPushCheck"},"type":"array"},"containerd":{"items":{"$ref":"#/$defs/ContainerdPullCheck"},"type":"array"},"containerdPush":{"items":{"$ref":"#/$defs/ContainerdPushCheck"},"type":"array"},"s3":{"items":{"$ref":"#/$defs/S3Check"},"type":"array"},"tcp":{"items":{"$ref":"#/$defs/TCPCheck"},"type":"array"},"pod":{"items":{"$ref":"#/$defs/PodCheck"},"type":"array"},"ldap":{"items":{"$ref":"#/$defs/LDAPCheck"},"type":"array"},"icmp":{"items":{"$ref":"#/$defs/ICMPCheck"},"type":"array"},"postgres":{"items":{"$ref":"#/$defs/PostgresCheck"},"type":"array"},"mssql":{"items":{"$ref":"#/$defs/MssqlCheck"},"type":"array"},"mysql":{"items":{"$ref":"#/$defs/MysqlCheck"},"type":"array"},"restic":{"items":{"$ref":"#/$defs/ResticCheck"},"type":"array"},"jmeter":{"items":{"$ref":"#/$defs/JmeterCheck"},"type":"array"},"junit":{"items":{"$ref":"#/$defs/JunitCheck"},"type":"array"},"helm":{"items":{"$ref":"#/$defs/HelmCheck"},"type":"array"},"namespace":{"items":{"$ref":"#/$defs/NamespaceCheck"},"type":"array"},"redis":{"items":{"$ref":"#/$defs/RedisCheck"},"type":"array"},"prometheus":{"items":{"$ref":"#/$defs/PrometheusCheck"},"type":"array"},"mongodb":{"items":{"$ref":"#/$defs/MongoDBCheck"},"type":"array"},"cloudwatch":{"items":{"$ref":"#/$defs/CloudWatchCheck"},"type":"array"},"github":{"items":{"$ref":"#/$defs/GitHubCheck"},"type":"array"},"gitProtocol":{"items":{"$ref":"#/$defs/GitProtocolCheck"},"type":"array"},"kubernetes":{"items":{"$ref":"#/$defs/KubernetesCheck"},"type":"array"},"kubernetesResource":{"items":{"$ref":"#/$defs/KubernetesResourceCheck"},"type":"array"},"folder":{"items":{"$ref":"#/$defs/FolderCheck"},"type":"array"},"exec":{"items":{"$ref":"#/$defs/ExecCheck"},"type":"array"},"awsConfig":{"items":{"$ref":"#/$defs/AwsConfigCheck"},"type":"array"},"awsConfigRule":{"items":{"$ref":"#/$defs/AwsConfigRuleCheck"},"type":"array"},"databaseBackup":{"items":{"$ref":"#/$defs/DatabaseBackupCheck"},"type":"array"},"catalog":{"items":{"$ref":"#/$defs/CatalogCheck"},"type":"array"},"opensearch":{"items":{"$ref":"#/$defs/OpenSearchCheck"},"type":"array"},"elasticsearch":{"items":{"$ref":"#/$defs/ElasticsearchCheck"},"type":"array"},"alertmanager":{"items":{"$ref":"#/$defs/AlertManagerCheck"},"type":"array"},"dynatrace":{"items":{"$ref":"#/$defs/DynatraceCheck"},"type":"array"},"azureDevops":{"items":{"$ref":"#/$defs/AzureDevopsCheck"},"type":"array"},"webhook":{"$ref":"#/$defs/WebhookCheck"},"interval":{"type":"integer"},"schedule":{"type":"string"},"icon":{"type":"string"},"severity":{"type":"string"},"owner":{"type":"string"},"resultMode":{"type":"string"}},"additionalProperties":false,"type":"object"},"LDAPCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"connection":{"type":"string"},"url":{"type":"string"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"},"bindDN":{"type":"string"},"userSearch":{"type":"string"},"skipTLSVerify":{"type":"boolean"}},"additionalProperties":false,"type":"object","required":["name","bindDN"]},"Labels":{"additionalProperties":{"type":"string"},"type":"object"},"Link":{"properties":{"type":{"type":"string"},"url":{"type":"string"},"tooltip":{"type":"string"},"icon":{"type":"string"},"text":{"type":"string"},"label":{"type":"string"}},"additionalProperties":false,"type":"object"},"LogSelector":{"properties":{"name":{"type":"string"},"type":{"type":"string"},"labels":{"additionalProperties":{"type":"string"},"type":"object"}},"additionalProperties":false,"type":"object"},"LogSelectors":{"items":{"$ref":"#/$defs/LogSelector"},"type":"array"},"Lookup":{"properties":{"expr":{"type":"string"},"value":{"type":"string"},"label":{"type":"string"}},"additionalProperties":false,"type":"object"},"LookupSpec":{"properties":{"name":{"$ref":"#/$defs/Lookup"},"namespace":{"$ref":"#/$defs/Lookup"},"type":{"$ref":"#/$defs/Lookup"}},"additionalProperties":false,"type":"object"},"ManagedFieldsEntry":{"properties":{"manager":{"type":"string"},"operation":{"type":"string"},"apiVersion":{"type":"string"},"time":{"$ref":"#/$defs/Time"},"fieldsType":{"type":"string"},"fieldsV1":{"$ref":"#/$defs/FieldsV1"},"subresource":{"type":"string"}},"additionalProperties":false,"type":"object"},"MetricLabel":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueExpr":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name"]},"MetricLabels":{"items":{"$ref":"#/$defs/MetricLabel"},"type":"array"},"Metrics":{"properties":{"name":{"type":"string"},"labels":{"$ref":"#/$defs/MetricLabels"},"type":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false,"type":"object"},"MongoDBCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"connection":{"type":"string"},"url":{"type":"string"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"}},"additionalProperties":false,"type":"object","required":["name"]},"MssqlCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"connection":{"type":"string"},"url":{"type":"string"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"},"query":{"type":"string"},"results":{"type":"integer"}},"additionalProperties":false,"type":"object","required":["name"]},"MysqlCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"connection":{"type":"string"},"url":{"type":"string"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"},"query":{"type":"string"},"results":{"type":"integer"}},"additionalProperties":false,"type":"object","required":["name"]},"NamespaceCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"namespaceNamePrefix":{"type":"string"},"namespaceLabels":{"additionalProperties":{"type":"string"},"type":"object"},"namespaceAnnotations":{"additionalProperties":{"type":"string"},"type":"object"},"podSpec":{"type":"string"},"schedule_timeout":{"type":"integer"},"readyTimeout":{"type":"integer"},"httpTimeout":{"type":"integer"},"deleteTimeout":{"type":"integer"},"ingressTimeout":{"type":"integer"},"httpRetryInterval":{"type":"integer"},"deadline":{"type":"integer"},"port":{"type":"integer"},"path":{"type":"string"},"ingressName":{"type":"string"},"ingressHost":{"type":"string"},"expectedContent":{"type":"string"},"expectedHttpStatuses":{"items":{"type":"integer"},"type":"array"},"priorityClass":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name","podSpec"]},"Oauth2Config":{"properties":{"scope":{"items":{"type":"string"},"type":"array"},"tokenURL":{"type":"string"},"params":{"additionalProperties":{"type":"string"},"type":"object"}},"additionalProperties":false,"type":"object"},"ObjectFieldSelector":{"properties":{"apiVersion":{"type":"string"},"fieldPath":{"type":"string"}},"additionalProperties":false,"type":"object","required":["fieldPath"]},"ObjectMeta":{"properties":{"name":{"type":"string"},"generateName":{"type":"string"},"namespace":{"type":"string"},"selfLink":{"type":"string"},"uid":{"type":"string"},"resourceVersion":{"type":"string"},"generation":{"type":"integer"},"creationTimestamp":{"$ref":"#/$defs/Time"},"deletionTimestamp":{"$ref":"#/$defs/Time"},"deletionGracePeriodSeconds":{"type":"integer"},"labels":{"additionalProperties":{"type":"string"},"type":"object"},"annotations":{"additionalProperties":{"type":"string"},"type":"object"},"ownerReferences":{"items":{"$ref":"#/$defs/OwnerReference"},"type":"array"},"finalizers":{"items":{"type":"string"},"type":"array"},"managedFields":{"items":{"$ref":"#/$defs/ManagedFieldsEntry"},"type":"array"}},"additionalProperties":false,"type":"object"},"OpenSearchCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"connection":{"type":"string"},"url":{"type":"string"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"},"query":{"type":"string"},"index":{"type":"string"},"results":{"type":"integer"}},"additionalProperties":false,"type":"object","required":["name","query","index"]},"OwnerReference":{"properties":{"apiVersion":{"type":"string"},"kind":{"type":"string"},"name":{"type":"string"},"uid":{"type":"string"},"controller":{"type":"boolean"},"blockOwnerDeletion":{"type":"boolean"}},"additionalProperties":false,"type":"object","required":["apiVersion","kind","name","uid"]},"ParentLookup":{"properties":{"name":{"type":"string"},"namespace":{"type":"string"},"type":{"type":"string"},"externalID":{"type":"string"}},"additionalProperties":false,"type":"object"},"PodCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"spec":{"type":"string"},"scheduleTimeout":{"type":"integer"},"readyTimeout":{"type":"integer"},"httpTimeout":{"type":"integer"},"deleteTimeout":{"type":"integer"},"ingressTimeout":{"type":"integer"},"httpRetryInterval":{"type":"integer"},"deadline":{"type":"integer"},"port":{"type":"integer"},"path":{"type":"string"},"ingressName":{"type":"string"},"ingressHost":{"type":"string"},"ingressClass":{"type":"string"},"expectedContent":{"type":"string"},"expectedHttpStatuses":{"items":{"type":"integer"},"type":"array"},"priorityClass":{"type":"string"},"roundRobinNodes":{"type":"boolean"}},"additionalProperties":false,"type":"object","required":["name"]},"PostgresCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"connection":{"type":"string"},"url":{"type":"string"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"},"query":{"type":"string"},"results":{"type":"integer"}},"additionalProperties":false,"type":"object","required":["name"]},"PrometheusCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"host":{"type":"string"},"connection":{"type":"string"},"url":{"type":"string"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"},"query":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name","query"]},"Properties":{"items":{"$ref":"#/$defs/Property"},"type":"array"},"Property":{"properties":{"label":{"type":"string"},"name":{"type":"string"},"tooltip":{"type":"string"},"icon":{"type":"string"},"text":{"type":"string"},"order":{"type":"integer"},"headline":{"type":"boolean"},"type":{"type":"string"},"color":{"type":"string"},"unit":{"type":"string"},"value":{"type":"integer"},"max":{"type":"integer"},"min":{"type":"integer"},"status":{"type":"string"},"lastTransition":{"type":"string"},"links":{"items":{"$ref":"#/$defs/Link"},"type":"array"},"lookup":{"$ref":"#/$defs/CanarySpec"},"configLookup":{"$ref":"#/$defs/ConfigLookup"},"summary":{"$ref":"#/$defs/Template"}},"additionalProperties":false,"type":"object"},"RedisCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"connection":{"type":"string"},"url":{"type":"string"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"},"addr":{"type":"string"},"db":{"type":"integer"}},"additionalProperties":false,"type":"object","required":["name"]},"RelationshipSpec":{"properties":{"type":{"type":"string"},"ref":{"type":"string"}},"additionalProperties":false,"type":"object"},"ResourceSelector":{"properties":{"name":{"type":"string"},"labelSelector":{"type":"string"},"fieldSelector":{"type":"string"}},"additionalProperties":false,"type":"object"},"ResourceSelectors":{"items":{"$ref":"#/$defs/ResourceSelector"},"type":"array"},"ResticCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"connection":{"type":"string"},"awsConnectionName":{"type":"string"},"repository":{"type":"string"},"password":{"$ref":"#/$defs/EnvVar"},"maxAge":{"type":"string"},"checkIntegrity":{"type":"boolean"},"accessKey":{"$ref":"#/$defs/EnvVar"},"secretKey":{"$ref":"#/$defs/EnvVar"},"caCert":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name","repository","password","maxAge"]},"S3Check":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"connection":{"type":"string"},"accessKey":{"$ref":"#/$defs/EnvVar"},"secretKey":{"$ref":"#/$defs/EnvVar"},"sessionToken":{"$ref":"#/$defs/EnvVar"},"region":{"type":"string"},"endpoint":{"type":"string"},"skipTLSVerify":{"type":"boolean"},"bucket":{"type":"string"},"objectPath":{"type":"string"},"usePathStyle":{"type":"boolean"},"bucketName":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name"]},"S3Connection":{"properties":{"connection":{"type":"string"},"accessKey":{"$ref":"#/$defs/EnvVar"},"secretKey":{"$ref":"#/$defs/EnvVar"},"sessionToken":{"$ref":"#/$defs/EnvVar"},"region":{"type":"string"},"endpoint":{"type":"string"},"skipTLSVerify":{"type":"boolean"},"bucket":{"type":"string"},"objectPath":{"type":"string"},"usePathStyle":{"type":"boolean"}},"additionalProperties":false,"type":"object"},"SFTPConnection":{"properties":{"connection":{"type":"string"},"port":{"type":"integer"},"host":{"type":"string"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"}},"additionalProperties":false,"type":"object","required":["host"]},"SMBConnection":{"properties":{"connection":{"type":"string"},"port":{"type":"integer"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"},"domain":{"type":"string"}},"additionalProperties":false,"type":"object"},"SecretKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"},"optional":{"type":"boolean"}},"additionalProperties":false,"type":"object","required":["key"]},"Summary":{"properties":{"healthy":{"type":"integer"},"unhealthy":{"type":"integer"},"warning":{"type":"integer"},"info":{"type":"integer"},"incidents":{"additionalProperties":{"additionalProperties":{"type":"integer"},"type":"object"},"type":"object"},"insights":{"additionalProperties":{"additionalProperties":{"type":"integer"},"type":"object"},"type":"object"},"checks":{"additionalProperties":{"type":"integer"},"type":"object"}},"additionalProperties":false,"type":"object"},"TCPCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"endpoint":{"type":"string"},"thresholdMillis":{"type":"integer"}},"additionalProperties":false,"type":"object","required":["name"]},"Template":{"properties":{"template":{"type":"string"},"jsonPath":{"type":"string"},"expr":{"type":"string"},"javascript":{"type":"string"}},"additionalProperties":false,"type":"object"},"Time":{"properties":{},"additionalProperties":false,"type":"object"},"Unstructured":{"properties":{"Object":{"type":"object"}},"additionalProperties":false,"type":"object","required":["Object"]},"VarSource":{"properties":{"fieldRef":{"$ref":"#/$defs/ObjectFieldSelector"},"value":{"type":"string"},"configMapKeyRef":{"$ref":"#/$defs/ConfigMapKeySelector"},"secretKeyRef":{"$ref":"#/$defs/SecretKeySelector"}},"additionalProperties":false,"type":"object"},"WebhookCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"token":{"$ref":"#/$defs/EnvVar"}},"additionalProperties":false,"type":"object","required":["name"]}}} \ No newline at end of file +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://github.com/flanksource/canary-checker/api/v1/component", + "$ref": "#/$defs/Component", + "$defs": { + "AWSConnection": { + "properties": { + "connection": { + "type": "string" + }, + "accessKey": { + "$ref": "#/$defs/EnvVar" + }, + "secretKey": { + "$ref": "#/$defs/EnvVar" + }, + "sessionToken": { + "$ref": "#/$defs/EnvVar" + }, + "assumeRole": { + "type": "string" + }, + "region": { + "type": "string" + }, + "endpoint": { + "type": "string" + }, + "skipTLSVerify": { + "type": "boolean" + } + }, + "additionalProperties": false, + "type": "object" + }, + "AlertManagerCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "connection": { + "type": "string" + }, + "url": { + "type": "string" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "alerts": { + "items": { + "type": "string" + }, + "type": "array" + }, + "filters": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "exclude_filters": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "ignore": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "Artifact": { + "properties": { + "path": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "path" + ] + }, + "Authentication": { + "properties": { + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + } + }, + "additionalProperties": false, + "type": "object" + }, + "AwsConfigCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "query": { + "type": "string" + }, + "connection": { + "type": "string" + }, + "accessKey": { + "$ref": "#/$defs/EnvVar" + }, + "secretKey": { + "$ref": "#/$defs/EnvVar" + }, + "sessionToken": { + "$ref": "#/$defs/EnvVar" + }, + "assumeRole": { + "type": "string" + }, + "region": { + "type": "string" + }, + "endpoint": { + "type": "string" + }, + "skipTLSVerify": { + "type": "boolean" + }, + "aggregatorName": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "query" + ] + }, + "AwsConfigRuleCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "ignoreRules": { + "items": { + "type": "string" + }, + "type": "array" + }, + "rules": { + "items": { + "type": "string" + }, + "type": "array" + }, + "complianceTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "connection": { + "type": "string" + }, + "accessKey": { + "$ref": "#/$defs/EnvVar" + }, + "secretKey": { + "$ref": "#/$defs/EnvVar" + }, + "sessionToken": { + "$ref": "#/$defs/EnvVar" + }, + "assumeRole": { + "type": "string" + }, + "region": { + "type": "string" + }, + "endpoint": { + "type": "string" + }, + "skipTLSVerify": { + "type": "boolean" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "AzureConnection": { + "properties": { + "connection": { + "type": "string" + }, + "clientID": { + "$ref": "#/$defs/EnvVar" + }, + "clientSecret": { + "$ref": "#/$defs/EnvVar" + }, + "tenantID": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "AzureDevopsCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "connection": { + "type": "string" + }, + "organization": { + "type": "string" + }, + "personalAccessToken": { + "$ref": "#/$defs/EnvVar" + }, + "project": { + "type": "string" + }, + "pipeline": { + "type": "string" + }, + "variables": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "branch": { + "items": { + "type": "string" + }, + "type": "array" + }, + "thresholdMillis": { + "type": "integer" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "organization", + "personalAccessToken", + "project", + "pipeline", + "variables", + "branch", + "thresholdMillis" + ] + }, + "CanarySpec": { + "properties": { + "replicas": { + "type": "integer" + }, + "env": { + "additionalProperties": { + "$ref": "#/$defs/VarSource" + }, + "type": "object" + }, + "http": { + "items": { + "$ref": "#/$defs/HTTPCheck" + }, + "type": "array" + }, + "dns": { + "items": { + "$ref": "#/$defs/DNSCheck" + }, + "type": "array" + }, + "docker": { + "items": { + "$ref": "#/$defs/DockerPullCheck" + }, + "type": "array" + }, + "dockerPush": { + "items": { + "$ref": "#/$defs/DockerPushCheck" + }, + "type": "array" + }, + "containerd": { + "items": { + "$ref": "#/$defs/ContainerdPullCheck" + }, + "type": "array" + }, + "containerdPush": { + "items": { + "$ref": "#/$defs/ContainerdPushCheck" + }, + "type": "array" + }, + "s3": { + "items": { + "$ref": "#/$defs/S3Check" + }, + "type": "array" + }, + "tcp": { + "items": { + "$ref": "#/$defs/TCPCheck" + }, + "type": "array" + }, + "pod": { + "items": { + "$ref": "#/$defs/PodCheck" + }, + "type": "array" + }, + "ldap": { + "items": { + "$ref": "#/$defs/LDAPCheck" + }, + "type": "array" + }, + "icmp": { + "items": { + "$ref": "#/$defs/ICMPCheck" + }, + "type": "array" + }, + "postgres": { + "items": { + "$ref": "#/$defs/PostgresCheck" + }, + "type": "array" + }, + "mssql": { + "items": { + "$ref": "#/$defs/MssqlCheck" + }, + "type": "array" + }, + "mysql": { + "items": { + "$ref": "#/$defs/MysqlCheck" + }, + "type": "array" + }, + "restic": { + "items": { + "$ref": "#/$defs/ResticCheck" + }, + "type": "array" + }, + "jmeter": { + "items": { + "$ref": "#/$defs/JmeterCheck" + }, + "type": "array" + }, + "junit": { + "items": { + "$ref": "#/$defs/JunitCheck" + }, + "type": "array" + }, + "helm": { + "items": { + "$ref": "#/$defs/HelmCheck" + }, + "type": "array" + }, + "namespace": { + "items": { + "$ref": "#/$defs/NamespaceCheck" + }, + "type": "array" + }, + "redis": { + "items": { + "$ref": "#/$defs/RedisCheck" + }, + "type": "array" + }, + "prometheus": { + "items": { + "$ref": "#/$defs/PrometheusCheck" + }, + "type": "array" + }, + "mongodb": { + "items": { + "$ref": "#/$defs/MongoDBCheck" + }, + "type": "array" + }, + "cloudwatch": { + "items": { + "$ref": "#/$defs/CloudWatchCheck" + }, + "type": "array" + }, + "github": { + "items": { + "$ref": "#/$defs/GitHubCheck" + }, + "type": "array" + }, + "gitProtocol": { + "items": { + "$ref": "#/$defs/GitProtocolCheck" + }, + "type": "array" + }, + "kubernetes": { + "items": { + "$ref": "#/$defs/KubernetesCheck" + }, + "type": "array" + }, + "kubernetesResource": { + "items": { + "$ref": "#/$defs/KubernetesResourceCheck" + }, + "type": "array" + }, + "folder": { + "items": { + "$ref": "#/$defs/FolderCheck" + }, + "type": "array" + }, + "exec": { + "items": { + "$ref": "#/$defs/ExecCheck" + }, + "type": "array" + }, + "awsConfig": { + "items": { + "$ref": "#/$defs/AwsConfigCheck" + }, + "type": "array" + }, + "awsConfigRule": { + "items": { + "$ref": "#/$defs/AwsConfigRuleCheck" + }, + "type": "array" + }, + "databaseBackup": { + "items": { + "$ref": "#/$defs/DatabaseBackupCheck" + }, + "type": "array" + }, + "catalog": { + "items": { + "$ref": "#/$defs/CatalogCheck" + }, + "type": "array" + }, + "opensearch": { + "items": { + "$ref": "#/$defs/OpenSearchCheck" + }, + "type": "array" + }, + "elasticsearch": { + "items": { + "$ref": "#/$defs/ElasticsearchCheck" + }, + "type": "array" + }, + "alertmanager": { + "items": { + "$ref": "#/$defs/AlertManagerCheck" + }, + "type": "array" + }, + "dynatrace": { + "items": { + "$ref": "#/$defs/DynatraceCheck" + }, + "type": "array" + }, + "azureDevops": { + "items": { + "$ref": "#/$defs/AzureDevopsCheck" + }, + "type": "array" + }, + "webhook": { + "$ref": "#/$defs/WebhookCheck" + }, + "interval": { + "type": "integer" + }, + "schedule": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "severity": { + "type": "string" + }, + "owner": { + "type": "string" + }, + "resultMode": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "CatalogCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "selector": { + "$ref": "#/$defs/ResourceSelectors" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "selector" + ] + }, + "CheckRelationship": { + "properties": { + "components": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + }, + "configs": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object" + }, + "CloudWatchCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "connection": { + "type": "string" + }, + "accessKey": { + "$ref": "#/$defs/EnvVar" + }, + "secretKey": { + "$ref": "#/$defs/EnvVar" + }, + "sessionToken": { + "$ref": "#/$defs/EnvVar" + }, + "assumeRole": { + "type": "string" + }, + "region": { + "type": "string" + }, + "endpoint": { + "type": "string" + }, + "skipTLSVerify": { + "type": "boolean" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "actionPrefix": { + "type": "string" + }, + "alarmPrefix": { + "type": "string" + }, + "alarms": { + "items": { + "type": "string" + }, + "type": "array" + }, + "state": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "Component": { + "properties": { + "kind": { + "type": "string" + }, + "apiVersion": { + "type": "string" + }, + "metadata": { + "$ref": "#/$defs/ObjectMeta" + }, + "spec": { + "$ref": "#/$defs/ComponentSpec" + }, + "status": { + "$ref": "#/$defs/ComponentStatus" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ComponentCheck": { + "properties": { + "selector": { + "$ref": "#/$defs/ResourceSelector" + }, + "inline": { + "$ref": "#/$defs/CanarySpec" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ComponentChecks": { + "items": { + "$ref": "#/$defs/ComponentCheck" + }, + "type": "array" + }, + "ComponentSpec": { + "properties": { + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "tooltip": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "owner": { + "type": "string" + }, + "externalID": { + "type": "string" + }, + "id": { + "$ref": "#/$defs/Template" + }, + "order": { + "type": "integer" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "hidden": { + "type": "boolean" + }, + "type": { + "type": "string" + }, + "lifecycle": { + "type": "string" + }, + "relationships": { + "items": { + "$ref": "#/$defs/RelationshipSpec" + }, + "type": "array" + }, + "properties": { + "items": { + "$ref": "#/$defs/Property" + }, + "type": "array" + }, + "lookup": { + "$ref": "#/$defs/CanarySpec" + }, + "components": { + "items": { + "$ref": "#/$defs/ComponentSpecObject" + }, + "type": "array" + }, + "selectors": { + "$ref": "#/$defs/ResourceSelectors" + }, + "checks": { + "$ref": "#/$defs/ComponentChecks" + }, + "configs": { + "$ref": "#/$defs/ConfigQueries" + }, + "summary": { + "$ref": "#/$defs/Summary" + }, + "forEach": { + "$ref": "#/$defs/ForEach" + }, + "logs": { + "$ref": "#/$defs/LogSelectors" + }, + "parentLookup": { + "$ref": "#/$defs/ParentLookup" + }, + "statusExpr": { + "type": "string" + }, + "healthExpr": { + "type": "string" + }, + "health": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ComponentSpecObject": { + "properties": { + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "tooltip": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "owner": { + "type": "string" + }, + "externalID": { + "type": "string" + }, + "id": { + "$ref": "#/$defs/Template" + }, + "order": { + "type": "integer" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "hidden": { + "type": "boolean" + }, + "type": { + "type": "string" + }, + "lifecycle": { + "type": "string" + }, + "relationships": { + "items": { + "$ref": "#/$defs/RelationshipSpec" + }, + "type": "array" + }, + "properties": { + "items": { + "$ref": "#/$defs/Property" + }, + "type": "array" + }, + "lookup": { + "$ref": "#/$defs/CanarySpec" + }, + "components": { + "items": { + "$ref": "#/$defs/ComponentSpecObject" + }, + "type": "array" + }, + "selectors": { + "$ref": "#/$defs/ResourceSelectors" + }, + "checks": { + "$ref": "#/$defs/ComponentChecks" + }, + "configs": { + "$ref": "#/$defs/ConfigQueries" + }, + "summary": { + "$ref": "#/$defs/Summary" + }, + "forEach": { + "$ref": "#/$defs/ForEach" + }, + "logs": { + "$ref": "#/$defs/LogSelectors" + }, + "parentLookup": { + "$ref": "#/$defs/ParentLookup" + }, + "statusExpr": { + "type": "string" + }, + "healthExpr": { + "type": "string" + }, + "health": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ComponentStatus": { + "properties": { + "status": { + "$ref": "#/$defs/ComponentStatus" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ConfigLookup": { + "properties": { + "id": { + "type": "string" + }, + "config": { + "$ref": "#/$defs/ConfigQuery" + }, + "field": { + "type": "string" + }, + "display": { + "$ref": "#/$defs/Display" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ConfigMapKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + }, + "optional": { + "type": "boolean" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "ConfigQueries": { + "items": { + "$ref": "#/$defs/ConfigQuery" + }, + "type": "array" + }, + "ConfigQuery": { + "properties": { + "agent": { + "type": "string" + }, + "scope": { + "type": "string" + }, + "cache": { + "type": "string" + }, + "search": { + "type": "string" + }, + "includeDeleted": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "types": { + "$ref": "#/$defs/Items" + }, + "statuses": { + "$ref": "#/$defs/Items" + }, + "tagSelector": { + "type": "string" + }, + "labelSelector": { + "type": "string" + }, + "fieldSelector": { + "type": "string" + }, + "class": { + "type": "string" + }, + "external_id": { + "type": "string" + }, + "tags": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ContainerdPullCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "image": { + "type": "string" + }, + "auth": { + "$ref": "#/$defs/Authentication" + }, + "expectedDigest": { + "type": "string" + }, + "expectedSize": { + "type": "integer" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "image" + ] + }, + "ContainerdPushCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "image": { + "type": "string" + }, + "username": { + "type": "string" + }, + "password": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "image" + ] + }, + "DNSCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "server": { + "type": "string" + }, + "port": { + "type": "integer" + }, + "query": { + "type": "string" + }, + "querytype": { + "type": "string" + }, + "minrecords": { + "type": "integer" + }, + "exactreply": { + "items": { + "type": "string" + }, + "type": "array" + }, + "timeout": { + "type": "integer" + }, + "thresholdMillis": { + "type": "integer" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "DatabaseBackupCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "gcp": { + "$ref": "#/$defs/GCPDatabase" + }, + "maxAge": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "Display": { + "properties": { + "template": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "DockerPullCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "image": { + "type": "string" + }, + "auth": { + "$ref": "#/$defs/Authentication" + }, + "expectedDigest": { + "type": "string" + }, + "expectedSize": { + "type": "integer" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "image" + ] + }, + "DockerPushCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "image": { + "type": "string" + }, + "auth": { + "$ref": "#/$defs/Authentication" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "image" + ] + }, + "DynatraceCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "connection": { + "type": "string" + }, + "host": { + "type": "string" + }, + "scheme": { + "type": "string" + }, + "apiKey": { + "$ref": "#/$defs/EnvVar" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "ElasticsearchCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "connection": { + "type": "string" + }, + "url": { + "type": "string" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + }, + "query": { + "type": "string" + }, + "index": { + "type": "string" + }, + "results": { + "type": "integer" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "EnvVar": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "$ref": "#/$defs/EnvVarSource" + } + }, + "additionalProperties": false, + "type": "object" + }, + "EnvVarSource": { + "properties": { + "serviceAccount": { + "type": "string" + }, + "helmRef": { + "$ref": "#/$defs/HelmRefKeySelector" + }, + "configMapKeyRef": { + "$ref": "#/$defs/ConfigMapKeySelector" + }, + "secretKeyRef": { + "$ref": "#/$defs/SecretKeySelector" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ExecCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "script": { + "type": "string" + }, + "connections": { + "$ref": "#/$defs/ExecConnections" + }, + "env": { + "items": { + "$ref": "#/$defs/EnvVar" + }, + "type": "array" + }, + "checkout": { + "$ref": "#/$defs/GitCheckout" + }, + "artifacts": { + "items": { + "$ref": "#/$defs/Artifact" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "script" + ] + }, + "ExecConnections": { + "properties": { + "aws": { + "$ref": "#/$defs/AWSConnection" + }, + "gcp": { + "$ref": "#/$defs/GCPConnection" + }, + "azure": { + "$ref": "#/$defs/AzureConnection" + } + }, + "additionalProperties": false, + "type": "object" + }, + "FieldsV1": { + "properties": {}, + "additionalProperties": false, + "type": "object" + }, + "FolderCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "path": { + "type": "string" + }, + "recursive": { + "type": "boolean" + }, + "filter": { + "$ref": "#/$defs/FolderFilter" + }, + "minAge": { + "type": "string" + }, + "maxAge": { + "type": "string" + }, + "minCount": { + "type": "integer" + }, + "maxCount": { + "type": "integer" + }, + "minSize": { + "type": "string" + }, + "maxSize": { + "type": "string" + }, + "availableSize": { + "type": "string" + }, + "totalSize": { + "type": "string" + }, + "awsConnection": { + "$ref": "#/$defs/S3Connection" + }, + "gcpConnection": { + "$ref": "#/$defs/GCSConnection" + }, + "smbConnection": { + "$ref": "#/$defs/SMBConnection" + }, + "sftpConnection": { + "$ref": "#/$defs/SFTPConnection" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "path" + ] + }, + "FolderFilter": { + "properties": { + "minAge": { + "type": "string" + }, + "maxAge": { + "type": "string" + }, + "since": { + "type": "string" + }, + "minSize": { + "type": "string" + }, + "maxSize": { + "type": "string" + }, + "regex": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ForEach": { + "properties": { + "components": { + "items": { + "$ref": "#/$defs/ComponentSpec" + }, + "type": "array" + }, + "properties": { + "$ref": "#/$defs/Properties" + }, + "configs": { + "items": { + "$ref": "#/$defs/ConfigQuery" + }, + "type": "array" + }, + "selectors": { + "$ref": "#/$defs/ResourceSelectors" + }, + "relationships": { + "items": { + "$ref": "#/$defs/RelationshipSpec" + }, + "type": "array" + }, + "checks": { + "$ref": "#/$defs/ComponentChecks" + } + }, + "additionalProperties": false, + "type": "object" + }, + "GCPConnection": { + "properties": { + "connection": { + "type": "string" + }, + "endpoint": { + "type": "string" + }, + "credentials": { + "$ref": "#/$defs/EnvVar" + } + }, + "additionalProperties": false, + "type": "object" + }, + "GCPDatabase": { + "properties": { + "project": { + "type": "string" + }, + "instance": { + "type": "string" + }, + "gcpConnection": { + "$ref": "#/$defs/GCPConnection" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "project", + "instance" + ] + }, + "GCSConnection": { + "properties": { + "connection": { + "type": "string" + }, + "endpoint": { + "type": "string" + }, + "credentials": { + "$ref": "#/$defs/EnvVar" + }, + "bucket": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "GitCheckout": { + "properties": { + "url": { + "type": "string" + }, + "connection": { + "type": "string" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + }, + "certificate": { + "$ref": "#/$defs/EnvVar" + }, + "destination": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "GitHubCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "connection": { + "type": "string" + }, + "query": { + "type": "string" + }, + "githubToken": { + "$ref": "#/$defs/EnvVar" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "query" + ] + }, + "GitProtocolCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "filename": { + "type": "string" + }, + "repository": { + "type": "string" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "repository", + "username", + "password" + ] + }, + "HTTPCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "connection": { + "type": "string" + }, + "url": { + "type": "string" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + }, + "endpoint": { + "type": "string" + }, + "thresholdMillis": { + "type": "integer" + }, + "responseCodes": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "responseContent": { + "type": "string" + }, + "responseJSONContent": { + "$ref": "#/$defs/JSONCheck" + }, + "maxSSLExpiry": { + "type": "integer" + }, + "method": { + "type": "string" + }, + "ntlm": { + "type": "boolean" + }, + "ntlmv2": { + "type": "boolean" + }, + "body": { + "type": "string" + }, + "headers": { + "items": { + "$ref": "#/$defs/EnvVar" + }, + "type": "array" + }, + "templateBody": { + "type": "boolean" + }, + "env": { + "items": { + "$ref": "#/$defs/EnvVar" + }, + "type": "array" + }, + "oauth2": { + "$ref": "#/$defs/Oauth2Config" + }, + "tlsConfig": { + "$ref": "#/$defs/TLSConfig" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "HelmCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "chartmuseum": { + "type": "string" + }, + "project": { + "type": "string" + }, + "auth": { + "$ref": "#/$defs/Authentication" + }, + "cafile": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "HelmRefKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "ICMPCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "endpoint": { + "type": "string" + }, + "thresholdMillis": { + "type": "integer" + }, + "packetLossThreshold": { + "type": "integer" + }, + "packetCount": { + "type": "integer" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "Items": { + "items": { + "type": "string" + }, + "type": "array" + }, + "JSONCheck": { + "properties": { + "path": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "path", + "value" + ] + }, + "JmeterCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "jmx": { + "$ref": "#/$defs/EnvVar" + }, + "host": { + "type": "string" + }, + "port": { + "type": "integer" + }, + "properties": { + "items": { + "type": "string" + }, + "type": "array" + }, + "systemProperties": { + "items": { + "type": "string" + }, + "type": "array" + }, + "responseDuration": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "jmx" + ] + }, + "JunitCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "testResults": { + "type": "string" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "timeout": { + "type": "integer" + }, + "spec": true, + "artifacts": { + "items": { + "$ref": "#/$defs/Artifact" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "testResults", + "spec" + ] + }, + "KubernetesCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "namespaceSelector": { + "$ref": "#/$defs/ResourceSelector" + }, + "resource": { + "$ref": "#/$defs/ResourceSelector" + }, + "kubeconfig": { + "$ref": "#/$defs/EnvVar" + }, + "ignore": { + "items": { + "type": "string" + }, + "type": "array" + }, + "kind": { + "type": "string" + }, + "healthy": { + "type": "boolean" + }, + "ready": { + "type": "boolean" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "kind" + ] + }, + "KubernetesResourceCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "staticResources": { + "items": { + "$ref": "#/$defs/Unstructured" + }, + "type": "array" + }, + "resources": { + "items": { + "$ref": "#/$defs/Unstructured" + }, + "type": "array" + }, + "checks": { + "items": { + "$ref": "#/$defs/KubernetesResourceChecks" + }, + "type": "array" + }, + "checkRetries": { + "$ref": "#/$defs/KubernetesResourceCheckRetries" + }, + "clearResources": { + "type": "boolean" + }, + "kubeconfig": { + "$ref": "#/$defs/EnvVar" + }, + "waitFor": { + "$ref": "#/$defs/KubernetesResourceCheckWaitFor" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "resources" + ] + }, + "KubernetesResourceCheckRetries": { + "properties": { + "delay": { + "type": "string" + }, + "timeout": { + "type": "string" + }, + "interval": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "KubernetesResourceCheckWaitFor": { + "properties": { + "expr": { + "type": "string" + }, + "disable": { + "type": "boolean" + }, + "delete": { + "type": "boolean" + }, + "timeout": { + "type": "string" + }, + "interval": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "KubernetesResourceChecks": { + "properties": { + "replicas": { + "type": "integer" + }, + "env": { + "additionalProperties": { + "$ref": "#/$defs/VarSource" + }, + "type": "object" + }, + "http": { + "items": { + "$ref": "#/$defs/HTTPCheck" + }, + "type": "array" + }, + "dns": { + "items": { + "$ref": "#/$defs/DNSCheck" + }, + "type": "array" + }, + "docker": { + "items": { + "$ref": "#/$defs/DockerPullCheck" + }, + "type": "array" + }, + "dockerPush": { + "items": { + "$ref": "#/$defs/DockerPushCheck" + }, + "type": "array" + }, + "containerd": { + "items": { + "$ref": "#/$defs/ContainerdPullCheck" + }, + "type": "array" + }, + "containerdPush": { + "items": { + "$ref": "#/$defs/ContainerdPushCheck" + }, + "type": "array" + }, + "s3": { + "items": { + "$ref": "#/$defs/S3Check" + }, + "type": "array" + }, + "tcp": { + "items": { + "$ref": "#/$defs/TCPCheck" + }, + "type": "array" + }, + "pod": { + "items": { + "$ref": "#/$defs/PodCheck" + }, + "type": "array" + }, + "ldap": { + "items": { + "$ref": "#/$defs/LDAPCheck" + }, + "type": "array" + }, + "icmp": { + "items": { + "$ref": "#/$defs/ICMPCheck" + }, + "type": "array" + }, + "postgres": { + "items": { + "$ref": "#/$defs/PostgresCheck" + }, + "type": "array" + }, + "mssql": { + "items": { + "$ref": "#/$defs/MssqlCheck" + }, + "type": "array" + }, + "mysql": { + "items": { + "$ref": "#/$defs/MysqlCheck" + }, + "type": "array" + }, + "restic": { + "items": { + "$ref": "#/$defs/ResticCheck" + }, + "type": "array" + }, + "jmeter": { + "items": { + "$ref": "#/$defs/JmeterCheck" + }, + "type": "array" + }, + "junit": { + "items": { + "$ref": "#/$defs/JunitCheck" + }, + "type": "array" + }, + "helm": { + "items": { + "$ref": "#/$defs/HelmCheck" + }, + "type": "array" + }, + "namespace": { + "items": { + "$ref": "#/$defs/NamespaceCheck" + }, + "type": "array" + }, + "redis": { + "items": { + "$ref": "#/$defs/RedisCheck" + }, + "type": "array" + }, + "prometheus": { + "items": { + "$ref": "#/$defs/PrometheusCheck" + }, + "type": "array" + }, + "mongodb": { + "items": { + "$ref": "#/$defs/MongoDBCheck" + }, + "type": "array" + }, + "cloudwatch": { + "items": { + "$ref": "#/$defs/CloudWatchCheck" + }, + "type": "array" + }, + "github": { + "items": { + "$ref": "#/$defs/GitHubCheck" + }, + "type": "array" + }, + "gitProtocol": { + "items": { + "$ref": "#/$defs/GitProtocolCheck" + }, + "type": "array" + }, + "kubernetes": { + "items": { + "$ref": "#/$defs/KubernetesCheck" + }, + "type": "array" + }, + "kubernetesResource": { + "items": { + "$ref": "#/$defs/KubernetesResourceCheck" + }, + "type": "array" + }, + "folder": { + "items": { + "$ref": "#/$defs/FolderCheck" + }, + "type": "array" + }, + "exec": { + "items": { + "$ref": "#/$defs/ExecCheck" + }, + "type": "array" + }, + "awsConfig": { + "items": { + "$ref": "#/$defs/AwsConfigCheck" + }, + "type": "array" + }, + "awsConfigRule": { + "items": { + "$ref": "#/$defs/AwsConfigRuleCheck" + }, + "type": "array" + }, + "databaseBackup": { + "items": { + "$ref": "#/$defs/DatabaseBackupCheck" + }, + "type": "array" + }, + "catalog": { + "items": { + "$ref": "#/$defs/CatalogCheck" + }, + "type": "array" + }, + "opensearch": { + "items": { + "$ref": "#/$defs/OpenSearchCheck" + }, + "type": "array" + }, + "elasticsearch": { + "items": { + "$ref": "#/$defs/ElasticsearchCheck" + }, + "type": "array" + }, + "alertmanager": { + "items": { + "$ref": "#/$defs/AlertManagerCheck" + }, + "type": "array" + }, + "dynatrace": { + "items": { + "$ref": "#/$defs/DynatraceCheck" + }, + "type": "array" + }, + "azureDevops": { + "items": { + "$ref": "#/$defs/AzureDevopsCheck" + }, + "type": "array" + }, + "webhook": { + "$ref": "#/$defs/WebhookCheck" + }, + "interval": { + "type": "integer" + }, + "schedule": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "severity": { + "type": "string" + }, + "owner": { + "type": "string" + }, + "resultMode": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "LDAPCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "connection": { + "type": "string" + }, + "url": { + "type": "string" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + }, + "bindDN": { + "type": "string" + }, + "userSearch": { + "type": "string" + }, + "skipTLSVerify": { + "type": "boolean" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "bindDN" + ] + }, + "Labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "Link": { + "properties": { + "type": { + "type": "string" + }, + "url": { + "type": "string" + }, + "tooltip": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "text": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "LogSelector": { + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "additionalProperties": false, + "type": "object" + }, + "LogSelectors": { + "items": { + "$ref": "#/$defs/LogSelector" + }, + "type": "array" + }, + "Lookup": { + "properties": { + "expr": { + "type": "string" + }, + "value": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ManagedFieldsEntry": { + "properties": { + "manager": { + "type": "string" + }, + "operation": { + "type": "string" + }, + "apiVersion": { + "type": "string" + }, + "time": { + "$ref": "#/$defs/Time" + }, + "fieldsType": { + "type": "string" + }, + "fieldsV1": { + "$ref": "#/$defs/FieldsV1" + }, + "subresource": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "MetricLabel": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "MetricLabels": { + "items": { + "$ref": "#/$defs/MetricLabel" + }, + "type": "array" + }, + "Metrics": { + "properties": { + "name": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/MetricLabels" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "MongoDBCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "connection": { + "type": "string" + }, + "url": { + "type": "string" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "MssqlCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "connection": { + "type": "string" + }, + "url": { + "type": "string" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + }, + "query": { + "type": "string" + }, + "results": { + "type": "integer" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "MysqlCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "connection": { + "type": "string" + }, + "url": { + "type": "string" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + }, + "query": { + "type": "string" + }, + "results": { + "type": "integer" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "NamespaceCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "namespaceNamePrefix": { + "type": "string" + }, + "namespaceLabels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "namespaceAnnotations": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "podSpec": { + "type": "string" + }, + "schedule_timeout": { + "type": "integer" + }, + "readyTimeout": { + "type": "integer" + }, + "httpTimeout": { + "type": "integer" + }, + "deleteTimeout": { + "type": "integer" + }, + "ingressTimeout": { + "type": "integer" + }, + "httpRetryInterval": { + "type": "integer" + }, + "deadline": { + "type": "integer" + }, + "port": { + "type": "integer" + }, + "path": { + "type": "string" + }, + "ingressName": { + "type": "string" + }, + "ingressHost": { + "type": "string" + }, + "expectedContent": { + "type": "string" + }, + "expectedHttpStatuses": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "priorityClass": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "podSpec" + ] + }, + "OAuth": { + "properties": { + "clientID": { + "$ref": "#/$defs/EnvVar" + }, + "clientSecret": { + "$ref": "#/$defs/EnvVar" + }, + "scope": { + "items": { + "type": "string" + }, + "type": "array" + }, + "tokenURL": { + "type": "string" + }, + "params": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "additionalProperties": false, + "type": "object" + }, + "Oauth2Config": { + "properties": { + "scope": { + "items": { + "type": "string" + }, + "type": "array" + }, + "tokenURL": { + "type": "string" + }, + "params": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ObjectFieldSelector": { + "properties": { + "apiVersion": { + "type": "string" + }, + "fieldPath": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "fieldPath" + ] + }, + "ObjectMeta": { + "properties": { + "name": { + "type": "string" + }, + "generateName": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "selfLink": { + "type": "string" + }, + "uid": { + "type": "string" + }, + "resourceVersion": { + "type": "string" + }, + "generation": { + "type": "integer" + }, + "creationTimestamp": { + "$ref": "#/$defs/Time" + }, + "deletionTimestamp": { + "$ref": "#/$defs/Time" + }, + "deletionGracePeriodSeconds": { + "type": "integer" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "annotations": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "ownerReferences": { + "items": { + "$ref": "#/$defs/OwnerReference" + }, + "type": "array" + }, + "finalizers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "managedFields": { + "items": { + "$ref": "#/$defs/ManagedFieldsEntry" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object" + }, + "OpenSearchCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "connection": { + "type": "string" + }, + "url": { + "type": "string" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + }, + "query": { + "type": "string" + }, + "index": { + "type": "string" + }, + "results": { + "type": "integer" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "query", + "index" + ] + }, + "OwnerReference": { + "properties": { + "apiVersion": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "name": { + "type": "string" + }, + "uid": { + "type": "string" + }, + "controller": { + "type": "boolean" + }, + "blockOwnerDeletion": { + "type": "boolean" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "apiVersion", + "kind", + "name", + "uid" + ] + }, + "ParentLookup": { + "properties": { + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "type": { + "type": "string" + }, + "externalID": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "PodCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "spec": { + "type": "string" + }, + "scheduleTimeout": { + "type": "integer" + }, + "readyTimeout": { + "type": "integer" + }, + "httpTimeout": { + "type": "integer" + }, + "deleteTimeout": { + "type": "integer" + }, + "ingressTimeout": { + "type": "integer" + }, + "httpRetryInterval": { + "type": "integer" + }, + "deadline": { + "type": "integer" + }, + "port": { + "type": "integer" + }, + "path": { + "type": "string" + }, + "ingressName": { + "type": "string" + }, + "ingressHost": { + "type": "string" + }, + "ingressClass": { + "type": "string" + }, + "expectedContent": { + "type": "string" + }, + "expectedHttpStatuses": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "priorityClass": { + "type": "string" + }, + "roundRobinNodes": { + "type": "boolean" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "PostgresCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "connection": { + "type": "string" + }, + "url": { + "type": "string" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + }, + "query": { + "type": "string" + }, + "results": { + "type": "integer" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "PrometheusCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "host": { + "type": "string" + }, + "connection": { + "type": "string" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + }, + "ntlm": { + "type": "boolean" + }, + "ntlmv2": { + "type": "boolean" + }, + "digest": { + "type": "boolean" + }, + "url": { + "type": "string" + }, + "bearer": { + "$ref": "#/$defs/EnvVar" + }, + "oauth": { + "$ref": "#/$defs/OAuth" + }, + "tls": { + "$ref": "#/$defs/TLSConfig" + }, + "query": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "query" + ] + }, + "Properties": { + "items": { + "$ref": "#/$defs/Property" + }, + "type": "array" + }, + "Property": { + "properties": { + "label": { + "type": "string" + }, + "name": { + "type": "string" + }, + "tooltip": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "text": { + "type": "string" + }, + "order": { + "type": "integer" + }, + "headline": { + "type": "boolean" + }, + "type": { + "type": "string" + }, + "color": { + "type": "string" + }, + "unit": { + "type": "string" + }, + "value": { + "type": "integer" + }, + "max": { + "type": "integer" + }, + "min": { + "type": "integer" + }, + "status": { + "type": "string" + }, + "lastTransition": { + "type": "string" + }, + "links": { + "items": { + "$ref": "#/$defs/Link" + }, + "type": "array" + }, + "lookup": { + "$ref": "#/$defs/CanarySpec" + }, + "configLookup": { + "$ref": "#/$defs/ConfigLookup" + }, + "summary": { + "$ref": "#/$defs/Template" + } + }, + "additionalProperties": false, + "type": "object" + }, + "RedisCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "connection": { + "type": "string" + }, + "url": { + "type": "string" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + }, + "addr": { + "type": "string" + }, + "db": { + "type": "integer" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "RelationshipSelectorTemplate": { + "properties": { + "id": { + "$ref": "#/$defs/Lookup" + }, + "external_id": { + "$ref": "#/$defs/Lookup" + }, + "name": { + "$ref": "#/$defs/Lookup" + }, + "namespace": { + "$ref": "#/$defs/Lookup" + }, + "type": { + "$ref": "#/$defs/Lookup" + }, + "agent": { + "$ref": "#/$defs/Lookup" + }, + "scope": { + "$ref": "#/$defs/Lookup" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "additionalProperties": false, + "type": "object" + }, + "RelationshipSpec": { + "properties": { + "type": { + "type": "string" + }, + "ref": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ResourceSelector": { + "properties": { + "name": { + "type": "string" + }, + "labelSelector": { + "type": "string" + }, + "fieldSelector": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ResourceSelectors": { + "items": { + "$ref": "#/$defs/ResourceSelector" + }, + "type": "array" + }, + "ResticCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "connection": { + "type": "string" + }, + "awsConnectionName": { + "type": "string" + }, + "repository": { + "type": "string" + }, + "password": { + "$ref": "#/$defs/EnvVar" + }, + "maxAge": { + "type": "string" + }, + "checkIntegrity": { + "type": "boolean" + }, + "accessKey": { + "$ref": "#/$defs/EnvVar" + }, + "secretKey": { + "$ref": "#/$defs/EnvVar" + }, + "caCert": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "repository", + "password", + "maxAge" + ] + }, + "S3Check": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "connection": { + "type": "string" + }, + "accessKey": { + "$ref": "#/$defs/EnvVar" + }, + "secretKey": { + "$ref": "#/$defs/EnvVar" + }, + "sessionToken": { + "$ref": "#/$defs/EnvVar" + }, + "assumeRole": { + "type": "string" + }, + "region": { + "type": "string" + }, + "endpoint": { + "type": "string" + }, + "skipTLSVerify": { + "type": "boolean" + }, + "bucket": { + "type": "string" + }, + "objectPath": { + "type": "string" + }, + "usePathStyle": { + "type": "boolean" + }, + "bucketName": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "S3Connection": { + "properties": { + "connection": { + "type": "string" + }, + "accessKey": { + "$ref": "#/$defs/EnvVar" + }, + "secretKey": { + "$ref": "#/$defs/EnvVar" + }, + "sessionToken": { + "$ref": "#/$defs/EnvVar" + }, + "assumeRole": { + "type": "string" + }, + "region": { + "type": "string" + }, + "endpoint": { + "type": "string" + }, + "skipTLSVerify": { + "type": "boolean" + }, + "bucket": { + "type": "string" + }, + "objectPath": { + "type": "string" + }, + "usePathStyle": { + "type": "boolean" + } + }, + "additionalProperties": false, + "type": "object" + }, + "SFTPConnection": { + "properties": { + "connection": { + "type": "string" + }, + "port": { + "type": "integer" + }, + "host": { + "type": "string" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + } + }, + "additionalProperties": false, + "type": "object" + }, + "SMBConnection": { + "properties": { + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + }, + "connection": { + "type": "string" + }, + "port": { + "type": "integer" + }, + "domain": { + "type": "string" + }, + "share": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "SecretKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + }, + "optional": { + "type": "boolean" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "Summary": { + "properties": { + "healthy": { + "type": "integer" + }, + "unhealthy": { + "type": "integer" + }, + "warning": { + "type": "integer" + }, + "info": { + "type": "integer" + }, + "incidents": { + "additionalProperties": { + "additionalProperties": { + "type": "integer" + }, + "type": "object" + }, + "type": "object" + }, + "insights": { + "additionalProperties": { + "additionalProperties": { + "type": "integer" + }, + "type": "object" + }, + "type": "object" + }, + "checks": { + "additionalProperties": { + "type": "integer" + }, + "type": "object" + } + }, + "additionalProperties": false, + "type": "object" + }, + "TCPCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "endpoint": { + "type": "string" + }, + "thresholdMillis": { + "type": "integer" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "TLSConfig": { + "properties": { + "insecureSkipVerify": { + "type": "boolean" + }, + "handshakeTimeout": { + "type": "integer" + }, + "ca": { + "$ref": "#/$defs/EnvVar" + }, + "cert": { + "$ref": "#/$defs/EnvVar" + }, + "key": { + "$ref": "#/$defs/EnvVar" + } + }, + "additionalProperties": false, + "type": "object" + }, + "Template": { + "properties": { + "template": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "Time": { + "properties": {}, + "additionalProperties": false, + "type": "object" + }, + "Unstructured": { + "properties": { + "Object": { + "type": "object" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "Object" + ] + }, + "VarSource": { + "properties": { + "fieldRef": { + "$ref": "#/$defs/ObjectFieldSelector" + }, + "value": { + "type": "string" + }, + "configMapKeyRef": { + "$ref": "#/$defs/ConfigMapKeySelector" + }, + "secretKeyRef": { + "$ref": "#/$defs/SecretKeySelector" + } + }, + "additionalProperties": false, + "type": "object" + }, + "WebhookCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "token": { + "$ref": "#/$defs/EnvVar" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + } + } +} \ No newline at end of file diff --git a/schema/openapi/component.spec.schema.json b/schema/openapi/component.spec.schema.json index 8d732d20..7931de4e 100644 --- a/schema/openapi/component.spec.schema.json +++ b/schema/openapi/component.spec.schema.json @@ -17,6 +17,9 @@ "sessionToken": { "$ref": "#/$defs/EnvVar" }, + "assumeRole": { + "type": "string" + }, "region": { "type": "string" }, @@ -170,6 +173,9 @@ "transform": { "$ref": "#/$defs/Template" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "query": { "type": "string" }, @@ -185,6 +191,9 @@ "sessionToken": { "$ref": "#/$defs/EnvVar" }, + "assumeRole": { + "type": "string" + }, "region": { "type": "string" }, @@ -240,6 +249,9 @@ "transform": { "$ref": "#/$defs/Template" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "ignoreRules": { "items": { "type": "string" @@ -270,6 +282,9 @@ "sessionToken": { "$ref": "#/$defs/EnvVar" }, + "assumeRole": { + "type": "string" + }, "region": { "type": "string" }, @@ -339,6 +354,9 @@ "transform": { "$ref": "#/$defs/Template" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "connection": { "type": "string" }, @@ -682,6 +700,9 @@ "transform": { "$ref": "#/$defs/Template" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "selector": { "$ref": "#/$defs/ResourceSelectors" } @@ -697,13 +718,13 @@ "properties": { "components": { "items": { - "$ref": "#/$defs/LookupSpec" + "$ref": "#/$defs/RelationshipSelectorTemplate" }, "type": "array" }, "configs": { "items": { - "$ref": "#/$defs/LookupSpec" + "$ref": "#/$defs/RelationshipSelectorTemplate" }, "type": "array" } @@ -749,6 +770,9 @@ "sessionToken": { "$ref": "#/$defs/EnvVar" }, + "assumeRole": { + "type": "string" + }, "region": { "type": "string" }, @@ -767,6 +791,9 @@ "transform": { "$ref": "#/$defs/Template" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "actionPrefix": { "type": "string" }, @@ -910,6 +937,15 @@ }, "parentLookup": { "$ref": "#/$defs/ParentLookup" + }, + "statusExpr": { + "type": "string" + }, + "healthExpr": { + "type": "string" + }, + "health": { + "type": "string" } }, "additionalProperties": false, @@ -997,6 +1033,15 @@ }, "parentLookup": { "$ref": "#/$defs/ParentLookup" + }, + "statusExpr": { + "type": "string" + }, + "healthExpr": { + "type": "string" + }, + "health": { + "type": "string" } }, "additionalProperties": false, @@ -1058,9 +1103,18 @@ "agent": { "type": "string" }, + "scope": { + "type": "string" + }, "cache": { "type": "string" }, + "search": { + "type": "string" + }, + "includeDeleted": { + "type": "boolean" + }, "id": { "type": "string" }, @@ -1130,6 +1184,9 @@ }, "type": "array" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "image": { "type": "string" }, @@ -1176,6 +1233,9 @@ }, "type": "array" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "image": { "type": "string" }, @@ -1219,6 +1279,9 @@ }, "type": "array" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "server": { "type": "string" }, @@ -1288,6 +1351,9 @@ "transform": { "$ref": "#/$defs/Template" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "gcp": { "$ref": "#/$defs/GCPDatabase" }, @@ -1345,6 +1411,9 @@ }, "type": "array" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "image": { "type": "string" }, @@ -1391,6 +1460,9 @@ }, "type": "array" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "image": { "type": "string" }, @@ -1440,6 +1512,9 @@ "transform": { "$ref": "#/$defs/Template" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "connection": { "type": "string" }, @@ -1494,6 +1569,9 @@ "transform": { "$ref": "#/$defs/Template" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "connection": { "type": "string" }, @@ -1590,6 +1668,9 @@ "transform": { "$ref": "#/$defs/Template" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "script": { "type": "string" }, @@ -1674,6 +1755,9 @@ "transform": { "$ref": "#/$defs/Template" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "path": { "type": "string" }, @@ -1895,6 +1979,9 @@ "transform": { "$ref": "#/$defs/Template" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "connection": { "type": "string" }, @@ -1947,6 +2034,9 @@ "transform": { "$ref": "#/$defs/Template" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "filename": { "type": "string" }, @@ -2004,6 +2094,9 @@ "transform": { "$ref": "#/$defs/Template" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "connection": { "type": "string" }, @@ -2066,6 +2159,9 @@ }, "oauth2": { "$ref": "#/$defs/Oauth2Config" + }, + "tlsConfig": { + "$ref": "#/$defs/TLSConfig" } }, "additionalProperties": false, @@ -2100,6 +2196,9 @@ }, "type": "array" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "chartmuseum": { "type": "string" }, @@ -2160,6 +2259,9 @@ }, "type": "array" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "endpoint": { "type": "string" }, @@ -2227,6 +2329,9 @@ }, "type": "array" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "jmx": { "$ref": "#/$defs/EnvVar" }, @@ -2297,6 +2402,9 @@ "transform": { "$ref": "#/$defs/Template" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "timeout": { "type": "integer" }, @@ -2351,6 +2459,9 @@ "transform": { "$ref": "#/$defs/Template" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "namespaceSelector": { "$ref": "#/$defs/ResourceSelector" }, @@ -2418,6 +2529,9 @@ "transform": { "$ref": "#/$defs/Template" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "staticResources": { "items": { "$ref": "#/$defs/Unstructured" @@ -2782,6 +2896,9 @@ }, "type": "array" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "connection": { "type": "string" }, @@ -2880,21 +2997,6 @@ "additionalProperties": false, "type": "object" }, - "LookupSpec": { - "properties": { - "name": { - "$ref": "#/$defs/Lookup" - }, - "namespace": { - "$ref": "#/$defs/Lookup" - }, - "type": { - "$ref": "#/$defs/Lookup" - } - }, - "additionalProperties": false, - "type": "object" - }, "ManagedFieldsEntry": { "properties": { "manager": { @@ -3044,6 +3146,9 @@ "transform": { "$ref": "#/$defs/Template" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "connection": { "type": "string" }, @@ -3104,6 +3209,9 @@ "transform": { "$ref": "#/$defs/Template" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "connection": { "type": "string" }, @@ -3155,6 +3263,9 @@ }, "type": "array" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "namespaceNamePrefix": { "type": "string" }, @@ -3226,6 +3337,33 @@ "podSpec" ] }, + "OAuth": { + "properties": { + "clientID": { + "$ref": "#/$defs/EnvVar" + }, + "clientSecret": { + "$ref": "#/$defs/EnvVar" + }, + "scope": { + "items": { + "type": "string" + }, + "type": "array" + }, + "tokenURL": { + "type": "string" + }, + "params": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "additionalProperties": false, + "type": "object" + }, "Oauth2Config": { "properties": { "scope": { @@ -3363,6 +3501,9 @@ "transform": { "$ref": "#/$defs/Template" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "connection": { "type": "string" }, @@ -3467,6 +3608,9 @@ }, "type": "array" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "spec": { "type": "string" }, @@ -3563,6 +3707,9 @@ "transform": { "$ref": "#/$defs/Template" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "connection": { "type": "string" }, @@ -3623,21 +3770,42 @@ "transform": { "$ref": "#/$defs/Template" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "host": { "type": "string" }, "connection": { "type": "string" }, - "url": { - "type": "string" - }, "username": { "$ref": "#/$defs/EnvVar" }, "password": { "$ref": "#/$defs/EnvVar" }, + "ntlm": { + "type": "boolean" + }, + "ntlmv2": { + "type": "boolean" + }, + "digest": { + "type": "boolean" + }, + "url": { + "type": "string" + }, + "bearer": { + "$ref": "#/$defs/EnvVar" + }, + "oauth": { + "$ref": "#/$defs/OAuth" + }, + "tls": { + "$ref": "#/$defs/TLSConfig" + }, "query": { "type": "string" } @@ -3747,6 +3915,9 @@ }, "type": "array" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "connection": { "type": "string" }, @@ -3772,6 +3943,39 @@ "name" ] }, + "RelationshipSelectorTemplate": { + "properties": { + "id": { + "$ref": "#/$defs/Lookup" + }, + "external_id": { + "$ref": "#/$defs/Lookup" + }, + "name": { + "$ref": "#/$defs/Lookup" + }, + "namespace": { + "$ref": "#/$defs/Lookup" + }, + "type": { + "$ref": "#/$defs/Lookup" + }, + "agent": { + "$ref": "#/$defs/Lookup" + }, + "scope": { + "$ref": "#/$defs/Lookup" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "additionalProperties": false, + "type": "object" + }, "RelationshipSpec": { "properties": { "type": { @@ -3831,6 +4035,9 @@ }, "type": "array" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "connection": { "type": "string" }, @@ -3894,6 +4101,9 @@ }, "type": "array" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "connection": { "type": "string" }, @@ -3906,6 +4116,9 @@ "sessionToken": { "$ref": "#/$defs/EnvVar" }, + "assumeRole": { + "type": "string" + }, "region": { "type": "string" }, @@ -3948,6 +4161,9 @@ "sessionToken": { "$ref": "#/$defs/EnvVar" }, + "assumeRole": { + "type": "string" + }, "region": { "type": "string" }, @@ -3989,27 +4205,27 @@ } }, "additionalProperties": false, - "type": "object", - "required": [ - "host" - ] + "type": "object" }, "SMBConnection": { "properties": { - "connection": { - "type": "string" - }, - "port": { - "type": "integer" - }, "username": { "$ref": "#/$defs/EnvVar" }, "password": { "$ref": "#/$defs/EnvVar" }, + "connection": { + "type": "string" + }, + "port": { + "type": "integer" + }, "domain": { "type": "string" + }, + "share": { + "type": "string" } }, "additionalProperties": false, @@ -4101,6 +4317,9 @@ }, "type": "array" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "endpoint": { "type": "string" }, @@ -4114,6 +4333,27 @@ "name" ] }, + "TLSConfig": { + "properties": { + "insecureSkipVerify": { + "type": "boolean" + }, + "handshakeTimeout": { + "type": "integer" + }, + "ca": { + "$ref": "#/$defs/EnvVar" + }, + "cert": { + "$ref": "#/$defs/EnvVar" + }, + "key": { + "$ref": "#/$defs/EnvVar" + } + }, + "additionalProperties": false, + "type": "object" + }, "Template": { "properties": { "template": { @@ -4202,6 +4442,9 @@ "transform": { "$ref": "#/$defs/Template" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "token": { "$ref": "#/$defs/EnvVar" } diff --git a/schema/openapi/config_aws.schema.json b/schema/openapi/config_aws.schema.json index 8e59a14b..3c16bf39 100644 --- a/schema/openapi/config_aws.schema.json +++ b/schema/openapi/config_aws.schema.json @@ -1 +1,514 @@ -{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://github.com/flanksource/config-db/api/v1/aws","$ref":"#/$defs/AWS","$defs":{"AWS":{"properties":{"id":{"type":"string"},"name":{"type":"string"},"items":{"type":"string"},"type":{"type":"string"},"class":{"type":"string"},"transform":{"$ref":"#/$defs/Transform"},"format":{"type":"string"},"timestampFormat":{"type":"string"},"createFields":{"items":{"type":"string"},"type":"array"},"deleteFields":{"items":{"type":"string"},"type":"array"},"labels":{"$ref":"#/$defs/JSONStringMap"},"tags":{"$ref":"#/$defs/Tags"},"properties":{"items":{"$ref":"#/$defs/ConfigProperties"},"type":"array"},"connection":{"type":"string"},"accessKey":{"$ref":"#/$defs/EnvVar"},"secretKey":{"$ref":"#/$defs/EnvVar"},"region":{"items":{"type":"string"},"type":"array"},"endpoint":{"type":"string"},"skipTLSVerify":{"type":"boolean"},"assumeRole":{"type":"string"},"compliance":{"type":"boolean"},"cloudtrail":{"$ref":"#/$defs/CloudTrail"},"include":{"items":{"type":"string"},"type":"array"},"exclude":{"items":{"type":"string"},"type":"array"},"costReporting":{"$ref":"#/$defs/CostReporting"}},"additionalProperties":false,"type":"object","required":["region"]},"ChangeMapping":{"properties":{"filter":{"type":"string"},"type":{"type":"string"},"action":{"type":"string"},"summary":{"type":"string"}},"additionalProperties":false,"type":"object"},"CloudTrail":{"properties":{"exclude":{"items":{"type":"string"},"type":"array"},"maxAge":{"type":"string"}},"additionalProperties":false,"type":"object"},"ConfigFieldExclusion":{"properties":{"types":{"items":{"type":"string"},"type":"array"},"jsonpath":{"type":"string"}},"additionalProperties":false,"type":"object","required":["jsonpath"]},"ConfigMapKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"ConfigProperties":{"properties":{"label":{"type":"string"},"name":{"type":"string"},"tooltip":{"type":"string"},"icon":{"type":"string"},"type":{"type":"string"},"color":{"type":"string"},"order":{"type":"integer"},"headline":{"type":"boolean"},"text":{"type":"string"},"value":{"type":"integer"},"unit":{"type":"string"},"max":{"type":"integer"},"min":{"type":"integer"},"status":{"type":"string"},"lastTransition":{"type":"string"},"links":{"items":{"$ref":"#/$defs/Link"},"type":"array"},"filter":{"type":"string"}},"additionalProperties":false,"type":"object"},"CostReporting":{"properties":{"s3BucketPath":{"type":"string"},"table":{"type":"string"},"database":{"type":"string"},"region":{"type":"string"}},"additionalProperties":false,"type":"object"},"EnvVar":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueFrom":{"$ref":"#/$defs/EnvVarSource"}},"additionalProperties":false,"type":"object"},"EnvVarSource":{"properties":{"serviceAccount":{"type":"string"},"helmRef":{"$ref":"#/$defs/HelmRefKeySelector"},"configMapKeyRef":{"$ref":"#/$defs/ConfigMapKeySelector"},"secretKeyRef":{"$ref":"#/$defs/SecretKeySelector"}},"additionalProperties":false,"type":"object"},"HelmRefKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"JSONStringMap":{"additionalProperties":{"type":"string"},"type":"object"},"Link":{"properties":{"type":{"type":"string"},"url":{"type":"string"},"tooltip":{"type":"string"},"icon":{"type":"string"},"text":{"type":"string"},"label":{"type":"string"}},"additionalProperties":false,"type":"object"},"Mask":{"properties":{"selector":{"type":"string"},"jsonpath":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false,"type":"object"},"MaskList":{"items":{"$ref":"#/$defs/Mask"},"type":"array"},"RelationshipConfig":{"properties":{"id":{"$ref":"#/$defs/RelationshipLookup"},"name":{"$ref":"#/$defs/RelationshipLookup"},"type":{"$ref":"#/$defs/RelationshipLookup"},"agent":{"$ref":"#/$defs/RelationshipLookup"},"labels":{"additionalProperties":{"type":"string"},"type":"object"},"expr":{"type":"string"},"filter":{"type":"string"}},"additionalProperties":false,"type":"object"},"RelationshipLookup":{"properties":{"expr":{"type":"string"},"value":{"type":"string"},"label":{"type":"string"}},"additionalProperties":false,"type":"object"},"SecretKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"Tag":{"properties":{"name":{"type":"string"},"label":{"type":"string"},"jsonpath":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name"]},"Tags":{"items":{"$ref":"#/$defs/Tag"},"type":"array"},"Transform":{"properties":{"gotemplate":{"type":"string"},"jsonpath":{"type":"string"},"expr":{"type":"string"},"javascript":{"type":"string"},"exclude":{"items":{"$ref":"#/$defs/ConfigFieldExclusion"},"type":"array"},"mask":{"$ref":"#/$defs/MaskList"},"relationship":{"items":{"$ref":"#/$defs/RelationshipConfig"},"type":"array"},"changes":{"$ref":"#/$defs/TransformChange"}},"additionalProperties":false,"type":"object"},"TransformChange":{"properties":{"mapping":{"items":{"$ref":"#/$defs/ChangeMapping"},"type":"array"},"exclude":{"items":{"type":"string"},"type":"array"}},"additionalProperties":false,"type":"object"}}} \ No newline at end of file +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://github.com/flanksource/config-db/api/v1/aws", + "$ref": "#/$defs/AWS", + "$defs": { + "AWS": { + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "items": { + "type": "string" + }, + "type": { + "type": "string" + }, + "class": { + "type": "string" + }, + "format": { + "type": "string" + }, + "status": { + "type": "string" + }, + "health": { + "type": "string" + }, + "timestampFormat": { + "type": "string" + }, + "createFields": { + "items": { + "type": "string" + }, + "type": "array" + }, + "deleteFields": { + "items": { + "type": "string" + }, + "type": "array" + }, + "transform": { + "$ref": "#/$defs/Transform" + }, + "labels": { + "$ref": "#/$defs/JSONStringMap" + }, + "tags": { + "$ref": "#/$defs/Tags" + }, + "properties": { + "items": { + "$ref": "#/$defs/ConfigProperties" + }, + "type": "array" + }, + "connection": { + "type": "string" + }, + "accessKey": { + "$ref": "#/$defs/EnvVar" + }, + "secretKey": { + "$ref": "#/$defs/EnvVar" + }, + "assumeRole": { + "type": "string" + }, + "endpoint": { + "type": "string" + }, + "skipTLSVerify": { + "type": "boolean" + }, + "region": { + "items": { + "type": "string" + }, + "type": "array" + }, + "compliance": { + "type": "boolean" + }, + "cloudtrail": { + "$ref": "#/$defs/CloudTrail" + }, + "include": { + "items": { + "type": "string" + }, + "type": "array" + }, + "exclude": { + "items": { + "type": "string" + }, + "type": "array" + }, + "costReporting": { + "$ref": "#/$defs/CostReporting" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ChangeMapping": { + "properties": { + "filter": { + "type": "string" + }, + "severity": { + "type": "string" + }, + "type": { + "type": "string" + }, + "action": { + "type": "string" + }, + "summary": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "CloudTrail": { + "properties": { + "exclude": { + "items": { + "type": "string" + }, + "type": "array" + }, + "maxAge": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ConfigFieldExclusion": { + "properties": { + "types": { + "items": { + "type": "string" + }, + "type": "array" + }, + "jsonpath": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "jsonpath" + ] + }, + "ConfigMapKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "ConfigProperties": { + "properties": { + "label": { + "type": "string" + }, + "name": { + "type": "string" + }, + "tooltip": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "type": { + "type": "string" + }, + "color": { + "type": "string" + }, + "order": { + "type": "integer" + }, + "headline": { + "type": "boolean" + }, + "text": { + "type": "string" + }, + "value": { + "type": "integer" + }, + "unit": { + "type": "string" + }, + "max": { + "type": "integer" + }, + "min": { + "type": "integer" + }, + "status": { + "type": "string" + }, + "lastTransition": { + "type": "string" + }, + "links": { + "items": { + "$ref": "#/$defs/Link" + }, + "type": "array" + }, + "filter": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "CostReporting": { + "properties": { + "s3BucketPath": { + "type": "string" + }, + "table": { + "type": "string" + }, + "database": { + "type": "string" + }, + "region": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "EnvVar": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "$ref": "#/$defs/EnvVarSource" + } + }, + "additionalProperties": false, + "type": "object" + }, + "EnvVarSource": { + "properties": { + "serviceAccount": { + "type": "string" + }, + "helmRef": { + "$ref": "#/$defs/HelmRefKeySelector" + }, + "configMapKeyRef": { + "$ref": "#/$defs/ConfigMapKeySelector" + }, + "secretKeyRef": { + "$ref": "#/$defs/SecretKeySelector" + } + }, + "additionalProperties": false, + "type": "object" + }, + "HelmRefKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "JSONStringMap": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "Link": { + "properties": { + "type": { + "type": "string" + }, + "url": { + "type": "string" + }, + "tooltip": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "text": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "Lookup": { + "properties": { + "expr": { + "type": "string" + }, + "value": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "Mask": { + "properties": { + "selector": { + "type": "string" + }, + "jsonpath": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "MaskList": { + "items": { + "$ref": "#/$defs/Mask" + }, + "type": "array" + }, + "RelationshipConfig": { + "properties": { + "id": { + "$ref": "#/$defs/Lookup" + }, + "external_id": { + "$ref": "#/$defs/Lookup" + }, + "name": { + "$ref": "#/$defs/Lookup" + }, + "namespace": { + "$ref": "#/$defs/Lookup" + }, + "type": { + "$ref": "#/$defs/Lookup" + }, + "agent": { + "$ref": "#/$defs/Lookup" + }, + "scope": { + "$ref": "#/$defs/Lookup" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "expr": { + "type": "string" + }, + "filter": { + "type": "string" + }, + "parent": { + "type": "boolean" + } + }, + "additionalProperties": false, + "type": "object" + }, + "SecretKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "Tag": { + "properties": { + "name": { + "type": "string" + }, + "label": { + "type": "string" + }, + "jsonpath": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "Tags": { + "items": { + "$ref": "#/$defs/Tag" + }, + "type": "array" + }, + "Transform": { + "properties": { + "gotemplate": { + "type": "string" + }, + "jsonpath": { + "type": "string" + }, + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "exclude": { + "items": { + "$ref": "#/$defs/ConfigFieldExclusion" + }, + "type": "array" + }, + "mask": { + "$ref": "#/$defs/MaskList" + }, + "relationship": { + "items": { + "$ref": "#/$defs/RelationshipConfig" + }, + "type": "array" + }, + "changes": { + "$ref": "#/$defs/TransformChange" + } + }, + "additionalProperties": false, + "type": "object" + }, + "TransformChange": { + "properties": { + "mapping": { + "items": { + "$ref": "#/$defs/ChangeMapping" + }, + "type": "array" + }, + "exclude": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object" + } + } +} \ No newline at end of file diff --git a/schema/openapi/config_azure.schema.json b/schema/openapi/config_azure.schema.json index c3cc63f4..96e948b0 100644 --- a/schema/openapi/config_azure.schema.json +++ b/schema/openapi/config_azure.schema.json @@ -1 +1,473 @@ -{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://github.com/flanksource/config-db/api/v1/azure","$ref":"#/$defs/Azure","$defs":{"Azure":{"properties":{"id":{"type":"string"},"name":{"type":"string"},"items":{"type":"string"},"type":{"type":"string"},"class":{"type":"string"},"transform":{"$ref":"#/$defs/Transform"},"format":{"type":"string"},"timestampFormat":{"type":"string"},"createFields":{"items":{"type":"string"},"type":"array"},"deleteFields":{"items":{"type":"string"},"type":"array"},"labels":{"$ref":"#/$defs/JSONStringMap"},"tags":{"$ref":"#/$defs/Tags"},"properties":{"items":{"$ref":"#/$defs/ConfigProperties"},"type":"array"},"connection":{"type":"string"},"subscriptionID":{"type":"string"},"organisation":{"type":"string"},"clientID":{"$ref":"#/$defs/EnvVar"},"clientSecret":{"$ref":"#/$defs/EnvVar"},"tenantID":{"type":"string"},"exclusions":{"$ref":"#/$defs/AzureExclusions"}},"additionalProperties":false,"type":"object","required":["subscriptionID","organisation"]},"AzureExclusions":{"properties":{"activityLogs":{"items":{"type":"string"},"type":"array"}},"additionalProperties":false,"type":"object"},"ChangeMapping":{"properties":{"filter":{"type":"string"},"type":{"type":"string"},"action":{"type":"string"},"summary":{"type":"string"}},"additionalProperties":false,"type":"object"},"ConfigFieldExclusion":{"properties":{"types":{"items":{"type":"string"},"type":"array"},"jsonpath":{"type":"string"}},"additionalProperties":false,"type":"object","required":["jsonpath"]},"ConfigMapKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"ConfigProperties":{"properties":{"label":{"type":"string"},"name":{"type":"string"},"tooltip":{"type":"string"},"icon":{"type":"string"},"type":{"type":"string"},"color":{"type":"string"},"order":{"type":"integer"},"headline":{"type":"boolean"},"text":{"type":"string"},"value":{"type":"integer"},"unit":{"type":"string"},"max":{"type":"integer"},"min":{"type":"integer"},"status":{"type":"string"},"lastTransition":{"type":"string"},"links":{"items":{"$ref":"#/$defs/Link"},"type":"array"},"filter":{"type":"string"}},"additionalProperties":false,"type":"object"},"EnvVar":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueFrom":{"$ref":"#/$defs/EnvVarSource"}},"additionalProperties":false,"type":"object"},"EnvVarSource":{"properties":{"serviceAccount":{"type":"string"},"helmRef":{"$ref":"#/$defs/HelmRefKeySelector"},"configMapKeyRef":{"$ref":"#/$defs/ConfigMapKeySelector"},"secretKeyRef":{"$ref":"#/$defs/SecretKeySelector"}},"additionalProperties":false,"type":"object"},"HelmRefKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"JSONStringMap":{"additionalProperties":{"type":"string"},"type":"object"},"Link":{"properties":{"type":{"type":"string"},"url":{"type":"string"},"tooltip":{"type":"string"},"icon":{"type":"string"},"text":{"type":"string"},"label":{"type":"string"}},"additionalProperties":false,"type":"object"},"Mask":{"properties":{"selector":{"type":"string"},"jsonpath":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false,"type":"object"},"MaskList":{"items":{"$ref":"#/$defs/Mask"},"type":"array"},"RelationshipConfig":{"properties":{"id":{"$ref":"#/$defs/RelationshipLookup"},"name":{"$ref":"#/$defs/RelationshipLookup"},"type":{"$ref":"#/$defs/RelationshipLookup"},"agent":{"$ref":"#/$defs/RelationshipLookup"},"labels":{"additionalProperties":{"type":"string"},"type":"object"},"expr":{"type":"string"},"filter":{"type":"string"}},"additionalProperties":false,"type":"object"},"RelationshipLookup":{"properties":{"expr":{"type":"string"},"value":{"type":"string"},"label":{"type":"string"}},"additionalProperties":false,"type":"object"},"SecretKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"Tag":{"properties":{"name":{"type":"string"},"label":{"type":"string"},"jsonpath":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name"]},"Tags":{"items":{"$ref":"#/$defs/Tag"},"type":"array"},"Transform":{"properties":{"gotemplate":{"type":"string"},"jsonpath":{"type":"string"},"expr":{"type":"string"},"javascript":{"type":"string"},"exclude":{"items":{"$ref":"#/$defs/ConfigFieldExclusion"},"type":"array"},"mask":{"$ref":"#/$defs/MaskList"},"relationship":{"items":{"$ref":"#/$defs/RelationshipConfig"},"type":"array"},"changes":{"$ref":"#/$defs/TransformChange"}},"additionalProperties":false,"type":"object"},"TransformChange":{"properties":{"mapping":{"items":{"$ref":"#/$defs/ChangeMapping"},"type":"array"},"exclude":{"items":{"type":"string"},"type":"array"}},"additionalProperties":false,"type":"object"}}} \ No newline at end of file +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://github.com/flanksource/config-db/api/v1/azure", + "$ref": "#/$defs/Azure", + "$defs": { + "Azure": { + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "items": { + "type": "string" + }, + "type": { + "type": "string" + }, + "class": { + "type": "string" + }, + "format": { + "type": "string" + }, + "status": { + "type": "string" + }, + "health": { + "type": "string" + }, + "timestampFormat": { + "type": "string" + }, + "createFields": { + "items": { + "type": "string" + }, + "type": "array" + }, + "deleteFields": { + "items": { + "type": "string" + }, + "type": "array" + }, + "transform": { + "$ref": "#/$defs/Transform" + }, + "labels": { + "$ref": "#/$defs/JSONStringMap" + }, + "tags": { + "$ref": "#/$defs/Tags" + }, + "properties": { + "items": { + "$ref": "#/$defs/ConfigProperties" + }, + "type": "array" + }, + "connection": { + "type": "string" + }, + "subscriptionID": { + "type": "string" + }, + "organisation": { + "type": "string" + }, + "clientID": { + "$ref": "#/$defs/EnvVar" + }, + "clientSecret": { + "$ref": "#/$defs/EnvVar" + }, + "tenantID": { + "type": "string" + }, + "exclusions": { + "$ref": "#/$defs/AzureExclusions" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "subscriptionID", + "organisation" + ] + }, + "AzureExclusions": { + "properties": { + "activityLogs": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ChangeMapping": { + "properties": { + "filter": { + "type": "string" + }, + "severity": { + "type": "string" + }, + "type": { + "type": "string" + }, + "action": { + "type": "string" + }, + "summary": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ConfigFieldExclusion": { + "properties": { + "types": { + "items": { + "type": "string" + }, + "type": "array" + }, + "jsonpath": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "jsonpath" + ] + }, + "ConfigMapKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "ConfigProperties": { + "properties": { + "label": { + "type": "string" + }, + "name": { + "type": "string" + }, + "tooltip": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "type": { + "type": "string" + }, + "color": { + "type": "string" + }, + "order": { + "type": "integer" + }, + "headline": { + "type": "boolean" + }, + "text": { + "type": "string" + }, + "value": { + "type": "integer" + }, + "unit": { + "type": "string" + }, + "max": { + "type": "integer" + }, + "min": { + "type": "integer" + }, + "status": { + "type": "string" + }, + "lastTransition": { + "type": "string" + }, + "links": { + "items": { + "$ref": "#/$defs/Link" + }, + "type": "array" + }, + "filter": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "EnvVar": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "$ref": "#/$defs/EnvVarSource" + } + }, + "additionalProperties": false, + "type": "object" + }, + "EnvVarSource": { + "properties": { + "serviceAccount": { + "type": "string" + }, + "helmRef": { + "$ref": "#/$defs/HelmRefKeySelector" + }, + "configMapKeyRef": { + "$ref": "#/$defs/ConfigMapKeySelector" + }, + "secretKeyRef": { + "$ref": "#/$defs/SecretKeySelector" + } + }, + "additionalProperties": false, + "type": "object" + }, + "HelmRefKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "JSONStringMap": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "Link": { + "properties": { + "type": { + "type": "string" + }, + "url": { + "type": "string" + }, + "tooltip": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "text": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "Lookup": { + "properties": { + "expr": { + "type": "string" + }, + "value": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "Mask": { + "properties": { + "selector": { + "type": "string" + }, + "jsonpath": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "MaskList": { + "items": { + "$ref": "#/$defs/Mask" + }, + "type": "array" + }, + "RelationshipConfig": { + "properties": { + "id": { + "$ref": "#/$defs/Lookup" + }, + "external_id": { + "$ref": "#/$defs/Lookup" + }, + "name": { + "$ref": "#/$defs/Lookup" + }, + "namespace": { + "$ref": "#/$defs/Lookup" + }, + "type": { + "$ref": "#/$defs/Lookup" + }, + "agent": { + "$ref": "#/$defs/Lookup" + }, + "scope": { + "$ref": "#/$defs/Lookup" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "expr": { + "type": "string" + }, + "filter": { + "type": "string" + }, + "parent": { + "type": "boolean" + } + }, + "additionalProperties": false, + "type": "object" + }, + "SecretKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "Tag": { + "properties": { + "name": { + "type": "string" + }, + "label": { + "type": "string" + }, + "jsonpath": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "Tags": { + "items": { + "$ref": "#/$defs/Tag" + }, + "type": "array" + }, + "Transform": { + "properties": { + "gotemplate": { + "type": "string" + }, + "jsonpath": { + "type": "string" + }, + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "exclude": { + "items": { + "$ref": "#/$defs/ConfigFieldExclusion" + }, + "type": "array" + }, + "mask": { + "$ref": "#/$defs/MaskList" + }, + "relationship": { + "items": { + "$ref": "#/$defs/RelationshipConfig" + }, + "type": "array" + }, + "changes": { + "$ref": "#/$defs/TransformChange" + } + }, + "additionalProperties": false, + "type": "object" + }, + "TransformChange": { + "properties": { + "mapping": { + "items": { + "$ref": "#/$defs/ChangeMapping" + }, + "type": "array" + }, + "exclude": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object" + } + } +} \ No newline at end of file diff --git a/schema/openapi/config_azuredevops.schema.json b/schema/openapi/config_azuredevops.schema.json index 5f82eafc..7c744dcc 100644 --- a/schema/openapi/config_azuredevops.schema.json +++ b/schema/openapi/config_azuredevops.schema.json @@ -1 +1,461 @@ -{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://github.com/flanksource/config-db/api/v1/azure-devops","$ref":"#/$defs/AzureDevops","$defs":{"AzureDevops":{"properties":{"id":{"type":"string"},"name":{"type":"string"},"items":{"type":"string"},"type":{"type":"string"},"class":{"type":"string"},"transform":{"$ref":"#/$defs/Transform"},"format":{"type":"string"},"timestampFormat":{"type":"string"},"createFields":{"items":{"type":"string"},"type":"array"},"deleteFields":{"items":{"type":"string"},"type":"array"},"labels":{"$ref":"#/$defs/JSONStringMap"},"tags":{"$ref":"#/$defs/Tags"},"properties":{"items":{"$ref":"#/$defs/ConfigProperties"},"type":"array"},"connection":{"type":"string"},"organization":{"type":"string"},"personalAccessToken":{"$ref":"#/$defs/EnvVar"},"projects":{"items":{"type":"string"},"type":"array"},"pipelines":{"items":{"type":"string"},"type":"array"}},"additionalProperties":false,"type":"object","required":["projects","pipelines"]},"ChangeMapping":{"properties":{"filter":{"type":"string"},"type":{"type":"string"},"action":{"type":"string"},"summary":{"type":"string"}},"additionalProperties":false,"type":"object"},"ConfigFieldExclusion":{"properties":{"types":{"items":{"type":"string"},"type":"array"},"jsonpath":{"type":"string"}},"additionalProperties":false,"type":"object","required":["jsonpath"]},"ConfigMapKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"ConfigProperties":{"properties":{"label":{"type":"string"},"name":{"type":"string"},"tooltip":{"type":"string"},"icon":{"type":"string"},"type":{"type":"string"},"color":{"type":"string"},"order":{"type":"integer"},"headline":{"type":"boolean"},"text":{"type":"string"},"value":{"type":"integer"},"unit":{"type":"string"},"max":{"type":"integer"},"min":{"type":"integer"},"status":{"type":"string"},"lastTransition":{"type":"string"},"links":{"items":{"$ref":"#/$defs/Link"},"type":"array"},"filter":{"type":"string"}},"additionalProperties":false,"type":"object"},"EnvVar":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueFrom":{"$ref":"#/$defs/EnvVarSource"}},"additionalProperties":false,"type":"object"},"EnvVarSource":{"properties":{"serviceAccount":{"type":"string"},"helmRef":{"$ref":"#/$defs/HelmRefKeySelector"},"configMapKeyRef":{"$ref":"#/$defs/ConfigMapKeySelector"},"secretKeyRef":{"$ref":"#/$defs/SecretKeySelector"}},"additionalProperties":false,"type":"object"},"HelmRefKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"JSONStringMap":{"additionalProperties":{"type":"string"},"type":"object"},"Link":{"properties":{"type":{"type":"string"},"url":{"type":"string"},"tooltip":{"type":"string"},"icon":{"type":"string"},"text":{"type":"string"},"label":{"type":"string"}},"additionalProperties":false,"type":"object"},"Mask":{"properties":{"selector":{"type":"string"},"jsonpath":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false,"type":"object"},"MaskList":{"items":{"$ref":"#/$defs/Mask"},"type":"array"},"RelationshipConfig":{"properties":{"id":{"$ref":"#/$defs/RelationshipLookup"},"name":{"$ref":"#/$defs/RelationshipLookup"},"type":{"$ref":"#/$defs/RelationshipLookup"},"agent":{"$ref":"#/$defs/RelationshipLookup"},"labels":{"additionalProperties":{"type":"string"},"type":"object"},"expr":{"type":"string"},"filter":{"type":"string"}},"additionalProperties":false,"type":"object"},"RelationshipLookup":{"properties":{"expr":{"type":"string"},"value":{"type":"string"},"label":{"type":"string"}},"additionalProperties":false,"type":"object"},"SecretKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"Tag":{"properties":{"name":{"type":"string"},"label":{"type":"string"},"jsonpath":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name"]},"Tags":{"items":{"$ref":"#/$defs/Tag"},"type":"array"},"Transform":{"properties":{"gotemplate":{"type":"string"},"jsonpath":{"type":"string"},"expr":{"type":"string"},"javascript":{"type":"string"},"exclude":{"items":{"$ref":"#/$defs/ConfigFieldExclusion"},"type":"array"},"mask":{"$ref":"#/$defs/MaskList"},"relationship":{"items":{"$ref":"#/$defs/RelationshipConfig"},"type":"array"},"changes":{"$ref":"#/$defs/TransformChange"}},"additionalProperties":false,"type":"object"},"TransformChange":{"properties":{"mapping":{"items":{"$ref":"#/$defs/ChangeMapping"},"type":"array"},"exclude":{"items":{"type":"string"},"type":"array"}},"additionalProperties":false,"type":"object"}}} \ No newline at end of file +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://github.com/flanksource/config-db/api/v1/azure-devops", + "$ref": "#/$defs/AzureDevops", + "$defs": { + "AzureDevops": { + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "items": { + "type": "string" + }, + "type": { + "type": "string" + }, + "class": { + "type": "string" + }, + "format": { + "type": "string" + }, + "status": { + "type": "string" + }, + "health": { + "type": "string" + }, + "timestampFormat": { + "type": "string" + }, + "createFields": { + "items": { + "type": "string" + }, + "type": "array" + }, + "deleteFields": { + "items": { + "type": "string" + }, + "type": "array" + }, + "transform": { + "$ref": "#/$defs/Transform" + }, + "labels": { + "$ref": "#/$defs/JSONStringMap" + }, + "tags": { + "$ref": "#/$defs/Tags" + }, + "properties": { + "items": { + "$ref": "#/$defs/ConfigProperties" + }, + "type": "array" + }, + "connection": { + "type": "string" + }, + "organization": { + "type": "string" + }, + "personalAccessToken": { + "$ref": "#/$defs/EnvVar" + }, + "projects": { + "items": { + "type": "string" + }, + "type": "array" + }, + "pipelines": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "projects", + "pipelines" + ] + }, + "ChangeMapping": { + "properties": { + "filter": { + "type": "string" + }, + "severity": { + "type": "string" + }, + "type": { + "type": "string" + }, + "action": { + "type": "string" + }, + "summary": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ConfigFieldExclusion": { + "properties": { + "types": { + "items": { + "type": "string" + }, + "type": "array" + }, + "jsonpath": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "jsonpath" + ] + }, + "ConfigMapKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "ConfigProperties": { + "properties": { + "label": { + "type": "string" + }, + "name": { + "type": "string" + }, + "tooltip": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "type": { + "type": "string" + }, + "color": { + "type": "string" + }, + "order": { + "type": "integer" + }, + "headline": { + "type": "boolean" + }, + "text": { + "type": "string" + }, + "value": { + "type": "integer" + }, + "unit": { + "type": "string" + }, + "max": { + "type": "integer" + }, + "min": { + "type": "integer" + }, + "status": { + "type": "string" + }, + "lastTransition": { + "type": "string" + }, + "links": { + "items": { + "$ref": "#/$defs/Link" + }, + "type": "array" + }, + "filter": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "EnvVar": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "$ref": "#/$defs/EnvVarSource" + } + }, + "additionalProperties": false, + "type": "object" + }, + "EnvVarSource": { + "properties": { + "serviceAccount": { + "type": "string" + }, + "helmRef": { + "$ref": "#/$defs/HelmRefKeySelector" + }, + "configMapKeyRef": { + "$ref": "#/$defs/ConfigMapKeySelector" + }, + "secretKeyRef": { + "$ref": "#/$defs/SecretKeySelector" + } + }, + "additionalProperties": false, + "type": "object" + }, + "HelmRefKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "JSONStringMap": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "Link": { + "properties": { + "type": { + "type": "string" + }, + "url": { + "type": "string" + }, + "tooltip": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "text": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "Lookup": { + "properties": { + "expr": { + "type": "string" + }, + "value": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "Mask": { + "properties": { + "selector": { + "type": "string" + }, + "jsonpath": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "MaskList": { + "items": { + "$ref": "#/$defs/Mask" + }, + "type": "array" + }, + "RelationshipConfig": { + "properties": { + "id": { + "$ref": "#/$defs/Lookup" + }, + "external_id": { + "$ref": "#/$defs/Lookup" + }, + "name": { + "$ref": "#/$defs/Lookup" + }, + "namespace": { + "$ref": "#/$defs/Lookup" + }, + "type": { + "$ref": "#/$defs/Lookup" + }, + "agent": { + "$ref": "#/$defs/Lookup" + }, + "scope": { + "$ref": "#/$defs/Lookup" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "expr": { + "type": "string" + }, + "filter": { + "type": "string" + }, + "parent": { + "type": "boolean" + } + }, + "additionalProperties": false, + "type": "object" + }, + "SecretKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "Tag": { + "properties": { + "name": { + "type": "string" + }, + "label": { + "type": "string" + }, + "jsonpath": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "Tags": { + "items": { + "$ref": "#/$defs/Tag" + }, + "type": "array" + }, + "Transform": { + "properties": { + "gotemplate": { + "type": "string" + }, + "jsonpath": { + "type": "string" + }, + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "exclude": { + "items": { + "$ref": "#/$defs/ConfigFieldExclusion" + }, + "type": "array" + }, + "mask": { + "$ref": "#/$defs/MaskList" + }, + "relationship": { + "items": { + "$ref": "#/$defs/RelationshipConfig" + }, + "type": "array" + }, + "changes": { + "$ref": "#/$defs/TransformChange" + } + }, + "additionalProperties": false, + "type": "object" + }, + "TransformChange": { + "properties": { + "mapping": { + "items": { + "$ref": "#/$defs/ChangeMapping" + }, + "type": "array" + }, + "exclude": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object" + } + } +} \ No newline at end of file diff --git a/schema/openapi/config_file.schema.json b/schema/openapi/config_file.schema.json index ae8bc4ed..f2b1eb9d 100644 --- a/schema/openapi/config_file.schema.json +++ b/schema/openapi/config_file.schema.json @@ -1 +1,379 @@ -{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://github.com/flanksource/config-db/api/v1/file","$ref":"#/$defs/File","$defs":{"ChangeMapping":{"properties":{"filter":{"type":"string"},"type":{"type":"string"},"action":{"type":"string"},"summary":{"type":"string"}},"additionalProperties":false,"type":"object"},"ConfigFieldExclusion":{"properties":{"types":{"items":{"type":"string"},"type":"array"},"jsonpath":{"type":"string"}},"additionalProperties":false,"type":"object","required":["jsonpath"]},"ConfigProperties":{"properties":{"label":{"type":"string"},"name":{"type":"string"},"tooltip":{"type":"string"},"icon":{"type":"string"},"type":{"type":"string"},"color":{"type":"string"},"order":{"type":"integer"},"headline":{"type":"boolean"},"text":{"type":"string"},"value":{"type":"integer"},"unit":{"type":"string"},"max":{"type":"integer"},"min":{"type":"integer"},"status":{"type":"string"},"lastTransition":{"type":"string"},"links":{"items":{"$ref":"#/$defs/Link"},"type":"array"},"filter":{"type":"string"}},"additionalProperties":false,"type":"object"},"File":{"properties":{"id":{"type":"string"},"name":{"type":"string"},"items":{"type":"string"},"type":{"type":"string"},"class":{"type":"string"},"transform":{"$ref":"#/$defs/Transform"},"format":{"type":"string"},"timestampFormat":{"type":"string"},"createFields":{"items":{"type":"string"},"type":"array"},"deleteFields":{"items":{"type":"string"},"type":"array"},"labels":{"$ref":"#/$defs/JSONStringMap"},"tags":{"$ref":"#/$defs/Tags"},"properties":{"items":{"$ref":"#/$defs/ConfigProperties"},"type":"array"},"url":{"type":"string"},"paths":{"items":{"type":"string"},"type":"array"},"ignore":{"items":{"type":"string"},"type":"array"},"icon":{"type":"string"},"connection":{"type":"string"}},"additionalProperties":false,"type":"object"},"JSONStringMap":{"additionalProperties":{"type":"string"},"type":"object"},"Link":{"properties":{"type":{"type":"string"},"url":{"type":"string"},"tooltip":{"type":"string"},"icon":{"type":"string"},"text":{"type":"string"},"label":{"type":"string"}},"additionalProperties":false,"type":"object"},"Mask":{"properties":{"selector":{"type":"string"},"jsonpath":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false,"type":"object"},"MaskList":{"items":{"$ref":"#/$defs/Mask"},"type":"array"},"RelationshipConfig":{"properties":{"id":{"$ref":"#/$defs/RelationshipLookup"},"name":{"$ref":"#/$defs/RelationshipLookup"},"type":{"$ref":"#/$defs/RelationshipLookup"},"agent":{"$ref":"#/$defs/RelationshipLookup"},"labels":{"additionalProperties":{"type":"string"},"type":"object"},"expr":{"type":"string"},"filter":{"type":"string"}},"additionalProperties":false,"type":"object"},"RelationshipLookup":{"properties":{"expr":{"type":"string"},"value":{"type":"string"},"label":{"type":"string"}},"additionalProperties":false,"type":"object"},"Tag":{"properties":{"name":{"type":"string"},"label":{"type":"string"},"jsonpath":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name"]},"Tags":{"items":{"$ref":"#/$defs/Tag"},"type":"array"},"Transform":{"properties":{"gotemplate":{"type":"string"},"jsonpath":{"type":"string"},"expr":{"type":"string"},"javascript":{"type":"string"},"exclude":{"items":{"$ref":"#/$defs/ConfigFieldExclusion"},"type":"array"},"mask":{"$ref":"#/$defs/MaskList"},"relationship":{"items":{"$ref":"#/$defs/RelationshipConfig"},"type":"array"},"changes":{"$ref":"#/$defs/TransformChange"}},"additionalProperties":false,"type":"object"},"TransformChange":{"properties":{"mapping":{"items":{"$ref":"#/$defs/ChangeMapping"},"type":"array"},"exclude":{"items":{"type":"string"},"type":"array"}},"additionalProperties":false,"type":"object"}}} \ No newline at end of file +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://github.com/flanksource/config-db/api/v1/file", + "$ref": "#/$defs/File", + "$defs": { + "ChangeMapping": { + "properties": { + "filter": { + "type": "string" + }, + "severity": { + "type": "string" + }, + "type": { + "type": "string" + }, + "action": { + "type": "string" + }, + "summary": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ConfigFieldExclusion": { + "properties": { + "types": { + "items": { + "type": "string" + }, + "type": "array" + }, + "jsonpath": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "jsonpath" + ] + }, + "ConfigProperties": { + "properties": { + "label": { + "type": "string" + }, + "name": { + "type": "string" + }, + "tooltip": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "type": { + "type": "string" + }, + "color": { + "type": "string" + }, + "order": { + "type": "integer" + }, + "headline": { + "type": "boolean" + }, + "text": { + "type": "string" + }, + "value": { + "type": "integer" + }, + "unit": { + "type": "string" + }, + "max": { + "type": "integer" + }, + "min": { + "type": "integer" + }, + "status": { + "type": "string" + }, + "lastTransition": { + "type": "string" + }, + "links": { + "items": { + "$ref": "#/$defs/Link" + }, + "type": "array" + }, + "filter": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "File": { + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "items": { + "type": "string" + }, + "type": { + "type": "string" + }, + "class": { + "type": "string" + }, + "format": { + "type": "string" + }, + "status": { + "type": "string" + }, + "health": { + "type": "string" + }, + "timestampFormat": { + "type": "string" + }, + "createFields": { + "items": { + "type": "string" + }, + "type": "array" + }, + "deleteFields": { + "items": { + "type": "string" + }, + "type": "array" + }, + "transform": { + "$ref": "#/$defs/Transform" + }, + "labels": { + "$ref": "#/$defs/JSONStringMap" + }, + "tags": { + "$ref": "#/$defs/Tags" + }, + "properties": { + "items": { + "$ref": "#/$defs/ConfigProperties" + }, + "type": "array" + }, + "url": { + "type": "string" + }, + "paths": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ignore": { + "items": { + "type": "string" + }, + "type": "array" + }, + "icon": { + "type": "string" + }, + "connection": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "JSONStringMap": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "Link": { + "properties": { + "type": { + "type": "string" + }, + "url": { + "type": "string" + }, + "tooltip": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "text": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "Lookup": { + "properties": { + "expr": { + "type": "string" + }, + "value": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "Mask": { + "properties": { + "selector": { + "type": "string" + }, + "jsonpath": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "MaskList": { + "items": { + "$ref": "#/$defs/Mask" + }, + "type": "array" + }, + "RelationshipConfig": { + "properties": { + "id": { + "$ref": "#/$defs/Lookup" + }, + "external_id": { + "$ref": "#/$defs/Lookup" + }, + "name": { + "$ref": "#/$defs/Lookup" + }, + "namespace": { + "$ref": "#/$defs/Lookup" + }, + "type": { + "$ref": "#/$defs/Lookup" + }, + "agent": { + "$ref": "#/$defs/Lookup" + }, + "scope": { + "$ref": "#/$defs/Lookup" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "expr": { + "type": "string" + }, + "filter": { + "type": "string" + }, + "parent": { + "type": "boolean" + } + }, + "additionalProperties": false, + "type": "object" + }, + "Tag": { + "properties": { + "name": { + "type": "string" + }, + "label": { + "type": "string" + }, + "jsonpath": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "Tags": { + "items": { + "$ref": "#/$defs/Tag" + }, + "type": "array" + }, + "Transform": { + "properties": { + "gotemplate": { + "type": "string" + }, + "jsonpath": { + "type": "string" + }, + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "exclude": { + "items": { + "$ref": "#/$defs/ConfigFieldExclusion" + }, + "type": "array" + }, + "mask": { + "$ref": "#/$defs/MaskList" + }, + "relationship": { + "items": { + "$ref": "#/$defs/RelationshipConfig" + }, + "type": "array" + }, + "changes": { + "$ref": "#/$defs/TransformChange" + } + }, + "additionalProperties": false, + "type": "object" + }, + "TransformChange": { + "properties": { + "mapping": { + "items": { + "$ref": "#/$defs/ChangeMapping" + }, + "type": "array" + }, + "exclude": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object" + } + } +} \ No newline at end of file diff --git a/schema/openapi/config_githubactions.schema.json b/schema/openapi/config_githubactions.schema.json index c15c80cf..2b091713 100644 --- a/schema/openapi/config_githubactions.schema.json +++ b/schema/openapi/config_githubactions.schema.json @@ -1 +1,460 @@ -{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://github.com/flanksource/config-db/api/v1/git-hub-actions","$ref":"#/$defs/GitHubActions","$defs":{"ChangeMapping":{"properties":{"filter":{"type":"string"},"type":{"type":"string"},"action":{"type":"string"},"summary":{"type":"string"}},"additionalProperties":false,"type":"object"},"ConfigFieldExclusion":{"properties":{"types":{"items":{"type":"string"},"type":"array"},"jsonpath":{"type":"string"}},"additionalProperties":false,"type":"object","required":["jsonpath"]},"ConfigMapKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"ConfigProperties":{"properties":{"label":{"type":"string"},"name":{"type":"string"},"tooltip":{"type":"string"},"icon":{"type":"string"},"type":{"type":"string"},"color":{"type":"string"},"order":{"type":"integer"},"headline":{"type":"boolean"},"text":{"type":"string"},"value":{"type":"integer"},"unit":{"type":"string"},"max":{"type":"integer"},"min":{"type":"integer"},"status":{"type":"string"},"lastTransition":{"type":"string"},"links":{"items":{"$ref":"#/$defs/Link"},"type":"array"},"filter":{"type":"string"}},"additionalProperties":false,"type":"object"},"EnvVar":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueFrom":{"$ref":"#/$defs/EnvVarSource"}},"additionalProperties":false,"type":"object"},"EnvVarSource":{"properties":{"serviceAccount":{"type":"string"},"helmRef":{"$ref":"#/$defs/HelmRefKeySelector"},"configMapKeyRef":{"$ref":"#/$defs/ConfigMapKeySelector"},"secretKeyRef":{"$ref":"#/$defs/SecretKeySelector"}},"additionalProperties":false,"type":"object"},"GitHubActions":{"properties":{"id":{"type":"string"},"name":{"type":"string"},"items":{"type":"string"},"type":{"type":"string"},"class":{"type":"string"},"transform":{"$ref":"#/$defs/Transform"},"format":{"type":"string"},"timestampFormat":{"type":"string"},"createFields":{"items":{"type":"string"},"type":"array"},"deleteFields":{"items":{"type":"string"},"type":"array"},"labels":{"$ref":"#/$defs/JSONStringMap"},"tags":{"$ref":"#/$defs/Tags"},"properties":{"items":{"$ref":"#/$defs/ConfigProperties"},"type":"array"},"owner":{"type":"string"},"repository":{"type":"string"},"personalAccessToken":{"$ref":"#/$defs/EnvVar"},"connection":{"type":"string"},"workflows":{"items":{"type":"string"},"type":"array"}},"additionalProperties":false,"type":"object","required":["owner","repository","personalAccessToken","workflows"]},"HelmRefKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"JSONStringMap":{"additionalProperties":{"type":"string"},"type":"object"},"Link":{"properties":{"type":{"type":"string"},"url":{"type":"string"},"tooltip":{"type":"string"},"icon":{"type":"string"},"text":{"type":"string"},"label":{"type":"string"}},"additionalProperties":false,"type":"object"},"Mask":{"properties":{"selector":{"type":"string"},"jsonpath":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false,"type":"object"},"MaskList":{"items":{"$ref":"#/$defs/Mask"},"type":"array"},"RelationshipConfig":{"properties":{"id":{"$ref":"#/$defs/RelationshipLookup"},"name":{"$ref":"#/$defs/RelationshipLookup"},"type":{"$ref":"#/$defs/RelationshipLookup"},"agent":{"$ref":"#/$defs/RelationshipLookup"},"labels":{"additionalProperties":{"type":"string"},"type":"object"},"expr":{"type":"string"},"filter":{"type":"string"}},"additionalProperties":false,"type":"object"},"RelationshipLookup":{"properties":{"expr":{"type":"string"},"value":{"type":"string"},"label":{"type":"string"}},"additionalProperties":false,"type":"object"},"SecretKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"Tag":{"properties":{"name":{"type":"string"},"label":{"type":"string"},"jsonpath":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name"]},"Tags":{"items":{"$ref":"#/$defs/Tag"},"type":"array"},"Transform":{"properties":{"gotemplate":{"type":"string"},"jsonpath":{"type":"string"},"expr":{"type":"string"},"javascript":{"type":"string"},"exclude":{"items":{"$ref":"#/$defs/ConfigFieldExclusion"},"type":"array"},"mask":{"$ref":"#/$defs/MaskList"},"relationship":{"items":{"$ref":"#/$defs/RelationshipConfig"},"type":"array"},"changes":{"$ref":"#/$defs/TransformChange"}},"additionalProperties":false,"type":"object"},"TransformChange":{"properties":{"mapping":{"items":{"$ref":"#/$defs/ChangeMapping"},"type":"array"},"exclude":{"items":{"type":"string"},"type":"array"}},"additionalProperties":false,"type":"object"}}} \ No newline at end of file +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://github.com/flanksource/config-db/api/v1/git-hub-actions", + "$ref": "#/$defs/GitHubActions", + "$defs": { + "ChangeMapping": { + "properties": { + "filter": { + "type": "string" + }, + "severity": { + "type": "string" + }, + "type": { + "type": "string" + }, + "action": { + "type": "string" + }, + "summary": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ConfigFieldExclusion": { + "properties": { + "types": { + "items": { + "type": "string" + }, + "type": "array" + }, + "jsonpath": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "jsonpath" + ] + }, + "ConfigMapKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "ConfigProperties": { + "properties": { + "label": { + "type": "string" + }, + "name": { + "type": "string" + }, + "tooltip": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "type": { + "type": "string" + }, + "color": { + "type": "string" + }, + "order": { + "type": "integer" + }, + "headline": { + "type": "boolean" + }, + "text": { + "type": "string" + }, + "value": { + "type": "integer" + }, + "unit": { + "type": "string" + }, + "max": { + "type": "integer" + }, + "min": { + "type": "integer" + }, + "status": { + "type": "string" + }, + "lastTransition": { + "type": "string" + }, + "links": { + "items": { + "$ref": "#/$defs/Link" + }, + "type": "array" + }, + "filter": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "EnvVar": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "$ref": "#/$defs/EnvVarSource" + } + }, + "additionalProperties": false, + "type": "object" + }, + "EnvVarSource": { + "properties": { + "serviceAccount": { + "type": "string" + }, + "helmRef": { + "$ref": "#/$defs/HelmRefKeySelector" + }, + "configMapKeyRef": { + "$ref": "#/$defs/ConfigMapKeySelector" + }, + "secretKeyRef": { + "$ref": "#/$defs/SecretKeySelector" + } + }, + "additionalProperties": false, + "type": "object" + }, + "GitHubActions": { + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "items": { + "type": "string" + }, + "type": { + "type": "string" + }, + "class": { + "type": "string" + }, + "format": { + "type": "string" + }, + "status": { + "type": "string" + }, + "health": { + "type": "string" + }, + "timestampFormat": { + "type": "string" + }, + "createFields": { + "items": { + "type": "string" + }, + "type": "array" + }, + "deleteFields": { + "items": { + "type": "string" + }, + "type": "array" + }, + "transform": { + "$ref": "#/$defs/Transform" + }, + "labels": { + "$ref": "#/$defs/JSONStringMap" + }, + "tags": { + "$ref": "#/$defs/Tags" + }, + "properties": { + "items": { + "$ref": "#/$defs/ConfigProperties" + }, + "type": "array" + }, + "owner": { + "type": "string" + }, + "repository": { + "type": "string" + }, + "personalAccessToken": { + "$ref": "#/$defs/EnvVar" + }, + "connection": { + "type": "string" + }, + "workflows": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "owner", + "repository", + "personalAccessToken", + "workflows" + ] + }, + "HelmRefKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "JSONStringMap": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "Link": { + "properties": { + "type": { + "type": "string" + }, + "url": { + "type": "string" + }, + "tooltip": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "text": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "Lookup": { + "properties": { + "expr": { + "type": "string" + }, + "value": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "Mask": { + "properties": { + "selector": { + "type": "string" + }, + "jsonpath": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "MaskList": { + "items": { + "$ref": "#/$defs/Mask" + }, + "type": "array" + }, + "RelationshipConfig": { + "properties": { + "id": { + "$ref": "#/$defs/Lookup" + }, + "external_id": { + "$ref": "#/$defs/Lookup" + }, + "name": { + "$ref": "#/$defs/Lookup" + }, + "namespace": { + "$ref": "#/$defs/Lookup" + }, + "type": { + "$ref": "#/$defs/Lookup" + }, + "agent": { + "$ref": "#/$defs/Lookup" + }, + "scope": { + "$ref": "#/$defs/Lookup" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "expr": { + "type": "string" + }, + "filter": { + "type": "string" + }, + "parent": { + "type": "boolean" + } + }, + "additionalProperties": false, + "type": "object" + }, + "SecretKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "Tag": { + "properties": { + "name": { + "type": "string" + }, + "label": { + "type": "string" + }, + "jsonpath": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "Tags": { + "items": { + "$ref": "#/$defs/Tag" + }, + "type": "array" + }, + "Transform": { + "properties": { + "gotemplate": { + "type": "string" + }, + "jsonpath": { + "type": "string" + }, + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "exclude": { + "items": { + "$ref": "#/$defs/ConfigFieldExclusion" + }, + "type": "array" + }, + "mask": { + "$ref": "#/$defs/MaskList" + }, + "relationship": { + "items": { + "$ref": "#/$defs/RelationshipConfig" + }, + "type": "array" + }, + "changes": { + "$ref": "#/$defs/TransformChange" + } + }, + "additionalProperties": false, + "type": "object" + }, + "TransformChange": { + "properties": { + "mapping": { + "items": { + "$ref": "#/$defs/ChangeMapping" + }, + "type": "array" + }, + "exclude": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object" + } + } +} \ No newline at end of file diff --git a/schema/openapi/config_kubernetes.schema.json b/schema/openapi/config_kubernetes.schema.json index 6ac88305..ca3c970b 100644 --- a/schema/openapi/config_kubernetes.schema.json +++ b/schema/openapi/config_kubernetes.schema.json @@ -1 +1,607 @@ -{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://github.com/flanksource/config-db/api/v1/kubernetes","$ref":"#/$defs/Kubernetes","$defs":{"ChangeMapping":{"properties":{"filter":{"type":"string"},"type":{"type":"string"},"action":{"type":"string"},"summary":{"type":"string"}},"additionalProperties":false,"type":"object"},"ConfigFieldExclusion":{"properties":{"types":{"items":{"type":"string"},"type":"array"},"jsonpath":{"type":"string"}},"additionalProperties":false,"type":"object","required":["jsonpath"]},"ConfigMapKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"ConfigProperties":{"properties":{"label":{"type":"string"},"name":{"type":"string"},"tooltip":{"type":"string"},"icon":{"type":"string"},"type":{"type":"string"},"color":{"type":"string"},"order":{"type":"integer"},"headline":{"type":"boolean"},"text":{"type":"string"},"value":{"type":"integer"},"unit":{"type":"string"},"max":{"type":"integer"},"min":{"type":"integer"},"status":{"type":"string"},"lastTransition":{"type":"string"},"links":{"items":{"$ref":"#/$defs/Link"},"type":"array"},"filter":{"type":"string"}},"additionalProperties":false,"type":"object"},"EnvVar":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueFrom":{"$ref":"#/$defs/EnvVarSource"}},"additionalProperties":false,"type":"object"},"EnvVarSource":{"properties":{"serviceAccount":{"type":"string"},"helmRef":{"$ref":"#/$defs/HelmRefKeySelector"},"configMapKeyRef":{"$ref":"#/$defs/ConfigMapKeySelector"},"secretKeyRef":{"$ref":"#/$defs/SecretKeySelector"}},"additionalProperties":false,"type":"object"},"HelmRefKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"JSONStringMap":{"additionalProperties":{"type":"string"},"type":"object"},"Kubernetes":{"properties":{"id":{"type":"string"},"name":{"type":"string"},"items":{"type":"string"},"type":{"type":"string"},"class":{"type":"string"},"transform":{"$ref":"#/$defs/Transform"},"format":{"type":"string"},"timestampFormat":{"type":"string"},"createFields":{"items":{"type":"string"},"type":"array"},"deleteFields":{"items":{"type":"string"},"type":"array"},"labels":{"$ref":"#/$defs/JSONStringMap"},"tags":{"$ref":"#/$defs/Tags"},"properties":{"items":{"$ref":"#/$defs/ConfigProperties"},"type":"array"},"clusterName":{"type":"string"},"namespace":{"type":"string"},"useCache":{"type":"boolean"},"allowIncomplete":{"type":"boolean"},"scope":{"type":"string"},"since":{"type":"string"},"selector":{"type":"string"},"fieldSelector":{"type":"string"},"maxInflight":{"type":"integer"},"kubeconfig":{"$ref":"#/$defs/EnvVar"},"watch":{"items":{"$ref":"#/$defs/KubernetesResourceToWatch"},"type":"array"},"event":{"$ref":"#/$defs/KubernetesEventConfig"},"exclusions":{"$ref":"#/$defs/KubernetesExclusionConfig"},"relationships":{"items":{"$ref":"#/$defs/KubernetesRelationshipSelectorTemplate"},"type":"array"}},"additionalProperties":false,"type":"object"},"KubernetesEventConfig":{"properties":{"exclusions":{"$ref":"#/$defs/KubernetesEventExclusions"},"severityKeywords":{"$ref":"#/$defs/SeverityKeywords"}},"additionalProperties":false,"type":"object"},"KubernetesEventExclusions":{"properties":{"name":{"items":{"type":"string"},"type":"array"},"namespace":{"items":{"type":"string"},"type":"array"},"reason":{"items":{"type":"string"},"type":"array"}},"additionalProperties":false,"type":"object"},"KubernetesExclusionConfig":{"properties":{"name":{"items":{"type":"string"},"type":"array"},"kind":{"items":{"type":"string"},"type":"array"},"namespace":{"items":{"type":"string"},"type":"array"},"labels":{"additionalProperties":{"type":"string"},"type":"object"}},"additionalProperties":false,"type":"object"},"KubernetesRelationshipSelectorTemplate":{"properties":{"kind":{"$ref":"#/$defs/RelationshipLookup"},"name":{"$ref":"#/$defs/RelationshipLookup"},"namespace":{"$ref":"#/$defs/RelationshipLookup"}},"additionalProperties":false,"type":"object","required":["kind","name","namespace"]},"KubernetesResourceToWatch":{"properties":{"apiVersion":{"type":"string"},"kind":{"type":"string"}},"additionalProperties":false,"type":"object","required":["apiVersion","kind"]},"Link":{"properties":{"type":{"type":"string"},"url":{"type":"string"},"tooltip":{"type":"string"},"icon":{"type":"string"},"text":{"type":"string"},"label":{"type":"string"}},"additionalProperties":false,"type":"object"},"Mask":{"properties":{"selector":{"type":"string"},"jsonpath":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false,"type":"object"},"MaskList":{"items":{"$ref":"#/$defs/Mask"},"type":"array"},"RelationshipConfig":{"properties":{"id":{"$ref":"#/$defs/RelationshipLookup"},"name":{"$ref":"#/$defs/RelationshipLookup"},"type":{"$ref":"#/$defs/RelationshipLookup"},"agent":{"$ref":"#/$defs/RelationshipLookup"},"labels":{"additionalProperties":{"type":"string"},"type":"object"},"expr":{"type":"string"},"filter":{"type":"string"}},"additionalProperties":false,"type":"object"},"RelationshipLookup":{"properties":{"expr":{"type":"string"},"value":{"type":"string"},"label":{"type":"string"}},"additionalProperties":false,"type":"object"},"SecretKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"SeverityKeywords":{"properties":{"warn":{"items":{"type":"string"},"type":"array"},"error":{"items":{"type":"string"},"type":"array"}},"additionalProperties":false,"type":"object"},"Tag":{"properties":{"name":{"type":"string"},"label":{"type":"string"},"jsonpath":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name"]},"Tags":{"items":{"$ref":"#/$defs/Tag"},"type":"array"},"Transform":{"properties":{"gotemplate":{"type":"string"},"jsonpath":{"type":"string"},"expr":{"type":"string"},"javascript":{"type":"string"},"exclude":{"items":{"$ref":"#/$defs/ConfigFieldExclusion"},"type":"array"},"mask":{"$ref":"#/$defs/MaskList"},"relationship":{"items":{"$ref":"#/$defs/RelationshipConfig"},"type":"array"},"changes":{"$ref":"#/$defs/TransformChange"}},"additionalProperties":false,"type":"object"},"TransformChange":{"properties":{"mapping":{"items":{"$ref":"#/$defs/ChangeMapping"},"type":"array"},"exclude":{"items":{"type":"string"},"type":"array"}},"additionalProperties":false,"type":"object"}}} \ No newline at end of file +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://github.com/flanksource/config-db/api/v1/kubernetes", + "$ref": "#/$defs/Kubernetes", + "$defs": { + "ChangeMapping": { + "properties": { + "filter": { + "type": "string" + }, + "severity": { + "type": "string" + }, + "type": { + "type": "string" + }, + "action": { + "type": "string" + }, + "summary": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ConfigFieldExclusion": { + "properties": { + "types": { + "items": { + "type": "string" + }, + "type": "array" + }, + "jsonpath": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "jsonpath" + ] + }, + "ConfigMapKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "ConfigProperties": { + "properties": { + "label": { + "type": "string" + }, + "name": { + "type": "string" + }, + "tooltip": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "type": { + "type": "string" + }, + "color": { + "type": "string" + }, + "order": { + "type": "integer" + }, + "headline": { + "type": "boolean" + }, + "text": { + "type": "string" + }, + "value": { + "type": "integer" + }, + "unit": { + "type": "string" + }, + "max": { + "type": "integer" + }, + "min": { + "type": "integer" + }, + "status": { + "type": "string" + }, + "lastTransition": { + "type": "string" + }, + "links": { + "items": { + "$ref": "#/$defs/Link" + }, + "type": "array" + }, + "filter": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "EnvVar": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "$ref": "#/$defs/EnvVarSource" + } + }, + "additionalProperties": false, + "type": "object" + }, + "EnvVarSource": { + "properties": { + "serviceAccount": { + "type": "string" + }, + "helmRef": { + "$ref": "#/$defs/HelmRefKeySelector" + }, + "configMapKeyRef": { + "$ref": "#/$defs/ConfigMapKeySelector" + }, + "secretKeyRef": { + "$ref": "#/$defs/SecretKeySelector" + } + }, + "additionalProperties": false, + "type": "object" + }, + "HelmRefKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "JSONStringMap": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "Kubernetes": { + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "items": { + "type": "string" + }, + "type": { + "type": "string" + }, + "class": { + "type": "string" + }, + "format": { + "type": "string" + }, + "status": { + "type": "string" + }, + "health": { + "type": "string" + }, + "timestampFormat": { + "type": "string" + }, + "createFields": { + "items": { + "type": "string" + }, + "type": "array" + }, + "deleteFields": { + "items": { + "type": "string" + }, + "type": "array" + }, + "transform": { + "$ref": "#/$defs/Transform" + }, + "labels": { + "$ref": "#/$defs/JSONStringMap" + }, + "tags": { + "$ref": "#/$defs/Tags" + }, + "properties": { + "items": { + "$ref": "#/$defs/ConfigProperties" + }, + "type": "array" + }, + "clusterName": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "useCache": { + "type": "boolean" + }, + "allowIncomplete": { + "type": "boolean" + }, + "scope": { + "type": "string" + }, + "since": { + "type": "string" + }, + "selector": { + "type": "string" + }, + "fieldSelector": { + "type": "string" + }, + "maxInflight": { + "type": "integer" + }, + "kubeconfig": { + "$ref": "#/$defs/EnvVar" + }, + "watch": { + "items": { + "$ref": "#/$defs/KubernetesResourceToWatch" + }, + "type": "array" + }, + "event": { + "$ref": "#/$defs/KubernetesEventConfig" + }, + "exclusions": { + "$ref": "#/$defs/KubernetesExclusionConfig" + }, + "relationships": { + "items": { + "$ref": "#/$defs/KubernetesRelationshipSelectorTemplate" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "clusterName" + ] + }, + "KubernetesEventConfig": { + "properties": { + "exclusions": { + "$ref": "#/$defs/KubernetesEventExclusions" + }, + "severityKeywords": { + "$ref": "#/$defs/SeverityKeywords" + } + }, + "additionalProperties": false, + "type": "object" + }, + "KubernetesEventExclusions": { + "properties": { + "name": { + "items": { + "type": "string" + }, + "type": "array" + }, + "namespace": { + "items": { + "type": "string" + }, + "type": "array" + }, + "reason": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object" + }, + "KubernetesExclusionConfig": { + "properties": { + "name": { + "items": { + "type": "string" + }, + "type": "array" + }, + "kind": { + "items": { + "type": "string" + }, + "type": "array" + }, + "namespace": { + "items": { + "type": "string" + }, + "type": "array" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "additionalProperties": false, + "type": "object" + }, + "KubernetesRelationshipSelectorTemplate": { + "properties": { + "kind": { + "$ref": "#/$defs/Lookup" + }, + "name": { + "$ref": "#/$defs/Lookup" + }, + "namespace": { + "$ref": "#/$defs/Lookup" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "kind", + "name", + "namespace" + ] + }, + "KubernetesResourceToWatch": { + "properties": { + "apiVersion": { + "type": "string" + }, + "kind": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "apiVersion", + "kind" + ] + }, + "Link": { + "properties": { + "type": { + "type": "string" + }, + "url": { + "type": "string" + }, + "tooltip": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "text": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "Lookup": { + "properties": { + "expr": { + "type": "string" + }, + "value": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "Mask": { + "properties": { + "selector": { + "type": "string" + }, + "jsonpath": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "MaskList": { + "items": { + "$ref": "#/$defs/Mask" + }, + "type": "array" + }, + "RelationshipConfig": { + "properties": { + "id": { + "$ref": "#/$defs/Lookup" + }, + "external_id": { + "$ref": "#/$defs/Lookup" + }, + "name": { + "$ref": "#/$defs/Lookup" + }, + "namespace": { + "$ref": "#/$defs/Lookup" + }, + "type": { + "$ref": "#/$defs/Lookup" + }, + "agent": { + "$ref": "#/$defs/Lookup" + }, + "scope": { + "$ref": "#/$defs/Lookup" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "expr": { + "type": "string" + }, + "filter": { + "type": "string" + }, + "parent": { + "type": "boolean" + } + }, + "additionalProperties": false, + "type": "object" + }, + "SecretKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "SeverityKeywords": { + "properties": { + "warn": { + "items": { + "type": "string" + }, + "type": "array" + }, + "error": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object" + }, + "Tag": { + "properties": { + "name": { + "type": "string" + }, + "label": { + "type": "string" + }, + "jsonpath": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "Tags": { + "items": { + "$ref": "#/$defs/Tag" + }, + "type": "array" + }, + "Transform": { + "properties": { + "gotemplate": { + "type": "string" + }, + "jsonpath": { + "type": "string" + }, + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "exclude": { + "items": { + "$ref": "#/$defs/ConfigFieldExclusion" + }, + "type": "array" + }, + "mask": { + "$ref": "#/$defs/MaskList" + }, + "relationship": { + "items": { + "$ref": "#/$defs/RelationshipConfig" + }, + "type": "array" + }, + "changes": { + "$ref": "#/$defs/TransformChange" + } + }, + "additionalProperties": false, + "type": "object" + }, + "TransformChange": { + "properties": { + "mapping": { + "items": { + "$ref": "#/$defs/ChangeMapping" + }, + "type": "array" + }, + "exclude": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object" + } + } +} \ No newline at end of file diff --git a/schema/openapi/config_kubernetesfile.schema.json b/schema/openapi/config_kubernetesfile.schema.json index 787bbc94..4f8b02e9 100644 --- a/schema/openapi/config_kubernetesfile.schema.json +++ b/schema/openapi/config_kubernetesfile.schema.json @@ -1 +1,490 @@ -{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://github.com/flanksource/config-db/api/v1/kubernetes-file","$ref":"#/$defs/KubernetesFile","$defs":{"ChangeMapping":{"properties":{"filter":{"type":"string"},"type":{"type":"string"},"action":{"type":"string"},"summary":{"type":"string"}},"additionalProperties":false,"type":"object"},"ConfigFieldExclusion":{"properties":{"types":{"items":{"type":"string"},"type":"array"},"jsonpath":{"type":"string"}},"additionalProperties":false,"type":"object","required":["jsonpath"]},"ConfigMapKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"ConfigProperties":{"properties":{"label":{"type":"string"},"name":{"type":"string"},"tooltip":{"type":"string"},"icon":{"type":"string"},"type":{"type":"string"},"color":{"type":"string"},"order":{"type":"integer"},"headline":{"type":"boolean"},"text":{"type":"string"},"value":{"type":"integer"},"unit":{"type":"string"},"max":{"type":"integer"},"min":{"type":"integer"},"status":{"type":"string"},"lastTransition":{"type":"string"},"links":{"items":{"$ref":"#/$defs/Link"},"type":"array"},"filter":{"type":"string"}},"additionalProperties":false,"type":"object"},"EnvVar":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueFrom":{"$ref":"#/$defs/EnvVarSource"}},"additionalProperties":false,"type":"object"},"EnvVarSource":{"properties":{"serviceAccount":{"type":"string"},"helmRef":{"$ref":"#/$defs/HelmRefKeySelector"},"configMapKeyRef":{"$ref":"#/$defs/ConfigMapKeySelector"},"secretKeyRef":{"$ref":"#/$defs/SecretKeySelector"}},"additionalProperties":false,"type":"object"},"HelmRefKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"JSONStringMap":{"additionalProperties":{"type":"string"},"type":"object"},"KubernetesFile":{"properties":{"id":{"type":"string"},"name":{"type":"string"},"items":{"type":"string"},"type":{"type":"string"},"class":{"type":"string"},"transform":{"$ref":"#/$defs/Transform"},"format":{"type":"string"},"timestampFormat":{"type":"string"},"createFields":{"items":{"type":"string"},"type":"array"},"deleteFields":{"items":{"type":"string"},"type":"array"},"labels":{"$ref":"#/$defs/JSONStringMap"},"tags":{"$ref":"#/$defs/Tags"},"properties":{"items":{"$ref":"#/$defs/ConfigProperties"},"type":"array"},"kubeconfig":{"$ref":"#/$defs/EnvVar"},"selector":{"$ref":"#/$defs/ResourceSelector"},"container":{"type":"string"},"files":{"items":{"$ref":"#/$defs/PodFile"},"type":"array"}},"additionalProperties":false,"type":"object","required":["selector"]},"Link":{"properties":{"type":{"type":"string"},"url":{"type":"string"},"tooltip":{"type":"string"},"icon":{"type":"string"},"text":{"type":"string"},"label":{"type":"string"}},"additionalProperties":false,"type":"object"},"Mask":{"properties":{"selector":{"type":"string"},"jsonpath":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false,"type":"object"},"MaskList":{"items":{"$ref":"#/$defs/Mask"},"type":"array"},"PodFile":{"properties":{"path":{"items":{"type":"string"},"type":"array"},"format":{"type":"string"}},"additionalProperties":false,"type":"object"},"RelationshipConfig":{"properties":{"id":{"$ref":"#/$defs/RelationshipLookup"},"name":{"$ref":"#/$defs/RelationshipLookup"},"type":{"$ref":"#/$defs/RelationshipLookup"},"agent":{"$ref":"#/$defs/RelationshipLookup"},"labels":{"additionalProperties":{"type":"string"},"type":"object"},"expr":{"type":"string"},"filter":{"type":"string"}},"additionalProperties":false,"type":"object"},"RelationshipLookup":{"properties":{"expr":{"type":"string"},"value":{"type":"string"},"label":{"type":"string"}},"additionalProperties":false,"type":"object"},"ResourceSelector":{"properties":{"namespace":{"type":"string"},"kind":{"type":"string"},"name":{"type":"string"},"labelSelector":{"type":"string"},"fieldSelector":{"type":"string"}},"additionalProperties":false,"type":"object"},"SecretKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"Tag":{"properties":{"name":{"type":"string"},"label":{"type":"string"},"jsonpath":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name"]},"Tags":{"items":{"$ref":"#/$defs/Tag"},"type":"array"},"Transform":{"properties":{"gotemplate":{"type":"string"},"jsonpath":{"type":"string"},"expr":{"type":"string"},"javascript":{"type":"string"},"exclude":{"items":{"$ref":"#/$defs/ConfigFieldExclusion"},"type":"array"},"mask":{"$ref":"#/$defs/MaskList"},"relationship":{"items":{"$ref":"#/$defs/RelationshipConfig"},"type":"array"},"changes":{"$ref":"#/$defs/TransformChange"}},"additionalProperties":false,"type":"object"},"TransformChange":{"properties":{"mapping":{"items":{"$ref":"#/$defs/ChangeMapping"},"type":"array"},"exclude":{"items":{"type":"string"},"type":"array"}},"additionalProperties":false,"type":"object"}}} \ No newline at end of file +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://github.com/flanksource/config-db/api/v1/kubernetes-file", + "$ref": "#/$defs/KubernetesFile", + "$defs": { + "ChangeMapping": { + "properties": { + "filter": { + "type": "string" + }, + "severity": { + "type": "string" + }, + "type": { + "type": "string" + }, + "action": { + "type": "string" + }, + "summary": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ConfigFieldExclusion": { + "properties": { + "types": { + "items": { + "type": "string" + }, + "type": "array" + }, + "jsonpath": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "jsonpath" + ] + }, + "ConfigMapKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "ConfigProperties": { + "properties": { + "label": { + "type": "string" + }, + "name": { + "type": "string" + }, + "tooltip": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "type": { + "type": "string" + }, + "color": { + "type": "string" + }, + "order": { + "type": "integer" + }, + "headline": { + "type": "boolean" + }, + "text": { + "type": "string" + }, + "value": { + "type": "integer" + }, + "unit": { + "type": "string" + }, + "max": { + "type": "integer" + }, + "min": { + "type": "integer" + }, + "status": { + "type": "string" + }, + "lastTransition": { + "type": "string" + }, + "links": { + "items": { + "$ref": "#/$defs/Link" + }, + "type": "array" + }, + "filter": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "EnvVar": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "$ref": "#/$defs/EnvVarSource" + } + }, + "additionalProperties": false, + "type": "object" + }, + "EnvVarSource": { + "properties": { + "serviceAccount": { + "type": "string" + }, + "helmRef": { + "$ref": "#/$defs/HelmRefKeySelector" + }, + "configMapKeyRef": { + "$ref": "#/$defs/ConfigMapKeySelector" + }, + "secretKeyRef": { + "$ref": "#/$defs/SecretKeySelector" + } + }, + "additionalProperties": false, + "type": "object" + }, + "HelmRefKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "JSONStringMap": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "KubernetesFile": { + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "items": { + "type": "string" + }, + "type": { + "type": "string" + }, + "class": { + "type": "string" + }, + "format": { + "type": "string" + }, + "status": { + "type": "string" + }, + "health": { + "type": "string" + }, + "timestampFormat": { + "type": "string" + }, + "createFields": { + "items": { + "type": "string" + }, + "type": "array" + }, + "deleteFields": { + "items": { + "type": "string" + }, + "type": "array" + }, + "transform": { + "$ref": "#/$defs/Transform" + }, + "labels": { + "$ref": "#/$defs/JSONStringMap" + }, + "tags": { + "$ref": "#/$defs/Tags" + }, + "properties": { + "items": { + "$ref": "#/$defs/ConfigProperties" + }, + "type": "array" + }, + "kubeconfig": { + "$ref": "#/$defs/EnvVar" + }, + "selector": { + "$ref": "#/$defs/ResourceSelector" + }, + "container": { + "type": "string" + }, + "files": { + "items": { + "$ref": "#/$defs/PodFile" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "selector" + ] + }, + "Link": { + "properties": { + "type": { + "type": "string" + }, + "url": { + "type": "string" + }, + "tooltip": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "text": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "Lookup": { + "properties": { + "expr": { + "type": "string" + }, + "value": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "Mask": { + "properties": { + "selector": { + "type": "string" + }, + "jsonpath": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "MaskList": { + "items": { + "$ref": "#/$defs/Mask" + }, + "type": "array" + }, + "PodFile": { + "properties": { + "path": { + "items": { + "type": "string" + }, + "type": "array" + }, + "format": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "RelationshipConfig": { + "properties": { + "id": { + "$ref": "#/$defs/Lookup" + }, + "external_id": { + "$ref": "#/$defs/Lookup" + }, + "name": { + "$ref": "#/$defs/Lookup" + }, + "namespace": { + "$ref": "#/$defs/Lookup" + }, + "type": { + "$ref": "#/$defs/Lookup" + }, + "agent": { + "$ref": "#/$defs/Lookup" + }, + "scope": { + "$ref": "#/$defs/Lookup" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "expr": { + "type": "string" + }, + "filter": { + "type": "string" + }, + "parent": { + "type": "boolean" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ResourceSelector": { + "properties": { + "namespace": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "name": { + "type": "string" + }, + "labelSelector": { + "type": "string" + }, + "fieldSelector": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "SecretKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "Tag": { + "properties": { + "name": { + "type": "string" + }, + "label": { + "type": "string" + }, + "jsonpath": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "Tags": { + "items": { + "$ref": "#/$defs/Tag" + }, + "type": "array" + }, + "Transform": { + "properties": { + "gotemplate": { + "type": "string" + }, + "jsonpath": { + "type": "string" + }, + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "exclude": { + "items": { + "$ref": "#/$defs/ConfigFieldExclusion" + }, + "type": "array" + }, + "mask": { + "$ref": "#/$defs/MaskList" + }, + "relationship": { + "items": { + "$ref": "#/$defs/RelationshipConfig" + }, + "type": "array" + }, + "changes": { + "$ref": "#/$defs/TransformChange" + } + }, + "additionalProperties": false, + "type": "object" + }, + "TransformChange": { + "properties": { + "mapping": { + "items": { + "$ref": "#/$defs/ChangeMapping" + }, + "type": "array" + }, + "exclude": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object" + } + } +} \ No newline at end of file diff --git a/schema/openapi/config_sql.schema.json b/schema/openapi/config_sql.schema.json index 16bc9e45..a443c9ff 100644 --- a/schema/openapi/config_sql.schema.json +++ b/schema/openapi/config_sql.schema.json @@ -1 +1,468 @@ -{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://github.com/flanksource/config-db/api/v1/sql","$ref":"#/$defs/SQL","$defs":{"Authentication":{"properties":{"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"}},"additionalProperties":false,"type":"object","required":["username","password"]},"ChangeMapping":{"properties":{"filter":{"type":"string"},"type":{"type":"string"},"action":{"type":"string"},"summary":{"type":"string"}},"additionalProperties":false,"type":"object"},"ConfigFieldExclusion":{"properties":{"types":{"items":{"type":"string"},"type":"array"},"jsonpath":{"type":"string"}},"additionalProperties":false,"type":"object","required":["jsonpath"]},"ConfigMapKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"ConfigProperties":{"properties":{"label":{"type":"string"},"name":{"type":"string"},"tooltip":{"type":"string"},"icon":{"type":"string"},"type":{"type":"string"},"color":{"type":"string"},"order":{"type":"integer"},"headline":{"type":"boolean"},"text":{"type":"string"},"value":{"type":"integer"},"unit":{"type":"string"},"max":{"type":"integer"},"min":{"type":"integer"},"status":{"type":"string"},"lastTransition":{"type":"string"},"links":{"items":{"$ref":"#/$defs/Link"},"type":"array"},"filter":{"type":"string"}},"additionalProperties":false,"type":"object"},"EnvVar":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueFrom":{"$ref":"#/$defs/EnvVarSource"}},"additionalProperties":false,"type":"object"},"EnvVarSource":{"properties":{"serviceAccount":{"type":"string"},"helmRef":{"$ref":"#/$defs/HelmRefKeySelector"},"configMapKeyRef":{"$ref":"#/$defs/ConfigMapKeySelector"},"secretKeyRef":{"$ref":"#/$defs/SecretKeySelector"}},"additionalProperties":false,"type":"object"},"HelmRefKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"JSONStringMap":{"additionalProperties":{"type":"string"},"type":"object"},"Link":{"properties":{"type":{"type":"string"},"url":{"type":"string"},"tooltip":{"type":"string"},"icon":{"type":"string"},"text":{"type":"string"},"label":{"type":"string"}},"additionalProperties":false,"type":"object"},"Mask":{"properties":{"selector":{"type":"string"},"jsonpath":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false,"type":"object"},"MaskList":{"items":{"$ref":"#/$defs/Mask"},"type":"array"},"RelationshipConfig":{"properties":{"id":{"$ref":"#/$defs/RelationshipLookup"},"name":{"$ref":"#/$defs/RelationshipLookup"},"type":{"$ref":"#/$defs/RelationshipLookup"},"agent":{"$ref":"#/$defs/RelationshipLookup"},"labels":{"additionalProperties":{"type":"string"},"type":"object"},"expr":{"type":"string"},"filter":{"type":"string"}},"additionalProperties":false,"type":"object"},"RelationshipLookup":{"properties":{"expr":{"type":"string"},"value":{"type":"string"},"label":{"type":"string"}},"additionalProperties":false,"type":"object"},"SQL":{"properties":{"id":{"type":"string"},"name":{"type":"string"},"items":{"type":"string"},"type":{"type":"string"},"class":{"type":"string"},"transform":{"$ref":"#/$defs/Transform"},"format":{"type":"string"},"timestampFormat":{"type":"string"},"createFields":{"items":{"type":"string"},"type":"array"},"deleteFields":{"items":{"type":"string"},"type":"array"},"labels":{"$ref":"#/$defs/JSONStringMap"},"tags":{"$ref":"#/$defs/Tags"},"properties":{"items":{"$ref":"#/$defs/ConfigProperties"},"type":"array"},"connection":{"type":"string"},"auth":{"$ref":"#/$defs/Authentication"},"driver":{"type":"string"},"query":{"type":"string"}},"additionalProperties":false,"type":"object","required":["connection","query"]},"SecretKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"Tag":{"properties":{"name":{"type":"string"},"label":{"type":"string"},"jsonpath":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name"]},"Tags":{"items":{"$ref":"#/$defs/Tag"},"type":"array"},"Transform":{"properties":{"gotemplate":{"type":"string"},"jsonpath":{"type":"string"},"expr":{"type":"string"},"javascript":{"type":"string"},"exclude":{"items":{"$ref":"#/$defs/ConfigFieldExclusion"},"type":"array"},"mask":{"$ref":"#/$defs/MaskList"},"relationship":{"items":{"$ref":"#/$defs/RelationshipConfig"},"type":"array"},"changes":{"$ref":"#/$defs/TransformChange"}},"additionalProperties":false,"type":"object"},"TransformChange":{"properties":{"mapping":{"items":{"$ref":"#/$defs/ChangeMapping"},"type":"array"},"exclude":{"items":{"type":"string"},"type":"array"}},"additionalProperties":false,"type":"object"}}} \ No newline at end of file +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://github.com/flanksource/config-db/api/v1/sql", + "$ref": "#/$defs/SQL", + "$defs": { + "Authentication": { + "properties": { + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "username", + "password" + ] + }, + "ChangeMapping": { + "properties": { + "filter": { + "type": "string" + }, + "severity": { + "type": "string" + }, + "type": { + "type": "string" + }, + "action": { + "type": "string" + }, + "summary": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ConfigFieldExclusion": { + "properties": { + "types": { + "items": { + "type": "string" + }, + "type": "array" + }, + "jsonpath": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "jsonpath" + ] + }, + "ConfigMapKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "ConfigProperties": { + "properties": { + "label": { + "type": "string" + }, + "name": { + "type": "string" + }, + "tooltip": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "type": { + "type": "string" + }, + "color": { + "type": "string" + }, + "order": { + "type": "integer" + }, + "headline": { + "type": "boolean" + }, + "text": { + "type": "string" + }, + "value": { + "type": "integer" + }, + "unit": { + "type": "string" + }, + "max": { + "type": "integer" + }, + "min": { + "type": "integer" + }, + "status": { + "type": "string" + }, + "lastTransition": { + "type": "string" + }, + "links": { + "items": { + "$ref": "#/$defs/Link" + }, + "type": "array" + }, + "filter": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "EnvVar": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "$ref": "#/$defs/EnvVarSource" + } + }, + "additionalProperties": false, + "type": "object" + }, + "EnvVarSource": { + "properties": { + "serviceAccount": { + "type": "string" + }, + "helmRef": { + "$ref": "#/$defs/HelmRefKeySelector" + }, + "configMapKeyRef": { + "$ref": "#/$defs/ConfigMapKeySelector" + }, + "secretKeyRef": { + "$ref": "#/$defs/SecretKeySelector" + } + }, + "additionalProperties": false, + "type": "object" + }, + "HelmRefKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "JSONStringMap": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "Link": { + "properties": { + "type": { + "type": "string" + }, + "url": { + "type": "string" + }, + "tooltip": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "text": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "Lookup": { + "properties": { + "expr": { + "type": "string" + }, + "value": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "Mask": { + "properties": { + "selector": { + "type": "string" + }, + "jsonpath": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "MaskList": { + "items": { + "$ref": "#/$defs/Mask" + }, + "type": "array" + }, + "RelationshipConfig": { + "properties": { + "id": { + "$ref": "#/$defs/Lookup" + }, + "external_id": { + "$ref": "#/$defs/Lookup" + }, + "name": { + "$ref": "#/$defs/Lookup" + }, + "namespace": { + "$ref": "#/$defs/Lookup" + }, + "type": { + "$ref": "#/$defs/Lookup" + }, + "agent": { + "$ref": "#/$defs/Lookup" + }, + "scope": { + "$ref": "#/$defs/Lookup" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "expr": { + "type": "string" + }, + "filter": { + "type": "string" + }, + "parent": { + "type": "boolean" + } + }, + "additionalProperties": false, + "type": "object" + }, + "SQL": { + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "items": { + "type": "string" + }, + "type": { + "type": "string" + }, + "class": { + "type": "string" + }, + "format": { + "type": "string" + }, + "status": { + "type": "string" + }, + "health": { + "type": "string" + }, + "timestampFormat": { + "type": "string" + }, + "createFields": { + "items": { + "type": "string" + }, + "type": "array" + }, + "deleteFields": { + "items": { + "type": "string" + }, + "type": "array" + }, + "transform": { + "$ref": "#/$defs/Transform" + }, + "labels": { + "$ref": "#/$defs/JSONStringMap" + }, + "tags": { + "$ref": "#/$defs/Tags" + }, + "properties": { + "items": { + "$ref": "#/$defs/ConfigProperties" + }, + "type": "array" + }, + "connection": { + "type": "string" + }, + "auth": { + "$ref": "#/$defs/Authentication" + }, + "driver": { + "type": "string" + }, + "query": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "connection", + "query" + ] + }, + "SecretKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "Tag": { + "properties": { + "name": { + "type": "string" + }, + "label": { + "type": "string" + }, + "jsonpath": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "Tags": { + "items": { + "$ref": "#/$defs/Tag" + }, + "type": "array" + }, + "Transform": { + "properties": { + "gotemplate": { + "type": "string" + }, + "jsonpath": { + "type": "string" + }, + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "exclude": { + "items": { + "$ref": "#/$defs/ConfigFieldExclusion" + }, + "type": "array" + }, + "mask": { + "$ref": "#/$defs/MaskList" + }, + "relationship": { + "items": { + "$ref": "#/$defs/RelationshipConfig" + }, + "type": "array" + }, + "changes": { + "$ref": "#/$defs/TransformChange" + } + }, + "additionalProperties": false, + "type": "object" + }, + "TransformChange": { + "properties": { + "mapping": { + "items": { + "$ref": "#/$defs/ChangeMapping" + }, + "type": "array" + }, + "exclude": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object" + } + } +} \ No newline at end of file diff --git a/schema/openapi/config_trivy.schema.json b/schema/openapi/config_trivy.schema.json index 22008fc5..997907e1 100644 --- a/schema/openapi/config_trivy.schema.json +++ b/schema/openapi/config_trivy.schema.json @@ -1 +1,424 @@ -{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://github.com/flanksource/config-db/api/v1/trivy","$ref":"#/$defs/Trivy","$defs":{"ChangeMapping":{"properties":{"filter":{"type":"string"},"type":{"type":"string"},"action":{"type":"string"},"summary":{"type":"string"}},"additionalProperties":false,"type":"object"},"ConfigFieldExclusion":{"properties":{"types":{"items":{"type":"string"},"type":"array"},"jsonpath":{"type":"string"}},"additionalProperties":false,"type":"object","required":["jsonpath"]},"ConfigProperties":{"properties":{"label":{"type":"string"},"name":{"type":"string"},"tooltip":{"type":"string"},"icon":{"type":"string"},"type":{"type":"string"},"color":{"type":"string"},"order":{"type":"integer"},"headline":{"type":"boolean"},"text":{"type":"string"},"value":{"type":"integer"},"unit":{"type":"string"},"max":{"type":"integer"},"min":{"type":"integer"},"status":{"type":"string"},"lastTransition":{"type":"string"},"links":{"items":{"$ref":"#/$defs/Link"},"type":"array"},"filter":{"type":"string"}},"additionalProperties":false,"type":"object"},"JSONStringMap":{"additionalProperties":{"type":"string"},"type":"object"},"Link":{"properties":{"type":{"type":"string"},"url":{"type":"string"},"tooltip":{"type":"string"},"icon":{"type":"string"},"text":{"type":"string"},"label":{"type":"string"}},"additionalProperties":false,"type":"object"},"Mask":{"properties":{"selector":{"type":"string"},"jsonpath":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false,"type":"object"},"MaskList":{"items":{"$ref":"#/$defs/Mask"},"type":"array"},"RelationshipConfig":{"properties":{"id":{"$ref":"#/$defs/RelationshipLookup"},"name":{"$ref":"#/$defs/RelationshipLookup"},"type":{"$ref":"#/$defs/RelationshipLookup"},"agent":{"$ref":"#/$defs/RelationshipLookup"},"labels":{"additionalProperties":{"type":"string"},"type":"object"},"expr":{"type":"string"},"filter":{"type":"string"}},"additionalProperties":false,"type":"object"},"RelationshipLookup":{"properties":{"expr":{"type":"string"},"value":{"type":"string"},"label":{"type":"string"}},"additionalProperties":false,"type":"object"},"Tag":{"properties":{"name":{"type":"string"},"label":{"type":"string"},"jsonpath":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name"]},"Tags":{"items":{"$ref":"#/$defs/Tag"},"type":"array"},"Transform":{"properties":{"gotemplate":{"type":"string"},"jsonpath":{"type":"string"},"expr":{"type":"string"},"javascript":{"type":"string"},"exclude":{"items":{"$ref":"#/$defs/ConfigFieldExclusion"},"type":"array"},"mask":{"$ref":"#/$defs/MaskList"},"relationship":{"items":{"$ref":"#/$defs/RelationshipConfig"},"type":"array"},"changes":{"$ref":"#/$defs/TransformChange"}},"additionalProperties":false,"type":"object"},"TransformChange":{"properties":{"mapping":{"items":{"$ref":"#/$defs/ChangeMapping"},"type":"array"},"exclude":{"items":{"type":"string"},"type":"array"}},"additionalProperties":false,"type":"object"},"Trivy":{"properties":{"id":{"type":"string"},"name":{"type":"string"},"items":{"type":"string"},"type":{"type":"string"},"class":{"type":"string"},"transform":{"$ref":"#/$defs/Transform"},"format":{"type":"string"},"timestampFormat":{"type":"string"},"createFields":{"items":{"type":"string"},"type":"array"},"deleteFields":{"items":{"type":"string"},"type":"array"},"labels":{"$ref":"#/$defs/JSONStringMap"},"tags":{"$ref":"#/$defs/Tags"},"properties":{"items":{"$ref":"#/$defs/ConfigProperties"},"type":"array"},"version":{"type":"string"},"compliance":{"items":{"type":"string"},"type":"array"},"ignoredLicenses":{"items":{"type":"string"},"type":"array"},"ignoreUnfixed":{"type":"boolean"},"licenseFull":{"type":"boolean"},"severity":{"items":{"type":"string"},"type":"array"},"vulnType":{"items":{"type":"string"},"type":"array"},"scanners":{"items":{"type":"string"},"type":"array"},"timeout":{"type":"string"},"kubernetes":{"$ref":"#/$defs/TrivyK8sOptions"}},"additionalProperties":false,"type":"object"},"TrivyK8sOptions":{"properties":{"components":{"items":{"type":"string"},"type":"array"},"context":{"type":"string"},"kubeconfig":{"type":"string"},"namespace":{"type":"string"}},"additionalProperties":false,"type":"object"}}} \ No newline at end of file +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://github.com/flanksource/config-db/api/v1/trivy", + "$ref": "#/$defs/Trivy", + "$defs": { + "ChangeMapping": { + "properties": { + "filter": { + "type": "string" + }, + "severity": { + "type": "string" + }, + "type": { + "type": "string" + }, + "action": { + "type": "string" + }, + "summary": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ConfigFieldExclusion": { + "properties": { + "types": { + "items": { + "type": "string" + }, + "type": "array" + }, + "jsonpath": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "jsonpath" + ] + }, + "ConfigProperties": { + "properties": { + "label": { + "type": "string" + }, + "name": { + "type": "string" + }, + "tooltip": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "type": { + "type": "string" + }, + "color": { + "type": "string" + }, + "order": { + "type": "integer" + }, + "headline": { + "type": "boolean" + }, + "text": { + "type": "string" + }, + "value": { + "type": "integer" + }, + "unit": { + "type": "string" + }, + "max": { + "type": "integer" + }, + "min": { + "type": "integer" + }, + "status": { + "type": "string" + }, + "lastTransition": { + "type": "string" + }, + "links": { + "items": { + "$ref": "#/$defs/Link" + }, + "type": "array" + }, + "filter": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "JSONStringMap": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "Link": { + "properties": { + "type": { + "type": "string" + }, + "url": { + "type": "string" + }, + "tooltip": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "text": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "Lookup": { + "properties": { + "expr": { + "type": "string" + }, + "value": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "Mask": { + "properties": { + "selector": { + "type": "string" + }, + "jsonpath": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "MaskList": { + "items": { + "$ref": "#/$defs/Mask" + }, + "type": "array" + }, + "RelationshipConfig": { + "properties": { + "id": { + "$ref": "#/$defs/Lookup" + }, + "external_id": { + "$ref": "#/$defs/Lookup" + }, + "name": { + "$ref": "#/$defs/Lookup" + }, + "namespace": { + "$ref": "#/$defs/Lookup" + }, + "type": { + "$ref": "#/$defs/Lookup" + }, + "agent": { + "$ref": "#/$defs/Lookup" + }, + "scope": { + "$ref": "#/$defs/Lookup" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "expr": { + "type": "string" + }, + "filter": { + "type": "string" + }, + "parent": { + "type": "boolean" + } + }, + "additionalProperties": false, + "type": "object" + }, + "Tag": { + "properties": { + "name": { + "type": "string" + }, + "label": { + "type": "string" + }, + "jsonpath": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "Tags": { + "items": { + "$ref": "#/$defs/Tag" + }, + "type": "array" + }, + "Transform": { + "properties": { + "gotemplate": { + "type": "string" + }, + "jsonpath": { + "type": "string" + }, + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "exclude": { + "items": { + "$ref": "#/$defs/ConfigFieldExclusion" + }, + "type": "array" + }, + "mask": { + "$ref": "#/$defs/MaskList" + }, + "relationship": { + "items": { + "$ref": "#/$defs/RelationshipConfig" + }, + "type": "array" + }, + "changes": { + "$ref": "#/$defs/TransformChange" + } + }, + "additionalProperties": false, + "type": "object" + }, + "TransformChange": { + "properties": { + "mapping": { + "items": { + "$ref": "#/$defs/ChangeMapping" + }, + "type": "array" + }, + "exclude": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object" + }, + "Trivy": { + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "items": { + "type": "string" + }, + "type": { + "type": "string" + }, + "class": { + "type": "string" + }, + "format": { + "type": "string" + }, + "status": { + "type": "string" + }, + "health": { + "type": "string" + }, + "timestampFormat": { + "type": "string" + }, + "createFields": { + "items": { + "type": "string" + }, + "type": "array" + }, + "deleteFields": { + "items": { + "type": "string" + }, + "type": "array" + }, + "transform": { + "$ref": "#/$defs/Transform" + }, + "labels": { + "$ref": "#/$defs/JSONStringMap" + }, + "tags": { + "$ref": "#/$defs/Tags" + }, + "properties": { + "items": { + "$ref": "#/$defs/ConfigProperties" + }, + "type": "array" + }, + "version": { + "type": "string" + }, + "compliance": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ignoredLicenses": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ignoreUnfixed": { + "type": "boolean" + }, + "licenseFull": { + "type": "boolean" + }, + "severity": { + "items": { + "type": "string" + }, + "type": "array" + }, + "vulnType": { + "items": { + "type": "string" + }, + "type": "array" + }, + "scanners": { + "items": { + "type": "string" + }, + "type": "array" + }, + "timeout": { + "type": "string" + }, + "kubernetes": { + "$ref": "#/$defs/TrivyK8sOptions" + } + }, + "additionalProperties": false, + "type": "object" + }, + "TrivyK8sOptions": { + "properties": { + "components": { + "items": { + "type": "string" + }, + "type": "array" + }, + "context": { + "type": "string" + }, + "kubeconfig": { + "type": "string" + }, + "namespace": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + } + } +} \ No newline at end of file diff --git a/schema/openapi/connection.schema.json b/schema/openapi/connection.schema.json index a13fbc19..5bbf60c6 100644 --- a/schema/openapi/connection.schema.json +++ b/schema/openapi/connection.schema.json @@ -1 +1,955 @@ -{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://github.com/flanksource/incident-commander/api/v1/connection","$ref":"#/$defs/Connection","$defs":{"ConfigMapKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"Connection":{"properties":{"kind":{"type":"string"},"apiVersion":{"type":"string"},"metadata":{"$ref":"#/$defs/ObjectMeta"},"spec":{"$ref":"#/$defs/ConnectionSpec"},"status":{"$ref":"#/$defs/ConnectionStatus"}},"additionalProperties":false,"type":"object"},"ConnectionAWS":{"properties":{"region":{"type":"string"},"profile":{"type":"string"},"insecureTLS":{"type":"boolean"},"accessKey":{"$ref":"#/$defs/EnvVar"},"secretKey":{"$ref":"#/$defs/EnvVar"}},"additionalProperties":false,"type":"object"},"ConnectionAWSS3":{"properties":{"region":{"type":"string"},"profile":{"type":"string"},"insecureTLS":{"type":"boolean"},"accessKey":{"$ref":"#/$defs/EnvVar"},"secretKey":{"$ref":"#/$defs/EnvVar"},"bucket":{"type":"string"}},"additionalProperties":false,"type":"object","required":["bucket"]},"ConnectionAzure":{"properties":{"clientID":{"$ref":"#/$defs/EnvVar"},"clientSecret":{"$ref":"#/$defs/EnvVar"},"tenantID":{"$ref":"#/$defs/EnvVar"}},"additionalProperties":false,"type":"object","required":["clientID","tenantID"]},"ConnectionAzureDevops":{"properties":{"string":{"type":"string"},"organization":{"type":"string"},"personalAccessToken":{"$ref":"#/$defs/EnvVar"}},"additionalProperties":false,"type":"object","required":["organization","personalAccessToken"]},"ConnectionDiscord":{"properties":{"token":{"type":"string"},"webhookID":{"type":"string"}},"additionalProperties":false,"type":"object","required":["token","webhookID"]},"ConnectionFolder":{"properties":{"path":{"type":"string"}},"additionalProperties":false,"type":"object","required":["path"]},"ConnectionGCP":{"properties":{"endpoint":{"$ref":"#/$defs/EnvVar"},"certificate":{"$ref":"#/$defs/EnvVar"}},"additionalProperties":false,"type":"object"},"ConnectionGit":{"properties":{"string":{"type":"string"},"ref":{"type":"string"},"certificate":{"$ref":"#/$defs/EnvVar"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"}},"additionalProperties":false,"type":"object","required":["string","ref"]},"ConnectionGitHub":{"properties":{"url":{"type":"string"},"personalAccessToken":{"$ref":"#/$defs/EnvVar"}},"additionalProperties":false,"type":"object","required":["personalAccessToken"]},"ConnectionGitLab":{"properties":{"string":{"type":"string"},"personalAccessToken":{"$ref":"#/$defs/EnvVar"}},"additionalProperties":false,"type":"object","required":["personalAccessToken"]},"ConnectionHTTP":{"properties":{"url":{"type":"string"},"insecureTLS":{"type":"boolean"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"}},"additionalProperties":false,"type":"object","required":["url"]},"ConnectionKubernetes":{"properties":{"certificate":{"$ref":"#/$defs/EnvVar"}},"additionalProperties":false,"type":"object","required":["certificate"]},"ConnectionMSSQL":{"properties":{"url":{"$ref":"#/$defs/EnvVar"},"host":{"$ref":"#/$defs/EnvVar"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"},"database":{"$ref":"#/$defs/EnvVar"},"trustServerCertificate":{"type":"boolean"}},"additionalProperties":false,"type":"object"},"ConnectionMongo":{"properties":{"url":{"$ref":"#/$defs/EnvVar"},"host":{"$ref":"#/$defs/EnvVar"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"},"database":{"$ref":"#/$defs/EnvVar"},"replicaSet":{"type":"string"},"insecureTLS":{"type":"boolean"}},"additionalProperties":false,"type":"object"},"ConnectionMySQL":{"properties":{"url":{"$ref":"#/$defs/EnvVar"},"host":{"$ref":"#/$defs/EnvVar"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"},"database":{"$ref":"#/$defs/EnvVar"},"insecureTLS":{"type":"boolean"}},"additionalProperties":false,"type":"object"},"ConnectionNtfy":{"properties":{"topic":{"type":"string"},"host":{"type":"string"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"}},"additionalProperties":false,"type":"object","required":["topic","host","username","password"]},"ConnectionPostgres":{"properties":{"url":{"$ref":"#/$defs/EnvVar"},"host":{"$ref":"#/$defs/EnvVar"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"},"database":{"$ref":"#/$defs/EnvVar"},"insecureTLS":{"type":"boolean"}},"additionalProperties":false,"type":"object"},"ConnectionPushbullet":{"properties":{"token":{"$ref":"#/$defs/EnvVar"},"targets":{"items":{"type":"string"},"type":"array"}},"additionalProperties":false,"type":"object","required":["token","targets"]},"ConnectionPushover":{"properties":{"token":{"$ref":"#/$defs/EnvVar"},"user":{"type":"string"}},"additionalProperties":false,"type":"object","required":["token","user"]},"ConnectionSFTP":{"properties":{"host":{"$ref":"#/$defs/EnvVar"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"},"port":{"type":"integer"},"path":{"type":"string"}},"additionalProperties":false,"type":"object","required":["host","username","password","path"]},"ConnectionSMB":{"properties":{"server":{"$ref":"#/$defs/EnvVar"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"},"port":{"$ref":"#/$defs/EnvVar"},"share":{"type":"string"}},"additionalProperties":false,"type":"object","required":["server","username","password","share"]},"ConnectionSMTP":{"properties":{"host":{"type":"string"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"},"insecureTLS":{"type":"boolean"},"encryption":{"type":"string"},"port":{"type":"integer"},"fromAddress":{"type":"string"},"toAddresses":{"items":{"type":"string"},"type":"array"},"subject":{"type":"string"},"auth":{"type":"string"}},"additionalProperties":false,"type":"object","required":["host","fromAddress"]},"ConnectionSlack":{"properties":{"token":{"$ref":"#/$defs/EnvVar"},"channel":{"type":"string"},"botname":{"type":"string"}},"additionalProperties":false,"type":"object","required":["token","channel","botname"]},"ConnectionSpec":{"properties":{"properties":{"$ref":"#/$defs/JSONStringMap"},"aws":{"$ref":"#/$defs/ConnectionAWS"},"s3":{"$ref":"#/$defs/ConnectionAWSS3"},"azure":{"$ref":"#/$defs/ConnectionAzure"},"azureDevops":{"$ref":"#/$defs/ConnectionAzureDevops"},"gcp":{"$ref":"#/$defs/ConnectionGCP"},"folder":{"$ref":"#/$defs/ConnectionFolder"},"git":{"$ref":"#/$defs/ConnectionGit"},"github":{"$ref":"#/$defs/ConnectionGitHub"},"gitlab":{"$ref":"#/$defs/ConnectionGitLab"},"http":{"$ref":"#/$defs/ConnectionHTTP"},"kubernetes":{"$ref":"#/$defs/ConnectionKubernetes"},"mssql":{"$ref":"#/$defs/ConnectionMSSQL"},"mongo":{"$ref":"#/$defs/ConnectionMongo"},"mysql":{"$ref":"#/$defs/ConnectionMySQL"},"postgres":{"$ref":"#/$defs/ConnectionPostgres"},"sftp":{"$ref":"#/$defs/ConnectionSFTP"},"smb":{"$ref":"#/$defs/ConnectionSMB"},"discord":{"$ref":"#/$defs/ConnectionDiscord"},"ntfy":{"$ref":"#/$defs/ConnectionNtfy"},"pushbullet":{"$ref":"#/$defs/ConnectionPushbullet"},"pushover":{"$ref":"#/$defs/ConnectionPushover"},"smtp":{"$ref":"#/$defs/ConnectionSMTP"},"slack":{"$ref":"#/$defs/ConnectionSlack"},"telegram":{"$ref":"#/$defs/ConnectionTelegram"},"url":{"$ref":"#/$defs/EnvVar"},"port":{"$ref":"#/$defs/EnvVar"},"type":{"type":"string"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"},"certificate":{"$ref":"#/$defs/EnvVar"},"insecure_tls":{"type":"boolean"}},"additionalProperties":false,"type":"object"},"ConnectionStatus":{"properties":{},"additionalProperties":false,"type":"object"},"ConnectionTelegram":{"properties":{"token":{"$ref":"#/$defs/EnvVar"},"chats":{"$ref":"#/$defs/EnvVar"}},"additionalProperties":false,"type":"object","required":["token","chats"]},"EnvVar":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueFrom":{"$ref":"#/$defs/EnvVarSource"}},"additionalProperties":false,"type":"object"},"EnvVarSource":{"properties":{"serviceAccount":{"type":"string"},"helmRef":{"$ref":"#/$defs/HelmRefKeySelector"},"configMapKeyRef":{"$ref":"#/$defs/ConfigMapKeySelector"},"secretKeyRef":{"$ref":"#/$defs/SecretKeySelector"}},"additionalProperties":false,"type":"object"},"FieldsV1":{"properties":{},"additionalProperties":false,"type":"object"},"HelmRefKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"JSONStringMap":{"additionalProperties":{"type":"string"},"type":"object"},"ManagedFieldsEntry":{"properties":{"manager":{"type":"string"},"operation":{"type":"string"},"apiVersion":{"type":"string"},"time":{"$ref":"#/$defs/Time"},"fieldsType":{"type":"string"},"fieldsV1":{"$ref":"#/$defs/FieldsV1"},"subresource":{"type":"string"}},"additionalProperties":false,"type":"object"},"ObjectMeta":{"properties":{"name":{"type":"string"},"generateName":{"type":"string"},"namespace":{"type":"string"},"selfLink":{"type":"string"},"uid":{"type":"string"},"resourceVersion":{"type":"string"},"generation":{"type":"integer"},"creationTimestamp":{"$ref":"#/$defs/Time"},"deletionTimestamp":{"$ref":"#/$defs/Time"},"deletionGracePeriodSeconds":{"type":"integer"},"labels":{"additionalProperties":{"type":"string"},"type":"object"},"annotations":{"additionalProperties":{"type":"string"},"type":"object"},"ownerReferences":{"items":{"$ref":"#/$defs/OwnerReference"},"type":"array"},"finalizers":{"items":{"type":"string"},"type":"array"},"managedFields":{"items":{"$ref":"#/$defs/ManagedFieldsEntry"},"type":"array"}},"additionalProperties":false,"type":"object"},"OwnerReference":{"properties":{"apiVersion":{"type":"string"},"kind":{"type":"string"},"name":{"type":"string"},"uid":{"type":"string"},"controller":{"type":"boolean"},"blockOwnerDeletion":{"type":"boolean"}},"additionalProperties":false,"type":"object","required":["apiVersion","kind","name","uid"]},"SecretKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"Time":{"properties":{},"additionalProperties":false,"type":"object"}}} \ No newline at end of file +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://github.com/flanksource/incident-commander/api/v1/connection", + "$ref": "#/$defs/Connection", + "$defs": { + "ConfigMapKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "Connection": { + "properties": { + "kind": { + "type": "string" + }, + "apiVersion": { + "type": "string" + }, + "metadata": { + "$ref": "#/$defs/ObjectMeta" + }, + "spec": { + "$ref": "#/$defs/ConnectionSpec" + }, + "status": { + "$ref": "#/$defs/ConnectionStatus" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ConnectionAWS": { + "properties": { + "url": { + "$ref": "#/$defs/EnvVar" + }, + "region": { + "type": "string" + }, + "profile": { + "type": "string" + }, + "insecureTLS": { + "type": "boolean" + }, + "accessKey": { + "$ref": "#/$defs/EnvVar" + }, + "secretKey": { + "$ref": "#/$defs/EnvVar" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ConnectionAWSS3": { + "properties": { + "url": { + "$ref": "#/$defs/EnvVar" + }, + "region": { + "type": "string" + }, + "profile": { + "type": "string" + }, + "insecureTLS": { + "type": "boolean" + }, + "accessKey": { + "$ref": "#/$defs/EnvVar" + }, + "secretKey": { + "$ref": "#/$defs/EnvVar" + }, + "bucket": { + "type": "string" + }, + "usePathStyle": { + "type": "boolean" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "bucket" + ] + }, + "ConnectionAzure": { + "properties": { + "clientID": { + "$ref": "#/$defs/EnvVar" + }, + "clientSecret": { + "$ref": "#/$defs/EnvVar" + }, + "tenantID": { + "$ref": "#/$defs/EnvVar" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "clientID", + "tenantID" + ] + }, + "ConnectionAzureDevops": { + "properties": { + "string": { + "type": "string" + }, + "organization": { + "type": "string" + }, + "personalAccessToken": { + "$ref": "#/$defs/EnvVar" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "organization", + "personalAccessToken" + ] + }, + "ConnectionDiscord": { + "properties": { + "token": { + "type": "string" + }, + "webhookID": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "token", + "webhookID" + ] + }, + "ConnectionFolder": { + "properties": { + "path": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "path" + ] + }, + "ConnectionGCP": { + "properties": { + "endpoint": { + "$ref": "#/$defs/EnvVar" + }, + "certificate": { + "$ref": "#/$defs/EnvVar" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ConnectionGit": { + "properties": { + "string": { + "type": "string" + }, + "ref": { + "type": "string" + }, + "certificate": { + "$ref": "#/$defs/EnvVar" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "string", + "ref" + ] + }, + "ConnectionGitHub": { + "properties": { + "url": { + "type": "string" + }, + "personalAccessToken": { + "$ref": "#/$defs/EnvVar" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "personalAccessToken" + ] + }, + "ConnectionGitLab": { + "properties": { + "string": { + "type": "string" + }, + "personalAccessToken": { + "$ref": "#/$defs/EnvVar" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "personalAccessToken" + ] + }, + "ConnectionHTTP": { + "properties": { + "url": { + "type": "string" + }, + "insecureTLS": { + "type": "boolean" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "url" + ] + }, + "ConnectionKubernetes": { + "properties": { + "certificate": { + "$ref": "#/$defs/EnvVar" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "certificate" + ] + }, + "ConnectionMSSQL": { + "properties": { + "url": { + "$ref": "#/$defs/EnvVar" + }, + "host": { + "$ref": "#/$defs/EnvVar" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + }, + "database": { + "$ref": "#/$defs/EnvVar" + }, + "trustServerCertificate": { + "type": "boolean" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ConnectionMongo": { + "properties": { + "url": { + "$ref": "#/$defs/EnvVar" + }, + "host": { + "$ref": "#/$defs/EnvVar" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + }, + "database": { + "$ref": "#/$defs/EnvVar" + }, + "replicaSet": { + "type": "string" + }, + "insecureTLS": { + "type": "boolean" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ConnectionMySQL": { + "properties": { + "url": { + "$ref": "#/$defs/EnvVar" + }, + "host": { + "$ref": "#/$defs/EnvVar" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + }, + "database": { + "$ref": "#/$defs/EnvVar" + }, + "insecureTLS": { + "type": "boolean" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ConnectionNtfy": { + "properties": { + "topic": { + "type": "string" + }, + "host": { + "type": "string" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "topic", + "host", + "username", + "password" + ] + }, + "ConnectionPostgres": { + "properties": { + "url": { + "$ref": "#/$defs/EnvVar" + }, + "host": { + "$ref": "#/$defs/EnvVar" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + }, + "database": { + "$ref": "#/$defs/EnvVar" + }, + "insecureTLS": { + "type": "boolean" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ConnectionPrometheus": { + "properties": { + "url": { + "$ref": "#/$defs/EnvVar" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + }, + "bearer": { + "$ref": "#/$defs/EnvVar" + }, + "oauth": { + "$ref": "#/$defs/OAuth" + }, + "tls": { + "$ref": "#/$defs/TLSConfig" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ConnectionPushbullet": { + "properties": { + "token": { + "$ref": "#/$defs/EnvVar" + }, + "targets": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "token", + "targets" + ] + }, + "ConnectionPushover": { + "properties": { + "token": { + "$ref": "#/$defs/EnvVar" + }, + "user": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "token", + "user" + ] + }, + "ConnectionSFTP": { + "properties": { + "host": { + "$ref": "#/$defs/EnvVar" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + }, + "port": { + "type": "integer" + }, + "path": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "host", + "username", + "password", + "path" + ] + }, + "ConnectionSMB": { + "properties": { + "server": { + "$ref": "#/$defs/EnvVar" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + }, + "port": { + "$ref": "#/$defs/EnvVar" + }, + "share": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "server", + "username", + "password", + "share" + ] + }, + "ConnectionSMTP": { + "properties": { + "host": { + "type": "string" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + }, + "insecureTLS": { + "type": "boolean" + }, + "encryption": { + "type": "string" + }, + "port": { + "type": "integer" + }, + "fromAddress": { + "type": "string" + }, + "toAddresses": { + "items": { + "type": "string" + }, + "type": "array" + }, + "subject": { + "type": "string" + }, + "auth": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "host", + "fromAddress" + ] + }, + "ConnectionSlack": { + "properties": { + "token": { + "$ref": "#/$defs/EnvVar" + }, + "channel": { + "type": "string" + }, + "botName": { + "type": "string" + }, + "color": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "thread_ts": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ConnectionSpec": { + "properties": { + "properties": { + "$ref": "#/$defs/JSONStringMap" + }, + "aws": { + "$ref": "#/$defs/ConnectionAWS" + }, + "s3": { + "$ref": "#/$defs/ConnectionAWSS3" + }, + "azure": { + "$ref": "#/$defs/ConnectionAzure" + }, + "azureDevops": { + "$ref": "#/$defs/ConnectionAzureDevops" + }, + "gcp": { + "$ref": "#/$defs/ConnectionGCP" + }, + "folder": { + "$ref": "#/$defs/ConnectionFolder" + }, + "git": { + "$ref": "#/$defs/ConnectionGit" + }, + "github": { + "$ref": "#/$defs/ConnectionGitHub" + }, + "gitlab": { + "$ref": "#/$defs/ConnectionGitLab" + }, + "http": { + "$ref": "#/$defs/ConnectionHTTP" + }, + "kubernetes": { + "$ref": "#/$defs/ConnectionKubernetes" + }, + "mssql": { + "$ref": "#/$defs/ConnectionMSSQL" + }, + "mongo": { + "$ref": "#/$defs/ConnectionMongo" + }, + "mysql": { + "$ref": "#/$defs/ConnectionMySQL" + }, + "postgres": { + "$ref": "#/$defs/ConnectionPostgres" + }, + "prometheus": { + "$ref": "#/$defs/ConnectionPrometheus" + }, + "sftp": { + "$ref": "#/$defs/ConnectionSFTP" + }, + "smb": { + "$ref": "#/$defs/ConnectionSMB" + }, + "discord": { + "$ref": "#/$defs/ConnectionDiscord" + }, + "ntfy": { + "$ref": "#/$defs/ConnectionNtfy" + }, + "pushbullet": { + "$ref": "#/$defs/ConnectionPushbullet" + }, + "pushover": { + "$ref": "#/$defs/ConnectionPushover" + }, + "smtp": { + "$ref": "#/$defs/ConnectionSMTP" + }, + "slack": { + "$ref": "#/$defs/ConnectionSlack" + }, + "telegram": { + "$ref": "#/$defs/ConnectionTelegram" + }, + "url": { + "$ref": "#/$defs/EnvVar" + }, + "port": { + "$ref": "#/$defs/EnvVar" + }, + "type": { + "type": "string" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + }, + "certificate": { + "$ref": "#/$defs/EnvVar" + }, + "insecure_tls": { + "type": "boolean" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ConnectionStatus": { + "properties": { + "ref": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "ref" + ] + }, + "ConnectionTelegram": { + "properties": { + "token": { + "$ref": "#/$defs/EnvVar" + }, + "chats": { + "$ref": "#/$defs/EnvVar" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "token", + "chats" + ] + }, + "EnvVar": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "$ref": "#/$defs/EnvVarSource" + } + }, + "additionalProperties": false, + "type": "object" + }, + "EnvVarSource": { + "properties": { + "serviceAccount": { + "type": "string" + }, + "helmRef": { + "$ref": "#/$defs/HelmRefKeySelector" + }, + "configMapKeyRef": { + "$ref": "#/$defs/ConfigMapKeySelector" + }, + "secretKeyRef": { + "$ref": "#/$defs/SecretKeySelector" + } + }, + "additionalProperties": false, + "type": "object" + }, + "FieldsV1": { + "properties": {}, + "additionalProperties": false, + "type": "object" + }, + "HelmRefKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "JSONStringMap": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "ManagedFieldsEntry": { + "properties": { + "manager": { + "type": "string" + }, + "operation": { + "type": "string" + }, + "apiVersion": { + "type": "string" + }, + "time": { + "$ref": "#/$defs/Time" + }, + "fieldsType": { + "type": "string" + }, + "fieldsV1": { + "$ref": "#/$defs/FieldsV1" + }, + "subresource": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "OAuth": { + "properties": { + "clientID": { + "$ref": "#/$defs/EnvVar" + }, + "clientSecret": { + "$ref": "#/$defs/EnvVar" + }, + "scope": { + "items": { + "type": "string" + }, + "type": "array" + }, + "tokenURL": { + "type": "string" + }, + "params": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ObjectMeta": { + "properties": { + "name": { + "type": "string" + }, + "generateName": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "selfLink": { + "type": "string" + }, + "uid": { + "type": "string" + }, + "resourceVersion": { + "type": "string" + }, + "generation": { + "type": "integer" + }, + "creationTimestamp": { + "$ref": "#/$defs/Time" + }, + "deletionTimestamp": { + "$ref": "#/$defs/Time" + }, + "deletionGracePeriodSeconds": { + "type": "integer" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "annotations": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "ownerReferences": { + "items": { + "$ref": "#/$defs/OwnerReference" + }, + "type": "array" + }, + "finalizers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "managedFields": { + "items": { + "$ref": "#/$defs/ManagedFieldsEntry" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object" + }, + "OwnerReference": { + "properties": { + "apiVersion": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "name": { + "type": "string" + }, + "uid": { + "type": "string" + }, + "controller": { + "type": "boolean" + }, + "blockOwnerDeletion": { + "type": "boolean" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "apiVersion", + "kind", + "name", + "uid" + ] + }, + "SecretKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "TLSConfig": { + "properties": { + "insecureSkipVerify": { + "type": "boolean" + }, + "handshakeTimeout": { + "type": "integer" + }, + "ca": { + "$ref": "#/$defs/EnvVar" + }, + "cert": { + "$ref": "#/$defs/EnvVar" + }, + "key": { + "$ref": "#/$defs/EnvVar" + } + }, + "additionalProperties": false, + "type": "object" + }, + "Time": { + "properties": {}, + "additionalProperties": false, + "type": "object" + } + } +} \ No newline at end of file diff --git a/schema/openapi/health_alertmanager.schema.json b/schema/openapi/health_alertmanager.schema.json index f21e4174..c603190c 100644 --- a/schema/openapi/health_alertmanager.schema.json +++ b/schema/openapi/health_alertmanager.schema.json @@ -1 +1,298 @@ -{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://github.com/flanksource/canary-checker/api/v1/alert-manager-check","$ref":"#/$defs/AlertManagerCheck","$defs":{"AlertManagerCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"connection":{"type":"string"},"url":{"type":"string"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"},"relationships":{"$ref":"#/$defs/CheckRelationship"},"alerts":{"items":{"type":"string"},"type":"array"},"filters":{"additionalProperties":{"type":"string"},"type":"object"},"exclude_filters":{"additionalProperties":{"type":"string"},"type":"object"},"ignore":{"items":{"type":"string"},"type":"array"}},"additionalProperties":false,"type":"object","required":["name"]},"CheckRelationship":{"properties":{"components":{"items":{"$ref":"#/$defs/LookupSpec"},"type":"array"},"configs":{"items":{"$ref":"#/$defs/LookupSpec"},"type":"array"}},"additionalProperties":false,"type":"object"},"ConfigMapKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"EnvVar":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueFrom":{"$ref":"#/$defs/EnvVarSource"}},"additionalProperties":false,"type":"object"},"EnvVarSource":{"properties":{"serviceAccount":{"type":"string"},"helmRef":{"$ref":"#/$defs/HelmRefKeySelector"},"configMapKeyRef":{"$ref":"#/$defs/ConfigMapKeySelector"},"secretKeyRef":{"$ref":"#/$defs/SecretKeySelector"}},"additionalProperties":false,"type":"object"},"HelmRefKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"Labels":{"additionalProperties":{"type":"string"},"type":"object"},"Lookup":{"properties":{"expr":{"type":"string"},"value":{"type":"string"},"label":{"type":"string"}},"additionalProperties":false,"type":"object"},"LookupSpec":{"properties":{"name":{"$ref":"#/$defs/Lookup"},"namespace":{"$ref":"#/$defs/Lookup"},"type":{"$ref":"#/$defs/Lookup"}},"additionalProperties":false,"type":"object"},"MetricLabel":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueExpr":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name"]},"MetricLabels":{"items":{"$ref":"#/$defs/MetricLabel"},"type":"array"},"Metrics":{"properties":{"name":{"type":"string"},"labels":{"$ref":"#/$defs/MetricLabels"},"type":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false,"type":"object"},"SecretKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"Template":{"properties":{"template":{"type":"string"},"jsonPath":{"type":"string"},"expr":{"type":"string"},"javascript":{"type":"string"}},"additionalProperties":false,"type":"object"}}} \ No newline at end of file +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://github.com/flanksource/canary-checker/api/v1/alert-manager-check", + "$ref": "#/$defs/AlertManagerCheck", + "$defs": { + "AlertManagerCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "connection": { + "type": "string" + }, + "url": { + "type": "string" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "alerts": { + "items": { + "type": "string" + }, + "type": "array" + }, + "filters": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "exclude_filters": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "ignore": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "CheckRelationship": { + "properties": { + "components": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + }, + "configs": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ConfigMapKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "EnvVar": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "$ref": "#/$defs/EnvVarSource" + } + }, + "additionalProperties": false, + "type": "object" + }, + "EnvVarSource": { + "properties": { + "serviceAccount": { + "type": "string" + }, + "helmRef": { + "$ref": "#/$defs/HelmRefKeySelector" + }, + "configMapKeyRef": { + "$ref": "#/$defs/ConfigMapKeySelector" + }, + "secretKeyRef": { + "$ref": "#/$defs/SecretKeySelector" + } + }, + "additionalProperties": false, + "type": "object" + }, + "HelmRefKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "Labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "Lookup": { + "properties": { + "expr": { + "type": "string" + }, + "value": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "MetricLabel": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "MetricLabels": { + "items": { + "$ref": "#/$defs/MetricLabel" + }, + "type": "array" + }, + "Metrics": { + "properties": { + "name": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/MetricLabels" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "RelationshipSelectorTemplate": { + "properties": { + "id": { + "$ref": "#/$defs/Lookup" + }, + "external_id": { + "$ref": "#/$defs/Lookup" + }, + "name": { + "$ref": "#/$defs/Lookup" + }, + "namespace": { + "$ref": "#/$defs/Lookup" + }, + "type": { + "$ref": "#/$defs/Lookup" + }, + "agent": { + "$ref": "#/$defs/Lookup" + }, + "scope": { + "$ref": "#/$defs/Lookup" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "additionalProperties": false, + "type": "object" + }, + "SecretKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "Template": { + "properties": { + "template": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + } + } +} \ No newline at end of file diff --git a/schema/openapi/health_awsconfig.schema.json b/schema/openapi/health_awsconfig.schema.json index 12dbf6c9..5fe84b73 100644 --- a/schema/openapi/health_awsconfig.schema.json +++ b/schema/openapi/health_awsconfig.schema.json @@ -1 +1,293 @@ -{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://github.com/flanksource/canary-checker/api/v1/aws-config-check","$ref":"#/$defs/AwsConfigCheck","$defs":{"AwsConfigCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"query":{"type":"string"},"connection":{"type":"string"},"accessKey":{"$ref":"#/$defs/EnvVar"},"secretKey":{"$ref":"#/$defs/EnvVar"},"sessionToken":{"$ref":"#/$defs/EnvVar"},"region":{"type":"string"},"endpoint":{"type":"string"},"skipTLSVerify":{"type":"boolean"},"aggregatorName":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name","query"]},"ConfigMapKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"EnvVar":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueFrom":{"$ref":"#/$defs/EnvVarSource"}},"additionalProperties":false,"type":"object"},"EnvVarSource":{"properties":{"serviceAccount":{"type":"string"},"helmRef":{"$ref":"#/$defs/HelmRefKeySelector"},"configMapKeyRef":{"$ref":"#/$defs/ConfigMapKeySelector"},"secretKeyRef":{"$ref":"#/$defs/SecretKeySelector"}},"additionalProperties":false,"type":"object"},"HelmRefKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"Labels":{"additionalProperties":{"type":"string"},"type":"object"},"MetricLabel":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueExpr":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name"]},"MetricLabels":{"items":{"$ref":"#/$defs/MetricLabel"},"type":"array"},"Metrics":{"properties":{"name":{"type":"string"},"labels":{"$ref":"#/$defs/MetricLabels"},"type":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false,"type":"object"},"SecretKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"Template":{"properties":{"template":{"type":"string"},"jsonPath":{"type":"string"},"expr":{"type":"string"},"javascript":{"type":"string"}},"additionalProperties":false,"type":"object"}}} \ No newline at end of file +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://github.com/flanksource/canary-checker/api/v1/aws-config-check", + "$ref": "#/$defs/AwsConfigCheck", + "$defs": { + "AwsConfigCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "query": { + "type": "string" + }, + "connection": { + "type": "string" + }, + "accessKey": { + "$ref": "#/$defs/EnvVar" + }, + "secretKey": { + "$ref": "#/$defs/EnvVar" + }, + "sessionToken": { + "$ref": "#/$defs/EnvVar" + }, + "assumeRole": { + "type": "string" + }, + "region": { + "type": "string" + }, + "endpoint": { + "type": "string" + }, + "skipTLSVerify": { + "type": "boolean" + }, + "aggregatorName": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "query" + ] + }, + "CheckRelationship": { + "properties": { + "components": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + }, + "configs": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ConfigMapKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "EnvVar": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "$ref": "#/$defs/EnvVarSource" + } + }, + "additionalProperties": false, + "type": "object" + }, + "EnvVarSource": { + "properties": { + "serviceAccount": { + "type": "string" + }, + "helmRef": { + "$ref": "#/$defs/HelmRefKeySelector" + }, + "configMapKeyRef": { + "$ref": "#/$defs/ConfigMapKeySelector" + }, + "secretKeyRef": { + "$ref": "#/$defs/SecretKeySelector" + } + }, + "additionalProperties": false, + "type": "object" + }, + "HelmRefKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "Labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "Lookup": { + "properties": { + "expr": { + "type": "string" + }, + "value": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "MetricLabel": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "MetricLabels": { + "items": { + "$ref": "#/$defs/MetricLabel" + }, + "type": "array" + }, + "Metrics": { + "properties": { + "name": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/MetricLabels" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "RelationshipSelectorTemplate": { + "properties": { + "id": { + "$ref": "#/$defs/Lookup" + }, + "external_id": { + "$ref": "#/$defs/Lookup" + }, + "name": { + "$ref": "#/$defs/Lookup" + }, + "namespace": { + "$ref": "#/$defs/Lookup" + }, + "type": { + "$ref": "#/$defs/Lookup" + }, + "agent": { + "$ref": "#/$defs/Lookup" + }, + "scope": { + "$ref": "#/$defs/Lookup" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "additionalProperties": false, + "type": "object" + }, + "SecretKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "Template": { + "properties": { + "template": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + } + } +} \ No newline at end of file diff --git a/schema/openapi/health_awsconfigrule.schema.json b/schema/openapi/health_awsconfigrule.schema.json index af3d74c0..58d52083 100644 --- a/schema/openapi/health_awsconfigrule.schema.json +++ b/schema/openapi/health_awsconfigrule.schema.json @@ -1 +1,304 @@ -{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://github.com/flanksource/canary-checker/api/v1/aws-config-rule-check","$ref":"#/$defs/AwsConfigRuleCheck","$defs":{"AwsConfigRuleCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"ignoreRules":{"items":{"type":"string"},"type":"array"},"rules":{"items":{"type":"string"},"type":"array"},"complianceTypes":{"items":{"type":"string"},"type":"array"},"connection":{"type":"string"},"accessKey":{"$ref":"#/$defs/EnvVar"},"secretKey":{"$ref":"#/$defs/EnvVar"},"sessionToken":{"$ref":"#/$defs/EnvVar"},"region":{"type":"string"},"endpoint":{"type":"string"},"skipTLSVerify":{"type":"boolean"}},"additionalProperties":false,"type":"object","required":["name"]},"ConfigMapKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"EnvVar":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueFrom":{"$ref":"#/$defs/EnvVarSource"}},"additionalProperties":false,"type":"object"},"EnvVarSource":{"properties":{"serviceAccount":{"type":"string"},"helmRef":{"$ref":"#/$defs/HelmRefKeySelector"},"configMapKeyRef":{"$ref":"#/$defs/ConfigMapKeySelector"},"secretKeyRef":{"$ref":"#/$defs/SecretKeySelector"}},"additionalProperties":false,"type":"object"},"HelmRefKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"Labels":{"additionalProperties":{"type":"string"},"type":"object"},"MetricLabel":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueExpr":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name"]},"MetricLabels":{"items":{"$ref":"#/$defs/MetricLabel"},"type":"array"},"Metrics":{"properties":{"name":{"type":"string"},"labels":{"$ref":"#/$defs/MetricLabels"},"type":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false,"type":"object"},"SecretKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"Template":{"properties":{"template":{"type":"string"},"jsonPath":{"type":"string"},"expr":{"type":"string"},"javascript":{"type":"string"}},"additionalProperties":false,"type":"object"}}} \ No newline at end of file +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://github.com/flanksource/canary-checker/api/v1/aws-config-rule-check", + "$ref": "#/$defs/AwsConfigRuleCheck", + "$defs": { + "AwsConfigRuleCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "ignoreRules": { + "items": { + "type": "string" + }, + "type": "array" + }, + "rules": { + "items": { + "type": "string" + }, + "type": "array" + }, + "complianceTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "connection": { + "type": "string" + }, + "accessKey": { + "$ref": "#/$defs/EnvVar" + }, + "secretKey": { + "$ref": "#/$defs/EnvVar" + }, + "sessionToken": { + "$ref": "#/$defs/EnvVar" + }, + "assumeRole": { + "type": "string" + }, + "region": { + "type": "string" + }, + "endpoint": { + "type": "string" + }, + "skipTLSVerify": { + "type": "boolean" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "CheckRelationship": { + "properties": { + "components": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + }, + "configs": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ConfigMapKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "EnvVar": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "$ref": "#/$defs/EnvVarSource" + } + }, + "additionalProperties": false, + "type": "object" + }, + "EnvVarSource": { + "properties": { + "serviceAccount": { + "type": "string" + }, + "helmRef": { + "$ref": "#/$defs/HelmRefKeySelector" + }, + "configMapKeyRef": { + "$ref": "#/$defs/ConfigMapKeySelector" + }, + "secretKeyRef": { + "$ref": "#/$defs/SecretKeySelector" + } + }, + "additionalProperties": false, + "type": "object" + }, + "HelmRefKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "Labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "Lookup": { + "properties": { + "expr": { + "type": "string" + }, + "value": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "MetricLabel": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "MetricLabels": { + "items": { + "$ref": "#/$defs/MetricLabel" + }, + "type": "array" + }, + "Metrics": { + "properties": { + "name": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/MetricLabels" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "RelationshipSelectorTemplate": { + "properties": { + "id": { + "$ref": "#/$defs/Lookup" + }, + "external_id": { + "$ref": "#/$defs/Lookup" + }, + "name": { + "$ref": "#/$defs/Lookup" + }, + "namespace": { + "$ref": "#/$defs/Lookup" + }, + "type": { + "$ref": "#/$defs/Lookup" + }, + "agent": { + "$ref": "#/$defs/Lookup" + }, + "scope": { + "$ref": "#/$defs/Lookup" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "additionalProperties": false, + "type": "object" + }, + "SecretKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "Template": { + "properties": { + "template": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + } + } +} \ No newline at end of file diff --git a/schema/openapi/health_azuredevops.schema.json b/schema/openapi/health_azuredevops.schema.json index fc98eb20..ba13e4f7 100644 --- a/schema/openapi/health_azuredevops.schema.json +++ b/schema/openapi/health_azuredevops.schema.json @@ -1 +1,299 @@ -{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://github.com/flanksource/canary-checker/api/v1/azure-devops-check","$ref":"#/$defs/AzureDevopsCheck","$defs":{"AzureDevopsCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"connection":{"type":"string"},"organization":{"type":"string"},"personalAccessToken":{"$ref":"#/$defs/EnvVar"},"project":{"type":"string"},"pipeline":{"type":"string"},"variables":{"additionalProperties":{"type":"string"},"type":"object"},"branch":{"items":{"type":"string"},"type":"array"},"thresholdMillis":{"type":"integer"}},"additionalProperties":false,"type":"object","required":["name","organization","personalAccessToken","project","pipeline","variables","branch","thresholdMillis"]},"ConfigMapKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"EnvVar":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueFrom":{"$ref":"#/$defs/EnvVarSource"}},"additionalProperties":false,"type":"object"},"EnvVarSource":{"properties":{"serviceAccount":{"type":"string"},"helmRef":{"$ref":"#/$defs/HelmRefKeySelector"},"configMapKeyRef":{"$ref":"#/$defs/ConfigMapKeySelector"},"secretKeyRef":{"$ref":"#/$defs/SecretKeySelector"}},"additionalProperties":false,"type":"object"},"HelmRefKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"Labels":{"additionalProperties":{"type":"string"},"type":"object"},"MetricLabel":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueExpr":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name"]},"MetricLabels":{"items":{"$ref":"#/$defs/MetricLabel"},"type":"array"},"Metrics":{"properties":{"name":{"type":"string"},"labels":{"$ref":"#/$defs/MetricLabels"},"type":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false,"type":"object"},"SecretKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"Template":{"properties":{"template":{"type":"string"},"jsonPath":{"type":"string"},"expr":{"type":"string"},"javascript":{"type":"string"}},"additionalProperties":false,"type":"object"}}} \ No newline at end of file +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://github.com/flanksource/canary-checker/api/v1/azure-devops-check", + "$ref": "#/$defs/AzureDevopsCheck", + "$defs": { + "AzureDevopsCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "connection": { + "type": "string" + }, + "organization": { + "type": "string" + }, + "personalAccessToken": { + "$ref": "#/$defs/EnvVar" + }, + "project": { + "type": "string" + }, + "pipeline": { + "type": "string" + }, + "variables": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "branch": { + "items": { + "type": "string" + }, + "type": "array" + }, + "thresholdMillis": { + "type": "integer" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "organization", + "personalAccessToken", + "project", + "pipeline", + "variables", + "branch", + "thresholdMillis" + ] + }, + "CheckRelationship": { + "properties": { + "components": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + }, + "configs": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ConfigMapKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "EnvVar": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "$ref": "#/$defs/EnvVarSource" + } + }, + "additionalProperties": false, + "type": "object" + }, + "EnvVarSource": { + "properties": { + "serviceAccount": { + "type": "string" + }, + "helmRef": { + "$ref": "#/$defs/HelmRefKeySelector" + }, + "configMapKeyRef": { + "$ref": "#/$defs/ConfigMapKeySelector" + }, + "secretKeyRef": { + "$ref": "#/$defs/SecretKeySelector" + } + }, + "additionalProperties": false, + "type": "object" + }, + "HelmRefKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "Labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "Lookup": { + "properties": { + "expr": { + "type": "string" + }, + "value": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "MetricLabel": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "MetricLabels": { + "items": { + "$ref": "#/$defs/MetricLabel" + }, + "type": "array" + }, + "Metrics": { + "properties": { + "name": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/MetricLabels" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "RelationshipSelectorTemplate": { + "properties": { + "id": { + "$ref": "#/$defs/Lookup" + }, + "external_id": { + "$ref": "#/$defs/Lookup" + }, + "name": { + "$ref": "#/$defs/Lookup" + }, + "namespace": { + "$ref": "#/$defs/Lookup" + }, + "type": { + "$ref": "#/$defs/Lookup" + }, + "agent": { + "$ref": "#/$defs/Lookup" + }, + "scope": { + "$ref": "#/$defs/Lookup" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "additionalProperties": false, + "type": "object" + }, + "SecretKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "Template": { + "properties": { + "template": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + } + } +} \ No newline at end of file diff --git a/schema/openapi/health_catalog.schema.json b/schema/openapi/health_catalog.schema.json index 8dacb238..625e1c27 100644 --- a/schema/openapi/health_catalog.schema.json +++ b/schema/openapi/health_catalog.schema.json @@ -1 +1,245 @@ -{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://github.com/flanksource/canary-checker/api/v1/catalog-check","$ref":"#/$defs/CatalogCheck","$defs":{"CatalogCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"selector":{"$ref":"#/$defs/ResourceSelectors"}},"additionalProperties":false,"type":"object","required":["name","selector"]},"Items":{"items":{"type":"string"},"type":"array"},"Labels":{"additionalProperties":{"type":"string"},"type":"object"},"MetricLabel":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueExpr":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name"]},"MetricLabels":{"items":{"$ref":"#/$defs/MetricLabel"},"type":"array"},"Metrics":{"properties":{"name":{"type":"string"},"labels":{"$ref":"#/$defs/MetricLabels"},"type":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false,"type":"object"},"ResourceSelector":{"properties":{"agent":{"type":"string"},"cache":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"types":{"$ref":"#/$defs/Items"},"statuses":{"$ref":"#/$defs/Items"},"tagSelector":{"type":"string"},"labelSelector":{"type":"string"},"fieldSelector":{"type":"string"}},"additionalProperties":false,"type":"object"},"ResourceSelectors":{"items":{"$ref":"#/$defs/ResourceSelector"},"type":"array"},"Template":{"properties":{"template":{"type":"string"},"jsonPath":{"type":"string"},"expr":{"type":"string"},"javascript":{"type":"string"}},"additionalProperties":false,"type":"object"}}} \ No newline at end of file +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://github.com/flanksource/canary-checker/api/v1/catalog-check", + "$ref": "#/$defs/CatalogCheck", + "$defs": { + "CatalogCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "selector": { + "$ref": "#/$defs/ResourceSelectors" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "selector" + ] + }, + "CheckRelationship": { + "properties": { + "components": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + }, + "configs": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object" + }, + "Items": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "Lookup": { + "properties": { + "expr": { + "type": "string" + }, + "value": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "MetricLabel": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "MetricLabels": { + "items": { + "$ref": "#/$defs/MetricLabel" + }, + "type": "array" + }, + "Metrics": { + "properties": { + "name": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/MetricLabels" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "RelationshipSelectorTemplate": { + "properties": { + "id": { + "$ref": "#/$defs/Lookup" + }, + "external_id": { + "$ref": "#/$defs/Lookup" + }, + "name": { + "$ref": "#/$defs/Lookup" + }, + "namespace": { + "$ref": "#/$defs/Lookup" + }, + "type": { + "$ref": "#/$defs/Lookup" + }, + "agent": { + "$ref": "#/$defs/Lookup" + }, + "scope": { + "$ref": "#/$defs/Lookup" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ResourceSelector": { + "properties": { + "agent": { + "type": "string" + }, + "scope": { + "type": "string" + }, + "cache": { + "type": "string" + }, + "search": { + "type": "string" + }, + "includeDeleted": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "types": { + "$ref": "#/$defs/Items" + }, + "statuses": { + "$ref": "#/$defs/Items" + }, + "tagSelector": { + "type": "string" + }, + "labelSelector": { + "type": "string" + }, + "fieldSelector": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ResourceSelectors": { + "items": { + "$ref": "#/$defs/ResourceSelector" + }, + "type": "array" + }, + "Template": { + "properties": { + "template": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + } + } +} \ No newline at end of file diff --git a/schema/openapi/health_cloudwatch.schema.json b/schema/openapi/health_cloudwatch.schema.json index 9083d96d..3ce0e710 100644 --- a/schema/openapi/health_cloudwatch.schema.json +++ b/schema/openapi/health_cloudwatch.schema.json @@ -1 +1,301 @@ -{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://github.com/flanksource/canary-checker/api/v1/cloud-watch-check","$ref":"#/$defs/CloudWatchCheck","$defs":{"CloudWatchCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"connection":{"type":"string"},"accessKey":{"$ref":"#/$defs/EnvVar"},"secretKey":{"$ref":"#/$defs/EnvVar"},"sessionToken":{"$ref":"#/$defs/EnvVar"},"region":{"type":"string"},"endpoint":{"type":"string"},"skipTLSVerify":{"type":"boolean"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"actionPrefix":{"type":"string"},"alarmPrefix":{"type":"string"},"alarms":{"items":{"type":"string"},"type":"array"},"state":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name"]},"ConfigMapKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"EnvVar":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueFrom":{"$ref":"#/$defs/EnvVarSource"}},"additionalProperties":false,"type":"object"},"EnvVarSource":{"properties":{"serviceAccount":{"type":"string"},"helmRef":{"$ref":"#/$defs/HelmRefKeySelector"},"configMapKeyRef":{"$ref":"#/$defs/ConfigMapKeySelector"},"secretKeyRef":{"$ref":"#/$defs/SecretKeySelector"}},"additionalProperties":false,"type":"object"},"HelmRefKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"Labels":{"additionalProperties":{"type":"string"},"type":"object"},"MetricLabel":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueExpr":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name"]},"MetricLabels":{"items":{"$ref":"#/$defs/MetricLabel"},"type":"array"},"Metrics":{"properties":{"name":{"type":"string"},"labels":{"$ref":"#/$defs/MetricLabels"},"type":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false,"type":"object"},"SecretKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"Template":{"properties":{"template":{"type":"string"},"jsonPath":{"type":"string"},"expr":{"type":"string"},"javascript":{"type":"string"}},"additionalProperties":false,"type":"object"}}} \ No newline at end of file +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://github.com/flanksource/canary-checker/api/v1/cloud-watch-check", + "$ref": "#/$defs/CloudWatchCheck", + "$defs": { + "CheckRelationship": { + "properties": { + "components": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + }, + "configs": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object" + }, + "CloudWatchCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "connection": { + "type": "string" + }, + "accessKey": { + "$ref": "#/$defs/EnvVar" + }, + "secretKey": { + "$ref": "#/$defs/EnvVar" + }, + "sessionToken": { + "$ref": "#/$defs/EnvVar" + }, + "assumeRole": { + "type": "string" + }, + "region": { + "type": "string" + }, + "endpoint": { + "type": "string" + }, + "skipTLSVerify": { + "type": "boolean" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "actionPrefix": { + "type": "string" + }, + "alarmPrefix": { + "type": "string" + }, + "alarms": { + "items": { + "type": "string" + }, + "type": "array" + }, + "state": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "ConfigMapKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "EnvVar": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "$ref": "#/$defs/EnvVarSource" + } + }, + "additionalProperties": false, + "type": "object" + }, + "EnvVarSource": { + "properties": { + "serviceAccount": { + "type": "string" + }, + "helmRef": { + "$ref": "#/$defs/HelmRefKeySelector" + }, + "configMapKeyRef": { + "$ref": "#/$defs/ConfigMapKeySelector" + }, + "secretKeyRef": { + "$ref": "#/$defs/SecretKeySelector" + } + }, + "additionalProperties": false, + "type": "object" + }, + "HelmRefKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "Labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "Lookup": { + "properties": { + "expr": { + "type": "string" + }, + "value": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "MetricLabel": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "MetricLabels": { + "items": { + "$ref": "#/$defs/MetricLabel" + }, + "type": "array" + }, + "Metrics": { + "properties": { + "name": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/MetricLabels" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "RelationshipSelectorTemplate": { + "properties": { + "id": { + "$ref": "#/$defs/Lookup" + }, + "external_id": { + "$ref": "#/$defs/Lookup" + }, + "name": { + "$ref": "#/$defs/Lookup" + }, + "namespace": { + "$ref": "#/$defs/Lookup" + }, + "type": { + "$ref": "#/$defs/Lookup" + }, + "agent": { + "$ref": "#/$defs/Lookup" + }, + "scope": { + "$ref": "#/$defs/Lookup" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "additionalProperties": false, + "type": "object" + }, + "SecretKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "Template": { + "properties": { + "template": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + } + } +} \ No newline at end of file diff --git a/schema/openapi/health_containerdPull.schema.json b/schema/openapi/health_containerdPull.schema.json index 10522fa3..c5db616f 100644 --- a/schema/openapi/health_containerdPull.schema.json +++ b/schema/openapi/health_containerdPull.schema.json @@ -1 +1,260 @@ -{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://github.com/flanksource/canary-checker/api/v1/containerd-pull-check","$ref":"#/$defs/ContainerdPullCheck","$defs":{"Authentication":{"properties":{"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"}},"additionalProperties":false,"type":"object"},"ConfigMapKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"ContainerdPullCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"image":{"type":"string"},"auth":{"$ref":"#/$defs/Authentication"},"expectedDigest":{"type":"string"},"expectedSize":{"type":"integer"}},"additionalProperties":false,"type":"object","required":["name","image"]},"EnvVar":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueFrom":{"$ref":"#/$defs/EnvVarSource"}},"additionalProperties":false,"type":"object"},"EnvVarSource":{"properties":{"serviceAccount":{"type":"string"},"helmRef":{"$ref":"#/$defs/HelmRefKeySelector"},"configMapKeyRef":{"$ref":"#/$defs/ConfigMapKeySelector"},"secretKeyRef":{"$ref":"#/$defs/SecretKeySelector"}},"additionalProperties":false,"type":"object"},"HelmRefKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"Labels":{"additionalProperties":{"type":"string"},"type":"object"},"MetricLabel":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueExpr":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name"]},"MetricLabels":{"items":{"$ref":"#/$defs/MetricLabel"},"type":"array"},"Metrics":{"properties":{"name":{"type":"string"},"labels":{"$ref":"#/$defs/MetricLabels"},"type":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false,"type":"object"},"SecretKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]}}} \ No newline at end of file +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://github.com/flanksource/canary-checker/api/v1/containerd-pull-check", + "$ref": "#/$defs/ContainerdPullCheck", + "$defs": { + "Authentication": { + "properties": { + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + } + }, + "additionalProperties": false, + "type": "object" + }, + "CheckRelationship": { + "properties": { + "components": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + }, + "configs": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ConfigMapKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "ContainerdPullCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "image": { + "type": "string" + }, + "auth": { + "$ref": "#/$defs/Authentication" + }, + "expectedDigest": { + "type": "string" + }, + "expectedSize": { + "type": "integer" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "image" + ] + }, + "EnvVar": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "$ref": "#/$defs/EnvVarSource" + } + }, + "additionalProperties": false, + "type": "object" + }, + "EnvVarSource": { + "properties": { + "serviceAccount": { + "type": "string" + }, + "helmRef": { + "$ref": "#/$defs/HelmRefKeySelector" + }, + "configMapKeyRef": { + "$ref": "#/$defs/ConfigMapKeySelector" + }, + "secretKeyRef": { + "$ref": "#/$defs/SecretKeySelector" + } + }, + "additionalProperties": false, + "type": "object" + }, + "HelmRefKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "Labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "Lookup": { + "properties": { + "expr": { + "type": "string" + }, + "value": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "MetricLabel": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "MetricLabels": { + "items": { + "$ref": "#/$defs/MetricLabel" + }, + "type": "array" + }, + "Metrics": { + "properties": { + "name": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/MetricLabels" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "RelationshipSelectorTemplate": { + "properties": { + "id": { + "$ref": "#/$defs/Lookup" + }, + "external_id": { + "$ref": "#/$defs/Lookup" + }, + "name": { + "$ref": "#/$defs/Lookup" + }, + "namespace": { + "$ref": "#/$defs/Lookup" + }, + "type": { + "$ref": "#/$defs/Lookup" + }, + "agent": { + "$ref": "#/$defs/Lookup" + }, + "scope": { + "$ref": "#/$defs/Lookup" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "additionalProperties": false, + "type": "object" + }, + "SecretKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + } + } +} \ No newline at end of file diff --git a/schema/openapi/health_containerdPush.schema.json b/schema/openapi/health_containerdPush.schema.json index 506871c7..fe746c6c 100644 --- a/schema/openapi/health_containerdPush.schema.json +++ b/schema/openapi/health_containerdPush.schema.json @@ -1 +1,167 @@ -{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://github.com/flanksource/canary-checker/api/v1/containerd-push-check","$ref":"#/$defs/ContainerdPushCheck","$defs":{"ContainerdPushCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"image":{"type":"string"},"username":{"type":"string"},"password":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name","image"]},"Labels":{"additionalProperties":{"type":"string"},"type":"object"},"MetricLabel":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueExpr":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name"]},"MetricLabels":{"items":{"$ref":"#/$defs/MetricLabel"},"type":"array"},"Metrics":{"properties":{"name":{"type":"string"},"labels":{"$ref":"#/$defs/MetricLabels"},"type":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false,"type":"object"}}} \ No newline at end of file +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://github.com/flanksource/canary-checker/api/v1/containerd-push-check", + "$ref": "#/$defs/ContainerdPushCheck", + "$defs": { + "CheckRelationship": { + "properties": { + "components": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + }, + "configs": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ContainerdPushCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "image": { + "type": "string" + }, + "username": { + "type": "string" + }, + "password": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "image" + ] + }, + "Labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "Lookup": { + "properties": { + "expr": { + "type": "string" + }, + "value": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "MetricLabel": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "MetricLabels": { + "items": { + "$ref": "#/$defs/MetricLabel" + }, + "type": "array" + }, + "Metrics": { + "properties": { + "name": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/MetricLabels" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "RelationshipSelectorTemplate": { + "properties": { + "id": { + "$ref": "#/$defs/Lookup" + }, + "external_id": { + "$ref": "#/$defs/Lookup" + }, + "name": { + "$ref": "#/$defs/Lookup" + }, + "namespace": { + "$ref": "#/$defs/Lookup" + }, + "type": { + "$ref": "#/$defs/Lookup" + }, + "agent": { + "$ref": "#/$defs/Lookup" + }, + "scope": { + "$ref": "#/$defs/Lookup" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "additionalProperties": false, + "type": "object" + } + } +} \ No newline at end of file diff --git a/schema/openapi/health_databasebackupcheck.schema.json b/schema/openapi/health_databasebackupcheck.schema.json index 89661eda..f41b5c04 100644 --- a/schema/openapi/health_databasebackupcheck.schema.json +++ b/schema/openapi/health_databasebackupcheck.schema.json @@ -1 +1,302 @@ -{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://github.com/flanksource/canary-checker/api/v1/database-backup-check","$ref":"#/$defs/DatabaseBackupCheck","$defs":{"ConfigMapKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"DatabaseBackupCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"gcp":{"$ref":"#/$defs/GCPDatabase"},"maxAge":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name"]},"EnvVar":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueFrom":{"$ref":"#/$defs/EnvVarSource"}},"additionalProperties":false,"type":"object"},"EnvVarSource":{"properties":{"serviceAccount":{"type":"string"},"helmRef":{"$ref":"#/$defs/HelmRefKeySelector"},"configMapKeyRef":{"$ref":"#/$defs/ConfigMapKeySelector"},"secretKeyRef":{"$ref":"#/$defs/SecretKeySelector"}},"additionalProperties":false,"type":"object"},"GCPConnection":{"properties":{"connection":{"type":"string"},"endpoint":{"type":"string"},"credentials":{"$ref":"#/$defs/EnvVar"}},"additionalProperties":false,"type":"object"},"GCPDatabase":{"properties":{"project":{"type":"string"},"instance":{"type":"string"},"gcpConnection":{"$ref":"#/$defs/GCPConnection"}},"additionalProperties":false,"type":"object","required":["project","instance"]},"HelmRefKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"Labels":{"additionalProperties":{"type":"string"},"type":"object"},"MetricLabel":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueExpr":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name"]},"MetricLabels":{"items":{"$ref":"#/$defs/MetricLabel"},"type":"array"},"Metrics":{"properties":{"name":{"type":"string"},"labels":{"$ref":"#/$defs/MetricLabels"},"type":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false,"type":"object"},"SecretKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"Template":{"properties":{"template":{"type":"string"},"jsonPath":{"type":"string"},"expr":{"type":"string"},"javascript":{"type":"string"}},"additionalProperties":false,"type":"object"}}} \ No newline at end of file +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://github.com/flanksource/canary-checker/api/v1/database-backup-check", + "$ref": "#/$defs/DatabaseBackupCheck", + "$defs": { + "CheckRelationship": { + "properties": { + "components": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + }, + "configs": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ConfigMapKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "DatabaseBackupCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "gcp": { + "$ref": "#/$defs/GCPDatabase" + }, + "maxAge": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "EnvVar": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "$ref": "#/$defs/EnvVarSource" + } + }, + "additionalProperties": false, + "type": "object" + }, + "EnvVarSource": { + "properties": { + "serviceAccount": { + "type": "string" + }, + "helmRef": { + "$ref": "#/$defs/HelmRefKeySelector" + }, + "configMapKeyRef": { + "$ref": "#/$defs/ConfigMapKeySelector" + }, + "secretKeyRef": { + "$ref": "#/$defs/SecretKeySelector" + } + }, + "additionalProperties": false, + "type": "object" + }, + "GCPConnection": { + "properties": { + "connection": { + "type": "string" + }, + "endpoint": { + "type": "string" + }, + "credentials": { + "$ref": "#/$defs/EnvVar" + } + }, + "additionalProperties": false, + "type": "object" + }, + "GCPDatabase": { + "properties": { + "project": { + "type": "string" + }, + "instance": { + "type": "string" + }, + "gcpConnection": { + "$ref": "#/$defs/GCPConnection" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "project", + "instance" + ] + }, + "HelmRefKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "Labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "Lookup": { + "properties": { + "expr": { + "type": "string" + }, + "value": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "MetricLabel": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "MetricLabels": { + "items": { + "$ref": "#/$defs/MetricLabel" + }, + "type": "array" + }, + "Metrics": { + "properties": { + "name": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/MetricLabels" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "RelationshipSelectorTemplate": { + "properties": { + "id": { + "$ref": "#/$defs/Lookup" + }, + "external_id": { + "$ref": "#/$defs/Lookup" + }, + "name": { + "$ref": "#/$defs/Lookup" + }, + "namespace": { + "$ref": "#/$defs/Lookup" + }, + "type": { + "$ref": "#/$defs/Lookup" + }, + "agent": { + "$ref": "#/$defs/Lookup" + }, + "scope": { + "$ref": "#/$defs/Lookup" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "additionalProperties": false, + "type": "object" + }, + "SecretKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "Template": { + "properties": { + "template": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + } + } +} \ No newline at end of file diff --git a/schema/openapi/health_dns.schema.json b/schema/openapi/health_dns.schema.json index c4dcbbdb..26da876e 100644 --- a/schema/openapi/health_dns.schema.json +++ b/schema/openapi/health_dns.schema.json @@ -1 +1,184 @@ -{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://github.com/flanksource/canary-checker/api/v1/dns-check","$ref":"#/$defs/DNSCheck","$defs":{"DNSCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"server":{"type":"string"},"port":{"type":"integer"},"query":{"type":"string"},"querytype":{"type":"string"},"minrecords":{"type":"integer"},"exactreply":{"items":{"type":"string"},"type":"array"},"timeout":{"type":"integer"},"thresholdMillis":{"type":"integer"}},"additionalProperties":false,"type":"object","required":["name"]},"Labels":{"additionalProperties":{"type":"string"},"type":"object"},"MetricLabel":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueExpr":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name"]},"MetricLabels":{"items":{"$ref":"#/$defs/MetricLabel"},"type":"array"},"Metrics":{"properties":{"name":{"type":"string"},"labels":{"$ref":"#/$defs/MetricLabels"},"type":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false,"type":"object"}}} \ No newline at end of file +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://github.com/flanksource/canary-checker/api/v1/dns-check", + "$ref": "#/$defs/DNSCheck", + "$defs": { + "CheckRelationship": { + "properties": { + "components": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + }, + "configs": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object" + }, + "DNSCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "server": { + "type": "string" + }, + "port": { + "type": "integer" + }, + "query": { + "type": "string" + }, + "querytype": { + "type": "string" + }, + "minrecords": { + "type": "integer" + }, + "exactreply": { + "items": { + "type": "string" + }, + "type": "array" + }, + "timeout": { + "type": "integer" + }, + "thresholdMillis": { + "type": "integer" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "Labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "Lookup": { + "properties": { + "expr": { + "type": "string" + }, + "value": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "MetricLabel": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "MetricLabels": { + "items": { + "$ref": "#/$defs/MetricLabel" + }, + "type": "array" + }, + "Metrics": { + "properties": { + "name": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/MetricLabels" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "RelationshipSelectorTemplate": { + "properties": { + "id": { + "$ref": "#/$defs/Lookup" + }, + "external_id": { + "$ref": "#/$defs/Lookup" + }, + "name": { + "$ref": "#/$defs/Lookup" + }, + "namespace": { + "$ref": "#/$defs/Lookup" + }, + "type": { + "$ref": "#/$defs/Lookup" + }, + "agent": { + "$ref": "#/$defs/Lookup" + }, + "scope": { + "$ref": "#/$defs/Lookup" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "additionalProperties": false, + "type": "object" + } + } +} \ No newline at end of file diff --git a/schema/openapi/health_dockerPull.schema.json b/schema/openapi/health_dockerPull.schema.json index 436541e7..5322303e 100644 --- a/schema/openapi/health_dockerPull.schema.json +++ b/schema/openapi/health_dockerPull.schema.json @@ -1 +1,260 @@ -{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://github.com/flanksource/canary-checker/api/v1/docker-pull-check","$ref":"#/$defs/DockerPullCheck","$defs":{"Authentication":{"properties":{"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"}},"additionalProperties":false,"type":"object"},"ConfigMapKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"DockerPullCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"image":{"type":"string"},"auth":{"$ref":"#/$defs/Authentication"},"expectedDigest":{"type":"string"},"expectedSize":{"type":"integer"}},"additionalProperties":false,"type":"object","required":["name","image"]},"EnvVar":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueFrom":{"$ref":"#/$defs/EnvVarSource"}},"additionalProperties":false,"type":"object"},"EnvVarSource":{"properties":{"serviceAccount":{"type":"string"},"helmRef":{"$ref":"#/$defs/HelmRefKeySelector"},"configMapKeyRef":{"$ref":"#/$defs/ConfigMapKeySelector"},"secretKeyRef":{"$ref":"#/$defs/SecretKeySelector"}},"additionalProperties":false,"type":"object"},"HelmRefKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"Labels":{"additionalProperties":{"type":"string"},"type":"object"},"MetricLabel":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueExpr":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name"]},"MetricLabels":{"items":{"$ref":"#/$defs/MetricLabel"},"type":"array"},"Metrics":{"properties":{"name":{"type":"string"},"labels":{"$ref":"#/$defs/MetricLabels"},"type":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false,"type":"object"},"SecretKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]}}} \ No newline at end of file +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://github.com/flanksource/canary-checker/api/v1/docker-pull-check", + "$ref": "#/$defs/DockerPullCheck", + "$defs": { + "Authentication": { + "properties": { + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + } + }, + "additionalProperties": false, + "type": "object" + }, + "CheckRelationship": { + "properties": { + "components": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + }, + "configs": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ConfigMapKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "DockerPullCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "image": { + "type": "string" + }, + "auth": { + "$ref": "#/$defs/Authentication" + }, + "expectedDigest": { + "type": "string" + }, + "expectedSize": { + "type": "integer" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "image" + ] + }, + "EnvVar": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "$ref": "#/$defs/EnvVarSource" + } + }, + "additionalProperties": false, + "type": "object" + }, + "EnvVarSource": { + "properties": { + "serviceAccount": { + "type": "string" + }, + "helmRef": { + "$ref": "#/$defs/HelmRefKeySelector" + }, + "configMapKeyRef": { + "$ref": "#/$defs/ConfigMapKeySelector" + }, + "secretKeyRef": { + "$ref": "#/$defs/SecretKeySelector" + } + }, + "additionalProperties": false, + "type": "object" + }, + "HelmRefKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "Labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "Lookup": { + "properties": { + "expr": { + "type": "string" + }, + "value": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "MetricLabel": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "MetricLabels": { + "items": { + "$ref": "#/$defs/MetricLabel" + }, + "type": "array" + }, + "Metrics": { + "properties": { + "name": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/MetricLabels" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "RelationshipSelectorTemplate": { + "properties": { + "id": { + "$ref": "#/$defs/Lookup" + }, + "external_id": { + "$ref": "#/$defs/Lookup" + }, + "name": { + "$ref": "#/$defs/Lookup" + }, + "namespace": { + "$ref": "#/$defs/Lookup" + }, + "type": { + "$ref": "#/$defs/Lookup" + }, + "agent": { + "$ref": "#/$defs/Lookup" + }, + "scope": { + "$ref": "#/$defs/Lookup" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "additionalProperties": false, + "type": "object" + }, + "SecretKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + } + } +} \ No newline at end of file diff --git a/schema/openapi/health_dockerPush.schema.json b/schema/openapi/health_dockerPush.schema.json index 73dba4c5..3561e3e8 100644 --- a/schema/openapi/health_dockerPush.schema.json +++ b/schema/openapi/health_dockerPush.schema.json @@ -1 +1,254 @@ -{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://github.com/flanksource/canary-checker/api/v1/docker-push-check","$ref":"#/$defs/DockerPushCheck","$defs":{"Authentication":{"properties":{"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"}},"additionalProperties":false,"type":"object"},"ConfigMapKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"DockerPushCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"image":{"type":"string"},"auth":{"$ref":"#/$defs/Authentication"}},"additionalProperties":false,"type":"object","required":["name","image"]},"EnvVar":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueFrom":{"$ref":"#/$defs/EnvVarSource"}},"additionalProperties":false,"type":"object"},"EnvVarSource":{"properties":{"serviceAccount":{"type":"string"},"helmRef":{"$ref":"#/$defs/HelmRefKeySelector"},"configMapKeyRef":{"$ref":"#/$defs/ConfigMapKeySelector"},"secretKeyRef":{"$ref":"#/$defs/SecretKeySelector"}},"additionalProperties":false,"type":"object"},"HelmRefKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"Labels":{"additionalProperties":{"type":"string"},"type":"object"},"MetricLabel":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueExpr":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name"]},"MetricLabels":{"items":{"$ref":"#/$defs/MetricLabel"},"type":"array"},"Metrics":{"properties":{"name":{"type":"string"},"labels":{"$ref":"#/$defs/MetricLabels"},"type":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false,"type":"object"},"SecretKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]}}} \ No newline at end of file +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://github.com/flanksource/canary-checker/api/v1/docker-push-check", + "$ref": "#/$defs/DockerPushCheck", + "$defs": { + "Authentication": { + "properties": { + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + } + }, + "additionalProperties": false, + "type": "object" + }, + "CheckRelationship": { + "properties": { + "components": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + }, + "configs": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ConfigMapKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "DockerPushCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "image": { + "type": "string" + }, + "auth": { + "$ref": "#/$defs/Authentication" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "image" + ] + }, + "EnvVar": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "$ref": "#/$defs/EnvVarSource" + } + }, + "additionalProperties": false, + "type": "object" + }, + "EnvVarSource": { + "properties": { + "serviceAccount": { + "type": "string" + }, + "helmRef": { + "$ref": "#/$defs/HelmRefKeySelector" + }, + "configMapKeyRef": { + "$ref": "#/$defs/ConfigMapKeySelector" + }, + "secretKeyRef": { + "$ref": "#/$defs/SecretKeySelector" + } + }, + "additionalProperties": false, + "type": "object" + }, + "HelmRefKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "Labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "Lookup": { + "properties": { + "expr": { + "type": "string" + }, + "value": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "MetricLabel": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "MetricLabels": { + "items": { + "$ref": "#/$defs/MetricLabel" + }, + "type": "array" + }, + "Metrics": { + "properties": { + "name": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/MetricLabels" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "RelationshipSelectorTemplate": { + "properties": { + "id": { + "$ref": "#/$defs/Lookup" + }, + "external_id": { + "$ref": "#/$defs/Lookup" + }, + "name": { + "$ref": "#/$defs/Lookup" + }, + "namespace": { + "$ref": "#/$defs/Lookup" + }, + "type": { + "$ref": "#/$defs/Lookup" + }, + "agent": { + "$ref": "#/$defs/Lookup" + }, + "scope": { + "$ref": "#/$defs/Lookup" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "additionalProperties": false, + "type": "object" + }, + "SecretKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + } + } +} \ No newline at end of file diff --git a/schema/openapi/health_dynatrace.schema.json b/schema/openapi/health_dynatrace.schema.json index 51fc6960..ea3b13d3 100644 --- a/schema/openapi/health_dynatrace.schema.json +++ b/schema/openapi/health_dynatrace.schema.json @@ -1 +1,274 @@ -{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://github.com/flanksource/canary-checker/api/v1/dynatrace-check","$ref":"#/$defs/DynatraceCheck","$defs":{"ConfigMapKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"DynatraceCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"connection":{"type":"string"},"host":{"type":"string"},"scheme":{"type":"string"},"apiKey":{"$ref":"#/$defs/EnvVar"}},"additionalProperties":false,"type":"object","required":["name"]},"EnvVar":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueFrom":{"$ref":"#/$defs/EnvVarSource"}},"additionalProperties":false,"type":"object"},"EnvVarSource":{"properties":{"serviceAccount":{"type":"string"},"helmRef":{"$ref":"#/$defs/HelmRefKeySelector"},"configMapKeyRef":{"$ref":"#/$defs/ConfigMapKeySelector"},"secretKeyRef":{"$ref":"#/$defs/SecretKeySelector"}},"additionalProperties":false,"type":"object"},"HelmRefKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"Labels":{"additionalProperties":{"type":"string"},"type":"object"},"MetricLabel":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueExpr":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name"]},"MetricLabels":{"items":{"$ref":"#/$defs/MetricLabel"},"type":"array"},"Metrics":{"properties":{"name":{"type":"string"},"labels":{"$ref":"#/$defs/MetricLabels"},"type":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false,"type":"object"},"SecretKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"Template":{"properties":{"template":{"type":"string"},"jsonPath":{"type":"string"},"expr":{"type":"string"},"javascript":{"type":"string"}},"additionalProperties":false,"type":"object"}}} \ No newline at end of file +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://github.com/flanksource/canary-checker/api/v1/dynatrace-check", + "$ref": "#/$defs/DynatraceCheck", + "$defs": { + "CheckRelationship": { + "properties": { + "components": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + }, + "configs": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ConfigMapKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "DynatraceCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "connection": { + "type": "string" + }, + "host": { + "type": "string" + }, + "scheme": { + "type": "string" + }, + "apiKey": { + "$ref": "#/$defs/EnvVar" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "EnvVar": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "$ref": "#/$defs/EnvVarSource" + } + }, + "additionalProperties": false, + "type": "object" + }, + "EnvVarSource": { + "properties": { + "serviceAccount": { + "type": "string" + }, + "helmRef": { + "$ref": "#/$defs/HelmRefKeySelector" + }, + "configMapKeyRef": { + "$ref": "#/$defs/ConfigMapKeySelector" + }, + "secretKeyRef": { + "$ref": "#/$defs/SecretKeySelector" + } + }, + "additionalProperties": false, + "type": "object" + }, + "HelmRefKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "Labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "Lookup": { + "properties": { + "expr": { + "type": "string" + }, + "value": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "MetricLabel": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "MetricLabels": { + "items": { + "$ref": "#/$defs/MetricLabel" + }, + "type": "array" + }, + "Metrics": { + "properties": { + "name": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/MetricLabels" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "RelationshipSelectorTemplate": { + "properties": { + "id": { + "$ref": "#/$defs/Lookup" + }, + "external_id": { + "$ref": "#/$defs/Lookup" + }, + "name": { + "$ref": "#/$defs/Lookup" + }, + "namespace": { + "$ref": "#/$defs/Lookup" + }, + "type": { + "$ref": "#/$defs/Lookup" + }, + "agent": { + "$ref": "#/$defs/Lookup" + }, + "scope": { + "$ref": "#/$defs/Lookup" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "additionalProperties": false, + "type": "object" + }, + "SecretKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "Template": { + "properties": { + "template": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + } + } +} \ No newline at end of file diff --git a/schema/openapi/health_elasticsearch.schema.json b/schema/openapi/health_elasticsearch.schema.json index 5570c8ff..2e6f8a58 100644 --- a/schema/openapi/health_elasticsearch.schema.json +++ b/schema/openapi/health_elasticsearch.schema.json @@ -1 +1,283 @@ -{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://github.com/flanksource/canary-checker/api/v1/elasticsearch-check","$ref":"#/$defs/ElasticsearchCheck","$defs":{"ConfigMapKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"ElasticsearchCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"connection":{"type":"string"},"url":{"type":"string"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"},"query":{"type":"string"},"index":{"type":"string"},"results":{"type":"integer"}},"additionalProperties":false,"type":"object","required":["name"]},"EnvVar":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueFrom":{"$ref":"#/$defs/EnvVarSource"}},"additionalProperties":false,"type":"object"},"EnvVarSource":{"properties":{"serviceAccount":{"type":"string"},"helmRef":{"$ref":"#/$defs/HelmRefKeySelector"},"configMapKeyRef":{"$ref":"#/$defs/ConfigMapKeySelector"},"secretKeyRef":{"$ref":"#/$defs/SecretKeySelector"}},"additionalProperties":false,"type":"object"},"HelmRefKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"Labels":{"additionalProperties":{"type":"string"},"type":"object"},"MetricLabel":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueExpr":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name"]},"MetricLabels":{"items":{"$ref":"#/$defs/MetricLabel"},"type":"array"},"Metrics":{"properties":{"name":{"type":"string"},"labels":{"$ref":"#/$defs/MetricLabels"},"type":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false,"type":"object"},"SecretKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"Template":{"properties":{"template":{"type":"string"},"jsonPath":{"type":"string"},"expr":{"type":"string"},"javascript":{"type":"string"}},"additionalProperties":false,"type":"object"}}} \ No newline at end of file +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://github.com/flanksource/canary-checker/api/v1/elasticsearch-check", + "$ref": "#/$defs/ElasticsearchCheck", + "$defs": { + "CheckRelationship": { + "properties": { + "components": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + }, + "configs": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ConfigMapKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "ElasticsearchCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "connection": { + "type": "string" + }, + "url": { + "type": "string" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + }, + "query": { + "type": "string" + }, + "index": { + "type": "string" + }, + "results": { + "type": "integer" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "EnvVar": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "$ref": "#/$defs/EnvVarSource" + } + }, + "additionalProperties": false, + "type": "object" + }, + "EnvVarSource": { + "properties": { + "serviceAccount": { + "type": "string" + }, + "helmRef": { + "$ref": "#/$defs/HelmRefKeySelector" + }, + "configMapKeyRef": { + "$ref": "#/$defs/ConfigMapKeySelector" + }, + "secretKeyRef": { + "$ref": "#/$defs/SecretKeySelector" + } + }, + "additionalProperties": false, + "type": "object" + }, + "HelmRefKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "Labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "Lookup": { + "properties": { + "expr": { + "type": "string" + }, + "value": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "MetricLabel": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "MetricLabels": { + "items": { + "$ref": "#/$defs/MetricLabel" + }, + "type": "array" + }, + "Metrics": { + "properties": { + "name": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/MetricLabels" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "RelationshipSelectorTemplate": { + "properties": { + "id": { + "$ref": "#/$defs/Lookup" + }, + "external_id": { + "$ref": "#/$defs/Lookup" + }, + "name": { + "$ref": "#/$defs/Lookup" + }, + "namespace": { + "$ref": "#/$defs/Lookup" + }, + "type": { + "$ref": "#/$defs/Lookup" + }, + "agent": { + "$ref": "#/$defs/Lookup" + }, + "scope": { + "$ref": "#/$defs/Lookup" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "additionalProperties": false, + "type": "object" + }, + "SecretKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "Template": { + "properties": { + "template": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + } + } +} \ No newline at end of file diff --git a/schema/openapi/health_exec.schema.json b/schema/openapi/health_exec.schema.json index 90f56fd5..d1e06b5f 100644 --- a/schema/openapi/health_exec.schema.json +++ b/schema/openapi/health_exec.schema.json @@ -1 +1,398 @@ -{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://github.com/flanksource/canary-checker/api/v1/exec-check","$ref":"#/$defs/ExecCheck","$defs":{"AWSConnection":{"properties":{"connection":{"type":"string"},"accessKey":{"$ref":"#/$defs/EnvVar"},"secretKey":{"$ref":"#/$defs/EnvVar"},"sessionToken":{"$ref":"#/$defs/EnvVar"},"region":{"type":"string"},"endpoint":{"type":"string"},"skipTLSVerify":{"type":"boolean"}},"additionalProperties":false,"type":"object"},"Artifact":{"properties":{"path":{"type":"string"}},"additionalProperties":false,"type":"object","required":["path"]},"AzureConnection":{"properties":{"connection":{"type":"string"},"clientID":{"$ref":"#/$defs/EnvVar"},"clientSecret":{"$ref":"#/$defs/EnvVar"},"tenantID":{"type":"string"}},"additionalProperties":false,"type":"object"},"ConfigMapKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"EnvVar":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueFrom":{"$ref":"#/$defs/EnvVarSource"}},"additionalProperties":false,"type":"object"},"EnvVarSource":{"properties":{"serviceAccount":{"type":"string"},"helmRef":{"$ref":"#/$defs/HelmRefKeySelector"},"configMapKeyRef":{"$ref":"#/$defs/ConfigMapKeySelector"},"secretKeyRef":{"$ref":"#/$defs/SecretKeySelector"}},"additionalProperties":false,"type":"object"},"ExecCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"script":{"type":"string"},"connections":{"$ref":"#/$defs/ExecConnections"},"env":{"items":{"$ref":"#/$defs/EnvVar"},"type":"array"},"checkout":{"$ref":"#/$defs/GitCheckout"},"artifacts":{"items":{"$ref":"#/$defs/Artifact"},"type":"array"}},"additionalProperties":false,"type":"object","required":["name","script"]},"ExecConnections":{"properties":{"aws":{"$ref":"#/$defs/AWSConnection"},"gcp":{"$ref":"#/$defs/GCPConnection"},"azure":{"$ref":"#/$defs/AzureConnection"}},"additionalProperties":false,"type":"object"},"GCPConnection":{"properties":{"connection":{"type":"string"},"endpoint":{"type":"string"},"credentials":{"$ref":"#/$defs/EnvVar"}},"additionalProperties":false,"type":"object"},"GitCheckout":{"properties":{"url":{"type":"string"},"connection":{"type":"string"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"},"certificate":{"$ref":"#/$defs/EnvVar"},"destination":{"type":"string"}},"additionalProperties":false,"type":"object"},"HelmRefKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"Labels":{"additionalProperties":{"type":"string"},"type":"object"},"MetricLabel":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueExpr":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name"]},"MetricLabels":{"items":{"$ref":"#/$defs/MetricLabel"},"type":"array"},"Metrics":{"properties":{"name":{"type":"string"},"labels":{"$ref":"#/$defs/MetricLabels"},"type":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false,"type":"object"},"SecretKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"Template":{"properties":{"template":{"type":"string"},"jsonPath":{"type":"string"},"expr":{"type":"string"},"javascript":{"type":"string"}},"additionalProperties":false,"type":"object"}}} \ No newline at end of file +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://github.com/flanksource/canary-checker/api/v1/exec-check", + "$ref": "#/$defs/ExecCheck", + "$defs": { + "AWSConnection": { + "properties": { + "connection": { + "type": "string" + }, + "accessKey": { + "$ref": "#/$defs/EnvVar" + }, + "secretKey": { + "$ref": "#/$defs/EnvVar" + }, + "sessionToken": { + "$ref": "#/$defs/EnvVar" + }, + "assumeRole": { + "type": "string" + }, + "region": { + "type": "string" + }, + "endpoint": { + "type": "string" + }, + "skipTLSVerify": { + "type": "boolean" + } + }, + "additionalProperties": false, + "type": "object" + }, + "Artifact": { + "properties": { + "path": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "path" + ] + }, + "AzureConnection": { + "properties": { + "connection": { + "type": "string" + }, + "clientID": { + "$ref": "#/$defs/EnvVar" + }, + "clientSecret": { + "$ref": "#/$defs/EnvVar" + }, + "tenantID": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "CheckRelationship": { + "properties": { + "components": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + }, + "configs": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ConfigMapKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "EnvVar": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "$ref": "#/$defs/EnvVarSource" + } + }, + "additionalProperties": false, + "type": "object" + }, + "EnvVarSource": { + "properties": { + "serviceAccount": { + "type": "string" + }, + "helmRef": { + "$ref": "#/$defs/HelmRefKeySelector" + }, + "configMapKeyRef": { + "$ref": "#/$defs/ConfigMapKeySelector" + }, + "secretKeyRef": { + "$ref": "#/$defs/SecretKeySelector" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ExecCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "script": { + "type": "string" + }, + "connections": { + "$ref": "#/$defs/ExecConnections" + }, + "env": { + "items": { + "$ref": "#/$defs/EnvVar" + }, + "type": "array" + }, + "checkout": { + "$ref": "#/$defs/GitCheckout" + }, + "artifacts": { + "items": { + "$ref": "#/$defs/Artifact" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "script" + ] + }, + "ExecConnections": { + "properties": { + "aws": { + "$ref": "#/$defs/AWSConnection" + }, + "gcp": { + "$ref": "#/$defs/GCPConnection" + }, + "azure": { + "$ref": "#/$defs/AzureConnection" + } + }, + "additionalProperties": false, + "type": "object" + }, + "GCPConnection": { + "properties": { + "connection": { + "type": "string" + }, + "endpoint": { + "type": "string" + }, + "credentials": { + "$ref": "#/$defs/EnvVar" + } + }, + "additionalProperties": false, + "type": "object" + }, + "GitCheckout": { + "properties": { + "url": { + "type": "string" + }, + "connection": { + "type": "string" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + }, + "certificate": { + "$ref": "#/$defs/EnvVar" + }, + "destination": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "HelmRefKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "Labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "Lookup": { + "properties": { + "expr": { + "type": "string" + }, + "value": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "MetricLabel": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "MetricLabels": { + "items": { + "$ref": "#/$defs/MetricLabel" + }, + "type": "array" + }, + "Metrics": { + "properties": { + "name": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/MetricLabels" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "RelationshipSelectorTemplate": { + "properties": { + "id": { + "$ref": "#/$defs/Lookup" + }, + "external_id": { + "$ref": "#/$defs/Lookup" + }, + "name": { + "$ref": "#/$defs/Lookup" + }, + "namespace": { + "$ref": "#/$defs/Lookup" + }, + "type": { + "$ref": "#/$defs/Lookup" + }, + "agent": { + "$ref": "#/$defs/Lookup" + }, + "scope": { + "$ref": "#/$defs/Lookup" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "additionalProperties": false, + "type": "object" + }, + "SecretKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "Template": { + "properties": { + "template": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + } + } +} \ No newline at end of file diff --git a/schema/openapi/health_folder.schema.json b/schema/openapi/health_folder.schema.json index cb5db067..3b5e00a9 100644 --- a/schema/openapi/health_folder.schema.json +++ b/schema/openapi/health_folder.schema.json @@ -1 +1,434 @@ -{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://github.com/flanksource/canary-checker/api/v1/folder-check","$ref":"#/$defs/FolderCheck","$defs":{"ConfigMapKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"EnvVar":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueFrom":{"$ref":"#/$defs/EnvVarSource"}},"additionalProperties":false,"type":"object"},"EnvVarSource":{"properties":{"serviceAccount":{"type":"string"},"helmRef":{"$ref":"#/$defs/HelmRefKeySelector"},"configMapKeyRef":{"$ref":"#/$defs/ConfigMapKeySelector"},"secretKeyRef":{"$ref":"#/$defs/SecretKeySelector"}},"additionalProperties":false,"type":"object"},"FolderCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"path":{"type":"string"},"recursive":{"type":"boolean"},"filter":{"$ref":"#/$defs/FolderFilter"},"minAge":{"type":"string"},"maxAge":{"type":"string"},"minCount":{"type":"integer"},"maxCount":{"type":"integer"},"minSize":{"type":"string"},"maxSize":{"type":"string"},"availableSize":{"type":"string"},"totalSize":{"type":"string"},"awsConnection":{"$ref":"#/$defs/S3Connection"},"gcpConnection":{"$ref":"#/$defs/GCSConnection"},"smbConnection":{"$ref":"#/$defs/SMBConnection"},"sftpConnection":{"$ref":"#/$defs/SFTPConnection"}},"additionalProperties":false,"type":"object","required":["name","path"]},"FolderFilter":{"properties":{"minAge":{"type":"string"},"maxAge":{"type":"string"},"since":{"type":"string"},"minSize":{"type":"string"},"maxSize":{"type":"string"},"regex":{"type":"string"}},"additionalProperties":false,"type":"object"},"GCSConnection":{"properties":{"connection":{"type":"string"},"endpoint":{"type":"string"},"credentials":{"$ref":"#/$defs/EnvVar"},"bucket":{"type":"string"}},"additionalProperties":false,"type":"object"},"HelmRefKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"Labels":{"additionalProperties":{"type":"string"},"type":"object"},"MetricLabel":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueExpr":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name"]},"MetricLabels":{"items":{"$ref":"#/$defs/MetricLabel"},"type":"array"},"Metrics":{"properties":{"name":{"type":"string"},"labels":{"$ref":"#/$defs/MetricLabels"},"type":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false,"type":"object"},"S3Connection":{"properties":{"connection":{"type":"string"},"accessKey":{"$ref":"#/$defs/EnvVar"},"secretKey":{"$ref":"#/$defs/EnvVar"},"sessionToken":{"$ref":"#/$defs/EnvVar"},"region":{"type":"string"},"endpoint":{"type":"string"},"skipTLSVerify":{"type":"boolean"},"bucket":{"type":"string"},"objectPath":{"type":"string"},"usePathStyle":{"type":"boolean"}},"additionalProperties":false,"type":"object"},"SFTPConnection":{"properties":{"connection":{"type":"string"},"port":{"type":"integer"},"host":{"type":"string"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"}},"additionalProperties":false,"type":"object","required":["host"]},"SMBConnection":{"properties":{"connection":{"type":"string"},"port":{"type":"integer"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"},"domain":{"type":"string"}},"additionalProperties":false,"type":"object"},"SecretKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"Template":{"properties":{"template":{"type":"string"},"jsonPath":{"type":"string"},"expr":{"type":"string"},"javascript":{"type":"string"}},"additionalProperties":false,"type":"object"}}} \ No newline at end of file +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://github.com/flanksource/canary-checker/api/v1/folder-check", + "$ref": "#/$defs/FolderCheck", + "$defs": { + "CheckRelationship": { + "properties": { + "components": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + }, + "configs": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ConfigMapKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "EnvVar": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "$ref": "#/$defs/EnvVarSource" + } + }, + "additionalProperties": false, + "type": "object" + }, + "EnvVarSource": { + "properties": { + "serviceAccount": { + "type": "string" + }, + "helmRef": { + "$ref": "#/$defs/HelmRefKeySelector" + }, + "configMapKeyRef": { + "$ref": "#/$defs/ConfigMapKeySelector" + }, + "secretKeyRef": { + "$ref": "#/$defs/SecretKeySelector" + } + }, + "additionalProperties": false, + "type": "object" + }, + "FolderCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "path": { + "type": "string" + }, + "recursive": { + "type": "boolean" + }, + "filter": { + "$ref": "#/$defs/FolderFilter" + }, + "minAge": { + "type": "string" + }, + "maxAge": { + "type": "string" + }, + "minCount": { + "type": "integer" + }, + "maxCount": { + "type": "integer" + }, + "minSize": { + "type": "string" + }, + "maxSize": { + "type": "string" + }, + "availableSize": { + "type": "string" + }, + "totalSize": { + "type": "string" + }, + "awsConnection": { + "$ref": "#/$defs/S3Connection" + }, + "gcpConnection": { + "$ref": "#/$defs/GCSConnection" + }, + "smbConnection": { + "$ref": "#/$defs/SMBConnection" + }, + "sftpConnection": { + "$ref": "#/$defs/SFTPConnection" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "path" + ] + }, + "FolderFilter": { + "properties": { + "minAge": { + "type": "string" + }, + "maxAge": { + "type": "string" + }, + "since": { + "type": "string" + }, + "minSize": { + "type": "string" + }, + "maxSize": { + "type": "string" + }, + "regex": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "GCSConnection": { + "properties": { + "connection": { + "type": "string" + }, + "endpoint": { + "type": "string" + }, + "credentials": { + "$ref": "#/$defs/EnvVar" + }, + "bucket": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "HelmRefKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "Labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "Lookup": { + "properties": { + "expr": { + "type": "string" + }, + "value": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "MetricLabel": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "MetricLabels": { + "items": { + "$ref": "#/$defs/MetricLabel" + }, + "type": "array" + }, + "Metrics": { + "properties": { + "name": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/MetricLabels" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "RelationshipSelectorTemplate": { + "properties": { + "id": { + "$ref": "#/$defs/Lookup" + }, + "external_id": { + "$ref": "#/$defs/Lookup" + }, + "name": { + "$ref": "#/$defs/Lookup" + }, + "namespace": { + "$ref": "#/$defs/Lookup" + }, + "type": { + "$ref": "#/$defs/Lookup" + }, + "agent": { + "$ref": "#/$defs/Lookup" + }, + "scope": { + "$ref": "#/$defs/Lookup" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "additionalProperties": false, + "type": "object" + }, + "S3Connection": { + "properties": { + "connection": { + "type": "string" + }, + "accessKey": { + "$ref": "#/$defs/EnvVar" + }, + "secretKey": { + "$ref": "#/$defs/EnvVar" + }, + "sessionToken": { + "$ref": "#/$defs/EnvVar" + }, + "assumeRole": { + "type": "string" + }, + "region": { + "type": "string" + }, + "endpoint": { + "type": "string" + }, + "skipTLSVerify": { + "type": "boolean" + }, + "bucket": { + "type": "string" + }, + "objectPath": { + "type": "string" + }, + "usePathStyle": { + "type": "boolean" + } + }, + "additionalProperties": false, + "type": "object" + }, + "SFTPConnection": { + "properties": { + "connection": { + "type": "string" + }, + "port": { + "type": "integer" + }, + "host": { + "type": "string" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + } + }, + "additionalProperties": false, + "type": "object" + }, + "SMBConnection": { + "properties": { + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + }, + "connection": { + "type": "string" + }, + "port": { + "type": "integer" + }, + "domain": { + "type": "string" + }, + "share": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "SecretKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "Template": { + "properties": { + "template": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + } + } +} \ No newline at end of file diff --git a/schema/openapi/health_gitProtocol.schema.json b/schema/openapi/health_gitProtocol.schema.json index 8170ed18..eb02ccca 100644 --- a/schema/openapi/health_gitProtocol.schema.json +++ b/schema/openapi/health_gitProtocol.schema.json @@ -1 +1,277 @@ -{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://github.com/flanksource/canary-checker/api/v1/git-protocol-check","$ref":"#/$defs/GitProtocolCheck","$defs":{"ConfigMapKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"EnvVar":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueFrom":{"$ref":"#/$defs/EnvVarSource"}},"additionalProperties":false,"type":"object"},"EnvVarSource":{"properties":{"serviceAccount":{"type":"string"},"helmRef":{"$ref":"#/$defs/HelmRefKeySelector"},"configMapKeyRef":{"$ref":"#/$defs/ConfigMapKeySelector"},"secretKeyRef":{"$ref":"#/$defs/SecretKeySelector"}},"additionalProperties":false,"type":"object"},"GitProtocolCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"filename":{"type":"string"},"repository":{"type":"string"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"}},"additionalProperties":false,"type":"object","required":["name","repository","username","password"]},"HelmRefKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"Labels":{"additionalProperties":{"type":"string"},"type":"object"},"MetricLabel":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueExpr":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name"]},"MetricLabels":{"items":{"$ref":"#/$defs/MetricLabel"},"type":"array"},"Metrics":{"properties":{"name":{"type":"string"},"labels":{"$ref":"#/$defs/MetricLabels"},"type":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false,"type":"object"},"SecretKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"Template":{"properties":{"template":{"type":"string"},"jsonPath":{"type":"string"},"expr":{"type":"string"},"javascript":{"type":"string"}},"additionalProperties":false,"type":"object"}}} \ No newline at end of file +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://github.com/flanksource/canary-checker/api/v1/git-protocol-check", + "$ref": "#/$defs/GitProtocolCheck", + "$defs": { + "CheckRelationship": { + "properties": { + "components": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + }, + "configs": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ConfigMapKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "EnvVar": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "$ref": "#/$defs/EnvVarSource" + } + }, + "additionalProperties": false, + "type": "object" + }, + "EnvVarSource": { + "properties": { + "serviceAccount": { + "type": "string" + }, + "helmRef": { + "$ref": "#/$defs/HelmRefKeySelector" + }, + "configMapKeyRef": { + "$ref": "#/$defs/ConfigMapKeySelector" + }, + "secretKeyRef": { + "$ref": "#/$defs/SecretKeySelector" + } + }, + "additionalProperties": false, + "type": "object" + }, + "GitProtocolCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "filename": { + "type": "string" + }, + "repository": { + "type": "string" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "repository", + "username", + "password" + ] + }, + "HelmRefKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "Labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "Lookup": { + "properties": { + "expr": { + "type": "string" + }, + "value": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "MetricLabel": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "MetricLabels": { + "items": { + "$ref": "#/$defs/MetricLabel" + }, + "type": "array" + }, + "Metrics": { + "properties": { + "name": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/MetricLabels" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "RelationshipSelectorTemplate": { + "properties": { + "id": { + "$ref": "#/$defs/Lookup" + }, + "external_id": { + "$ref": "#/$defs/Lookup" + }, + "name": { + "$ref": "#/$defs/Lookup" + }, + "namespace": { + "$ref": "#/$defs/Lookup" + }, + "type": { + "$ref": "#/$defs/Lookup" + }, + "agent": { + "$ref": "#/$defs/Lookup" + }, + "scope": { + "$ref": "#/$defs/Lookup" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "additionalProperties": false, + "type": "object" + }, + "SecretKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "Template": { + "properties": { + "template": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + } + } +} \ No newline at end of file diff --git a/schema/openapi/health_github.schema.json b/schema/openapi/health_github.schema.json index dd7b99e1..0bb20d58 100644 --- a/schema/openapi/health_github.schema.json +++ b/schema/openapi/health_github.schema.json @@ -1 +1,272 @@ -{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://github.com/flanksource/canary-checker/api/v1/git-hub-check","$ref":"#/$defs/GitHubCheck","$defs":{"ConfigMapKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"EnvVar":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueFrom":{"$ref":"#/$defs/EnvVarSource"}},"additionalProperties":false,"type":"object"},"EnvVarSource":{"properties":{"serviceAccount":{"type":"string"},"helmRef":{"$ref":"#/$defs/HelmRefKeySelector"},"configMapKeyRef":{"$ref":"#/$defs/ConfigMapKeySelector"},"secretKeyRef":{"$ref":"#/$defs/SecretKeySelector"}},"additionalProperties":false,"type":"object"},"GitHubCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"connection":{"type":"string"},"query":{"type":"string"},"githubToken":{"$ref":"#/$defs/EnvVar"}},"additionalProperties":false,"type":"object","required":["name","query"]},"HelmRefKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"Labels":{"additionalProperties":{"type":"string"},"type":"object"},"MetricLabel":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueExpr":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name"]},"MetricLabels":{"items":{"$ref":"#/$defs/MetricLabel"},"type":"array"},"Metrics":{"properties":{"name":{"type":"string"},"labels":{"$ref":"#/$defs/MetricLabels"},"type":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false,"type":"object"},"SecretKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"Template":{"properties":{"template":{"type":"string"},"jsonPath":{"type":"string"},"expr":{"type":"string"},"javascript":{"type":"string"}},"additionalProperties":false,"type":"object"}}} \ No newline at end of file +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://github.com/flanksource/canary-checker/api/v1/git-hub-check", + "$ref": "#/$defs/GitHubCheck", + "$defs": { + "CheckRelationship": { + "properties": { + "components": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + }, + "configs": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ConfigMapKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "EnvVar": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "$ref": "#/$defs/EnvVarSource" + } + }, + "additionalProperties": false, + "type": "object" + }, + "EnvVarSource": { + "properties": { + "serviceAccount": { + "type": "string" + }, + "helmRef": { + "$ref": "#/$defs/HelmRefKeySelector" + }, + "configMapKeyRef": { + "$ref": "#/$defs/ConfigMapKeySelector" + }, + "secretKeyRef": { + "$ref": "#/$defs/SecretKeySelector" + } + }, + "additionalProperties": false, + "type": "object" + }, + "GitHubCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "connection": { + "type": "string" + }, + "query": { + "type": "string" + }, + "githubToken": { + "$ref": "#/$defs/EnvVar" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "query" + ] + }, + "HelmRefKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "Labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "Lookup": { + "properties": { + "expr": { + "type": "string" + }, + "value": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "MetricLabel": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "MetricLabels": { + "items": { + "$ref": "#/$defs/MetricLabel" + }, + "type": "array" + }, + "Metrics": { + "properties": { + "name": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/MetricLabels" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "RelationshipSelectorTemplate": { + "properties": { + "id": { + "$ref": "#/$defs/Lookup" + }, + "external_id": { + "$ref": "#/$defs/Lookup" + }, + "name": { + "$ref": "#/$defs/Lookup" + }, + "namespace": { + "$ref": "#/$defs/Lookup" + }, + "type": { + "$ref": "#/$defs/Lookup" + }, + "agent": { + "$ref": "#/$defs/Lookup" + }, + "scope": { + "$ref": "#/$defs/Lookup" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "additionalProperties": false, + "type": "object" + }, + "SecretKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "Template": { + "properties": { + "template": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + } + } +} \ No newline at end of file diff --git a/schema/openapi/health_helm.schema.json b/schema/openapi/health_helm.schema.json index bb2c129a..9110bb45 100644 --- a/schema/openapi/health_helm.schema.json +++ b/schema/openapi/health_helm.schema.json @@ -1 +1,259 @@ -{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://github.com/flanksource/canary-checker/api/v1/helm-check","$ref":"#/$defs/HelmCheck","$defs":{"Authentication":{"properties":{"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"}},"additionalProperties":false,"type":"object"},"ConfigMapKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"EnvVar":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueFrom":{"$ref":"#/$defs/EnvVarSource"}},"additionalProperties":false,"type":"object"},"EnvVarSource":{"properties":{"serviceAccount":{"type":"string"},"helmRef":{"$ref":"#/$defs/HelmRefKeySelector"},"configMapKeyRef":{"$ref":"#/$defs/ConfigMapKeySelector"},"secretKeyRef":{"$ref":"#/$defs/SecretKeySelector"}},"additionalProperties":false,"type":"object"},"HelmCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"chartmuseum":{"type":"string"},"project":{"type":"string"},"auth":{"$ref":"#/$defs/Authentication"},"cafile":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name"]},"HelmRefKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"Labels":{"additionalProperties":{"type":"string"},"type":"object"},"MetricLabel":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueExpr":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name"]},"MetricLabels":{"items":{"$ref":"#/$defs/MetricLabel"},"type":"array"},"Metrics":{"properties":{"name":{"type":"string"},"labels":{"$ref":"#/$defs/MetricLabels"},"type":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false,"type":"object"},"SecretKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]}}} \ No newline at end of file +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://github.com/flanksource/canary-checker/api/v1/helm-check", + "$ref": "#/$defs/HelmCheck", + "$defs": { + "Authentication": { + "properties": { + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + } + }, + "additionalProperties": false, + "type": "object" + }, + "CheckRelationship": { + "properties": { + "components": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + }, + "configs": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ConfigMapKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "EnvVar": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "$ref": "#/$defs/EnvVarSource" + } + }, + "additionalProperties": false, + "type": "object" + }, + "EnvVarSource": { + "properties": { + "serviceAccount": { + "type": "string" + }, + "helmRef": { + "$ref": "#/$defs/HelmRefKeySelector" + }, + "configMapKeyRef": { + "$ref": "#/$defs/ConfigMapKeySelector" + }, + "secretKeyRef": { + "$ref": "#/$defs/SecretKeySelector" + } + }, + "additionalProperties": false, + "type": "object" + }, + "HelmCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "chartmuseum": { + "type": "string" + }, + "project": { + "type": "string" + }, + "auth": { + "$ref": "#/$defs/Authentication" + }, + "cafile": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "HelmRefKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "Labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "Lookup": { + "properties": { + "expr": { + "type": "string" + }, + "value": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "MetricLabel": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "MetricLabels": { + "items": { + "$ref": "#/$defs/MetricLabel" + }, + "type": "array" + }, + "Metrics": { + "properties": { + "name": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/MetricLabels" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "RelationshipSelectorTemplate": { + "properties": { + "id": { + "$ref": "#/$defs/Lookup" + }, + "external_id": { + "$ref": "#/$defs/Lookup" + }, + "name": { + "$ref": "#/$defs/Lookup" + }, + "namespace": { + "$ref": "#/$defs/Lookup" + }, + "type": { + "$ref": "#/$defs/Lookup" + }, + "agent": { + "$ref": "#/$defs/Lookup" + }, + "scope": { + "$ref": "#/$defs/Lookup" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "additionalProperties": false, + "type": "object" + }, + "SecretKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + } + } +} \ No newline at end of file diff --git a/schema/openapi/health_http.schema.json b/schema/openapi/health_http.schema.json index 06d16e88..7c60da87 100644 --- a/schema/openapi/health_http.schema.json +++ b/schema/openapi/health_http.schema.json @@ -1 +1,386 @@ -{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://github.com/flanksource/canary-checker/api/v1/http-check","$ref":"#/$defs/HTTPCheck","$defs":{"ConfigMapKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"EnvVar":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueFrom":{"$ref":"#/$defs/EnvVarSource"}},"additionalProperties":false,"type":"object"},"EnvVarSource":{"properties":{"serviceAccount":{"type":"string"},"helmRef":{"$ref":"#/$defs/HelmRefKeySelector"},"configMapKeyRef":{"$ref":"#/$defs/ConfigMapKeySelector"},"secretKeyRef":{"$ref":"#/$defs/SecretKeySelector"}},"additionalProperties":false,"type":"object"},"HTTPCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"connection":{"type":"string"},"url":{"type":"string"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"},"endpoint":{"type":"string"},"thresholdMillis":{"type":"integer"},"responseCodes":{"items":{"type":"integer"},"type":"array"},"responseContent":{"type":"string"},"responseJSONContent":{"$ref":"#/$defs/JSONCheck"},"maxSSLExpiry":{"type":"integer"},"method":{"type":"string"},"ntlm":{"type":"boolean"},"ntlmv2":{"type":"boolean"},"body":{"type":"string"},"headers":{"items":{"$ref":"#/$defs/EnvVar"},"type":"array"},"templateBody":{"type":"boolean"},"env":{"items":{"$ref":"#/$defs/EnvVar"},"type":"array"},"oauth2":{"$ref":"#/$defs/Oauth2Config"}},"additionalProperties":false,"type":"object","required":["name"]},"HelmRefKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"JSONCheck":{"properties":{"path":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false,"type":"object","required":["path","value"]},"Labels":{"additionalProperties":{"type":"string"},"type":"object"},"MetricLabel":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueExpr":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name"]},"MetricLabels":{"items":{"$ref":"#/$defs/MetricLabel"},"type":"array"},"Metrics":{"properties":{"name":{"type":"string"},"labels":{"$ref":"#/$defs/MetricLabels"},"type":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false,"type":"object"},"Oauth2Config":{"properties":{"scope":{"items":{"type":"string"},"type":"array"},"tokenURL":{"type":"string"},"params":{"additionalProperties":{"type":"string"},"type":"object"}},"additionalProperties":false,"type":"object"},"SecretKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"Template":{"properties":{"template":{"type":"string"},"jsonPath":{"type":"string"},"expr":{"type":"string"},"javascript":{"type":"string"}},"additionalProperties":false,"type":"object"}}} \ No newline at end of file +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://github.com/flanksource/canary-checker/api/v1/http-check", + "$ref": "#/$defs/HTTPCheck", + "$defs": { + "CheckRelationship": { + "properties": { + "components": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + }, + "configs": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ConfigMapKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "EnvVar": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "$ref": "#/$defs/EnvVarSource" + } + }, + "additionalProperties": false, + "type": "object" + }, + "EnvVarSource": { + "properties": { + "serviceAccount": { + "type": "string" + }, + "helmRef": { + "$ref": "#/$defs/HelmRefKeySelector" + }, + "configMapKeyRef": { + "$ref": "#/$defs/ConfigMapKeySelector" + }, + "secretKeyRef": { + "$ref": "#/$defs/SecretKeySelector" + } + }, + "additionalProperties": false, + "type": "object" + }, + "HTTPCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "connection": { + "type": "string" + }, + "url": { + "type": "string" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + }, + "endpoint": { + "type": "string" + }, + "thresholdMillis": { + "type": "integer" + }, + "responseCodes": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "responseContent": { + "type": "string" + }, + "responseJSONContent": { + "$ref": "#/$defs/JSONCheck" + }, + "maxSSLExpiry": { + "type": "integer" + }, + "method": { + "type": "string" + }, + "ntlm": { + "type": "boolean" + }, + "ntlmv2": { + "type": "boolean" + }, + "body": { + "type": "string" + }, + "headers": { + "items": { + "$ref": "#/$defs/EnvVar" + }, + "type": "array" + }, + "templateBody": { + "type": "boolean" + }, + "env": { + "items": { + "$ref": "#/$defs/EnvVar" + }, + "type": "array" + }, + "oauth2": { + "$ref": "#/$defs/Oauth2Config" + }, + "tlsConfig": { + "$ref": "#/$defs/TLSConfig" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "HelmRefKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "JSONCheck": { + "properties": { + "path": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "path", + "value" + ] + }, + "Labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "Lookup": { + "properties": { + "expr": { + "type": "string" + }, + "value": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "MetricLabel": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "MetricLabels": { + "items": { + "$ref": "#/$defs/MetricLabel" + }, + "type": "array" + }, + "Metrics": { + "properties": { + "name": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/MetricLabels" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "Oauth2Config": { + "properties": { + "scope": { + "items": { + "type": "string" + }, + "type": "array" + }, + "tokenURL": { + "type": "string" + }, + "params": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "additionalProperties": false, + "type": "object" + }, + "RelationshipSelectorTemplate": { + "properties": { + "id": { + "$ref": "#/$defs/Lookup" + }, + "external_id": { + "$ref": "#/$defs/Lookup" + }, + "name": { + "$ref": "#/$defs/Lookup" + }, + "namespace": { + "$ref": "#/$defs/Lookup" + }, + "type": { + "$ref": "#/$defs/Lookup" + }, + "agent": { + "$ref": "#/$defs/Lookup" + }, + "scope": { + "$ref": "#/$defs/Lookup" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "additionalProperties": false, + "type": "object" + }, + "SecretKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "TLSConfig": { + "properties": { + "insecureSkipVerify": { + "type": "boolean" + }, + "handshakeTimeout": { + "type": "integer" + }, + "ca": { + "$ref": "#/$defs/EnvVar" + }, + "cert": { + "$ref": "#/$defs/EnvVar" + }, + "key": { + "$ref": "#/$defs/EnvVar" + } + }, + "additionalProperties": false, + "type": "object" + }, + "Template": { + "properties": { + "template": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + } + } +} \ No newline at end of file diff --git a/schema/openapi/health_icmp.schema.json b/schema/openapi/health_icmp.schema.json index 613fd054..6d6d3b8e 100644 --- a/schema/openapi/health_icmp.schema.json +++ b/schema/openapi/health_icmp.schema.json @@ -1 +1,169 @@ -{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://github.com/flanksource/canary-checker/api/v1/icmp-check","$ref":"#/$defs/ICMPCheck","$defs":{"ICMPCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"endpoint":{"type":"string"},"thresholdMillis":{"type":"integer"},"packetLossThreshold":{"type":"integer"},"packetCount":{"type":"integer"}},"additionalProperties":false,"type":"object","required":["name"]},"Labels":{"additionalProperties":{"type":"string"},"type":"object"},"MetricLabel":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueExpr":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name"]},"MetricLabels":{"items":{"$ref":"#/$defs/MetricLabel"},"type":"array"},"Metrics":{"properties":{"name":{"type":"string"},"labels":{"$ref":"#/$defs/MetricLabels"},"type":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false,"type":"object"}}} \ No newline at end of file +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://github.com/flanksource/canary-checker/api/v1/icmp-check", + "$ref": "#/$defs/ICMPCheck", + "$defs": { + "CheckRelationship": { + "properties": { + "components": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + }, + "configs": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ICMPCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "endpoint": { + "type": "string" + }, + "thresholdMillis": { + "type": "integer" + }, + "packetLossThreshold": { + "type": "integer" + }, + "packetCount": { + "type": "integer" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "Labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "Lookup": { + "properties": { + "expr": { + "type": "string" + }, + "value": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "MetricLabel": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "MetricLabels": { + "items": { + "$ref": "#/$defs/MetricLabel" + }, + "type": "array" + }, + "Metrics": { + "properties": { + "name": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/MetricLabels" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "RelationshipSelectorTemplate": { + "properties": { + "id": { + "$ref": "#/$defs/Lookup" + }, + "external_id": { + "$ref": "#/$defs/Lookup" + }, + "name": { + "$ref": "#/$defs/Lookup" + }, + "namespace": { + "$ref": "#/$defs/Lookup" + }, + "type": { + "$ref": "#/$defs/Lookup" + }, + "agent": { + "$ref": "#/$defs/Lookup" + }, + "scope": { + "$ref": "#/$defs/Lookup" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "additionalProperties": false, + "type": "object" + } + } +} \ No newline at end of file diff --git a/schema/openapi/health_jmeter.schema.json b/schema/openapi/health_jmeter.schema.json index 858995d6..136fb8f6 100644 --- a/schema/openapi/health_jmeter.schema.json +++ b/schema/openapi/health_jmeter.schema.json @@ -1 +1,260 @@ -{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://github.com/flanksource/canary-checker/api/v1/jmeter-check","$ref":"#/$defs/JmeterCheck","$defs":{"ConfigMapKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"EnvVar":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueFrom":{"$ref":"#/$defs/EnvVarSource"}},"additionalProperties":false,"type":"object"},"EnvVarSource":{"properties":{"serviceAccount":{"type":"string"},"helmRef":{"$ref":"#/$defs/HelmRefKeySelector"},"configMapKeyRef":{"$ref":"#/$defs/ConfigMapKeySelector"},"secretKeyRef":{"$ref":"#/$defs/SecretKeySelector"}},"additionalProperties":false,"type":"object"},"HelmRefKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"JmeterCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"jmx":{"$ref":"#/$defs/EnvVar"},"host":{"type":"string"},"port":{"type":"integer"},"properties":{"items":{"type":"string"},"type":"array"},"systemProperties":{"items":{"type":"string"},"type":"array"},"responseDuration":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name","jmx"]},"Labels":{"additionalProperties":{"type":"string"},"type":"object"},"MetricLabel":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueExpr":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name"]},"MetricLabels":{"items":{"$ref":"#/$defs/MetricLabel"},"type":"array"},"Metrics":{"properties":{"name":{"type":"string"},"labels":{"$ref":"#/$defs/MetricLabels"},"type":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false,"type":"object"},"SecretKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]}}} \ No newline at end of file +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://github.com/flanksource/canary-checker/api/v1/jmeter-check", + "$ref": "#/$defs/JmeterCheck", + "$defs": { + "CheckRelationship": { + "properties": { + "components": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + }, + "configs": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ConfigMapKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "EnvVar": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "$ref": "#/$defs/EnvVarSource" + } + }, + "additionalProperties": false, + "type": "object" + }, + "EnvVarSource": { + "properties": { + "serviceAccount": { + "type": "string" + }, + "helmRef": { + "$ref": "#/$defs/HelmRefKeySelector" + }, + "configMapKeyRef": { + "$ref": "#/$defs/ConfigMapKeySelector" + }, + "secretKeyRef": { + "$ref": "#/$defs/SecretKeySelector" + } + }, + "additionalProperties": false, + "type": "object" + }, + "HelmRefKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "JmeterCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "jmx": { + "$ref": "#/$defs/EnvVar" + }, + "host": { + "type": "string" + }, + "port": { + "type": "integer" + }, + "properties": { + "items": { + "type": "string" + }, + "type": "array" + }, + "systemProperties": { + "items": { + "type": "string" + }, + "type": "array" + }, + "responseDuration": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "jmx" + ] + }, + "Labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "Lookup": { + "properties": { + "expr": { + "type": "string" + }, + "value": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "MetricLabel": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "MetricLabels": { + "items": { + "$ref": "#/$defs/MetricLabel" + }, + "type": "array" + }, + "Metrics": { + "properties": { + "name": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/MetricLabels" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "RelationshipSelectorTemplate": { + "properties": { + "id": { + "$ref": "#/$defs/Lookup" + }, + "external_id": { + "$ref": "#/$defs/Lookup" + }, + "name": { + "$ref": "#/$defs/Lookup" + }, + "namespace": { + "$ref": "#/$defs/Lookup" + }, + "type": { + "$ref": "#/$defs/Lookup" + }, + "agent": { + "$ref": "#/$defs/Lookup" + }, + "scope": { + "$ref": "#/$defs/Lookup" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "additionalProperties": false, + "type": "object" + }, + "SecretKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + } + } +} \ No newline at end of file diff --git a/schema/openapi/health_junit.schema.json b/schema/openapi/health_junit.schema.json index 3643d095..f447b24d 100644 --- a/schema/openapi/health_junit.schema.json +++ b/schema/openapi/health_junit.schema.json @@ -1 +1,211 @@ -{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://github.com/flanksource/canary-checker/api/v1/junit-check","$ref":"#/$defs/JunitCheck","$defs":{"Artifact":{"properties":{"path":{"type":"string"}},"additionalProperties":false,"type":"object","required":["path"]},"JunitCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"testResults":{"type":"string"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"timeout":{"type":"integer"},"spec":true,"artifacts":{"items":{"$ref":"#/$defs/Artifact"},"type":"array"}},"additionalProperties":false,"type":"object","required":["name","testResults","spec"]},"Labels":{"additionalProperties":{"type":"string"},"type":"object"},"MetricLabel":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueExpr":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name"]},"MetricLabels":{"items":{"$ref":"#/$defs/MetricLabel"},"type":"array"},"Metrics":{"properties":{"name":{"type":"string"},"labels":{"$ref":"#/$defs/MetricLabels"},"type":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false,"type":"object"},"Template":{"properties":{"template":{"type":"string"},"jsonPath":{"type":"string"},"expr":{"type":"string"},"javascript":{"type":"string"}},"additionalProperties":false,"type":"object"}}} \ No newline at end of file +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://github.com/flanksource/canary-checker/api/v1/junit-check", + "$ref": "#/$defs/JunitCheck", + "$defs": { + "Artifact": { + "properties": { + "path": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "path" + ] + }, + "CheckRelationship": { + "properties": { + "components": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + }, + "configs": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object" + }, + "JunitCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "testResults": { + "type": "string" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "timeout": { + "type": "integer" + }, + "spec": true, + "artifacts": { + "items": { + "$ref": "#/$defs/Artifact" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "testResults", + "spec" + ] + }, + "Labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "Lookup": { + "properties": { + "expr": { + "type": "string" + }, + "value": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "MetricLabel": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "MetricLabels": { + "items": { + "$ref": "#/$defs/MetricLabel" + }, + "type": "array" + }, + "Metrics": { + "properties": { + "name": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/MetricLabels" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "RelationshipSelectorTemplate": { + "properties": { + "id": { + "$ref": "#/$defs/Lookup" + }, + "external_id": { + "$ref": "#/$defs/Lookup" + }, + "name": { + "$ref": "#/$defs/Lookup" + }, + "namespace": { + "$ref": "#/$defs/Lookup" + }, + "type": { + "$ref": "#/$defs/Lookup" + }, + "agent": { + "$ref": "#/$defs/Lookup" + }, + "scope": { + "$ref": "#/$defs/Lookup" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "additionalProperties": false, + "type": "object" + }, + "Template": { + "properties": { + "template": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + } + } +} \ No newline at end of file diff --git a/schema/openapi/health_kubernetes.schema.json b/schema/openapi/health_kubernetes.schema.json index 69ec1125..4fa41d62 100644 --- a/schema/openapi/health_kubernetes.schema.json +++ b/schema/openapi/health_kubernetes.schema.json @@ -1 +1,302 @@ -{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://github.com/flanksource/canary-checker/api/v1/kubernetes","$ref":"#/$defs/Kubernetes","$defs":{"ConfigMapKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"EnvVar":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueFrom":{"$ref":"#/$defs/EnvVarSource"}},"additionalProperties":false,"type":"object"},"EnvVarSource":{"properties":{"serviceAccount":{"type":"string"},"helmRef":{"$ref":"#/$defs/HelmRefKeySelector"},"configMapKeyRef":{"$ref":"#/$defs/ConfigMapKeySelector"},"secretKeyRef":{"$ref":"#/$defs/SecretKeySelector"}},"additionalProperties":false,"type":"object"},"HelmRefKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"Kubernetes":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"namespaceSelector":{"$ref":"#/$defs/ResourceSelector"},"resource":{"$ref":"#/$defs/ResourceSelector"},"kubeconfig":{"$ref":"#/$defs/EnvVar"},"ignore":{"items":{"type":"string"},"type":"array"},"kind":{"type":"string"},"healthy":{"type":"boolean"},"ready":{"type":"boolean"}},"additionalProperties":false,"type":"object","required":["name","kind"]},"Labels":{"additionalProperties":{"type":"string"},"type":"object"},"MetricLabel":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueExpr":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name"]},"MetricLabels":{"items":{"$ref":"#/$defs/MetricLabel"},"type":"array"},"Metrics":{"properties":{"name":{"type":"string"},"labels":{"$ref":"#/$defs/MetricLabels"},"type":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false,"type":"object"},"ResourceSelector":{"properties":{"name":{"type":"string"},"labelSelector":{"type":"string"},"fieldSelector":{"type":"string"}},"additionalProperties":false,"type":"object"},"SecretKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"Template":{"properties":{"template":{"type":"string"},"jsonPath":{"type":"string"},"expr":{"type":"string"},"javascript":{"type":"string"}},"additionalProperties":false,"type":"object"}}} \ No newline at end of file +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://github.com/flanksource/canary-checker/api/v1/kubernetes", + "$ref": "#/$defs/Kubernetes", + "$defs": { + "CheckRelationship": { + "properties": { + "components": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + }, + "configs": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ConfigMapKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "EnvVar": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "$ref": "#/$defs/EnvVarSource" + } + }, + "additionalProperties": false, + "type": "object" + }, + "EnvVarSource": { + "properties": { + "serviceAccount": { + "type": "string" + }, + "helmRef": { + "$ref": "#/$defs/HelmRefKeySelector" + }, + "configMapKeyRef": { + "$ref": "#/$defs/ConfigMapKeySelector" + }, + "secretKeyRef": { + "$ref": "#/$defs/SecretKeySelector" + } + }, + "additionalProperties": false, + "type": "object" + }, + "HelmRefKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "Kubernetes": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "namespaceSelector": { + "$ref": "#/$defs/ResourceSelector" + }, + "resource": { + "$ref": "#/$defs/ResourceSelector" + }, + "kubeconfig": { + "$ref": "#/$defs/EnvVar" + }, + "ignore": { + "items": { + "type": "string" + }, + "type": "array" + }, + "kind": { + "type": "string" + }, + "healthy": { + "type": "boolean" + }, + "ready": { + "type": "boolean" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "kind" + ] + }, + "Labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "Lookup": { + "properties": { + "expr": { + "type": "string" + }, + "value": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "MetricLabel": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "MetricLabels": { + "items": { + "$ref": "#/$defs/MetricLabel" + }, + "type": "array" + }, + "Metrics": { + "properties": { + "name": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/MetricLabels" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "RelationshipSelectorTemplate": { + "properties": { + "id": { + "$ref": "#/$defs/Lookup" + }, + "external_id": { + "$ref": "#/$defs/Lookup" + }, + "name": { + "$ref": "#/$defs/Lookup" + }, + "namespace": { + "$ref": "#/$defs/Lookup" + }, + "type": { + "$ref": "#/$defs/Lookup" + }, + "agent": { + "$ref": "#/$defs/Lookup" + }, + "scope": { + "$ref": "#/$defs/Lookup" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ResourceSelector": { + "properties": { + "name": { + "type": "string" + }, + "labelSelector": { + "type": "string" + }, + "fieldSelector": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "SecretKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "Template": { + "properties": { + "template": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + } + } +} \ No newline at end of file diff --git a/schema/openapi/health_ldap.schema.json b/schema/openapi/health_ldap.schema.json index 3f74779e..d6dc3f1d 100644 --- a/schema/openapi/health_ldap.schema.json +++ b/schema/openapi/health_ldap.schema.json @@ -1 +1,257 @@ -{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://github.com/flanksource/canary-checker/api/v1/ldap-check","$ref":"#/$defs/LDAPCheck","$defs":{"ConfigMapKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"EnvVar":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueFrom":{"$ref":"#/$defs/EnvVarSource"}},"additionalProperties":false,"type":"object"},"EnvVarSource":{"properties":{"serviceAccount":{"type":"string"},"helmRef":{"$ref":"#/$defs/HelmRefKeySelector"},"configMapKeyRef":{"$ref":"#/$defs/ConfigMapKeySelector"},"secretKeyRef":{"$ref":"#/$defs/SecretKeySelector"}},"additionalProperties":false,"type":"object"},"HelmRefKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"LDAPCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"connection":{"type":"string"},"url":{"type":"string"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"},"bindDN":{"type":"string"},"userSearch":{"type":"string"},"skipTLSVerify":{"type":"boolean"}},"additionalProperties":false,"type":"object","required":["name","bindDN"]},"Labels":{"additionalProperties":{"type":"string"},"type":"object"},"MetricLabel":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueExpr":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name"]},"MetricLabels":{"items":{"$ref":"#/$defs/MetricLabel"},"type":"array"},"Metrics":{"properties":{"name":{"type":"string"},"labels":{"$ref":"#/$defs/MetricLabels"},"type":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false,"type":"object"},"SecretKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]}}} \ No newline at end of file +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://github.com/flanksource/canary-checker/api/v1/ldap-check", + "$ref": "#/$defs/LDAPCheck", + "$defs": { + "CheckRelationship": { + "properties": { + "components": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + }, + "configs": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ConfigMapKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "EnvVar": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "$ref": "#/$defs/EnvVarSource" + } + }, + "additionalProperties": false, + "type": "object" + }, + "EnvVarSource": { + "properties": { + "serviceAccount": { + "type": "string" + }, + "helmRef": { + "$ref": "#/$defs/HelmRefKeySelector" + }, + "configMapKeyRef": { + "$ref": "#/$defs/ConfigMapKeySelector" + }, + "secretKeyRef": { + "$ref": "#/$defs/SecretKeySelector" + } + }, + "additionalProperties": false, + "type": "object" + }, + "HelmRefKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "LDAPCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "connection": { + "type": "string" + }, + "url": { + "type": "string" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + }, + "bindDN": { + "type": "string" + }, + "userSearch": { + "type": "string" + }, + "skipTLSVerify": { + "type": "boolean" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "bindDN" + ] + }, + "Labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "Lookup": { + "properties": { + "expr": { + "type": "string" + }, + "value": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "MetricLabel": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "MetricLabels": { + "items": { + "$ref": "#/$defs/MetricLabel" + }, + "type": "array" + }, + "Metrics": { + "properties": { + "name": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/MetricLabels" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "RelationshipSelectorTemplate": { + "properties": { + "id": { + "$ref": "#/$defs/Lookup" + }, + "external_id": { + "$ref": "#/$defs/Lookup" + }, + "name": { + "$ref": "#/$defs/Lookup" + }, + "namespace": { + "$ref": "#/$defs/Lookup" + }, + "type": { + "$ref": "#/$defs/Lookup" + }, + "agent": { + "$ref": "#/$defs/Lookup" + }, + "scope": { + "$ref": "#/$defs/Lookup" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "additionalProperties": false, + "type": "object" + }, + "SecretKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + } + } +} \ No newline at end of file diff --git a/schema/openapi/health_mongodb.schema.json b/schema/openapi/health_mongodb.schema.json index 5874fa29..1e1eb80d 100644 --- a/schema/openapi/health_mongodb.schema.json +++ b/schema/openapi/health_mongodb.schema.json @@ -1 +1,178 @@ -{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://github.com/flanksource/canary-checker/api/v1/mongo-db-check","$ref":"#/$defs/MongoDBCheck","$defs":{"ConfigMapKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"EnvVar":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueFrom":{"$ref":"#/$defs/EnvVarSource"}},"additionalProperties":false,"type":"object"},"EnvVarSource":{"properties":{"serviceAccount":{"type":"string"},"helmRef":{"$ref":"#/$defs/HelmRefKeySelector"},"configMapKeyRef":{"$ref":"#/$defs/ConfigMapKeySelector"},"secretKeyRef":{"$ref":"#/$defs/SecretKeySelector"}},"additionalProperties":false,"type":"object"},"HelmRefKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"Labels":{"additionalProperties":{"type":"string"},"type":"object"},"MetricLabel":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueExpr":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name"]},"MetricLabels":{"items":{"$ref":"#/$defs/MetricLabel"},"type":"array"},"Metrics":{"properties":{"name":{"type":"string"},"labels":{"$ref":"#/$defs/MetricLabels"},"type":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false,"type":"object"},"MongoDBCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"connection":{"type":"string"},"url":{"type":"string"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"}},"additionalProperties":false,"type":"object","required":["name"]},"SecretKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]}}} \ No newline at end of file +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://github.com/flanksource/canary-checker/api/v1/mongo-db-check", + "$ref": "#/$defs/MongoDBCheck", + "$defs": { + "ConfigMapKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "EnvVar": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "$ref": "#/$defs/EnvVarSource" + } + }, + "additionalProperties": false, + "type": "object" + }, + "EnvVarSource": { + "properties": { + "serviceAccount": { + "type": "string" + }, + "helmRef": { + "$ref": "#/$defs/HelmRefKeySelector" + }, + "configMapKeyRef": { + "$ref": "#/$defs/ConfigMapKeySelector" + }, + "secretKeyRef": { + "$ref": "#/$defs/SecretKeySelector" + } + }, + "additionalProperties": false, + "type": "object" + }, + "HelmRefKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "Labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "MetricLabel": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "MetricLabels": { + "items": { + "$ref": "#/$defs/MetricLabel" + }, + "type": "array" + }, + "Metrics": { + "properties": { + "name": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/MetricLabels" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "MongoDBCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "connection": { + "type": "string" + }, + "url": { + "type": "string" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "SecretKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + } + } +} \ No newline at end of file diff --git a/schema/openapi/health_mssql.schema.json b/schema/openapi/health_mssql.schema.json index 8c77ce2a..9dc34e5f 100644 --- a/schema/openapi/health_mssql.schema.json +++ b/schema/openapi/health_mssql.schema.json @@ -1 +1,280 @@ -{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://github.com/flanksource/canary-checker/api/v1/mssql-check","$ref":"#/$defs/MssqlCheck","$defs":{"ConfigMapKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"EnvVar":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueFrom":{"$ref":"#/$defs/EnvVarSource"}},"additionalProperties":false,"type":"object"},"EnvVarSource":{"properties":{"serviceAccount":{"type":"string"},"helmRef":{"$ref":"#/$defs/HelmRefKeySelector"},"configMapKeyRef":{"$ref":"#/$defs/ConfigMapKeySelector"},"secretKeyRef":{"$ref":"#/$defs/SecretKeySelector"}},"additionalProperties":false,"type":"object"},"HelmRefKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"Labels":{"additionalProperties":{"type":"string"},"type":"object"},"MetricLabel":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueExpr":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name"]},"MetricLabels":{"items":{"$ref":"#/$defs/MetricLabel"},"type":"array"},"Metrics":{"properties":{"name":{"type":"string"},"labels":{"$ref":"#/$defs/MetricLabels"},"type":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false,"type":"object"},"MssqlCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"connection":{"type":"string"},"url":{"type":"string"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"},"query":{"type":"string"},"results":{"type":"integer"}},"additionalProperties":false,"type":"object","required":["name"]},"SecretKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"Template":{"properties":{"template":{"type":"string"},"jsonPath":{"type":"string"},"expr":{"type":"string"},"javascript":{"type":"string"}},"additionalProperties":false,"type":"object"}}} \ No newline at end of file +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://github.com/flanksource/canary-checker/api/v1/mssql-check", + "$ref": "#/$defs/MssqlCheck", + "$defs": { + "CheckRelationship": { + "properties": { + "components": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + }, + "configs": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ConfigMapKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "EnvVar": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "$ref": "#/$defs/EnvVarSource" + } + }, + "additionalProperties": false, + "type": "object" + }, + "EnvVarSource": { + "properties": { + "serviceAccount": { + "type": "string" + }, + "helmRef": { + "$ref": "#/$defs/HelmRefKeySelector" + }, + "configMapKeyRef": { + "$ref": "#/$defs/ConfigMapKeySelector" + }, + "secretKeyRef": { + "$ref": "#/$defs/SecretKeySelector" + } + }, + "additionalProperties": false, + "type": "object" + }, + "HelmRefKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "Labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "Lookup": { + "properties": { + "expr": { + "type": "string" + }, + "value": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "MetricLabel": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "MetricLabels": { + "items": { + "$ref": "#/$defs/MetricLabel" + }, + "type": "array" + }, + "Metrics": { + "properties": { + "name": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/MetricLabels" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "MssqlCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "connection": { + "type": "string" + }, + "url": { + "type": "string" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + }, + "query": { + "type": "string" + }, + "results": { + "type": "integer" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "RelationshipSelectorTemplate": { + "properties": { + "id": { + "$ref": "#/$defs/Lookup" + }, + "external_id": { + "$ref": "#/$defs/Lookup" + }, + "name": { + "$ref": "#/$defs/Lookup" + }, + "namespace": { + "$ref": "#/$defs/Lookup" + }, + "type": { + "$ref": "#/$defs/Lookup" + }, + "agent": { + "$ref": "#/$defs/Lookup" + }, + "scope": { + "$ref": "#/$defs/Lookup" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "additionalProperties": false, + "type": "object" + }, + "SecretKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "Template": { + "properties": { + "template": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + } + } +} \ No newline at end of file diff --git a/schema/openapi/health_mysql.schema.json b/schema/openapi/health_mysql.schema.json index 73155fc3..0296aaa9 100644 --- a/schema/openapi/health_mysql.schema.json +++ b/schema/openapi/health_mysql.schema.json @@ -1 +1,280 @@ -{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://github.com/flanksource/canary-checker/api/v1/mysql-check","$ref":"#/$defs/MysqlCheck","$defs":{"ConfigMapKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"EnvVar":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueFrom":{"$ref":"#/$defs/EnvVarSource"}},"additionalProperties":false,"type":"object"},"EnvVarSource":{"properties":{"serviceAccount":{"type":"string"},"helmRef":{"$ref":"#/$defs/HelmRefKeySelector"},"configMapKeyRef":{"$ref":"#/$defs/ConfigMapKeySelector"},"secretKeyRef":{"$ref":"#/$defs/SecretKeySelector"}},"additionalProperties":false,"type":"object"},"HelmRefKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"Labels":{"additionalProperties":{"type":"string"},"type":"object"},"MetricLabel":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueExpr":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name"]},"MetricLabels":{"items":{"$ref":"#/$defs/MetricLabel"},"type":"array"},"Metrics":{"properties":{"name":{"type":"string"},"labels":{"$ref":"#/$defs/MetricLabels"},"type":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false,"type":"object"},"MysqlCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"connection":{"type":"string"},"url":{"type":"string"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"},"query":{"type":"string"},"results":{"type":"integer"}},"additionalProperties":false,"type":"object","required":["name"]},"SecretKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"Template":{"properties":{"template":{"type":"string"},"jsonPath":{"type":"string"},"expr":{"type":"string"},"javascript":{"type":"string"}},"additionalProperties":false,"type":"object"}}} \ No newline at end of file +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://github.com/flanksource/canary-checker/api/v1/mysql-check", + "$ref": "#/$defs/MysqlCheck", + "$defs": { + "CheckRelationship": { + "properties": { + "components": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + }, + "configs": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ConfigMapKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "EnvVar": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "$ref": "#/$defs/EnvVarSource" + } + }, + "additionalProperties": false, + "type": "object" + }, + "EnvVarSource": { + "properties": { + "serviceAccount": { + "type": "string" + }, + "helmRef": { + "$ref": "#/$defs/HelmRefKeySelector" + }, + "configMapKeyRef": { + "$ref": "#/$defs/ConfigMapKeySelector" + }, + "secretKeyRef": { + "$ref": "#/$defs/SecretKeySelector" + } + }, + "additionalProperties": false, + "type": "object" + }, + "HelmRefKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "Labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "Lookup": { + "properties": { + "expr": { + "type": "string" + }, + "value": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "MetricLabel": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "MetricLabels": { + "items": { + "$ref": "#/$defs/MetricLabel" + }, + "type": "array" + }, + "Metrics": { + "properties": { + "name": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/MetricLabels" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "MysqlCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "connection": { + "type": "string" + }, + "url": { + "type": "string" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + }, + "query": { + "type": "string" + }, + "results": { + "type": "integer" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "RelationshipSelectorTemplate": { + "properties": { + "id": { + "$ref": "#/$defs/Lookup" + }, + "external_id": { + "$ref": "#/$defs/Lookup" + }, + "name": { + "$ref": "#/$defs/Lookup" + }, + "namespace": { + "$ref": "#/$defs/Lookup" + }, + "type": { + "$ref": "#/$defs/Lookup" + }, + "agent": { + "$ref": "#/$defs/Lookup" + }, + "scope": { + "$ref": "#/$defs/Lookup" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "additionalProperties": false, + "type": "object" + }, + "SecretKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "Template": { + "properties": { + "template": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + } + } +} \ No newline at end of file diff --git a/schema/openapi/health_namespace.schema.json b/schema/openapi/health_namespace.schema.json index 78d152d7..c4b2c472 100644 --- a/schema/openapi/health_namespace.schema.json +++ b/schema/openapi/health_namespace.schema.json @@ -1 +1,221 @@ -{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://github.com/flanksource/canary-checker/api/v1/namespace-check","$ref":"#/$defs/NamespaceCheck","$defs":{"Labels":{"additionalProperties":{"type":"string"},"type":"object"},"MetricLabel":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueExpr":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name"]},"MetricLabels":{"items":{"$ref":"#/$defs/MetricLabel"},"type":"array"},"Metrics":{"properties":{"name":{"type":"string"},"labels":{"$ref":"#/$defs/MetricLabels"},"type":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false,"type":"object"},"NamespaceCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"namespaceNamePrefix":{"type":"string"},"namespaceLabels":{"additionalProperties":{"type":"string"},"type":"object"},"namespaceAnnotations":{"additionalProperties":{"type":"string"},"type":"object"},"podSpec":{"type":"string"},"schedule_timeout":{"type":"integer"},"readyTimeout":{"type":"integer"},"httpTimeout":{"type":"integer"},"deleteTimeout":{"type":"integer"},"ingressTimeout":{"type":"integer"},"httpRetryInterval":{"type":"integer"},"deadline":{"type":"integer"},"port":{"type":"integer"},"path":{"type":"string"},"ingressName":{"type":"string"},"ingressHost":{"type":"string"},"expectedContent":{"type":"string"},"expectedHttpStatuses":{"items":{"type":"integer"},"type":"array"},"priorityClass":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name","podSpec"]}}} \ No newline at end of file +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://github.com/flanksource/canary-checker/api/v1/namespace-check", + "$ref": "#/$defs/NamespaceCheck", + "$defs": { + "CheckRelationship": { + "properties": { + "components": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + }, + "configs": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object" + }, + "Labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "Lookup": { + "properties": { + "expr": { + "type": "string" + }, + "value": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "MetricLabel": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "MetricLabels": { + "items": { + "$ref": "#/$defs/MetricLabel" + }, + "type": "array" + }, + "Metrics": { + "properties": { + "name": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/MetricLabels" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "NamespaceCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "namespaceNamePrefix": { + "type": "string" + }, + "namespaceLabels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "namespaceAnnotations": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "podSpec": { + "type": "string" + }, + "schedule_timeout": { + "type": "integer" + }, + "readyTimeout": { + "type": "integer" + }, + "httpTimeout": { + "type": "integer" + }, + "deleteTimeout": { + "type": "integer" + }, + "ingressTimeout": { + "type": "integer" + }, + "httpRetryInterval": { + "type": "integer" + }, + "deadline": { + "type": "integer" + }, + "port": { + "type": "integer" + }, + "path": { + "type": "string" + }, + "ingressName": { + "type": "string" + }, + "ingressHost": { + "type": "string" + }, + "expectedContent": { + "type": "string" + }, + "expectedHttpStatuses": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "priorityClass": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "podSpec" + ] + }, + "RelationshipSelectorTemplate": { + "properties": { + "id": { + "$ref": "#/$defs/Lookup" + }, + "external_id": { + "$ref": "#/$defs/Lookup" + }, + "name": { + "$ref": "#/$defs/Lookup" + }, + "namespace": { + "$ref": "#/$defs/Lookup" + }, + "type": { + "$ref": "#/$defs/Lookup" + }, + "agent": { + "$ref": "#/$defs/Lookup" + }, + "scope": { + "$ref": "#/$defs/Lookup" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "additionalProperties": false, + "type": "object" + } + } +} \ No newline at end of file diff --git a/schema/openapi/health_opensearch.schema.json b/schema/openapi/health_opensearch.schema.json index 956344d7..24daa949 100644 --- a/schema/openapi/health_opensearch.schema.json +++ b/schema/openapi/health_opensearch.schema.json @@ -1 +1,285 @@ -{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://github.com/flanksource/canary-checker/api/v1/open-search-check","$ref":"#/$defs/OpenSearchCheck","$defs":{"ConfigMapKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"EnvVar":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueFrom":{"$ref":"#/$defs/EnvVarSource"}},"additionalProperties":false,"type":"object"},"EnvVarSource":{"properties":{"serviceAccount":{"type":"string"},"helmRef":{"$ref":"#/$defs/HelmRefKeySelector"},"configMapKeyRef":{"$ref":"#/$defs/ConfigMapKeySelector"},"secretKeyRef":{"$ref":"#/$defs/SecretKeySelector"}},"additionalProperties":false,"type":"object"},"HelmRefKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"Labels":{"additionalProperties":{"type":"string"},"type":"object"},"MetricLabel":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueExpr":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name"]},"MetricLabels":{"items":{"$ref":"#/$defs/MetricLabel"},"type":"array"},"Metrics":{"properties":{"name":{"type":"string"},"labels":{"$ref":"#/$defs/MetricLabels"},"type":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false,"type":"object"},"OpenSearchCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"connection":{"type":"string"},"url":{"type":"string"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"},"query":{"type":"string"},"index":{"type":"string"},"results":{"type":"integer"}},"additionalProperties":false,"type":"object","required":["name","query","index"]},"SecretKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"Template":{"properties":{"template":{"type":"string"},"jsonPath":{"type":"string"},"expr":{"type":"string"},"javascript":{"type":"string"}},"additionalProperties":false,"type":"object"}}} \ No newline at end of file +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://github.com/flanksource/canary-checker/api/v1/open-search-check", + "$ref": "#/$defs/OpenSearchCheck", + "$defs": { + "CheckRelationship": { + "properties": { + "components": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + }, + "configs": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ConfigMapKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "EnvVar": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "$ref": "#/$defs/EnvVarSource" + } + }, + "additionalProperties": false, + "type": "object" + }, + "EnvVarSource": { + "properties": { + "serviceAccount": { + "type": "string" + }, + "helmRef": { + "$ref": "#/$defs/HelmRefKeySelector" + }, + "configMapKeyRef": { + "$ref": "#/$defs/ConfigMapKeySelector" + }, + "secretKeyRef": { + "$ref": "#/$defs/SecretKeySelector" + } + }, + "additionalProperties": false, + "type": "object" + }, + "HelmRefKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "Labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "Lookup": { + "properties": { + "expr": { + "type": "string" + }, + "value": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "MetricLabel": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "MetricLabels": { + "items": { + "$ref": "#/$defs/MetricLabel" + }, + "type": "array" + }, + "Metrics": { + "properties": { + "name": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/MetricLabels" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "OpenSearchCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "connection": { + "type": "string" + }, + "url": { + "type": "string" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + }, + "query": { + "type": "string" + }, + "index": { + "type": "string" + }, + "results": { + "type": "integer" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "query", + "index" + ] + }, + "RelationshipSelectorTemplate": { + "properties": { + "id": { + "$ref": "#/$defs/Lookup" + }, + "external_id": { + "$ref": "#/$defs/Lookup" + }, + "name": { + "$ref": "#/$defs/Lookup" + }, + "namespace": { + "$ref": "#/$defs/Lookup" + }, + "type": { + "$ref": "#/$defs/Lookup" + }, + "agent": { + "$ref": "#/$defs/Lookup" + }, + "scope": { + "$ref": "#/$defs/Lookup" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "additionalProperties": false, + "type": "object" + }, + "SecretKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "Template": { + "properties": { + "template": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + } + } +} \ No newline at end of file diff --git a/schema/openapi/health_pod.schema.json b/schema/openapi/health_pod.schema.json index 2f9f171a..dff379f5 100644 --- a/schema/openapi/health_pod.schema.json +++ b/schema/openapi/health_pod.schema.json @@ -1 +1,211 @@ -{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://github.com/flanksource/canary-checker/api/v1/pod-check","$ref":"#/$defs/PodCheck","$defs":{"Labels":{"additionalProperties":{"type":"string"},"type":"object"},"MetricLabel":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueExpr":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name"]},"MetricLabels":{"items":{"$ref":"#/$defs/MetricLabel"},"type":"array"},"Metrics":{"properties":{"name":{"type":"string"},"labels":{"$ref":"#/$defs/MetricLabels"},"type":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false,"type":"object"},"PodCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"spec":{"type":"string"},"scheduleTimeout":{"type":"integer"},"readyTimeout":{"type":"integer"},"httpTimeout":{"type":"integer"},"deleteTimeout":{"type":"integer"},"ingressTimeout":{"type":"integer"},"httpRetryInterval":{"type":"integer"},"deadline":{"type":"integer"},"port":{"type":"integer"},"path":{"type":"string"},"ingressName":{"type":"string"},"ingressHost":{"type":"string"},"ingressClass":{"type":"string"},"expectedContent":{"type":"string"},"expectedHttpStatuses":{"items":{"type":"integer"},"type":"array"},"priorityClass":{"type":"string"},"roundRobinNodes":{"type":"boolean"}},"additionalProperties":false,"type":"object","required":["name"]}}} \ No newline at end of file +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://github.com/flanksource/canary-checker/api/v1/pod-check", + "$ref": "#/$defs/PodCheck", + "$defs": { + "CheckRelationship": { + "properties": { + "components": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + }, + "configs": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object" + }, + "Labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "Lookup": { + "properties": { + "expr": { + "type": "string" + }, + "value": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "MetricLabel": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "MetricLabels": { + "items": { + "$ref": "#/$defs/MetricLabel" + }, + "type": "array" + }, + "Metrics": { + "properties": { + "name": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/MetricLabels" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "PodCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "spec": { + "type": "string" + }, + "scheduleTimeout": { + "type": "integer" + }, + "readyTimeout": { + "type": "integer" + }, + "httpTimeout": { + "type": "integer" + }, + "deleteTimeout": { + "type": "integer" + }, + "ingressTimeout": { + "type": "integer" + }, + "httpRetryInterval": { + "type": "integer" + }, + "deadline": { + "type": "integer" + }, + "port": { + "type": "integer" + }, + "path": { + "type": "string" + }, + "ingressName": { + "type": "string" + }, + "ingressHost": { + "type": "string" + }, + "ingressClass": { + "type": "string" + }, + "expectedContent": { + "type": "string" + }, + "expectedHttpStatuses": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "priorityClass": { + "type": "string" + }, + "roundRobinNodes": { + "type": "boolean" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "RelationshipSelectorTemplate": { + "properties": { + "id": { + "$ref": "#/$defs/Lookup" + }, + "external_id": { + "$ref": "#/$defs/Lookup" + }, + "name": { + "$ref": "#/$defs/Lookup" + }, + "namespace": { + "$ref": "#/$defs/Lookup" + }, + "type": { + "$ref": "#/$defs/Lookup" + }, + "agent": { + "$ref": "#/$defs/Lookup" + }, + "scope": { + "$ref": "#/$defs/Lookup" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "additionalProperties": false, + "type": "object" + } + } +} \ No newline at end of file diff --git a/schema/openapi/health_postgres.schema.json b/schema/openapi/health_postgres.schema.json index 77669651..54db6f20 100644 --- a/schema/openapi/health_postgres.schema.json +++ b/schema/openapi/health_postgres.schema.json @@ -1 +1,280 @@ -{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://github.com/flanksource/canary-checker/api/v1/postgres-check","$ref":"#/$defs/PostgresCheck","$defs":{"ConfigMapKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"EnvVar":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueFrom":{"$ref":"#/$defs/EnvVarSource"}},"additionalProperties":false,"type":"object"},"EnvVarSource":{"properties":{"serviceAccount":{"type":"string"},"helmRef":{"$ref":"#/$defs/HelmRefKeySelector"},"configMapKeyRef":{"$ref":"#/$defs/ConfigMapKeySelector"},"secretKeyRef":{"$ref":"#/$defs/SecretKeySelector"}},"additionalProperties":false,"type":"object"},"HelmRefKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"Labels":{"additionalProperties":{"type":"string"},"type":"object"},"MetricLabel":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueExpr":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name"]},"MetricLabels":{"items":{"$ref":"#/$defs/MetricLabel"},"type":"array"},"Metrics":{"properties":{"name":{"type":"string"},"labels":{"$ref":"#/$defs/MetricLabels"},"type":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false,"type":"object"},"PostgresCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"connection":{"type":"string"},"url":{"type":"string"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"},"query":{"type":"string"},"results":{"type":"integer"}},"additionalProperties":false,"type":"object","required":["name"]},"SecretKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"Template":{"properties":{"template":{"type":"string"},"jsonPath":{"type":"string"},"expr":{"type":"string"},"javascript":{"type":"string"}},"additionalProperties":false,"type":"object"}}} \ No newline at end of file +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://github.com/flanksource/canary-checker/api/v1/postgres-check", + "$ref": "#/$defs/PostgresCheck", + "$defs": { + "CheckRelationship": { + "properties": { + "components": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + }, + "configs": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ConfigMapKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "EnvVar": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "$ref": "#/$defs/EnvVarSource" + } + }, + "additionalProperties": false, + "type": "object" + }, + "EnvVarSource": { + "properties": { + "serviceAccount": { + "type": "string" + }, + "helmRef": { + "$ref": "#/$defs/HelmRefKeySelector" + }, + "configMapKeyRef": { + "$ref": "#/$defs/ConfigMapKeySelector" + }, + "secretKeyRef": { + "$ref": "#/$defs/SecretKeySelector" + } + }, + "additionalProperties": false, + "type": "object" + }, + "HelmRefKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "Labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "Lookup": { + "properties": { + "expr": { + "type": "string" + }, + "value": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "MetricLabel": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "MetricLabels": { + "items": { + "$ref": "#/$defs/MetricLabel" + }, + "type": "array" + }, + "Metrics": { + "properties": { + "name": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/MetricLabels" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "PostgresCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "connection": { + "type": "string" + }, + "url": { + "type": "string" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + }, + "query": { + "type": "string" + }, + "results": { + "type": "integer" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "RelationshipSelectorTemplate": { + "properties": { + "id": { + "$ref": "#/$defs/Lookup" + }, + "external_id": { + "$ref": "#/$defs/Lookup" + }, + "name": { + "$ref": "#/$defs/Lookup" + }, + "namespace": { + "$ref": "#/$defs/Lookup" + }, + "type": { + "$ref": "#/$defs/Lookup" + }, + "agent": { + "$ref": "#/$defs/Lookup" + }, + "scope": { + "$ref": "#/$defs/Lookup" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "additionalProperties": false, + "type": "object" + }, + "SecretKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "Template": { + "properties": { + "template": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + } + } +} \ No newline at end of file diff --git a/schema/openapi/health_prometheus.schema.json b/schema/openapi/health_prometheus.schema.json index 1cc7308f..3a0824d8 100644 --- a/schema/openapi/health_prometheus.schema.json +++ b/schema/openapi/health_prometheus.schema.json @@ -1 +1,347 @@ -{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://github.com/flanksource/canary-checker/api/v1/prometheus-check","$ref":"#/$defs/PrometheusCheck","$defs":{"ConfigMapKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"EnvVar":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueFrom":{"$ref":"#/$defs/EnvVarSource"}},"additionalProperties":false,"type":"object"},"EnvVarSource":{"properties":{"serviceAccount":{"type":"string"},"helmRef":{"$ref":"#/$defs/HelmRefKeySelector"},"configMapKeyRef":{"$ref":"#/$defs/ConfigMapKeySelector"},"secretKeyRef":{"$ref":"#/$defs/SecretKeySelector"}},"additionalProperties":false,"type":"object"},"HelmRefKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"Labels":{"additionalProperties":{"type":"string"},"type":"object"},"MetricLabel":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueExpr":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name"]},"MetricLabels":{"items":{"$ref":"#/$defs/MetricLabel"},"type":"array"},"Metrics":{"properties":{"name":{"type":"string"},"labels":{"$ref":"#/$defs/MetricLabels"},"type":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false,"type":"object"},"PrometheusCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"host":{"type":"string"},"connection":{"type":"string"},"url":{"type":"string"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"},"query":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name","query"]},"SecretKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"Template":{"properties":{"template":{"type":"string"},"jsonPath":{"type":"string"},"expr":{"type":"string"},"javascript":{"type":"string"}},"additionalProperties":false,"type":"object"}}} \ No newline at end of file +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://github.com/flanksource/canary-checker/api/v1/prometheus-check", + "$ref": "#/$defs/PrometheusCheck", + "$defs": { + "CheckRelationship": { + "properties": { + "components": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + }, + "configs": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ConfigMapKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "EnvVar": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "$ref": "#/$defs/EnvVarSource" + } + }, + "additionalProperties": false, + "type": "object" + }, + "EnvVarSource": { + "properties": { + "serviceAccount": { + "type": "string" + }, + "helmRef": { + "$ref": "#/$defs/HelmRefKeySelector" + }, + "configMapKeyRef": { + "$ref": "#/$defs/ConfigMapKeySelector" + }, + "secretKeyRef": { + "$ref": "#/$defs/SecretKeySelector" + } + }, + "additionalProperties": false, + "type": "object" + }, + "HelmRefKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "Labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "Lookup": { + "properties": { + "expr": { + "type": "string" + }, + "value": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "MetricLabel": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "MetricLabels": { + "items": { + "$ref": "#/$defs/MetricLabel" + }, + "type": "array" + }, + "Metrics": { + "properties": { + "name": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/MetricLabels" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "OAuth": { + "properties": { + "clientID": { + "$ref": "#/$defs/EnvVar" + }, + "clientSecret": { + "$ref": "#/$defs/EnvVar" + }, + "scope": { + "items": { + "type": "string" + }, + "type": "array" + }, + "tokenURL": { + "type": "string" + }, + "params": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "additionalProperties": false, + "type": "object" + }, + "PrometheusCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "host": { + "type": "string" + }, + "connection": { + "type": "string" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + }, + "ntlm": { + "type": "boolean" + }, + "ntlmv2": { + "type": "boolean" + }, + "digest": { + "type": "boolean" + }, + "url": { + "type": "string" + }, + "bearer": { + "$ref": "#/$defs/EnvVar" + }, + "oauth": { + "$ref": "#/$defs/OAuth" + }, + "tls": { + "$ref": "#/$defs/TLSConfig" + }, + "query": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "query" + ] + }, + "RelationshipSelectorTemplate": { + "properties": { + "id": { + "$ref": "#/$defs/Lookup" + }, + "external_id": { + "$ref": "#/$defs/Lookup" + }, + "name": { + "$ref": "#/$defs/Lookup" + }, + "namespace": { + "$ref": "#/$defs/Lookup" + }, + "type": { + "$ref": "#/$defs/Lookup" + }, + "agent": { + "$ref": "#/$defs/Lookup" + }, + "scope": { + "$ref": "#/$defs/Lookup" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "additionalProperties": false, + "type": "object" + }, + "SecretKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "TLSConfig": { + "properties": { + "insecureSkipVerify": { + "type": "boolean" + }, + "handshakeTimeout": { + "type": "integer" + }, + "ca": { + "$ref": "#/$defs/EnvVar" + }, + "cert": { + "$ref": "#/$defs/EnvVar" + }, + "key": { + "$ref": "#/$defs/EnvVar" + } + }, + "additionalProperties": false, + "type": "object" + }, + "Template": { + "properties": { + "template": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + } + } +} \ No newline at end of file diff --git a/schema/openapi/health_redis.schema.json b/schema/openapi/health_redis.schema.json index a6059b8f..a11475cf 100644 --- a/schema/openapi/health_redis.schema.json +++ b/schema/openapi/health_redis.schema.json @@ -1 +1,253 @@ -{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://github.com/flanksource/canary-checker/api/v1/redis-check","$ref":"#/$defs/RedisCheck","$defs":{"ConfigMapKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"EnvVar":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueFrom":{"$ref":"#/$defs/EnvVarSource"}},"additionalProperties":false,"type":"object"},"EnvVarSource":{"properties":{"serviceAccount":{"type":"string"},"helmRef":{"$ref":"#/$defs/HelmRefKeySelector"},"configMapKeyRef":{"$ref":"#/$defs/ConfigMapKeySelector"},"secretKeyRef":{"$ref":"#/$defs/SecretKeySelector"}},"additionalProperties":false,"type":"object"},"HelmRefKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"Labels":{"additionalProperties":{"type":"string"},"type":"object"},"MetricLabel":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueExpr":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name"]},"MetricLabels":{"items":{"$ref":"#/$defs/MetricLabel"},"type":"array"},"Metrics":{"properties":{"name":{"type":"string"},"labels":{"$ref":"#/$defs/MetricLabels"},"type":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false,"type":"object"},"RedisCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"connection":{"type":"string"},"url":{"type":"string"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"},"addr":{"type":"string"},"db":{"type":"integer"}},"additionalProperties":false,"type":"object","required":["name"]},"SecretKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]}}} \ No newline at end of file +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://github.com/flanksource/canary-checker/api/v1/redis-check", + "$ref": "#/$defs/RedisCheck", + "$defs": { + "CheckRelationship": { + "properties": { + "components": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + }, + "configs": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ConfigMapKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "EnvVar": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "$ref": "#/$defs/EnvVarSource" + } + }, + "additionalProperties": false, + "type": "object" + }, + "EnvVarSource": { + "properties": { + "serviceAccount": { + "type": "string" + }, + "helmRef": { + "$ref": "#/$defs/HelmRefKeySelector" + }, + "configMapKeyRef": { + "$ref": "#/$defs/ConfigMapKeySelector" + }, + "secretKeyRef": { + "$ref": "#/$defs/SecretKeySelector" + } + }, + "additionalProperties": false, + "type": "object" + }, + "HelmRefKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "Labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "Lookup": { + "properties": { + "expr": { + "type": "string" + }, + "value": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "MetricLabel": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "MetricLabels": { + "items": { + "$ref": "#/$defs/MetricLabel" + }, + "type": "array" + }, + "Metrics": { + "properties": { + "name": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/MetricLabels" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "RedisCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "connection": { + "type": "string" + }, + "url": { + "type": "string" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + }, + "addr": { + "type": "string" + }, + "db": { + "type": "integer" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "RelationshipSelectorTemplate": { + "properties": { + "id": { + "$ref": "#/$defs/Lookup" + }, + "external_id": { + "$ref": "#/$defs/Lookup" + }, + "name": { + "$ref": "#/$defs/Lookup" + }, + "namespace": { + "$ref": "#/$defs/Lookup" + }, + "type": { + "$ref": "#/$defs/Lookup" + }, + "agent": { + "$ref": "#/$defs/Lookup" + }, + "scope": { + "$ref": "#/$defs/Lookup" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "additionalProperties": false, + "type": "object" + }, + "SecretKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + } + } +} \ No newline at end of file diff --git a/schema/openapi/health_restic.schema.json b/schema/openapi/health_restic.schema.json index dd4b5486..cb39a472 100644 --- a/schema/openapi/health_restic.schema.json +++ b/schema/openapi/health_restic.schema.json @@ -1 +1,265 @@ -{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://github.com/flanksource/canary-checker/api/v1/restic-check","$ref":"#/$defs/ResticCheck","$defs":{"ConfigMapKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"EnvVar":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueFrom":{"$ref":"#/$defs/EnvVarSource"}},"additionalProperties":false,"type":"object"},"EnvVarSource":{"properties":{"serviceAccount":{"type":"string"},"helmRef":{"$ref":"#/$defs/HelmRefKeySelector"},"configMapKeyRef":{"$ref":"#/$defs/ConfigMapKeySelector"},"secretKeyRef":{"$ref":"#/$defs/SecretKeySelector"}},"additionalProperties":false,"type":"object"},"HelmRefKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"Labels":{"additionalProperties":{"type":"string"},"type":"object"},"MetricLabel":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueExpr":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name"]},"MetricLabels":{"items":{"$ref":"#/$defs/MetricLabel"},"type":"array"},"Metrics":{"properties":{"name":{"type":"string"},"labels":{"$ref":"#/$defs/MetricLabels"},"type":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false,"type":"object"},"ResticCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"connection":{"type":"string"},"awsConnectionName":{"type":"string"},"repository":{"type":"string"},"password":{"$ref":"#/$defs/EnvVar"},"maxAge":{"type":"string"},"checkIntegrity":{"type":"boolean"},"accessKey":{"$ref":"#/$defs/EnvVar"},"secretKey":{"$ref":"#/$defs/EnvVar"},"caCert":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name","repository","password","maxAge"]},"SecretKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]}}} \ No newline at end of file +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://github.com/flanksource/canary-checker/api/v1/restic-check", + "$ref": "#/$defs/ResticCheck", + "$defs": { + "CheckRelationship": { + "properties": { + "components": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + }, + "configs": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ConfigMapKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "EnvVar": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "$ref": "#/$defs/EnvVarSource" + } + }, + "additionalProperties": false, + "type": "object" + }, + "EnvVarSource": { + "properties": { + "serviceAccount": { + "type": "string" + }, + "helmRef": { + "$ref": "#/$defs/HelmRefKeySelector" + }, + "configMapKeyRef": { + "$ref": "#/$defs/ConfigMapKeySelector" + }, + "secretKeyRef": { + "$ref": "#/$defs/SecretKeySelector" + } + }, + "additionalProperties": false, + "type": "object" + }, + "HelmRefKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "Labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "Lookup": { + "properties": { + "expr": { + "type": "string" + }, + "value": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "MetricLabel": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "MetricLabels": { + "items": { + "$ref": "#/$defs/MetricLabel" + }, + "type": "array" + }, + "Metrics": { + "properties": { + "name": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/MetricLabels" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "RelationshipSelectorTemplate": { + "properties": { + "id": { + "$ref": "#/$defs/Lookup" + }, + "external_id": { + "$ref": "#/$defs/Lookup" + }, + "name": { + "$ref": "#/$defs/Lookup" + }, + "namespace": { + "$ref": "#/$defs/Lookup" + }, + "type": { + "$ref": "#/$defs/Lookup" + }, + "agent": { + "$ref": "#/$defs/Lookup" + }, + "scope": { + "$ref": "#/$defs/Lookup" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ResticCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "connection": { + "type": "string" + }, + "awsConnectionName": { + "type": "string" + }, + "repository": { + "type": "string" + }, + "password": { + "$ref": "#/$defs/EnvVar" + }, + "maxAge": { + "type": "string" + }, + "checkIntegrity": { + "type": "boolean" + }, + "accessKey": { + "$ref": "#/$defs/EnvVar" + }, + "secretKey": { + "$ref": "#/$defs/EnvVar" + }, + "caCert": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "repository", + "password", + "maxAge" + ] + }, + "SecretKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + } + } +} \ No newline at end of file diff --git a/schema/openapi/health_s3.schema.json b/schema/openapi/health_s3.schema.json index ef1aee85..8e1aa1a7 100644 --- a/schema/openapi/health_s3.schema.json +++ b/schema/openapi/health_s3.schema.json @@ -1 +1,271 @@ -{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://github.com/flanksource/canary-checker/api/v1/s3-check","$ref":"#/$defs/S3Check","$defs":{"ConfigMapKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"EnvVar":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueFrom":{"$ref":"#/$defs/EnvVarSource"}},"additionalProperties":false,"type":"object"},"EnvVarSource":{"properties":{"serviceAccount":{"type":"string"},"helmRef":{"$ref":"#/$defs/HelmRefKeySelector"},"configMapKeyRef":{"$ref":"#/$defs/ConfigMapKeySelector"},"secretKeyRef":{"$ref":"#/$defs/SecretKeySelector"}},"additionalProperties":false,"type":"object"},"HelmRefKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"Labels":{"additionalProperties":{"type":"string"},"type":"object"},"MetricLabel":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueExpr":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name"]},"MetricLabels":{"items":{"$ref":"#/$defs/MetricLabel"},"type":"array"},"Metrics":{"properties":{"name":{"type":"string"},"labels":{"$ref":"#/$defs/MetricLabels"},"type":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false,"type":"object"},"S3Check":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"connection":{"type":"string"},"accessKey":{"$ref":"#/$defs/EnvVar"},"secretKey":{"$ref":"#/$defs/EnvVar"},"sessionToken":{"$ref":"#/$defs/EnvVar"},"region":{"type":"string"},"endpoint":{"type":"string"},"skipTLSVerify":{"type":"boolean"},"bucket":{"type":"string"},"objectPath":{"type":"string"},"usePathStyle":{"type":"boolean"},"bucketName":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name"]},"SecretKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]}}} \ No newline at end of file +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://github.com/flanksource/canary-checker/api/v1/s3-check", + "$ref": "#/$defs/S3Check", + "$defs": { + "CheckRelationship": { + "properties": { + "components": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + }, + "configs": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ConfigMapKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "EnvVar": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "$ref": "#/$defs/EnvVarSource" + } + }, + "additionalProperties": false, + "type": "object" + }, + "EnvVarSource": { + "properties": { + "serviceAccount": { + "type": "string" + }, + "helmRef": { + "$ref": "#/$defs/HelmRefKeySelector" + }, + "configMapKeyRef": { + "$ref": "#/$defs/ConfigMapKeySelector" + }, + "secretKeyRef": { + "$ref": "#/$defs/SecretKeySelector" + } + }, + "additionalProperties": false, + "type": "object" + }, + "HelmRefKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "Labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "Lookup": { + "properties": { + "expr": { + "type": "string" + }, + "value": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "MetricLabel": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "MetricLabels": { + "items": { + "$ref": "#/$defs/MetricLabel" + }, + "type": "array" + }, + "Metrics": { + "properties": { + "name": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/MetricLabels" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "RelationshipSelectorTemplate": { + "properties": { + "id": { + "$ref": "#/$defs/Lookup" + }, + "external_id": { + "$ref": "#/$defs/Lookup" + }, + "name": { + "$ref": "#/$defs/Lookup" + }, + "namespace": { + "$ref": "#/$defs/Lookup" + }, + "type": { + "$ref": "#/$defs/Lookup" + }, + "agent": { + "$ref": "#/$defs/Lookup" + }, + "scope": { + "$ref": "#/$defs/Lookup" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "additionalProperties": false, + "type": "object" + }, + "S3Check": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "connection": { + "type": "string" + }, + "accessKey": { + "$ref": "#/$defs/EnvVar" + }, + "secretKey": { + "$ref": "#/$defs/EnvVar" + }, + "sessionToken": { + "$ref": "#/$defs/EnvVar" + }, + "assumeRole": { + "type": "string" + }, + "region": { + "type": "string" + }, + "endpoint": { + "type": "string" + }, + "skipTLSVerify": { + "type": "boolean" + }, + "bucket": { + "type": "string" + }, + "objectPath": { + "type": "string" + }, + "usePathStyle": { + "type": "boolean" + }, + "bucketName": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "SecretKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + } + } +} \ No newline at end of file diff --git a/schema/openapi/health_tcp.schema.json b/schema/openapi/health_tcp.schema.json index f917df5f..c80281fe 100644 --- a/schema/openapi/health_tcp.schema.json +++ b/schema/openapi/health_tcp.schema.json @@ -1 +1,163 @@ -{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://github.com/flanksource/canary-checker/api/v1/tcp-check","$ref":"#/$defs/TCPCheck","$defs":{"Labels":{"additionalProperties":{"type":"string"},"type":"object"},"MetricLabel":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueExpr":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name"]},"MetricLabels":{"items":{"$ref":"#/$defs/MetricLabel"},"type":"array"},"Metrics":{"properties":{"name":{"type":"string"},"labels":{"$ref":"#/$defs/MetricLabels"},"type":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false,"type":"object"},"TCPCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"endpoint":{"type":"string"},"thresholdMillis":{"type":"integer"}},"additionalProperties":false,"type":"object","required":["name"]}}} \ No newline at end of file +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://github.com/flanksource/canary-checker/api/v1/tcp-check", + "$ref": "#/$defs/TCPCheck", + "$defs": { + "CheckRelationship": { + "properties": { + "components": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + }, + "configs": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object" + }, + "Labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "Lookup": { + "properties": { + "expr": { + "type": "string" + }, + "value": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "MetricLabel": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "MetricLabels": { + "items": { + "$ref": "#/$defs/MetricLabel" + }, + "type": "array" + }, + "Metrics": { + "properties": { + "name": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/MetricLabels" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "RelationshipSelectorTemplate": { + "properties": { + "id": { + "$ref": "#/$defs/Lookup" + }, + "external_id": { + "$ref": "#/$defs/Lookup" + }, + "name": { + "$ref": "#/$defs/Lookup" + }, + "namespace": { + "$ref": "#/$defs/Lookup" + }, + "type": { + "$ref": "#/$defs/Lookup" + }, + "agent": { + "$ref": "#/$defs/Lookup" + }, + "scope": { + "$ref": "#/$defs/Lookup" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "additionalProperties": false, + "type": "object" + }, + "TCPCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "endpoint": { + "type": "string" + }, + "thresholdMillis": { + "type": "integer" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + } + } +} \ No newline at end of file diff --git a/schema/openapi/health_webhook.schema.json b/schema/openapi/health_webhook.schema.json index 2ae584c8..802f3f9a 100644 --- a/schema/openapi/health_webhook.schema.json +++ b/schema/openapi/health_webhook.schema.json @@ -1 +1,265 @@ -{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://github.com/flanksource/canary-checker/api/v1/webhook-check","$ref":"#/$defs/WebhookCheck","$defs":{"ConfigMapKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"EnvVar":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueFrom":{"$ref":"#/$defs/EnvVarSource"}},"additionalProperties":false,"type":"object"},"EnvVarSource":{"properties":{"serviceAccount":{"type":"string"},"helmRef":{"$ref":"#/$defs/HelmRefKeySelector"},"configMapKeyRef":{"$ref":"#/$defs/ConfigMapKeySelector"},"secretKeyRef":{"$ref":"#/$defs/SecretKeySelector"}},"additionalProperties":false,"type":"object"},"HelmRefKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"Labels":{"additionalProperties":{"type":"string"},"type":"object"},"MetricLabel":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueExpr":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name"]},"MetricLabels":{"items":{"$ref":"#/$defs/MetricLabel"},"type":"array"},"Metrics":{"properties":{"name":{"type":"string"},"labels":{"$ref":"#/$defs/MetricLabels"},"type":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false,"type":"object"},"SecretKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"Template":{"properties":{"template":{"type":"string"},"jsonPath":{"type":"string"},"expr":{"type":"string"},"javascript":{"type":"string"}},"additionalProperties":false,"type":"object"},"WebhookCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"token":{"$ref":"#/$defs/EnvVar"}},"additionalProperties":false,"type":"object","required":["name"]}}} \ No newline at end of file +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://github.com/flanksource/canary-checker/api/v1/webhook-check", + "$ref": "#/$defs/WebhookCheck", + "$defs": { + "CheckRelationship": { + "properties": { + "components": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + }, + "configs": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ConfigMapKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "EnvVar": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "$ref": "#/$defs/EnvVarSource" + } + }, + "additionalProperties": false, + "type": "object" + }, + "EnvVarSource": { + "properties": { + "serviceAccount": { + "type": "string" + }, + "helmRef": { + "$ref": "#/$defs/HelmRefKeySelector" + }, + "configMapKeyRef": { + "$ref": "#/$defs/ConfigMapKeySelector" + }, + "secretKeyRef": { + "$ref": "#/$defs/SecretKeySelector" + } + }, + "additionalProperties": false, + "type": "object" + }, + "HelmRefKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "Labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "Lookup": { + "properties": { + "expr": { + "type": "string" + }, + "value": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "MetricLabel": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "MetricLabels": { + "items": { + "$ref": "#/$defs/MetricLabel" + }, + "type": "array" + }, + "Metrics": { + "properties": { + "name": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/MetricLabels" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "RelationshipSelectorTemplate": { + "properties": { + "id": { + "$ref": "#/$defs/Lookup" + }, + "external_id": { + "$ref": "#/$defs/Lookup" + }, + "name": { + "$ref": "#/$defs/Lookup" + }, + "namespace": { + "$ref": "#/$defs/Lookup" + }, + "type": { + "$ref": "#/$defs/Lookup" + }, + "agent": { + "$ref": "#/$defs/Lookup" + }, + "scope": { + "$ref": "#/$defs/Lookup" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "additionalProperties": false, + "type": "object" + }, + "SecretKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "Template": { + "properties": { + "template": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "WebhookCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "token": { + "$ref": "#/$defs/EnvVar" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + } + } +} \ No newline at end of file diff --git a/schema/openapi/incident-rules.schema.json b/schema/openapi/incident-rules.schema.json index e07714e2..4b356732 100644 --- a/schema/openapi/incident-rules.schema.json +++ b/schema/openapi/incident-rules.schema.json @@ -1 +1,563 @@ -{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://github.com/flanksource/incident-commander/api/v1/incident-rule","$ref":"#/$defs/IncidentRule","$defs":{"AutoClose":{"properties":{"timeout":{"type":"integer"}},"additionalProperties":false,"type":"object"},"CloudProvider":{"properties":{"account":{"type":"string"},"region":{"type":"string"},"priority":{"type":"string"},"description":{"type":"string"}},"additionalProperties":false,"type":"object"},"Email":{"properties":{"to":{"type":"string"},"subject":{"type":"string"},"body":{"type":"string"}},"additionalProperties":false,"type":"object"},"FieldsV1":{"properties":{},"additionalProperties":false,"type":"object"},"Filter":{"properties":{"status":{"items":{"type":"string"},"type":"array"},"severity":{"items":{"type":"string"},"type":"array"},"category":{"items":{"type":"string"},"type":"array"},"age":{"type":"integer"}},"additionalProperties":false,"type":"object"},"GithubIssue":{"properties":{"repository":{"type":"string"},"title":{"type":"string"},"body":{"type":"string"},"labels":{"items":{"type":"string"},"type":"array"}},"additionalProperties":false,"type":"object"},"HoursOfOperation":{"properties":{"start":{"type":"string"},"end":{"type":"string"},"negate":{"type":"boolean"}},"additionalProperties":false,"type":"object","required":["start","end","negate"]},"IncidentResponders":{"properties":{"email":{"items":{"$ref":"#/$defs/Email"},"type":"array"},"jira":{"items":{"$ref":"#/$defs/Jira"},"type":"array"},"aws":{"items":{"$ref":"#/$defs/CloudProvider"},"type":"array"},"ams":{"items":{"$ref":"#/$defs/CloudProvider"},"type":"array"},"gcp":{"items":{"$ref":"#/$defs/CloudProvider"},"type":"array"},"servicenow":{"items":{"$ref":"#/$defs/ServiceNow"},"type":"array"},"slack":{"items":{"$ref":"#/$defs/Slack"},"type":"array"},"teams":{"items":{"$ref":"#/$defs/TeamsChannel"},"type":"array"},"teamsUser":{"items":{"$ref":"#/$defs/TeamsUser"},"type":"array"},"github":{"items":{"$ref":"#/$defs/GithubIssue"},"type":"array"}},"additionalProperties":false,"type":"object"},"IncidentRule":{"properties":{"kind":{"type":"string"},"apiVersion":{"type":"string"},"metadata":{"$ref":"#/$defs/ObjectMeta"},"spec":{"$ref":"#/$defs/IncidentRuleSpec"},"status":{"$ref":"#/$defs/IncidentRuleStatus"}},"additionalProperties":false,"type":"object"},"IncidentRuleSpec":{"properties":{"name":{"type":"string"},"components":{"items":{"$ref":"#/$defs/ResourceSelector"},"type":"array"},"template":{"$ref":"#/$defs/IncidentTemplate"},"filter":{"$ref":"#/$defs/Filter"},"autoAssignOwner":{"type":"boolean"},"priority":{"type":"integer"},"breakOnMatch":{"type":"boolean"},"hoursOfOperation":{"items":{"$ref":"#/$defs/HoursOfOperation"},"type":"array"},"autoClose":{"$ref":"#/$defs/AutoClose"},"autoResolve":{"$ref":"#/$defs/AutoClose"},"responders":{"$ref":"#/$defs/IncidentResponders"}},"additionalProperties":false,"type":"object"},"IncidentRuleStatus":{"properties":{},"additionalProperties":false,"type":"object"},"IncidentTemplate":{"properties":{"title":{"type":"string"},"description":{"type":"string"},"type":{"type":"string"},"status":{"type":"string"},"severity":{"type":"string"},"created_by":{"type":"string"},"commander_id":{"type":"string"},"communicator_id":{"type":"string"}},"additionalProperties":false,"type":"object"},"Items":{"items":{"type":"string"},"type":"array"},"Jira":{"properties":{"project":{"type":"string"},"summary":{"type":"string"},"issueType":{"type":"string"},"priority":{"type":"string"},"assignee":{"type":"string"},"description":{"type":"string"}},"additionalProperties":false,"type":"object","required":["summary"]},"ManagedFieldsEntry":{"properties":{"manager":{"type":"string"},"operation":{"type":"string"},"apiVersion":{"type":"string"},"time":{"$ref":"#/$defs/Time"},"fieldsType":{"type":"string"},"fieldsV1":{"$ref":"#/$defs/FieldsV1"},"subresource":{"type":"string"}},"additionalProperties":false,"type":"object"},"ObjectMeta":{"properties":{"name":{"type":"string"},"generateName":{"type":"string"},"namespace":{"type":"string"},"selfLink":{"type":"string"},"uid":{"type":"string"},"resourceVersion":{"type":"string"},"generation":{"type":"integer"},"creationTimestamp":{"$ref":"#/$defs/Time"},"deletionTimestamp":{"$ref":"#/$defs/Time"},"deletionGracePeriodSeconds":{"type":"integer"},"labels":{"additionalProperties":{"type":"string"},"type":"object"},"annotations":{"additionalProperties":{"type":"string"},"type":"object"},"ownerReferences":{"items":{"$ref":"#/$defs/OwnerReference"},"type":"array"},"finalizers":{"items":{"type":"string"},"type":"array"},"managedFields":{"items":{"$ref":"#/$defs/ManagedFieldsEntry"},"type":"array"}},"additionalProperties":false,"type":"object"},"OwnerReference":{"properties":{"apiVersion":{"type":"string"},"kind":{"type":"string"},"name":{"type":"string"},"uid":{"type":"string"},"controller":{"type":"boolean"},"blockOwnerDeletion":{"type":"boolean"}},"additionalProperties":false,"type":"object","required":["apiVersion","kind","name","uid"]},"ResourceSelector":{"properties":{"agent":{"type":"string"},"cache":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"types":{"$ref":"#/$defs/Items"},"statuses":{"$ref":"#/$defs/Items"},"tagSelector":{"type":"string"},"labelSelector":{"type":"string"},"fieldSelector":{"type":"string"}},"additionalProperties":false,"type":"object"},"ServiceNow":{"properties":{"project":{"type":"string"},"issueType":{"type":"string"},"priority":{"type":"string"},"assignee":{"type":"string"},"description":{"type":"string"}},"additionalProperties":false,"type":"object"},"Slack":{"properties":{"icon":{"type":"string"},"emoji":{"type":"string"},"title":{"type":"string"},"text":{"type":"string"},"channel":{"type":"string"}},"additionalProperties":false,"type":"object","required":["channel"]},"TeamsChannel":{"properties":{},"additionalProperties":false,"type":"object"},"TeamsUser":{"properties":{"icon":{"type":"string"},"emoji":{"type":"string"},"title":{"type":"string"},"text":{"type":"string"}},"additionalProperties":false,"type":"object"},"Time":{"properties":{},"additionalProperties":false,"type":"object"}}} \ No newline at end of file +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://github.com/flanksource/incident-commander/api/v1/incident-rule", + "$ref": "#/$defs/IncidentRule", + "$defs": { + "AutoClose": { + "properties": { + "timeout": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "CloudProvider": { + "properties": { + "account": { + "type": "string" + }, + "region": { + "type": "string" + }, + "priority": { + "type": "string" + }, + "description": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "Email": { + "properties": { + "to": { + "type": "string" + }, + "subject": { + "type": "string" + }, + "body": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "FieldsV1": { + "properties": {}, + "additionalProperties": false, + "type": "object" + }, + "Filter": { + "properties": { + "status": { + "items": { + "type": "string" + }, + "type": "array" + }, + "severity": { + "items": { + "type": "string" + }, + "type": "array" + }, + "category": { + "items": { + "type": "string" + }, + "type": "array" + }, + "age": { + "type": "integer" + } + }, + "additionalProperties": false, + "type": "object" + }, + "GithubIssue": { + "properties": { + "repository": { + "type": "string" + }, + "title": { + "type": "string" + }, + "body": { + "type": "string" + }, + "labels": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object" + }, + "HoursOfOperation": { + "properties": { + "start": { + "type": "string" + }, + "end": { + "type": "string" + }, + "negate": { + "type": "boolean" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "start", + "end", + "negate" + ] + }, + "IncidentResponders": { + "properties": { + "email": { + "items": { + "$ref": "#/$defs/Email" + }, + "type": "array" + }, + "jira": { + "items": { + "$ref": "#/$defs/Jira" + }, + "type": "array" + }, + "aws": { + "items": { + "$ref": "#/$defs/CloudProvider" + }, + "type": "array" + }, + "ams": { + "items": { + "$ref": "#/$defs/CloudProvider" + }, + "type": "array" + }, + "gcp": { + "items": { + "$ref": "#/$defs/CloudProvider" + }, + "type": "array" + }, + "servicenow": { + "items": { + "$ref": "#/$defs/ServiceNow" + }, + "type": "array" + }, + "slack": { + "items": { + "$ref": "#/$defs/Slack" + }, + "type": "array" + }, + "teams": { + "items": { + "$ref": "#/$defs/TeamsChannel" + }, + "type": "array" + }, + "teamsUser": { + "items": { + "$ref": "#/$defs/TeamsUser" + }, + "type": "array" + }, + "github": { + "items": { + "$ref": "#/$defs/GithubIssue" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object" + }, + "IncidentRule": { + "properties": { + "kind": { + "type": "string" + }, + "apiVersion": { + "type": "string" + }, + "metadata": { + "$ref": "#/$defs/ObjectMeta" + }, + "spec": { + "$ref": "#/$defs/IncidentRuleSpec" + }, + "status": { + "$ref": "#/$defs/IncidentRuleStatus" + } + }, + "additionalProperties": false, + "type": "object" + }, + "IncidentRuleSpec": { + "properties": { + "name": { + "type": "string" + }, + "components": { + "items": { + "$ref": "#/$defs/ResourceSelector" + }, + "type": "array" + }, + "template": { + "$ref": "#/$defs/IncidentTemplate" + }, + "filter": { + "$ref": "#/$defs/Filter" + }, + "autoAssignOwner": { + "type": "boolean" + }, + "priority": { + "type": "integer" + }, + "breakOnMatch": { + "type": "boolean" + }, + "hoursOfOperation": { + "items": { + "$ref": "#/$defs/HoursOfOperation" + }, + "type": "array" + }, + "autoClose": { + "$ref": "#/$defs/AutoClose" + }, + "autoResolve": { + "$ref": "#/$defs/AutoClose" + }, + "responders": { + "$ref": "#/$defs/IncidentResponders" + } + }, + "additionalProperties": false, + "type": "object" + }, + "IncidentRuleStatus": { + "properties": {}, + "additionalProperties": false, + "type": "object" + }, + "IncidentTemplate": { + "properties": { + "title": { + "type": "string" + }, + "description": { + "type": "string" + }, + "type": { + "type": "string" + }, + "status": { + "type": "string" + }, + "severity": { + "type": "string" + }, + "created_by": { + "type": "string" + }, + "commander_id": { + "type": "string" + }, + "communicator_id": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "Items": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Jira": { + "properties": { + "project": { + "type": "string" + }, + "summary": { + "type": "string" + }, + "issueType": { + "type": "string" + }, + "priority": { + "type": "string" + }, + "assignee": { + "type": "string" + }, + "description": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "summary" + ] + }, + "ManagedFieldsEntry": { + "properties": { + "manager": { + "type": "string" + }, + "operation": { + "type": "string" + }, + "apiVersion": { + "type": "string" + }, + "time": { + "$ref": "#/$defs/Time" + }, + "fieldsType": { + "type": "string" + }, + "fieldsV1": { + "$ref": "#/$defs/FieldsV1" + }, + "subresource": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ObjectMeta": { + "properties": { + "name": { + "type": "string" + }, + "generateName": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "selfLink": { + "type": "string" + }, + "uid": { + "type": "string" + }, + "resourceVersion": { + "type": "string" + }, + "generation": { + "type": "integer" + }, + "creationTimestamp": { + "$ref": "#/$defs/Time" + }, + "deletionTimestamp": { + "$ref": "#/$defs/Time" + }, + "deletionGracePeriodSeconds": { + "type": "integer" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "annotations": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "ownerReferences": { + "items": { + "$ref": "#/$defs/OwnerReference" + }, + "type": "array" + }, + "finalizers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "managedFields": { + "items": { + "$ref": "#/$defs/ManagedFieldsEntry" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object" + }, + "OwnerReference": { + "properties": { + "apiVersion": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "name": { + "type": "string" + }, + "uid": { + "type": "string" + }, + "controller": { + "type": "boolean" + }, + "blockOwnerDeletion": { + "type": "boolean" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "apiVersion", + "kind", + "name", + "uid" + ] + }, + "ResourceSelector": { + "properties": { + "agent": { + "type": "string" + }, + "scope": { + "type": "string" + }, + "cache": { + "type": "string" + }, + "search": { + "type": "string" + }, + "includeDeleted": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "types": { + "$ref": "#/$defs/Items" + }, + "statuses": { + "$ref": "#/$defs/Items" + }, + "tagSelector": { + "type": "string" + }, + "labelSelector": { + "type": "string" + }, + "fieldSelector": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ServiceNow": { + "properties": { + "project": { + "type": "string" + }, + "issueType": { + "type": "string" + }, + "priority": { + "type": "string" + }, + "assignee": { + "type": "string" + }, + "description": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "Slack": { + "properties": { + "icon": { + "type": "string" + }, + "emoji": { + "type": "string" + }, + "title": { + "type": "string" + }, + "text": { + "type": "string" + }, + "channel": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "channel" + ] + }, + "TeamsChannel": { + "properties": {}, + "additionalProperties": false, + "type": "object" + }, + "TeamsUser": { + "properties": { + "icon": { + "type": "string" + }, + "emoji": { + "type": "string" + }, + "title": { + "type": "string" + }, + "text": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "Time": { + "properties": {}, + "additionalProperties": false, + "type": "object" + } + } +} \ No newline at end of file diff --git a/schema/openapi/notification.schema.json b/schema/openapi/notification.schema.json index a36e5ff4..b08c46a9 100644 --- a/schema/openapi/notification.schema.json +++ b/schema/openapi/notification.schema.json @@ -1 +1,230 @@ -{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://github.com/flanksource/incident-commander/api/v1/notification","$ref":"#/$defs/Notification","$defs":{"FieldsV1":{"properties":{},"additionalProperties":false,"type":"object"},"ManagedFieldsEntry":{"properties":{"manager":{"type":"string"},"operation":{"type":"string"},"apiVersion":{"type":"string"},"time":{"$ref":"#/$defs/Time"},"fieldsType":{"type":"string"},"fieldsV1":{"$ref":"#/$defs/FieldsV1"},"subresource":{"type":"string"}},"additionalProperties":false,"type":"object"},"Notification":{"properties":{"kind":{"type":"string"},"apiVersion":{"type":"string"},"metadata":{"$ref":"#/$defs/ObjectMeta"},"spec":{"$ref":"#/$defs/NotificationSpec"},"status":{"$ref":"#/$defs/NotificationStatus"}},"additionalProperties":false,"type":"object"},"NotificationRecipientSpec":{"properties":{"person":{"type":"string"},"team":{"type":"string"},"email":{"type":"string"},"connection":{"type":"string"},"url":{"type":"string"},"properties":{"additionalProperties":{"type":"string"},"type":"object"}},"additionalProperties":false,"type":"object"},"NotificationSpec":{"properties":{"events":{"items":{"type":"string"},"type":"array"},"title":{"type":"string"},"template":{"type":"string"},"filter":{"type":"string"},"to":{"$ref":"#/$defs/NotificationRecipientSpec"}},"additionalProperties":false,"type":"object","required":["events","to"]},"NotificationStatus":{"properties":{},"additionalProperties":false,"type":"object"},"ObjectMeta":{"properties":{"name":{"type":"string"},"generateName":{"type":"string"},"namespace":{"type":"string"},"selfLink":{"type":"string"},"uid":{"type":"string"},"resourceVersion":{"type":"string"},"generation":{"type":"integer"},"creationTimestamp":{"$ref":"#/$defs/Time"},"deletionTimestamp":{"$ref":"#/$defs/Time"},"deletionGracePeriodSeconds":{"type":"integer"},"labels":{"additionalProperties":{"type":"string"},"type":"object"},"annotations":{"additionalProperties":{"type":"string"},"type":"object"},"ownerReferences":{"items":{"$ref":"#/$defs/OwnerReference"},"type":"array"},"finalizers":{"items":{"type":"string"},"type":"array"},"managedFields":{"items":{"$ref":"#/$defs/ManagedFieldsEntry"},"type":"array"}},"additionalProperties":false,"type":"object"},"OwnerReference":{"properties":{"apiVersion":{"type":"string"},"kind":{"type":"string"},"name":{"type":"string"},"uid":{"type":"string"},"controller":{"type":"boolean"},"blockOwnerDeletion":{"type":"boolean"}},"additionalProperties":false,"type":"object","required":["apiVersion","kind","name","uid"]},"Time":{"properties":{},"additionalProperties":false,"type":"object"}}} \ No newline at end of file +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://github.com/flanksource/incident-commander/api/v1/notification", + "$ref": "#/$defs/Notification", + "$defs": { + "FieldsV1": { + "properties": {}, + "additionalProperties": false, + "type": "object" + }, + "ManagedFieldsEntry": { + "properties": { + "manager": { + "type": "string" + }, + "operation": { + "type": "string" + }, + "apiVersion": { + "type": "string" + }, + "time": { + "$ref": "#/$defs/Time" + }, + "fieldsType": { + "type": "string" + }, + "fieldsV1": { + "$ref": "#/$defs/FieldsV1" + }, + "subresource": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "Notification": { + "properties": { + "kind": { + "type": "string" + }, + "apiVersion": { + "type": "string" + }, + "metadata": { + "$ref": "#/$defs/ObjectMeta" + }, + "spec": { + "$ref": "#/$defs/NotificationSpec" + }, + "status": { + "$ref": "#/$defs/NotificationStatus" + } + }, + "additionalProperties": false, + "type": "object" + }, + "NotificationRecipientSpec": { + "properties": { + "person": { + "type": "string" + }, + "team": { + "type": "string" + }, + "email": { + "type": "string" + }, + "connection": { + "type": "string" + }, + "url": { + "type": "string" + }, + "properties": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "additionalProperties": false, + "type": "object" + }, + "NotificationSpec": { + "properties": { + "events": { + "items": { + "type": "string" + }, + "type": "array" + }, + "title": { + "type": "string" + }, + "template": { + "type": "string" + }, + "filter": { + "type": "string" + }, + "repeatInterval": { + "type": "string" + }, + "repeatGroup": { + "items": { + "type": "string" + }, + "type": "array" + }, + "to": { + "$ref": "#/$defs/NotificationRecipientSpec" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "events", + "to" + ] + }, + "NotificationStatus": { + "properties": {}, + "additionalProperties": false, + "type": "object" + }, + "ObjectMeta": { + "properties": { + "name": { + "type": "string" + }, + "generateName": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "selfLink": { + "type": "string" + }, + "uid": { + "type": "string" + }, + "resourceVersion": { + "type": "string" + }, + "generation": { + "type": "integer" + }, + "creationTimestamp": { + "$ref": "#/$defs/Time" + }, + "deletionTimestamp": { + "$ref": "#/$defs/Time" + }, + "deletionGracePeriodSeconds": { + "type": "integer" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "annotations": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "ownerReferences": { + "items": { + "$ref": "#/$defs/OwnerReference" + }, + "type": "array" + }, + "finalizers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "managedFields": { + "items": { + "$ref": "#/$defs/ManagedFieldsEntry" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object" + }, + "OwnerReference": { + "properties": { + "apiVersion": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "name": { + "type": "string" + }, + "uid": { + "type": "string" + }, + "controller": { + "type": "boolean" + }, + "blockOwnerDeletion": { + "type": "boolean" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "apiVersion", + "kind", + "name", + "uid" + ] + }, + "Time": { + "properties": {}, + "additionalProperties": false, + "type": "object" + } + } +} \ No newline at end of file diff --git a/schema/openapi/playbook-spec.schema.json b/schema/openapi/playbook-spec.schema.json index 0fdf304a..0d9d40a1 100644 --- a/schema/openapi/playbook-spec.schema.json +++ b/schema/openapi/playbook-spec.schema.json @@ -1 +1,982 @@ -{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://github.com/flanksource/incident-commander/api/v1/playbook-spec","$ref":"#/$defs/PlaybookSpec","$defs":{"AWSConnection":{"properties":{"connection":{"type":"string"},"accessKey":{"$ref":"#/$defs/EnvVar"},"secretKey":{"$ref":"#/$defs/EnvVar"},"sessionToken":{"$ref":"#/$defs/EnvVar"},"region":{"type":"string"},"endpoint":{"type":"string"},"skipTLSVerify":{"type":"boolean"},"objectPath":{"type":"string"},"usePathStyle":{"type":"boolean"}},"additionalProperties":false,"type":"object"},"Artifact":{"properties":{"path":{"type":"string"}},"additionalProperties":false,"type":"object","required":["path"]},"AzureConnection":{"properties":{"connection":{"type":"string"},"clientID":{"$ref":"#/$defs/EnvVar"},"clientSecret":{"$ref":"#/$defs/EnvVar"},"tenantID":{"type":"string"}},"additionalProperties":false,"type":"object"},"AzureDevopsPipeline":{"properties":{"id":{"type":"string"},"version":{"type":"string"}},"additionalProperties":false,"type":"object","required":["id"]},"AzureDevopsPipelineAction":{"properties":{"org":{"type":"string"},"project":{"type":"string"},"token":{"$ref":"#/$defs/EnvVar"},"pipeline":{"$ref":"#/$defs/AzureDevopsPipeline"},"parameters":{"$ref":"#/$defs/AzureDevopsPipelineParameters"}},"additionalProperties":false,"type":"object","required":["org","project","token","pipeline"]},"AzureDevopsPipelineParameters":{"properties":{"resources":true,"templateParameters":true,"variables":true,"stagesToSkip":{"items":{"type":"string"},"type":"array"}},"additionalProperties":false,"type":"object"},"ConfigMapKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"EnvVar":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueFrom":{"$ref":"#/$defs/EnvVarSource"}},"additionalProperties":false,"type":"object"},"EnvVarSource":{"properties":{"serviceAccount":{"type":"string"},"helmRef":{"$ref":"#/$defs/HelmRefKeySelector"},"configMapKeyRef":{"$ref":"#/$defs/ConfigMapKeySelector"},"secretKeyRef":{"$ref":"#/$defs/SecretKeySelector"}},"additionalProperties":false,"type":"object"},"ExecAction":{"properties":{"script":{"type":"string"},"connections":{"$ref":"#/$defs/ExecConnections"},"artifacts":{"items":{"$ref":"#/$defs/Artifact"},"type":"array"},"env":{"items":{"$ref":"#/$defs/EnvVar"},"type":"array"},"checkout":{"$ref":"#/$defs/GitCheckout"}},"additionalProperties":false,"type":"object","required":["script"]},"ExecConnections":{"properties":{"aws":{"$ref":"#/$defs/AWSConnection"},"gcp":{"$ref":"#/$defs/GCPConnection"},"azure":{"$ref":"#/$defs/AzureConnection"}},"additionalProperties":false,"type":"object"},"GCPConnection":{"properties":{"connection":{"type":"string"},"endpoint":{"type":"string"},"credentials":{"$ref":"#/$defs/EnvVar"}},"additionalProperties":false,"type":"object"},"GitCheckout":{"properties":{"url":{"type":"string"},"connection":{"type":"string"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"},"certificate":{"$ref":"#/$defs/EnvVar"},"destination":{"type":"string"}},"additionalProperties":false,"type":"object"},"GitOpsAction":{"properties":{"repo":{"$ref":"#/$defs/GitOpsActionRepo"},"commit":{"$ref":"#/$defs/GitOpsActionCommit"},"pr":{"$ref":"#/$defs/GitOpsActionPR"},"patches":{"items":{"$ref":"#/$defs/GitOpsActionPatch"},"type":"array"},"files":{"items":{"$ref":"#/$defs/GitOpsActionFile"},"type":"array"}},"additionalProperties":false,"type":"object","required":["repo","commit"]},"GitOpsActionCommit":{"properties":{"author":{"type":"string"},"email":{"type":"string"},"message":{"type":"string"}},"additionalProperties":false,"type":"object","required":["author","email","message"]},"GitOpsActionFile":{"properties":{"path":{"type":"string"},"content":{"type":"string"}},"additionalProperties":false,"type":"object","required":["path","content"]},"GitOpsActionPR":{"properties":{"title":{"type":"string"},"tags":{"items":{"type":"string"},"type":"array"}},"additionalProperties":false,"type":"object","required":["title"]},"GitOpsActionPatch":{"properties":{"path":{"type":"string"},"yq":{"type":"string"},"jq":{"type":"string"}},"additionalProperties":false,"type":"object","required":["path"]},"GitOpsActionRepo":{"properties":{"url":{"type":"string"},"base":{"type":"string"},"branch":{"type":"string"},"connection":{"type":"string"},"type":{"type":"string"}},"additionalProperties":false,"type":"object","required":["url"]},"GithubAction":{"properties":{"repo":{"type":"string"},"username":{"type":"string"},"token":{"$ref":"#/$defs/EnvVar"},"workflows":{"items":{"$ref":"#/$defs/GithubWorkflow"},"type":"array"}},"additionalProperties":false,"type":"object","required":["repo","username","token"]},"GithubWorkflow":{"properties":{"id":{"type":"string"},"ref":{"type":"string"},"input":{"type":"string"}},"additionalProperties":false,"type":"object","required":["id"]},"HTTPAction":{"properties":{"connection":{"type":"string"},"url":{"type":"string"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"},"method":{"type":"string"},"ntlm":{"type":"boolean"},"ntlmv2":{"type":"boolean"},"headers":{"items":{"$ref":"#/$defs/EnvVar"},"type":"array"},"body":{"type":"string"},"templateBody":{"type":"boolean"}},"additionalProperties":false,"type":"object"},"HelmRefKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"Items":{"items":{"type":"string"},"type":"array"},"NotificationAction":{"properties":{"url":{"type":"string"},"connection":{"type":"string"},"title":{"type":"string"},"message":{"type":"string"},"properties":{"additionalProperties":{"type":"string"},"type":"object"}},"additionalProperties":false,"type":"object","required":["title","message"]},"Permission":{"properties":{"role":{"type":"string"},"team":{"type":"string"},"ref":{"type":"string"}},"additionalProperties":false,"type":"object"},"PlaybookAction":{"properties":{"name":{"type":"string"},"delay":{"type":"string"},"timeout":{"type":"string"},"if":{"type":"string"},"runsOn":{"items":{"type":"string"},"type":"array"},"templatesOn":{"type":"string"},"exec":{"$ref":"#/$defs/ExecAction"},"gitops":{"$ref":"#/$defs/GitOpsAction"},"github":{"$ref":"#/$defs/GithubAction"},"azureDevopsPipeline":{"$ref":"#/$defs/AzureDevopsPipelineAction"},"http":{"$ref":"#/$defs/HTTPAction"},"sql":{"$ref":"#/$defs/SQLAction"},"pod":{"$ref":"#/$defs/PodAction"},"notification":{"$ref":"#/$defs/NotificationAction"}},"additionalProperties":false,"type":"object","required":["name"]},"PlaybookApproval":{"properties":{"type":{"type":"string"},"approvers":{"$ref":"#/$defs/PlaybookApprovers"}},"additionalProperties":false,"type":"object"},"PlaybookApprovers":{"properties":{"people":{"items":{"type":"string"},"type":"array"},"teams":{"items":{"type":"string"},"type":"array"}},"additionalProperties":false,"type":"object"},"PlaybookEventWebhookAuth":{"properties":{"basic":{"$ref":"#/$defs/PlaybookEventWebhookAuthBasic"},"github":{"$ref":"#/$defs/PlaybookEventWebhookAuthGithub"},"svix":{"$ref":"#/$defs/PlaybookEventWebhookAuthSVIX"},"jwt":{"$ref":"#/$defs/PlaybookEventWebhookAuthJWT"}},"additionalProperties":false,"type":"object"},"PlaybookEventWebhookAuthBasic":{"properties":{"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"}},"additionalProperties":false,"type":"object","required":["username","password"]},"PlaybookEventWebhookAuthGithub":{"properties":{"token":{"$ref":"#/$defs/EnvVar"}},"additionalProperties":false,"type":"object","required":["token"]},"PlaybookEventWebhookAuthJWT":{"properties":{"jwksUri":{"type":"string"}},"additionalProperties":false,"type":"object","required":["jwksUri"]},"PlaybookEventWebhookAuthSVIX":{"properties":{"secret":{"$ref":"#/$defs/EnvVar"},"verifyTimestamp":{"type":"string"}},"additionalProperties":false,"type":"object","required":["secret"]},"PlaybookParameter":{"properties":{"name":{"type":"string"},"default":{"type":"string"},"label":{"type":"string"},"required":{"type":"boolean"},"icon":{"type":"string"},"description":{"type":"string"},"type":{"type":"string"},"properties":true},"additionalProperties":false,"type":"object","required":["name","label"]},"PlaybookSpec":{"properties":{"title":{"type":"string"},"description":{"type":"string"},"category":{"type":"string"},"icon":{"type":"string"},"on":{"$ref":"#/$defs/PlaybookTrigger"},"runsOn":{"items":{"type":"string"},"type":"array"},"env":{"items":{"$ref":"#/$defs/EnvVar"},"type":"array"},"templatesOn":{"type":"string"},"permissions":{"items":{"$ref":"#/$defs/Permission"},"type":"array"},"configs":{"$ref":"#/$defs/ResourceSelectors"},"checks":{"$ref":"#/$defs/ResourceSelectors"},"components":{"$ref":"#/$defs/ResourceSelectors"},"parameters":{"items":{"$ref":"#/$defs/PlaybookParameter"},"type":"array"},"actions":{"items":{"$ref":"#/$defs/PlaybookAction"},"type":"array"},"filters":{"items":{"type":"string"},"type":"array"},"approval":{"$ref":"#/$defs/PlaybookApproval"}},"additionalProperties":false,"type":"object","required":["actions"]},"PlaybookTrigger":{"properties":{"canary":{"items":{"$ref":"#/$defs/PlaybookTriggerEvent"},"type":"array"},"config":{"items":{"$ref":"#/$defs/PlaybookTriggerEvent"},"type":"array"},"component":{"items":{"$ref":"#/$defs/PlaybookTriggerEvent"},"type":"array"},"webhook":{"$ref":"#/$defs/PlaybookTriggerWebhook"}},"additionalProperties":false,"type":"object"},"PlaybookTriggerEvent":{"properties":{"event":{"type":"string"},"labels":{"additionalProperties":{"type":"string"},"type":"object"},"filter":{"type":"string"}},"additionalProperties":false,"type":"object","required":["event"]},"PlaybookTriggerWebhook":{"properties":{"path":{"type":"string"},"authentication":{"$ref":"#/$defs/PlaybookEventWebhookAuth"}},"additionalProperties":false,"type":"object","required":["path"]},"PodAction":{"properties":{"name":{"type":"string"},"maxLength":{"type":"integer"},"spec":true,"artifacts":{"items":{"$ref":"#/$defs/Artifact"},"type":"array"}},"additionalProperties":false,"type":"object","required":["name","spec"]},"ResourceSelector":{"properties":{"agent":{"type":"string"},"cache":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"types":{"$ref":"#/$defs/Items"},"statuses":{"$ref":"#/$defs/Items"},"tagSelector":{"type":"string"},"labelSelector":{"type":"string"},"fieldSelector":{"type":"string"}},"additionalProperties":false,"type":"object"},"ResourceSelectors":{"items":{"$ref":"#/$defs/ResourceSelector"},"type":"array"},"SQLAction":{"properties":{"connection":{"type":"string"},"url":{"type":"string"},"query":{"type":"string"},"driver":{"type":"string"}},"additionalProperties":false,"type":"object","required":["query","driver"]},"SecretKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]}}} \ No newline at end of file +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://github.com/flanksource/incident-commander/api/v1/playbook-spec", + "$ref": "#/$defs/PlaybookSpec", + "$defs": { + "AWSConnection": { + "properties": { + "connection": { + "type": "string" + }, + "accessKey": { + "$ref": "#/$defs/EnvVar" + }, + "secretKey": { + "$ref": "#/$defs/EnvVar" + }, + "sessionToken": { + "$ref": "#/$defs/EnvVar" + }, + "region": { + "type": "string" + }, + "endpoint": { + "type": "string" + }, + "skipTLSVerify": { + "type": "boolean" + }, + "objectPath": { + "type": "string" + }, + "usePathStyle": { + "type": "boolean" + } + }, + "additionalProperties": false, + "type": "object" + }, + "Artifact": { + "properties": { + "path": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "path" + ] + }, + "AzureConnection": { + "properties": { + "connection": { + "type": "string" + }, + "clientID": { + "$ref": "#/$defs/EnvVar" + }, + "clientSecret": { + "$ref": "#/$defs/EnvVar" + }, + "tenantID": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "AzureDevopsPipeline": { + "properties": { + "id": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "id" + ] + }, + "AzureDevopsPipelineAction": { + "properties": { + "org": { + "type": "string" + }, + "project": { + "type": "string" + }, + "token": { + "$ref": "#/$defs/EnvVar" + }, + "pipeline": { + "$ref": "#/$defs/AzureDevopsPipeline" + }, + "parameters": { + "$ref": "#/$defs/AzureDevopsPipelineParameters" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "org", + "project", + "token", + "pipeline" + ] + }, + "AzureDevopsPipelineParameters": { + "properties": { + "resources": true, + "templateParameters": true, + "variables": true, + "stagesToSkip": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ConfigMapKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "EnvVar": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "$ref": "#/$defs/EnvVarSource" + } + }, + "additionalProperties": false, + "type": "object" + }, + "EnvVarSource": { + "properties": { + "serviceAccount": { + "type": "string" + }, + "helmRef": { + "$ref": "#/$defs/HelmRefKeySelector" + }, + "configMapKeyRef": { + "$ref": "#/$defs/ConfigMapKeySelector" + }, + "secretKeyRef": { + "$ref": "#/$defs/SecretKeySelector" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ExecAction": { + "properties": { + "script": { + "type": "string" + }, + "connections": { + "$ref": "#/$defs/ExecConnections" + }, + "artifacts": { + "items": { + "$ref": "#/$defs/Artifact" + }, + "type": "array" + }, + "env": { + "items": { + "$ref": "#/$defs/EnvVar" + }, + "type": "array" + }, + "checkout": { + "$ref": "#/$defs/GitCheckout" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "script" + ] + }, + "ExecConnections": { + "properties": { + "aws": { + "$ref": "#/$defs/AWSConnection" + }, + "gcp": { + "$ref": "#/$defs/GCPConnection" + }, + "azure": { + "$ref": "#/$defs/AzureConnection" + } + }, + "additionalProperties": false, + "type": "object" + }, + "GCPConnection": { + "properties": { + "connection": { + "type": "string" + }, + "endpoint": { + "type": "string" + }, + "credentials": { + "$ref": "#/$defs/EnvVar" + } + }, + "additionalProperties": false, + "type": "object" + }, + "GitCheckout": { + "properties": { + "url": { + "type": "string" + }, + "connection": { + "type": "string" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + }, + "certificate": { + "$ref": "#/$defs/EnvVar" + }, + "destination": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "GitOpsAction": { + "properties": { + "repo": { + "$ref": "#/$defs/GitOpsActionRepo" + }, + "commit": { + "$ref": "#/$defs/GitOpsActionCommit" + }, + "pr": { + "$ref": "#/$defs/GitOpsActionPR" + }, + "patches": { + "items": { + "$ref": "#/$defs/GitOpsActionPatch" + }, + "type": "array" + }, + "files": { + "items": { + "$ref": "#/$defs/GitOpsActionFile" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "repo", + "commit" + ] + }, + "GitOpsActionCommit": { + "properties": { + "author": { + "type": "string" + }, + "email": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "author", + "email", + "message" + ] + }, + "GitOpsActionFile": { + "properties": { + "path": { + "type": "string" + }, + "content": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "path", + "content" + ] + }, + "GitOpsActionPR": { + "properties": { + "title": { + "type": "string" + }, + "tags": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "title" + ] + }, + "GitOpsActionPatch": { + "properties": { + "path": { + "type": "string" + }, + "yq": { + "type": "string" + }, + "jq": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "path" + ] + }, + "GitOpsActionRepo": { + "properties": { + "url": { + "type": "string" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + }, + "base": { + "type": "string" + }, + "branch": { + "type": "string" + }, + "skipExisting": { + "type": "boolean" + }, + "force": { + "type": "boolean" + }, + "connection": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "url" + ] + }, + "GithubAction": { + "properties": { + "repo": { + "type": "string" + }, + "username": { + "type": "string" + }, + "token": { + "$ref": "#/$defs/EnvVar" + }, + "workflows": { + "items": { + "$ref": "#/$defs/GithubWorkflow" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "repo", + "username", + "token" + ] + }, + "GithubWorkflow": { + "properties": { + "id": { + "type": "string" + }, + "ref": { + "type": "string" + }, + "input": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "id" + ] + }, + "HTTPAction": { + "properties": { + "connection": { + "type": "string" + }, + "url": { + "type": "string" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + }, + "method": { + "type": "string" + }, + "ntlm": { + "type": "boolean" + }, + "ntlmv2": { + "type": "boolean" + }, + "headers": { + "items": { + "$ref": "#/$defs/EnvVar" + }, + "type": "array" + }, + "body": { + "type": "string" + }, + "templateBody": { + "type": "boolean" + } + }, + "additionalProperties": false, + "type": "object" + }, + "HelmRefKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "Items": { + "items": { + "type": "string" + }, + "type": "array" + }, + "NotificationAction": { + "properties": { + "url": { + "type": "string" + }, + "connection": { + "type": "string" + }, + "title": { + "type": "string" + }, + "message": { + "type": "string" + }, + "properties": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "title", + "message" + ] + }, + "Permission": { + "properties": { + "role": { + "type": "string" + }, + "team": { + "type": "string" + }, + "ref": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "PlaybookAction": { + "properties": { + "name": { + "type": "string" + }, + "delay": { + "type": "string" + }, + "timeout": { + "type": "string" + }, + "if": { + "type": "string" + }, + "runsOn": { + "items": { + "type": "string" + }, + "type": "array" + }, + "templatesOn": { + "type": "string" + }, + "exec": { + "$ref": "#/$defs/ExecAction" + }, + "gitops": { + "$ref": "#/$defs/GitOpsAction" + }, + "github": { + "$ref": "#/$defs/GithubAction" + }, + "azureDevopsPipeline": { + "$ref": "#/$defs/AzureDevopsPipelineAction" + }, + "http": { + "$ref": "#/$defs/HTTPAction" + }, + "sql": { + "$ref": "#/$defs/SQLAction" + }, + "pod": { + "$ref": "#/$defs/PodAction" + }, + "notification": { + "$ref": "#/$defs/NotificationAction" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "PlaybookApproval": { + "properties": { + "type": { + "type": "string" + }, + "approvers": { + "$ref": "#/$defs/PlaybookApprovers" + } + }, + "additionalProperties": false, + "type": "object" + }, + "PlaybookApprovers": { + "properties": { + "people": { + "items": { + "type": "string" + }, + "type": "array" + }, + "teams": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object" + }, + "PlaybookEventWebhookAuth": { + "properties": { + "basic": { + "$ref": "#/$defs/PlaybookEventWebhookAuthBasic" + }, + "github": { + "$ref": "#/$defs/PlaybookEventWebhookAuthGithub" + }, + "svix": { + "$ref": "#/$defs/PlaybookEventWebhookAuthSVIX" + }, + "jwt": { + "$ref": "#/$defs/PlaybookEventWebhookAuthJWT" + } + }, + "additionalProperties": false, + "type": "object" + }, + "PlaybookEventWebhookAuthBasic": { + "properties": { + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "username", + "password" + ] + }, + "PlaybookEventWebhookAuthGithub": { + "properties": { + "token": { + "$ref": "#/$defs/EnvVar" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "token" + ] + }, + "PlaybookEventWebhookAuthJWT": { + "properties": { + "jwksUri": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "jwksUri" + ] + }, + "PlaybookEventWebhookAuthSVIX": { + "properties": { + "secret": { + "$ref": "#/$defs/EnvVar" + }, + "verifyTimestamp": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "secret" + ] + }, + "PlaybookParameter": { + "properties": { + "name": { + "type": "string" + }, + "default": { + "type": "string" + }, + "label": { + "type": "string" + }, + "required": { + "type": "boolean" + }, + "icon": { + "type": "string" + }, + "description": { + "type": "string" + }, + "type": { + "type": "string" + }, + "properties": true + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "PlaybookSpec": { + "properties": { + "title": { + "type": "string" + }, + "description": { + "type": "string" + }, + "category": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "on": { + "$ref": "#/$defs/PlaybookTrigger" + }, + "runsOn": { + "items": { + "type": "string" + }, + "type": "array" + }, + "env": { + "items": { + "$ref": "#/$defs/EnvVar" + }, + "type": "array" + }, + "templatesOn": { + "type": "string" + }, + "permissions": { + "items": { + "$ref": "#/$defs/Permission" + }, + "type": "array" + }, + "configs": { + "$ref": "#/$defs/ResourceSelectors" + }, + "checks": { + "$ref": "#/$defs/ResourceSelectors" + }, + "components": { + "$ref": "#/$defs/ResourceSelectors" + }, + "parameters": { + "items": { + "$ref": "#/$defs/PlaybookParameter" + }, + "type": "array" + }, + "actions": { + "items": { + "$ref": "#/$defs/PlaybookAction" + }, + "type": "array" + }, + "filters": { + "items": { + "type": "string" + }, + "type": "array" + }, + "approval": { + "$ref": "#/$defs/PlaybookApproval" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "actions" + ] + }, + "PlaybookTrigger": { + "properties": { + "canary": { + "items": { + "$ref": "#/$defs/PlaybookTriggerEvent" + }, + "type": "array" + }, + "config": { + "items": { + "$ref": "#/$defs/PlaybookTriggerEvent" + }, + "type": "array" + }, + "component": { + "items": { + "$ref": "#/$defs/PlaybookTriggerEvent" + }, + "type": "array" + }, + "webhook": { + "$ref": "#/$defs/PlaybookTriggerWebhook" + } + }, + "additionalProperties": false, + "type": "object" + }, + "PlaybookTriggerEvent": { + "properties": { + "event": { + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "filter": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "event" + ] + }, + "PlaybookTriggerWebhook": { + "properties": { + "path": { + "type": "string" + }, + "authentication": { + "$ref": "#/$defs/PlaybookEventWebhookAuth" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "path" + ] + }, + "PodAction": { + "properties": { + "name": { + "type": "string" + }, + "maxLength": { + "type": "integer" + }, + "spec": true, + "artifacts": { + "items": { + "$ref": "#/$defs/Artifact" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "spec" + ] + }, + "ResourceSelector": { + "properties": { + "agent": { + "type": "string" + }, + "scope": { + "type": "string" + }, + "cache": { + "type": "string" + }, + "search": { + "type": "string" + }, + "includeDeleted": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "types": { + "$ref": "#/$defs/Items" + }, + "statuses": { + "$ref": "#/$defs/Items" + }, + "tagSelector": { + "type": "string" + }, + "labelSelector": { + "type": "string" + }, + "fieldSelector": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ResourceSelectors": { + "items": { + "$ref": "#/$defs/ResourceSelector" + }, + "type": "array" + }, + "SQLAction": { + "properties": { + "connection": { + "type": "string" + }, + "url": { + "type": "string" + }, + "query": { + "type": "string" + }, + "driver": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "query", + "driver" + ] + }, + "SecretKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + } + } +} \ No newline at end of file diff --git a/schema/openapi/playbook.schema.json b/schema/openapi/playbook.schema.json index 733c2ce4..79482d76 100644 --- a/schema/openapi/playbook.schema.json +++ b/schema/openapi/playbook.schema.json @@ -1 +1,1141 @@ -{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://github.com/flanksource/incident-commander/api/v1/playbook","$ref":"#/$defs/Playbook","$defs":{"AWSConnection":{"properties":{"connection":{"type":"string"},"accessKey":{"$ref":"#/$defs/EnvVar"},"secretKey":{"$ref":"#/$defs/EnvVar"},"sessionToken":{"$ref":"#/$defs/EnvVar"},"region":{"type":"string"},"endpoint":{"type":"string"},"skipTLSVerify":{"type":"boolean"},"objectPath":{"type":"string"},"usePathStyle":{"type":"boolean"}},"additionalProperties":false,"type":"object"},"Artifact":{"properties":{"path":{"type":"string"}},"additionalProperties":false,"type":"object","required":["path"]},"AzureConnection":{"properties":{"connection":{"type":"string"},"clientID":{"$ref":"#/$defs/EnvVar"},"clientSecret":{"$ref":"#/$defs/EnvVar"},"tenantID":{"type":"string"}},"additionalProperties":false,"type":"object"},"AzureDevopsPipeline":{"properties":{"id":{"type":"string"},"version":{"type":"string"}},"additionalProperties":false,"type":"object","required":["id"]},"AzureDevopsPipelineAction":{"properties":{"org":{"type":"string"},"project":{"type":"string"},"token":{"$ref":"#/$defs/EnvVar"},"pipeline":{"$ref":"#/$defs/AzureDevopsPipeline"},"parameters":{"$ref":"#/$defs/AzureDevopsPipelineParameters"}},"additionalProperties":false,"type":"object","required":["org","project","token","pipeline"]},"AzureDevopsPipelineParameters":{"properties":{"resources":true,"templateParameters":true,"variables":true,"stagesToSkip":{"items":{"type":"string"},"type":"array"}},"additionalProperties":false,"type":"object"},"ConfigMapKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"EnvVar":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueFrom":{"$ref":"#/$defs/EnvVarSource"}},"additionalProperties":false,"type":"object"},"EnvVarSource":{"properties":{"serviceAccount":{"type":"string"},"helmRef":{"$ref":"#/$defs/HelmRefKeySelector"},"configMapKeyRef":{"$ref":"#/$defs/ConfigMapKeySelector"},"secretKeyRef":{"$ref":"#/$defs/SecretKeySelector"}},"additionalProperties":false,"type":"object"},"ExecAction":{"properties":{"script":{"type":"string"},"connections":{"$ref":"#/$defs/ExecConnections"},"artifacts":{"items":{"$ref":"#/$defs/Artifact"},"type":"array"},"env":{"items":{"$ref":"#/$defs/EnvVar"},"type":"array"},"checkout":{"$ref":"#/$defs/GitCheckout"}},"additionalProperties":false,"type":"object","required":["script"]},"ExecConnections":{"properties":{"aws":{"$ref":"#/$defs/AWSConnection"},"gcp":{"$ref":"#/$defs/GCPConnection"},"azure":{"$ref":"#/$defs/AzureConnection"}},"additionalProperties":false,"type":"object"},"FieldsV1":{"properties":{},"additionalProperties":false,"type":"object"},"GCPConnection":{"properties":{"connection":{"type":"string"},"endpoint":{"type":"string"},"credentials":{"$ref":"#/$defs/EnvVar"}},"additionalProperties":false,"type":"object"},"GitCheckout":{"properties":{"url":{"type":"string"},"connection":{"type":"string"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"},"certificate":{"$ref":"#/$defs/EnvVar"},"destination":{"type":"string"}},"additionalProperties":false,"type":"object"},"GitOpsAction":{"properties":{"repo":{"$ref":"#/$defs/GitOpsActionRepo"},"commit":{"$ref":"#/$defs/GitOpsActionCommit"},"pr":{"$ref":"#/$defs/GitOpsActionPR"},"patches":{"items":{"$ref":"#/$defs/GitOpsActionPatch"},"type":"array"},"files":{"items":{"$ref":"#/$defs/GitOpsActionFile"},"type":"array"}},"additionalProperties":false,"type":"object","required":["repo","commit"]},"GitOpsActionCommit":{"properties":{"author":{"type":"string"},"email":{"type":"string"},"message":{"type":"string"}},"additionalProperties":false,"type":"object","required":["author","email","message"]},"GitOpsActionFile":{"properties":{"path":{"type":"string"},"content":{"type":"string"}},"additionalProperties":false,"type":"object","required":["path","content"]},"GitOpsActionPR":{"properties":{"title":{"type":"string"},"tags":{"items":{"type":"string"},"type":"array"}},"additionalProperties":false,"type":"object","required":["title"]},"GitOpsActionPatch":{"properties":{"path":{"type":"string"},"yq":{"type":"string"},"jq":{"type":"string"}},"additionalProperties":false,"type":"object","required":["path"]},"GitOpsActionRepo":{"properties":{"url":{"type":"string"},"base":{"type":"string"},"branch":{"type":"string"},"connection":{"type":"string"},"type":{"type":"string"}},"additionalProperties":false,"type":"object","required":["url"]},"GithubAction":{"properties":{"repo":{"type":"string"},"username":{"type":"string"},"token":{"$ref":"#/$defs/EnvVar"},"workflows":{"items":{"$ref":"#/$defs/GithubWorkflow"},"type":"array"}},"additionalProperties":false,"type":"object","required":["repo","username","token"]},"GithubWorkflow":{"properties":{"id":{"type":"string"},"ref":{"type":"string"},"input":{"type":"string"}},"additionalProperties":false,"type":"object","required":["id"]},"HTTPAction":{"properties":{"connection":{"type":"string"},"url":{"type":"string"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"},"method":{"type":"string"},"ntlm":{"type":"boolean"},"ntlmv2":{"type":"boolean"},"headers":{"items":{"$ref":"#/$defs/EnvVar"},"type":"array"},"body":{"type":"string"},"templateBody":{"type":"boolean"}},"additionalProperties":false,"type":"object"},"HelmRefKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"Items":{"items":{"type":"string"},"type":"array"},"ManagedFieldsEntry":{"properties":{"manager":{"type":"string"},"operation":{"type":"string"},"apiVersion":{"type":"string"},"time":{"$ref":"#/$defs/Time"},"fieldsType":{"type":"string"},"fieldsV1":{"$ref":"#/$defs/FieldsV1"},"subresource":{"type":"string"}},"additionalProperties":false,"type":"object"},"NotificationAction":{"properties":{"url":{"type":"string"},"connection":{"type":"string"},"title":{"type":"string"},"message":{"type":"string"},"properties":{"additionalProperties":{"type":"string"},"type":"object"}},"additionalProperties":false,"type":"object","required":["title","message"]},"ObjectMeta":{"properties":{"name":{"type":"string"},"generateName":{"type":"string"},"namespace":{"type":"string"},"selfLink":{"type":"string"},"uid":{"type":"string"},"resourceVersion":{"type":"string"},"generation":{"type":"integer"},"creationTimestamp":{"$ref":"#/$defs/Time"},"deletionTimestamp":{"$ref":"#/$defs/Time"},"deletionGracePeriodSeconds":{"type":"integer"},"labels":{"additionalProperties":{"type":"string"},"type":"object"},"annotations":{"additionalProperties":{"type":"string"},"type":"object"},"ownerReferences":{"items":{"$ref":"#/$defs/OwnerReference"},"type":"array"},"finalizers":{"items":{"type":"string"},"type":"array"},"managedFields":{"items":{"$ref":"#/$defs/ManagedFieldsEntry"},"type":"array"}},"additionalProperties":false,"type":"object"},"OwnerReference":{"properties":{"apiVersion":{"type":"string"},"kind":{"type":"string"},"name":{"type":"string"},"uid":{"type":"string"},"controller":{"type":"boolean"},"blockOwnerDeletion":{"type":"boolean"}},"additionalProperties":false,"type":"object","required":["apiVersion","kind","name","uid"]},"Permission":{"properties":{"role":{"type":"string"},"team":{"type":"string"},"ref":{"type":"string"}},"additionalProperties":false,"type":"object"},"Playbook":{"properties":{"kind":{"type":"string"},"apiVersion":{"type":"string"},"metadata":{"$ref":"#/$defs/ObjectMeta"},"spec":{"$ref":"#/$defs/PlaybookSpec"},"status":{"$ref":"#/$defs/PlaybookStatus"}},"additionalProperties":false,"type":"object"},"PlaybookAction":{"properties":{"name":{"type":"string"},"delay":{"type":"string"},"timeout":{"type":"string"},"if":{"type":"string"},"runsOn":{"items":{"type":"string"},"type":"array"},"templatesOn":{"type":"string"},"exec":{"$ref":"#/$defs/ExecAction"},"gitops":{"$ref":"#/$defs/GitOpsAction"},"github":{"$ref":"#/$defs/GithubAction"},"azureDevopsPipeline":{"$ref":"#/$defs/AzureDevopsPipelineAction"},"http":{"$ref":"#/$defs/HTTPAction"},"sql":{"$ref":"#/$defs/SQLAction"},"pod":{"$ref":"#/$defs/PodAction"},"notification":{"$ref":"#/$defs/NotificationAction"}},"additionalProperties":false,"type":"object","required":["name"]},"PlaybookApproval":{"properties":{"type":{"type":"string"},"approvers":{"$ref":"#/$defs/PlaybookApprovers"}},"additionalProperties":false,"type":"object"},"PlaybookApprovers":{"properties":{"people":{"items":{"type":"string"},"type":"array"},"teams":{"items":{"type":"string"},"type":"array"}},"additionalProperties":false,"type":"object"},"PlaybookEventWebhookAuth":{"properties":{"basic":{"$ref":"#/$defs/PlaybookEventWebhookAuthBasic"},"github":{"$ref":"#/$defs/PlaybookEventWebhookAuthGithub"},"svix":{"$ref":"#/$defs/PlaybookEventWebhookAuthSVIX"},"jwt":{"$ref":"#/$defs/PlaybookEventWebhookAuthJWT"}},"additionalProperties":false,"type":"object"},"PlaybookEventWebhookAuthBasic":{"properties":{"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"}},"additionalProperties":false,"type":"object","required":["username","password"]},"PlaybookEventWebhookAuthGithub":{"properties":{"token":{"$ref":"#/$defs/EnvVar"}},"additionalProperties":false,"type":"object","required":["token"]},"PlaybookEventWebhookAuthJWT":{"properties":{"jwksUri":{"type":"string"}},"additionalProperties":false,"type":"object","required":["jwksUri"]},"PlaybookEventWebhookAuthSVIX":{"properties":{"secret":{"$ref":"#/$defs/EnvVar"},"verifyTimestamp":{"type":"string"}},"additionalProperties":false,"type":"object","required":["secret"]},"PlaybookParameter":{"properties":{"name":{"type":"string"},"default":{"type":"string"},"label":{"type":"string"},"required":{"type":"boolean"},"icon":{"type":"string"},"description":{"type":"string"},"type":{"type":"string"},"properties":true},"additionalProperties":false,"type":"object","required":["name","label"]},"PlaybookSpec":{"properties":{"title":{"type":"string"},"description":{"type":"string"},"category":{"type":"string"},"icon":{"type":"string"},"on":{"$ref":"#/$defs/PlaybookTrigger"},"runsOn":{"items":{"type":"string"},"type":"array"},"env":{"items":{"$ref":"#/$defs/EnvVar"},"type":"array"},"templatesOn":{"type":"string"},"permissions":{"items":{"$ref":"#/$defs/Permission"},"type":"array"},"configs":{"$ref":"#/$defs/ResourceSelectors"},"checks":{"$ref":"#/$defs/ResourceSelectors"},"components":{"$ref":"#/$defs/ResourceSelectors"},"parameters":{"items":{"$ref":"#/$defs/PlaybookParameter"},"type":"array"},"actions":{"items":{"$ref":"#/$defs/PlaybookAction"},"type":"array"},"filters":{"items":{"type":"string"},"type":"array"},"approval":{"$ref":"#/$defs/PlaybookApproval"}},"additionalProperties":false,"type":"object","required":["actions"]},"PlaybookStatus":{"properties":{},"additionalProperties":false,"type":"object"},"PlaybookTrigger":{"properties":{"canary":{"items":{"$ref":"#/$defs/PlaybookTriggerEvent"},"type":"array"},"config":{"items":{"$ref":"#/$defs/PlaybookTriggerEvent"},"type":"array"},"component":{"items":{"$ref":"#/$defs/PlaybookTriggerEvent"},"type":"array"},"webhook":{"$ref":"#/$defs/PlaybookTriggerWebhook"}},"additionalProperties":false,"type":"object"},"PlaybookTriggerEvent":{"properties":{"event":{"type":"string"},"labels":{"additionalProperties":{"type":"string"},"type":"object"},"filter":{"type":"string"}},"additionalProperties":false,"type":"object","required":["event"]},"PlaybookTriggerWebhook":{"properties":{"path":{"type":"string"},"authentication":{"$ref":"#/$defs/PlaybookEventWebhookAuth"}},"additionalProperties":false,"type":"object","required":["path"]},"PodAction":{"properties":{"name":{"type":"string"},"maxLength":{"type":"integer"},"spec":true,"artifacts":{"items":{"$ref":"#/$defs/Artifact"},"type":"array"}},"additionalProperties":false,"type":"object","required":["name","spec"]},"ResourceSelector":{"properties":{"agent":{"type":"string"},"cache":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"types":{"$ref":"#/$defs/Items"},"statuses":{"$ref":"#/$defs/Items"},"tagSelector":{"type":"string"},"labelSelector":{"type":"string"},"fieldSelector":{"type":"string"}},"additionalProperties":false,"type":"object"},"ResourceSelectors":{"items":{"$ref":"#/$defs/ResourceSelector"},"type":"array"},"SQLAction":{"properties":{"connection":{"type":"string"},"url":{"type":"string"},"query":{"type":"string"},"driver":{"type":"string"}},"additionalProperties":false,"type":"object","required":["query","driver"]},"SecretKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"Time":{"properties":{},"additionalProperties":false,"type":"object"}}} \ No newline at end of file +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://github.com/flanksource/incident-commander/api/v1/playbook", + "$ref": "#/$defs/Playbook", + "$defs": { + "AWSConnection": { + "properties": { + "connection": { + "type": "string" + }, + "accessKey": { + "$ref": "#/$defs/EnvVar" + }, + "secretKey": { + "$ref": "#/$defs/EnvVar" + }, + "sessionToken": { + "$ref": "#/$defs/EnvVar" + }, + "region": { + "type": "string" + }, + "endpoint": { + "type": "string" + }, + "skipTLSVerify": { + "type": "boolean" + }, + "objectPath": { + "type": "string" + }, + "usePathStyle": { + "type": "boolean" + } + }, + "additionalProperties": false, + "type": "object" + }, + "Artifact": { + "properties": { + "path": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "path" + ] + }, + "AzureConnection": { + "properties": { + "connection": { + "type": "string" + }, + "clientID": { + "$ref": "#/$defs/EnvVar" + }, + "clientSecret": { + "$ref": "#/$defs/EnvVar" + }, + "tenantID": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "AzureDevopsPipeline": { + "properties": { + "id": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "id" + ] + }, + "AzureDevopsPipelineAction": { + "properties": { + "org": { + "type": "string" + }, + "project": { + "type": "string" + }, + "token": { + "$ref": "#/$defs/EnvVar" + }, + "pipeline": { + "$ref": "#/$defs/AzureDevopsPipeline" + }, + "parameters": { + "$ref": "#/$defs/AzureDevopsPipelineParameters" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "org", + "project", + "token", + "pipeline" + ] + }, + "AzureDevopsPipelineParameters": { + "properties": { + "resources": true, + "templateParameters": true, + "variables": true, + "stagesToSkip": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ConfigMapKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "EnvVar": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "$ref": "#/$defs/EnvVarSource" + } + }, + "additionalProperties": false, + "type": "object" + }, + "EnvVarSource": { + "properties": { + "serviceAccount": { + "type": "string" + }, + "helmRef": { + "$ref": "#/$defs/HelmRefKeySelector" + }, + "configMapKeyRef": { + "$ref": "#/$defs/ConfigMapKeySelector" + }, + "secretKeyRef": { + "$ref": "#/$defs/SecretKeySelector" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ExecAction": { + "properties": { + "script": { + "type": "string" + }, + "connections": { + "$ref": "#/$defs/ExecConnections" + }, + "artifacts": { + "items": { + "$ref": "#/$defs/Artifact" + }, + "type": "array" + }, + "env": { + "items": { + "$ref": "#/$defs/EnvVar" + }, + "type": "array" + }, + "checkout": { + "$ref": "#/$defs/GitCheckout" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "script" + ] + }, + "ExecConnections": { + "properties": { + "aws": { + "$ref": "#/$defs/AWSConnection" + }, + "gcp": { + "$ref": "#/$defs/GCPConnection" + }, + "azure": { + "$ref": "#/$defs/AzureConnection" + } + }, + "additionalProperties": false, + "type": "object" + }, + "FieldsV1": { + "properties": {}, + "additionalProperties": false, + "type": "object" + }, + "GCPConnection": { + "properties": { + "connection": { + "type": "string" + }, + "endpoint": { + "type": "string" + }, + "credentials": { + "$ref": "#/$defs/EnvVar" + } + }, + "additionalProperties": false, + "type": "object" + }, + "GitCheckout": { + "properties": { + "url": { + "type": "string" + }, + "connection": { + "type": "string" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + }, + "certificate": { + "$ref": "#/$defs/EnvVar" + }, + "destination": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "GitOpsAction": { + "properties": { + "repo": { + "$ref": "#/$defs/GitOpsActionRepo" + }, + "commit": { + "$ref": "#/$defs/GitOpsActionCommit" + }, + "pr": { + "$ref": "#/$defs/GitOpsActionPR" + }, + "patches": { + "items": { + "$ref": "#/$defs/GitOpsActionPatch" + }, + "type": "array" + }, + "files": { + "items": { + "$ref": "#/$defs/GitOpsActionFile" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "repo", + "commit" + ] + }, + "GitOpsActionCommit": { + "properties": { + "author": { + "type": "string" + }, + "email": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "author", + "email", + "message" + ] + }, + "GitOpsActionFile": { + "properties": { + "path": { + "type": "string" + }, + "content": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "path", + "content" + ] + }, + "GitOpsActionPR": { + "properties": { + "title": { + "type": "string" + }, + "tags": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "title" + ] + }, + "GitOpsActionPatch": { + "properties": { + "path": { + "type": "string" + }, + "yq": { + "type": "string" + }, + "jq": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "path" + ] + }, + "GitOpsActionRepo": { + "properties": { + "url": { + "type": "string" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + }, + "base": { + "type": "string" + }, + "branch": { + "type": "string" + }, + "skipExisting": { + "type": "boolean" + }, + "force": { + "type": "boolean" + }, + "connection": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "url" + ] + }, + "GithubAction": { + "properties": { + "repo": { + "type": "string" + }, + "username": { + "type": "string" + }, + "token": { + "$ref": "#/$defs/EnvVar" + }, + "workflows": { + "items": { + "$ref": "#/$defs/GithubWorkflow" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "repo", + "username", + "token" + ] + }, + "GithubWorkflow": { + "properties": { + "id": { + "type": "string" + }, + "ref": { + "type": "string" + }, + "input": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "id" + ] + }, + "HTTPAction": { + "properties": { + "connection": { + "type": "string" + }, + "url": { + "type": "string" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + }, + "method": { + "type": "string" + }, + "ntlm": { + "type": "boolean" + }, + "ntlmv2": { + "type": "boolean" + }, + "headers": { + "items": { + "$ref": "#/$defs/EnvVar" + }, + "type": "array" + }, + "body": { + "type": "string" + }, + "templateBody": { + "type": "boolean" + } + }, + "additionalProperties": false, + "type": "object" + }, + "HelmRefKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "Items": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ManagedFieldsEntry": { + "properties": { + "manager": { + "type": "string" + }, + "operation": { + "type": "string" + }, + "apiVersion": { + "type": "string" + }, + "time": { + "$ref": "#/$defs/Time" + }, + "fieldsType": { + "type": "string" + }, + "fieldsV1": { + "$ref": "#/$defs/FieldsV1" + }, + "subresource": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "NotificationAction": { + "properties": { + "url": { + "type": "string" + }, + "connection": { + "type": "string" + }, + "title": { + "type": "string" + }, + "message": { + "type": "string" + }, + "properties": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "title", + "message" + ] + }, + "ObjectMeta": { + "properties": { + "name": { + "type": "string" + }, + "generateName": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "selfLink": { + "type": "string" + }, + "uid": { + "type": "string" + }, + "resourceVersion": { + "type": "string" + }, + "generation": { + "type": "integer" + }, + "creationTimestamp": { + "$ref": "#/$defs/Time" + }, + "deletionTimestamp": { + "$ref": "#/$defs/Time" + }, + "deletionGracePeriodSeconds": { + "type": "integer" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "annotations": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "ownerReferences": { + "items": { + "$ref": "#/$defs/OwnerReference" + }, + "type": "array" + }, + "finalizers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "managedFields": { + "items": { + "$ref": "#/$defs/ManagedFieldsEntry" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object" + }, + "OwnerReference": { + "properties": { + "apiVersion": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "name": { + "type": "string" + }, + "uid": { + "type": "string" + }, + "controller": { + "type": "boolean" + }, + "blockOwnerDeletion": { + "type": "boolean" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "apiVersion", + "kind", + "name", + "uid" + ] + }, + "Permission": { + "properties": { + "role": { + "type": "string" + }, + "team": { + "type": "string" + }, + "ref": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "Playbook": { + "properties": { + "kind": { + "type": "string" + }, + "apiVersion": { + "type": "string" + }, + "metadata": { + "$ref": "#/$defs/ObjectMeta" + }, + "spec": { + "$ref": "#/$defs/PlaybookSpec" + }, + "status": { + "$ref": "#/$defs/PlaybookStatus" + } + }, + "additionalProperties": false, + "type": "object" + }, + "PlaybookAction": { + "properties": { + "name": { + "type": "string" + }, + "delay": { + "type": "string" + }, + "timeout": { + "type": "string" + }, + "if": { + "type": "string" + }, + "runsOn": { + "items": { + "type": "string" + }, + "type": "array" + }, + "templatesOn": { + "type": "string" + }, + "exec": { + "$ref": "#/$defs/ExecAction" + }, + "gitops": { + "$ref": "#/$defs/GitOpsAction" + }, + "github": { + "$ref": "#/$defs/GithubAction" + }, + "azureDevopsPipeline": { + "$ref": "#/$defs/AzureDevopsPipelineAction" + }, + "http": { + "$ref": "#/$defs/HTTPAction" + }, + "sql": { + "$ref": "#/$defs/SQLAction" + }, + "pod": { + "$ref": "#/$defs/PodAction" + }, + "notification": { + "$ref": "#/$defs/NotificationAction" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "PlaybookApproval": { + "properties": { + "type": { + "type": "string" + }, + "approvers": { + "$ref": "#/$defs/PlaybookApprovers" + } + }, + "additionalProperties": false, + "type": "object" + }, + "PlaybookApprovers": { + "properties": { + "people": { + "items": { + "type": "string" + }, + "type": "array" + }, + "teams": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object" + }, + "PlaybookEventWebhookAuth": { + "properties": { + "basic": { + "$ref": "#/$defs/PlaybookEventWebhookAuthBasic" + }, + "github": { + "$ref": "#/$defs/PlaybookEventWebhookAuthGithub" + }, + "svix": { + "$ref": "#/$defs/PlaybookEventWebhookAuthSVIX" + }, + "jwt": { + "$ref": "#/$defs/PlaybookEventWebhookAuthJWT" + } + }, + "additionalProperties": false, + "type": "object" + }, + "PlaybookEventWebhookAuthBasic": { + "properties": { + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "username", + "password" + ] + }, + "PlaybookEventWebhookAuthGithub": { + "properties": { + "token": { + "$ref": "#/$defs/EnvVar" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "token" + ] + }, + "PlaybookEventWebhookAuthJWT": { + "properties": { + "jwksUri": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "jwksUri" + ] + }, + "PlaybookEventWebhookAuthSVIX": { + "properties": { + "secret": { + "$ref": "#/$defs/EnvVar" + }, + "verifyTimestamp": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "secret" + ] + }, + "PlaybookParameter": { + "properties": { + "name": { + "type": "string" + }, + "default": { + "type": "string" + }, + "label": { + "type": "string" + }, + "required": { + "type": "boolean" + }, + "icon": { + "type": "string" + }, + "description": { + "type": "string" + }, + "type": { + "type": "string" + }, + "properties": true + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "PlaybookSpec": { + "properties": { + "title": { + "type": "string" + }, + "description": { + "type": "string" + }, + "category": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "on": { + "$ref": "#/$defs/PlaybookTrigger" + }, + "runsOn": { + "items": { + "type": "string" + }, + "type": "array" + }, + "env": { + "items": { + "$ref": "#/$defs/EnvVar" + }, + "type": "array" + }, + "templatesOn": { + "type": "string" + }, + "permissions": { + "items": { + "$ref": "#/$defs/Permission" + }, + "type": "array" + }, + "configs": { + "$ref": "#/$defs/ResourceSelectors" + }, + "checks": { + "$ref": "#/$defs/ResourceSelectors" + }, + "components": { + "$ref": "#/$defs/ResourceSelectors" + }, + "parameters": { + "items": { + "$ref": "#/$defs/PlaybookParameter" + }, + "type": "array" + }, + "actions": { + "items": { + "$ref": "#/$defs/PlaybookAction" + }, + "type": "array" + }, + "filters": { + "items": { + "type": "string" + }, + "type": "array" + }, + "approval": { + "$ref": "#/$defs/PlaybookApproval" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "actions" + ] + }, + "PlaybookStatus": { + "properties": {}, + "additionalProperties": false, + "type": "object" + }, + "PlaybookTrigger": { + "properties": { + "canary": { + "items": { + "$ref": "#/$defs/PlaybookTriggerEvent" + }, + "type": "array" + }, + "config": { + "items": { + "$ref": "#/$defs/PlaybookTriggerEvent" + }, + "type": "array" + }, + "component": { + "items": { + "$ref": "#/$defs/PlaybookTriggerEvent" + }, + "type": "array" + }, + "webhook": { + "$ref": "#/$defs/PlaybookTriggerWebhook" + } + }, + "additionalProperties": false, + "type": "object" + }, + "PlaybookTriggerEvent": { + "properties": { + "event": { + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "filter": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "event" + ] + }, + "PlaybookTriggerWebhook": { + "properties": { + "path": { + "type": "string" + }, + "authentication": { + "$ref": "#/$defs/PlaybookEventWebhookAuth" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "path" + ] + }, + "PodAction": { + "properties": { + "name": { + "type": "string" + }, + "maxLength": { + "type": "integer" + }, + "spec": true, + "artifacts": { + "items": { + "$ref": "#/$defs/Artifact" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "spec" + ] + }, + "ResourceSelector": { + "properties": { + "agent": { + "type": "string" + }, + "scope": { + "type": "string" + }, + "cache": { + "type": "string" + }, + "search": { + "type": "string" + }, + "includeDeleted": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "types": { + "$ref": "#/$defs/Items" + }, + "statuses": { + "$ref": "#/$defs/Items" + }, + "tagSelector": { + "type": "string" + }, + "labelSelector": { + "type": "string" + }, + "fieldSelector": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ResourceSelectors": { + "items": { + "$ref": "#/$defs/ResourceSelector" + }, + "type": "array" + }, + "SQLAction": { + "properties": { + "connection": { + "type": "string" + }, + "url": { + "type": "string" + }, + "query": { + "type": "string" + }, + "driver": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "query", + "driver" + ] + }, + "SecretKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "Time": { + "properties": {}, + "additionalProperties": false, + "type": "object" + } + } +} \ No newline at end of file diff --git a/schema/openapi/scrape_config.schema.json b/schema/openapi/scrape_config.schema.json index aa011333..f8d3c03f 100644 --- a/schema/openapi/scrape_config.schema.json +++ b/schema/openapi/scrape_config.schema.json @@ -1 +1,2372 @@ -{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://github.com/flanksource/config-db/api/v1/scrape-config","$ref":"#/$defs/ScrapeConfig","$defs":{"AWS":{"properties":{"id":{"type":"string"},"name":{"type":"string"},"items":{"type":"string"},"type":{"type":"string"},"class":{"type":"string"},"transform":{"$ref":"#/$defs/Transform"},"format":{"type":"string"},"timestampFormat":{"type":"string"},"createFields":{"items":{"type":"string"},"type":"array"},"deleteFields":{"items":{"type":"string"},"type":"array"},"labels":{"$ref":"#/$defs/JSONStringMap"},"tags":{"$ref":"#/$defs/Tags"},"properties":{"items":{"$ref":"#/$defs/ConfigProperties"},"type":"array"},"connection":{"type":"string"},"accessKey":{"$ref":"#/$defs/EnvVar"},"secretKey":{"$ref":"#/$defs/EnvVar"},"region":{"items":{"type":"string"},"type":"array"},"endpoint":{"type":"string"},"skipTLSVerify":{"type":"boolean"},"assumeRole":{"type":"string"},"compliance":{"type":"boolean"},"cloudtrail":{"$ref":"#/$defs/CloudTrail"},"include":{"items":{"type":"string"},"type":"array"},"exclude":{"items":{"type":"string"},"type":"array"},"costReporting":{"$ref":"#/$defs/CostReporting"}},"additionalProperties":false,"type":"object","required":["region"]},"Authentication":{"properties":{"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"}},"additionalProperties":false,"type":"object","required":["username","password"]},"Azure":{"properties":{"id":{"type":"string"},"name":{"type":"string"},"items":{"type":"string"},"type":{"type":"string"},"class":{"type":"string"},"transform":{"$ref":"#/$defs/Transform"},"format":{"type":"string"},"timestampFormat":{"type":"string"},"createFields":{"items":{"type":"string"},"type":"array"},"deleteFields":{"items":{"type":"string"},"type":"array"},"labels":{"$ref":"#/$defs/JSONStringMap"},"tags":{"$ref":"#/$defs/Tags"},"properties":{"items":{"$ref":"#/$defs/ConfigProperties"},"type":"array"},"connection":{"type":"string"},"subscriptionID":{"type":"string"},"organisation":{"type":"string"},"clientID":{"$ref":"#/$defs/EnvVar"},"clientSecret":{"$ref":"#/$defs/EnvVar"},"tenantID":{"type":"string"},"exclusions":{"$ref":"#/$defs/AzureExclusions"}},"additionalProperties":false,"type":"object","required":["subscriptionID","organisation"]},"AzureDevops":{"properties":{"id":{"type":"string"},"name":{"type":"string"},"items":{"type":"string"},"type":{"type":"string"},"class":{"type":"string"},"transform":{"$ref":"#/$defs/Transform"},"format":{"type":"string"},"timestampFormat":{"type":"string"},"createFields":{"items":{"type":"string"},"type":"array"},"deleteFields":{"items":{"type":"string"},"type":"array"},"labels":{"$ref":"#/$defs/JSONStringMap"},"tags":{"$ref":"#/$defs/Tags"},"properties":{"items":{"$ref":"#/$defs/ConfigProperties"},"type":"array"},"connection":{"type":"string"},"organization":{"type":"string"},"personalAccessToken":{"$ref":"#/$defs/EnvVar"},"projects":{"items":{"type":"string"},"type":"array"},"pipelines":{"items":{"type":"string"},"type":"array"}},"additionalProperties":false,"type":"object","required":["projects","pipelines"]},"AzureExclusions":{"properties":{"activityLogs":{"items":{"type":"string"},"type":"array"}},"additionalProperties":false,"type":"object"},"ChangeMapping":{"properties":{"filter":{"type":"string"},"type":{"type":"string"},"action":{"type":"string"},"summary":{"type":"string"}},"additionalProperties":false,"type":"object"},"ChangeRetentionSpec":{"properties":{"name":{"type":"string"},"age":{"type":"string"},"count":{"type":"integer"}},"additionalProperties":false,"type":"object"},"CloudTrail":{"properties":{"exclude":{"items":{"type":"string"},"type":"array"},"maxAge":{"type":"string"}},"additionalProperties":false,"type":"object"},"ConfigFieldExclusion":{"properties":{"types":{"items":{"type":"string"},"type":"array"},"jsonpath":{"type":"string"}},"additionalProperties":false,"type":"object","required":["jsonpath"]},"ConfigMapKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"ConfigProperties":{"properties":{"label":{"type":"string"},"name":{"type":"string"},"tooltip":{"type":"string"},"icon":{"type":"string"},"type":{"type":"string"},"color":{"type":"string"},"order":{"type":"integer"},"headline":{"type":"boolean"},"text":{"type":"string"},"value":{"type":"integer"},"unit":{"type":"string"},"max":{"type":"integer"},"min":{"type":"integer"},"status":{"type":"string"},"lastTransition":{"type":"string"},"links":{"items":{"$ref":"#/$defs/Link"},"type":"array"},"filter":{"type":"string"}},"additionalProperties":false,"type":"object"},"CostReporting":{"properties":{"s3BucketPath":{"type":"string"},"table":{"type":"string"},"database":{"type":"string"},"region":{"type":"string"}},"additionalProperties":false,"type":"object"},"EnvVar":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueFrom":{"$ref":"#/$defs/EnvVarSource"}},"additionalProperties":false,"type":"object"},"EnvVarSource":{"properties":{"serviceAccount":{"type":"string"},"helmRef":{"$ref":"#/$defs/HelmRefKeySelector"},"configMapKeyRef":{"$ref":"#/$defs/ConfigMapKeySelector"},"secretKeyRef":{"$ref":"#/$defs/SecretKeySelector"}},"additionalProperties":false,"type":"object"},"FieldsV1":{"properties":{},"additionalProperties":false,"type":"object"},"File":{"properties":{"id":{"type":"string"},"name":{"type":"string"},"items":{"type":"string"},"type":{"type":"string"},"class":{"type":"string"},"transform":{"$ref":"#/$defs/Transform"},"format":{"type":"string"},"timestampFormat":{"type":"string"},"createFields":{"items":{"type":"string"},"type":"array"},"deleteFields":{"items":{"type":"string"},"type":"array"},"labels":{"$ref":"#/$defs/JSONStringMap"},"tags":{"$ref":"#/$defs/Tags"},"properties":{"items":{"$ref":"#/$defs/ConfigProperties"},"type":"array"},"url":{"type":"string"},"paths":{"items":{"type":"string"},"type":"array"},"ignore":{"items":{"type":"string"},"type":"array"},"icon":{"type":"string"},"connection":{"type":"string"}},"additionalProperties":false,"type":"object"},"GitHubActions":{"properties":{"id":{"type":"string"},"name":{"type":"string"},"items":{"type":"string"},"type":{"type":"string"},"class":{"type":"string"},"transform":{"$ref":"#/$defs/Transform"},"format":{"type":"string"},"timestampFormat":{"type":"string"},"createFields":{"items":{"type":"string"},"type":"array"},"deleteFields":{"items":{"type":"string"},"type":"array"},"labels":{"$ref":"#/$defs/JSONStringMap"},"tags":{"$ref":"#/$defs/Tags"},"properties":{"items":{"$ref":"#/$defs/ConfigProperties"},"type":"array"},"owner":{"type":"string"},"repository":{"type":"string"},"personalAccessToken":{"$ref":"#/$defs/EnvVar"},"connection":{"type":"string"},"workflows":{"items":{"type":"string"},"type":"array"}},"additionalProperties":false,"type":"object","required":["owner","repository","personalAccessToken","workflows"]},"HelmRefKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"JSONStringMap":{"additionalProperties":{"type":"string"},"type":"object"},"Kubernetes":{"properties":{"id":{"type":"string"},"name":{"type":"string"},"items":{"type":"string"},"type":{"type":"string"},"class":{"type":"string"},"transform":{"$ref":"#/$defs/Transform"},"format":{"type":"string"},"timestampFormat":{"type":"string"},"createFields":{"items":{"type":"string"},"type":"array"},"deleteFields":{"items":{"type":"string"},"type":"array"},"labels":{"$ref":"#/$defs/JSONStringMap"},"tags":{"$ref":"#/$defs/Tags"},"properties":{"items":{"$ref":"#/$defs/ConfigProperties"},"type":"array"},"clusterName":{"type":"string"},"namespace":{"type":"string"},"useCache":{"type":"boolean"},"allowIncomplete":{"type":"boolean"},"scope":{"type":"string"},"since":{"type":"string"},"selector":{"type":"string"},"fieldSelector":{"type":"string"},"maxInflight":{"type":"integer"},"kubeconfig":{"$ref":"#/$defs/EnvVar"},"watch":{"items":{"$ref":"#/$defs/KubernetesResourceToWatch"},"type":"array"},"event":{"$ref":"#/$defs/KubernetesEventConfig"},"exclusions":{"$ref":"#/$defs/KubernetesExclusionConfig"},"relationships":{"items":{"$ref":"#/$defs/KubernetesRelationshipSelectorTemplate"},"type":"array"}},"additionalProperties":false,"type":"object"},"KubernetesEventConfig":{"properties":{"exclusions":{"$ref":"#/$defs/KubernetesEventExclusions"},"severityKeywords":{"$ref":"#/$defs/SeverityKeywords"}},"additionalProperties":false,"type":"object"},"KubernetesEventExclusions":{"properties":{"name":{"items":{"type":"string"},"type":"array"},"namespace":{"items":{"type":"string"},"type":"array"},"reason":{"items":{"type":"string"},"type":"array"}},"additionalProperties":false,"type":"object"},"KubernetesExclusionConfig":{"properties":{"name":{"items":{"type":"string"},"type":"array"},"kind":{"items":{"type":"string"},"type":"array"},"namespace":{"items":{"type":"string"},"type":"array"},"labels":{"additionalProperties":{"type":"string"},"type":"object"}},"additionalProperties":false,"type":"object"},"KubernetesFile":{"properties":{"id":{"type":"string"},"name":{"type":"string"},"items":{"type":"string"},"type":{"type":"string"},"class":{"type":"string"},"transform":{"$ref":"#/$defs/Transform"},"format":{"type":"string"},"timestampFormat":{"type":"string"},"createFields":{"items":{"type":"string"},"type":"array"},"deleteFields":{"items":{"type":"string"},"type":"array"},"labels":{"$ref":"#/$defs/JSONStringMap"},"tags":{"$ref":"#/$defs/Tags"},"properties":{"items":{"$ref":"#/$defs/ConfigProperties"},"type":"array"},"kubeconfig":{"$ref":"#/$defs/EnvVar"},"selector":{"$ref":"#/$defs/ResourceSelector"},"container":{"type":"string"},"files":{"items":{"$ref":"#/$defs/PodFile"},"type":"array"}},"additionalProperties":false,"type":"object","required":["selector"]},"KubernetesRelationshipSelectorTemplate":{"properties":{"kind":{"$ref":"#/$defs/RelationshipLookup"},"name":{"$ref":"#/$defs/RelationshipLookup"},"namespace":{"$ref":"#/$defs/RelationshipLookup"}},"additionalProperties":false,"type":"object","required":["kind","name","namespace"]},"KubernetesResourceToWatch":{"properties":{"apiVersion":{"type":"string"},"kind":{"type":"string"}},"additionalProperties":false,"type":"object","required":["apiVersion","kind"]},"Link":{"properties":{"type":{"type":"string"},"url":{"type":"string"},"tooltip":{"type":"string"},"icon":{"type":"string"},"text":{"type":"string"},"label":{"type":"string"}},"additionalProperties":false,"type":"object"},"ManagedFieldsEntry":{"properties":{"manager":{"type":"string"},"operation":{"type":"string"},"apiVersion":{"type":"string"},"time":{"$ref":"#/$defs/Time"},"fieldsType":{"type":"string"},"fieldsV1":{"$ref":"#/$defs/FieldsV1"},"subresource":{"type":"string"}},"additionalProperties":false,"type":"object"},"Mask":{"properties":{"selector":{"type":"string"},"jsonpath":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false,"type":"object"},"MaskList":{"items":{"$ref":"#/$defs/Mask"},"type":"array"},"ObjectMeta":{"properties":{"name":{"type":"string"},"generateName":{"type":"string"},"namespace":{"type":"string"},"selfLink":{"type":"string"},"uid":{"type":"string"},"resourceVersion":{"type":"string"},"generation":{"type":"integer"},"creationTimestamp":{"$ref":"#/$defs/Time"},"deletionTimestamp":{"$ref":"#/$defs/Time"},"deletionGracePeriodSeconds":{"type":"integer"},"labels":{"additionalProperties":{"type":"string"},"type":"object"},"annotations":{"additionalProperties":{"type":"string"},"type":"object"},"ownerReferences":{"items":{"$ref":"#/$defs/OwnerReference"},"type":"array"},"finalizers":{"items":{"type":"string"},"type":"array"},"managedFields":{"items":{"$ref":"#/$defs/ManagedFieldsEntry"},"type":"array"}},"additionalProperties":false,"type":"object"},"OwnerReference":{"properties":{"apiVersion":{"type":"string"},"kind":{"type":"string"},"name":{"type":"string"},"uid":{"type":"string"},"controller":{"type":"boolean"},"blockOwnerDeletion":{"type":"boolean"}},"additionalProperties":false,"type":"object","required":["apiVersion","kind","name","uid"]},"PodFile":{"properties":{"path":{"items":{"type":"string"},"type":"array"},"format":{"type":"string"}},"additionalProperties":false,"type":"object"},"RelationshipConfig":{"properties":{"id":{"$ref":"#/$defs/RelationshipLookup"},"name":{"$ref":"#/$defs/RelationshipLookup"},"type":{"$ref":"#/$defs/RelationshipLookup"},"agent":{"$ref":"#/$defs/RelationshipLookup"},"labels":{"additionalProperties":{"type":"string"},"type":"object"},"expr":{"type":"string"},"filter":{"type":"string"}},"additionalProperties":false,"type":"object"},"RelationshipLookup":{"properties":{"expr":{"type":"string"},"value":{"type":"string"},"label":{"type":"string"}},"additionalProperties":false,"type":"object"},"ResourceSelector":{"properties":{"namespace":{"type":"string"},"kind":{"type":"string"},"name":{"type":"string"},"labelSelector":{"type":"string"},"fieldSelector":{"type":"string"}},"additionalProperties":false,"type":"object"},"RetentionSpec":{"properties":{"changes":{"items":{"$ref":"#/$defs/ChangeRetentionSpec"},"type":"array"},"types":{"items":{"$ref":"#/$defs/TypeRetentionSpec"},"type":"array"},"staleItemAge":{"type":"string"}},"additionalProperties":false,"type":"object"},"SQL":{"properties":{"id":{"type":"string"},"name":{"type":"string"},"items":{"type":"string"},"type":{"type":"string"},"class":{"type":"string"},"transform":{"$ref":"#/$defs/Transform"},"format":{"type":"string"},"timestampFormat":{"type":"string"},"createFields":{"items":{"type":"string"},"type":"array"},"deleteFields":{"items":{"type":"string"},"type":"array"},"labels":{"$ref":"#/$defs/JSONStringMap"},"tags":{"$ref":"#/$defs/Tags"},"properties":{"items":{"$ref":"#/$defs/ConfigProperties"},"type":"array"},"connection":{"type":"string"},"auth":{"$ref":"#/$defs/Authentication"},"driver":{"type":"string"},"query":{"type":"string"}},"additionalProperties":false,"type":"object","required":["connection","query"]},"ScrapeConfig":{"properties":{"kind":{"type":"string"},"apiVersion":{"type":"string"},"metadata":{"$ref":"#/$defs/ObjectMeta"},"spec":{"$ref":"#/$defs/ScraperSpec"},"status":{"$ref":"#/$defs/ScrapeConfigStatus"}},"additionalProperties":false,"type":"object"},"ScrapeConfigStatus":{"properties":{"observedGeneration":{"type":"integer"}},"additionalProperties":false,"type":"object"},"ScraperSpec":{"properties":{"logLevel":{"type":"string"},"schedule":{"type":"string"},"aws":{"items":{"$ref":"#/$defs/AWS"},"type":"array"},"file":{"items":{"$ref":"#/$defs/File"},"type":"array"},"kubernetes":{"items":{"$ref":"#/$defs/Kubernetes"},"type":"array"},"kubernetesFile":{"items":{"$ref":"#/$defs/KubernetesFile"},"type":"array"},"azureDevops":{"items":{"$ref":"#/$defs/AzureDevops"},"type":"array"},"githubActions":{"items":{"$ref":"#/$defs/GitHubActions"},"type":"array"},"azure":{"items":{"$ref":"#/$defs/Azure"},"type":"array"},"sql":{"items":{"$ref":"#/$defs/SQL"},"type":"array"},"trivy":{"items":{"$ref":"#/$defs/Trivy"},"type":"array"},"retention":{"$ref":"#/$defs/RetentionSpec"},"full":{"type":"boolean"}},"additionalProperties":false,"type":"object"},"SecretKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"SeverityKeywords":{"properties":{"warn":{"items":{"type":"string"},"type":"array"},"error":{"items":{"type":"string"},"type":"array"}},"additionalProperties":false,"type":"object"},"Tag":{"properties":{"name":{"type":"string"},"label":{"type":"string"},"jsonpath":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name"]},"Tags":{"items":{"$ref":"#/$defs/Tag"},"type":"array"},"Time":{"properties":{},"additionalProperties":false,"type":"object"},"Transform":{"properties":{"gotemplate":{"type":"string"},"jsonpath":{"type":"string"},"expr":{"type":"string"},"javascript":{"type":"string"},"exclude":{"items":{"$ref":"#/$defs/ConfigFieldExclusion"},"type":"array"},"mask":{"$ref":"#/$defs/MaskList"},"relationship":{"items":{"$ref":"#/$defs/RelationshipConfig"},"type":"array"},"changes":{"$ref":"#/$defs/TransformChange"}},"additionalProperties":false,"type":"object"},"TransformChange":{"properties":{"mapping":{"items":{"$ref":"#/$defs/ChangeMapping"},"type":"array"},"exclude":{"items":{"type":"string"},"type":"array"}},"additionalProperties":false,"type":"object"},"Trivy":{"properties":{"id":{"type":"string"},"name":{"type":"string"},"items":{"type":"string"},"type":{"type":"string"},"class":{"type":"string"},"transform":{"$ref":"#/$defs/Transform"},"format":{"type":"string"},"timestampFormat":{"type":"string"},"createFields":{"items":{"type":"string"},"type":"array"},"deleteFields":{"items":{"type":"string"},"type":"array"},"labels":{"$ref":"#/$defs/JSONStringMap"},"tags":{"$ref":"#/$defs/Tags"},"properties":{"items":{"$ref":"#/$defs/ConfigProperties"},"type":"array"},"version":{"type":"string"},"compliance":{"items":{"type":"string"},"type":"array"},"ignoredLicenses":{"items":{"type":"string"},"type":"array"},"ignoreUnfixed":{"type":"boolean"},"licenseFull":{"type":"boolean"},"severity":{"items":{"type":"string"},"type":"array"},"vulnType":{"items":{"type":"string"},"type":"array"},"scanners":{"items":{"type":"string"},"type":"array"},"timeout":{"type":"string"},"kubernetes":{"$ref":"#/$defs/TrivyK8sOptions"}},"additionalProperties":false,"type":"object"},"TrivyK8sOptions":{"properties":{"components":{"items":{"type":"string"},"type":"array"},"context":{"type":"string"},"kubeconfig":{"type":"string"},"namespace":{"type":"string"}},"additionalProperties":false,"type":"object"},"TypeRetentionSpec":{"properties":{"name":{"type":"string"},"createdAge":{"type":"string"},"updatedAge":{"type":"string"},"deletedAge":{"type":"string"}},"additionalProperties":false,"type":"object"}}} \ No newline at end of file +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://github.com/flanksource/config-db/api/v1/scrape-config", + "$ref": "#/$defs/ScrapeConfig", + "$defs": { + "AWS": { + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "items": { + "type": "string" + }, + "type": { + "type": "string" + }, + "class": { + "type": "string" + }, + "format": { + "type": "string" + }, + "status": { + "type": "string" + }, + "health": { + "type": "string" + }, + "timestampFormat": { + "type": "string" + }, + "createFields": { + "items": { + "type": "string" + }, + "type": "array" + }, + "deleteFields": { + "items": { + "type": "string" + }, + "type": "array" + }, + "transform": { + "$ref": "#/$defs/Transform" + }, + "labels": { + "$ref": "#/$defs/JSONStringMap" + }, + "tags": { + "$ref": "#/$defs/Tags" + }, + "properties": { + "items": { + "$ref": "#/$defs/ConfigProperties" + }, + "type": "array" + }, + "connection": { + "type": "string" + }, + "accessKey": { + "$ref": "#/$defs/EnvVar" + }, + "secretKey": { + "$ref": "#/$defs/EnvVar" + }, + "assumeRole": { + "type": "string" + }, + "endpoint": { + "type": "string" + }, + "skipTLSVerify": { + "type": "boolean" + }, + "region": { + "items": { + "type": "string" + }, + "type": "array" + }, + "compliance": { + "type": "boolean" + }, + "cloudtrail": { + "$ref": "#/$defs/CloudTrail" + }, + "include": { + "items": { + "type": "string" + }, + "type": "array" + }, + "exclude": { + "items": { + "type": "string" + }, + "type": "array" + }, + "costReporting": { + "$ref": "#/$defs/CostReporting" + } + }, + "additionalProperties": false, + "type": "object" + }, + "Authentication": { + "properties": { + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "username", + "password" + ] + }, + "Azure": { + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "items": { + "type": "string" + }, + "type": { + "type": "string" + }, + "class": { + "type": "string" + }, + "format": { + "type": "string" + }, + "status": { + "type": "string" + }, + "health": { + "type": "string" + }, + "timestampFormat": { + "type": "string" + }, + "createFields": { + "items": { + "type": "string" + }, + "type": "array" + }, + "deleteFields": { + "items": { + "type": "string" + }, + "type": "array" + }, + "transform": { + "$ref": "#/$defs/Transform" + }, + "labels": { + "$ref": "#/$defs/JSONStringMap" + }, + "tags": { + "$ref": "#/$defs/Tags" + }, + "properties": { + "items": { + "$ref": "#/$defs/ConfigProperties" + }, + "type": "array" + }, + "connection": { + "type": "string" + }, + "subscriptionID": { + "type": "string" + }, + "organisation": { + "type": "string" + }, + "clientID": { + "$ref": "#/$defs/EnvVar" + }, + "clientSecret": { + "$ref": "#/$defs/EnvVar" + }, + "tenantID": { + "type": "string" + }, + "exclusions": { + "$ref": "#/$defs/AzureExclusions" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "subscriptionID", + "organisation" + ] + }, + "AzureDevops": { + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "items": { + "type": "string" + }, + "type": { + "type": "string" + }, + "class": { + "type": "string" + }, + "format": { + "type": "string" + }, + "status": { + "type": "string" + }, + "health": { + "type": "string" + }, + "timestampFormat": { + "type": "string" + }, + "createFields": { + "items": { + "type": "string" + }, + "type": "array" + }, + "deleteFields": { + "items": { + "type": "string" + }, + "type": "array" + }, + "transform": { + "$ref": "#/$defs/Transform" + }, + "labels": { + "$ref": "#/$defs/JSONStringMap" + }, + "tags": { + "$ref": "#/$defs/Tags" + }, + "properties": { + "items": { + "$ref": "#/$defs/ConfigProperties" + }, + "type": "array" + }, + "connection": { + "type": "string" + }, + "organization": { + "type": "string" + }, + "personalAccessToken": { + "$ref": "#/$defs/EnvVar" + }, + "projects": { + "items": { + "type": "string" + }, + "type": "array" + }, + "pipelines": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "projects", + "pipelines" + ] + }, + "AzureExclusions": { + "properties": { + "activityLogs": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ChangeExtractionMapping": { + "properties": { + "createdAt": { + "$ref": "#/$defs/ValueExpression" + }, + "severity": { + "$ref": "#/$defs/ValueExpression" + }, + "summary": { + "$ref": "#/$defs/ValueExpression" + }, + "type": { + "$ref": "#/$defs/ValueExpression" + }, + "details": { + "$ref": "#/$defs/ValueExpression" + }, + "timeFormat": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ChangeMapping": { + "properties": { + "filter": { + "type": "string" + }, + "severity": { + "type": "string" + }, + "type": { + "type": "string" + }, + "action": { + "type": "string" + }, + "summary": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ChangeRetentionSpec": { + "properties": { + "name": { + "type": "string" + }, + "age": { + "type": "string" + }, + "count": { + "type": "integer" + } + }, + "additionalProperties": false, + "type": "object" + }, + "CloudTrail": { + "properties": { + "exclude": { + "items": { + "type": "string" + }, + "type": "array" + }, + "maxAge": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ConfigFieldExclusion": { + "properties": { + "types": { + "items": { + "type": "string" + }, + "type": "array" + }, + "jsonpath": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "jsonpath" + ] + }, + "ConfigMapKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "ConfigProperties": { + "properties": { + "label": { + "type": "string" + }, + "name": { + "type": "string" + }, + "tooltip": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "type": { + "type": "string" + }, + "color": { + "type": "string" + }, + "order": { + "type": "integer" + }, + "headline": { + "type": "boolean" + }, + "text": { + "type": "string" + }, + "value": { + "type": "integer" + }, + "unit": { + "type": "string" + }, + "max": { + "type": "integer" + }, + "min": { + "type": "integer" + }, + "status": { + "type": "string" + }, + "lastTransition": { + "type": "string" + }, + "links": { + "items": { + "$ref": "#/$defs/Link" + }, + "type": "array" + }, + "filter": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "CostReporting": { + "properties": { + "s3BucketPath": { + "type": "string" + }, + "table": { + "type": "string" + }, + "database": { + "type": "string" + }, + "region": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "EnvVar": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "$ref": "#/$defs/EnvVarSource" + } + }, + "additionalProperties": false, + "type": "object" + }, + "EnvVarResourceSelector": { + "properties": { + "agent": { + "$ref": "#/$defs/ValueExpression" + }, + "scope": { + "type": "string" + }, + "cache": { + "type": "string" + }, + "id": { + "$ref": "#/$defs/ValueExpression" + }, + "name": { + "$ref": "#/$defs/ValueExpression" + }, + "namespace": { + "$ref": "#/$defs/ValueExpression" + }, + "types": { + "items": { + "$ref": "#/$defs/ValueExpression" + }, + "type": "array" + }, + "statuses": { + "items": { + "$ref": "#/$defs/ValueExpression" + }, + "type": "array" + }, + "tagSelector": { + "$ref": "#/$defs/ValueExpression" + }, + "labelSelector": { + "$ref": "#/$defs/ValueExpression" + }, + "fieldSelector": { + "$ref": "#/$defs/ValueExpression" + } + }, + "additionalProperties": false, + "type": "object" + }, + "EnvVarSource": { + "properties": { + "serviceAccount": { + "type": "string" + }, + "helmRef": { + "$ref": "#/$defs/HelmRefKeySelector" + }, + "configMapKeyRef": { + "$ref": "#/$defs/ConfigMapKeySelector" + }, + "secretKeyRef": { + "$ref": "#/$defs/SecretKeySelector" + } + }, + "additionalProperties": false, + "type": "object" + }, + "FieldsV1": { + "properties": {}, + "additionalProperties": false, + "type": "object" + }, + "File": { + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "items": { + "type": "string" + }, + "type": { + "type": "string" + }, + "class": { + "type": "string" + }, + "format": { + "type": "string" + }, + "status": { + "type": "string" + }, + "health": { + "type": "string" + }, + "timestampFormat": { + "type": "string" + }, + "createFields": { + "items": { + "type": "string" + }, + "type": "array" + }, + "deleteFields": { + "items": { + "type": "string" + }, + "type": "array" + }, + "transform": { + "$ref": "#/$defs/Transform" + }, + "labels": { + "$ref": "#/$defs/JSONStringMap" + }, + "tags": { + "$ref": "#/$defs/Tags" + }, + "properties": { + "items": { + "$ref": "#/$defs/ConfigProperties" + }, + "type": "array" + }, + "url": { + "type": "string" + }, + "paths": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ignore": { + "items": { + "type": "string" + }, + "type": "array" + }, + "icon": { + "type": "string" + }, + "connection": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "GCP": { + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "items": { + "type": "string" + }, + "type": { + "type": "string" + }, + "class": { + "type": "string" + }, + "format": { + "type": "string" + }, + "status": { + "type": "string" + }, + "health": { + "type": "string" + }, + "timestampFormat": { + "type": "string" + }, + "createFields": { + "items": { + "type": "string" + }, + "type": "array" + }, + "deleteFields": { + "items": { + "type": "string" + }, + "type": "array" + }, + "transform": { + "$ref": "#/$defs/Transform" + }, + "labels": { + "$ref": "#/$defs/JSONStringMap" + }, + "tags": { + "$ref": "#/$defs/Tags" + }, + "properties": { + "items": { + "$ref": "#/$defs/ConfigProperties" + }, + "type": "array" + }, + "endpoint": { + "type": "string" + }, + "credentials": { + "$ref": "#/$defs/EnvVar" + }, + "project": { + "type": "string" + }, + "include": { + "items": { + "type": "string" + }, + "type": "array" + }, + "exclude": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "project" + ] + }, + "GCSConnection": { + "properties": { + "connection": { + "type": "string" + }, + "endpoint": { + "type": "string" + }, + "credentials": { + "$ref": "#/$defs/EnvVar" + }, + "bucket": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "GitHubActions": { + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "items": { + "type": "string" + }, + "type": { + "type": "string" + }, + "class": { + "type": "string" + }, + "format": { + "type": "string" + }, + "status": { + "type": "string" + }, + "health": { + "type": "string" + }, + "timestampFormat": { + "type": "string" + }, + "createFields": { + "items": { + "type": "string" + }, + "type": "array" + }, + "deleteFields": { + "items": { + "type": "string" + }, + "type": "array" + }, + "transform": { + "$ref": "#/$defs/Transform" + }, + "labels": { + "$ref": "#/$defs/JSONStringMap" + }, + "tags": { + "$ref": "#/$defs/Tags" + }, + "properties": { + "items": { + "$ref": "#/$defs/ConfigProperties" + }, + "type": "array" + }, + "owner": { + "type": "string" + }, + "repository": { + "type": "string" + }, + "personalAccessToken": { + "$ref": "#/$defs/EnvVar" + }, + "connection": { + "type": "string" + }, + "workflows": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "owner", + "repository", + "personalAccessToken", + "workflows" + ] + }, + "HTTP": { + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "items": { + "type": "string" + }, + "type": { + "type": "string" + }, + "class": { + "type": "string" + }, + "format": { + "type": "string" + }, + "status": { + "type": "string" + }, + "health": { + "type": "string" + }, + "timestampFormat": { + "type": "string" + }, + "createFields": { + "items": { + "type": "string" + }, + "type": "array" + }, + "deleteFields": { + "items": { + "type": "string" + }, + "type": "array" + }, + "transform": { + "$ref": "#/$defs/Transform" + }, + "labels": { + "$ref": "#/$defs/JSONStringMap" + }, + "tags": { + "$ref": "#/$defs/Tags" + }, + "properties": { + "items": { + "$ref": "#/$defs/ConfigProperties" + }, + "type": "array" + }, + "connection": { + "type": "string" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + }, + "ntlm": { + "type": "boolean" + }, + "ntlmv2": { + "type": "boolean" + }, + "digest": { + "type": "boolean" + }, + "url": { + "type": "string" + }, + "bearer": { + "$ref": "#/$defs/EnvVar" + }, + "oauth": { + "$ref": "#/$defs/OAuth" + }, + "tls": { + "$ref": "#/$defs/TLSConfig" + }, + "env": { + "items": { + "$ref": "#/$defs/EnvVar" + }, + "type": "array" + }, + "method": { + "type": "string" + }, + "body": { + "type": "string" + }, + "headers": { + "additionalProperties": { + "$ref": "#/$defs/EnvVar" + }, + "type": "object" + } + }, + "additionalProperties": false, + "type": "object" + }, + "HelmRefKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "JSONStringMap": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "Kubernetes": { + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "items": { + "type": "string" + }, + "type": { + "type": "string" + }, + "class": { + "type": "string" + }, + "format": { + "type": "string" + }, + "status": { + "type": "string" + }, + "health": { + "type": "string" + }, + "timestampFormat": { + "type": "string" + }, + "createFields": { + "items": { + "type": "string" + }, + "type": "array" + }, + "deleteFields": { + "items": { + "type": "string" + }, + "type": "array" + }, + "transform": { + "$ref": "#/$defs/Transform" + }, + "labels": { + "$ref": "#/$defs/JSONStringMap" + }, + "tags": { + "$ref": "#/$defs/Tags" + }, + "properties": { + "items": { + "$ref": "#/$defs/ConfigProperties" + }, + "type": "array" + }, + "clusterName": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "useCache": { + "type": "boolean" + }, + "allowIncomplete": { + "type": "boolean" + }, + "scope": { + "type": "string" + }, + "since": { + "type": "string" + }, + "selector": { + "type": "string" + }, + "fieldSelector": { + "type": "string" + }, + "maxInflight": { + "type": "integer" + }, + "kubeconfig": { + "$ref": "#/$defs/EnvVar" + }, + "watch": { + "items": { + "$ref": "#/$defs/KubernetesResourceToWatch" + }, + "type": "array" + }, + "event": { + "$ref": "#/$defs/KubernetesEventConfig" + }, + "exclusions": { + "$ref": "#/$defs/KubernetesExclusionConfig" + }, + "relationships": { + "items": { + "$ref": "#/$defs/KubernetesRelationshipSelectorTemplate" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "clusterName" + ] + }, + "KubernetesEventConfig": { + "properties": { + "exclusions": { + "$ref": "#/$defs/KubernetesEventExclusions" + }, + "severityKeywords": { + "$ref": "#/$defs/SeverityKeywords" + } + }, + "additionalProperties": false, + "type": "object" + }, + "KubernetesEventExclusions": { + "properties": { + "name": { + "items": { + "type": "string" + }, + "type": "array" + }, + "namespace": { + "items": { + "type": "string" + }, + "type": "array" + }, + "reason": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object" + }, + "KubernetesExclusionConfig": { + "properties": { + "name": { + "items": { + "type": "string" + }, + "type": "array" + }, + "kind": { + "items": { + "type": "string" + }, + "type": "array" + }, + "namespace": { + "items": { + "type": "string" + }, + "type": "array" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "additionalProperties": false, + "type": "object" + }, + "KubernetesFile": { + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "items": { + "type": "string" + }, + "type": { + "type": "string" + }, + "class": { + "type": "string" + }, + "format": { + "type": "string" + }, + "status": { + "type": "string" + }, + "health": { + "type": "string" + }, + "timestampFormat": { + "type": "string" + }, + "createFields": { + "items": { + "type": "string" + }, + "type": "array" + }, + "deleteFields": { + "items": { + "type": "string" + }, + "type": "array" + }, + "transform": { + "$ref": "#/$defs/Transform" + }, + "labels": { + "$ref": "#/$defs/JSONStringMap" + }, + "tags": { + "$ref": "#/$defs/Tags" + }, + "properties": { + "items": { + "$ref": "#/$defs/ConfigProperties" + }, + "type": "array" + }, + "kubeconfig": { + "$ref": "#/$defs/EnvVar" + }, + "selector": { + "$ref": "#/$defs/ResourceSelector" + }, + "container": { + "type": "string" + }, + "files": { + "items": { + "$ref": "#/$defs/PodFile" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "selector" + ] + }, + "KubernetesRelationshipSelectorTemplate": { + "properties": { + "kind": { + "$ref": "#/$defs/Lookup" + }, + "name": { + "$ref": "#/$defs/Lookup" + }, + "namespace": { + "$ref": "#/$defs/Lookup" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "kind", + "name", + "namespace" + ] + }, + "KubernetesResourceToWatch": { + "properties": { + "apiVersion": { + "type": "string" + }, + "kind": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "apiVersion", + "kind" + ] + }, + "Link": { + "properties": { + "type": { + "type": "string" + }, + "url": { + "type": "string" + }, + "tooltip": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "text": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "Lookup": { + "properties": { + "expr": { + "type": "string" + }, + "value": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ManagedFieldsEntry": { + "properties": { + "manager": { + "type": "string" + }, + "operation": { + "type": "string" + }, + "apiVersion": { + "type": "string" + }, + "time": { + "$ref": "#/$defs/Time" + }, + "fieldsType": { + "type": "string" + }, + "fieldsV1": { + "$ref": "#/$defs/FieldsV1" + }, + "subresource": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "Mask": { + "properties": { + "selector": { + "type": "string" + }, + "jsonpath": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "MaskList": { + "items": { + "$ref": "#/$defs/Mask" + }, + "type": "array" + }, + "MatchExpressions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "OAuth": { + "properties": { + "clientID": { + "$ref": "#/$defs/EnvVar" + }, + "clientSecret": { + "$ref": "#/$defs/EnvVar" + }, + "scope": { + "items": { + "type": "string" + }, + "type": "array" + }, + "tokenURL": { + "type": "string" + }, + "params": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ObjectMeta": { + "properties": { + "name": { + "type": "string" + }, + "generateName": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "selfLink": { + "type": "string" + }, + "uid": { + "type": "string" + }, + "resourceVersion": { + "type": "string" + }, + "generation": { + "type": "integer" + }, + "creationTimestamp": { + "$ref": "#/$defs/Time" + }, + "deletionTimestamp": { + "$ref": "#/$defs/Time" + }, + "deletionGracePeriodSeconds": { + "type": "integer" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "annotations": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "ownerReferences": { + "items": { + "$ref": "#/$defs/OwnerReference" + }, + "type": "array" + }, + "finalizers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "managedFields": { + "items": { + "$ref": "#/$defs/ManagedFieldsEntry" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object" + }, + "OwnerReference": { + "properties": { + "apiVersion": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "name": { + "type": "string" + }, + "uid": { + "type": "string" + }, + "controller": { + "type": "boolean" + }, + "blockOwnerDeletion": { + "type": "boolean" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "apiVersion", + "kind", + "name", + "uid" + ] + }, + "PodFile": { + "properties": { + "path": { + "items": { + "type": "string" + }, + "type": "array" + }, + "format": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "RelationshipConfig": { + "properties": { + "id": { + "$ref": "#/$defs/Lookup" + }, + "external_id": { + "$ref": "#/$defs/Lookup" + }, + "name": { + "$ref": "#/$defs/Lookup" + }, + "namespace": { + "$ref": "#/$defs/Lookup" + }, + "type": { + "$ref": "#/$defs/Lookup" + }, + "agent": { + "$ref": "#/$defs/Lookup" + }, + "scope": { + "$ref": "#/$defs/Lookup" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "expr": { + "type": "string" + }, + "filter": { + "type": "string" + }, + "parent": { + "type": "boolean" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ResourceSelector": { + "properties": { + "namespace": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "name": { + "type": "string" + }, + "labelSelector": { + "type": "string" + }, + "fieldSelector": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "RetentionSpec": { + "properties": { + "changes": { + "items": { + "$ref": "#/$defs/ChangeRetentionSpec" + }, + "type": "array" + }, + "types": { + "items": { + "$ref": "#/$defs/TypeRetentionSpec" + }, + "type": "array" + }, + "staleItemAge": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "S3Connection": { + "properties": { + "connection": { + "type": "string" + }, + "accessKey": { + "$ref": "#/$defs/EnvVar" + }, + "secretKey": { + "$ref": "#/$defs/EnvVar" + }, + "sessionToken": { + "$ref": "#/$defs/EnvVar" + }, + "assumeRole": { + "type": "string" + }, + "region": { + "type": "string" + }, + "endpoint": { + "type": "string" + }, + "skipTLSVerify": { + "type": "boolean" + }, + "bucket": { + "type": "string" + }, + "objectPath": { + "type": "string" + }, + "usePathStyle": { + "type": "boolean" + } + }, + "additionalProperties": false, + "type": "object" + }, + "SQL": { + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "items": { + "type": "string" + }, + "type": { + "type": "string" + }, + "class": { + "type": "string" + }, + "format": { + "type": "string" + }, + "status": { + "type": "string" + }, + "health": { + "type": "string" + }, + "timestampFormat": { + "type": "string" + }, + "createFields": { + "items": { + "type": "string" + }, + "type": "array" + }, + "deleteFields": { + "items": { + "type": "string" + }, + "type": "array" + }, + "transform": { + "$ref": "#/$defs/Transform" + }, + "labels": { + "$ref": "#/$defs/JSONStringMap" + }, + "tags": { + "$ref": "#/$defs/Tags" + }, + "properties": { + "items": { + "$ref": "#/$defs/ConfigProperties" + }, + "type": "array" + }, + "connection": { + "type": "string" + }, + "auth": { + "$ref": "#/$defs/Authentication" + }, + "driver": { + "type": "string" + }, + "query": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "connection", + "query" + ] + }, + "ScrapeConfig": { + "properties": { + "kind": { + "type": "string" + }, + "apiVersion": { + "type": "string" + }, + "metadata": { + "$ref": "#/$defs/ObjectMeta" + }, + "spec": { + "$ref": "#/$defs/ScraperSpec" + }, + "status": { + "$ref": "#/$defs/ScrapeConfigStatus" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ScrapeConfigStatus": { + "properties": { + "observedGeneration": { + "type": "integer" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ScraperSpec": { + "properties": { + "logLevel": { + "type": "string" + }, + "schedule": { + "type": "string" + }, + "gcp": { + "items": { + "$ref": "#/$defs/GCP" + }, + "type": "array" + }, + "aws": { + "items": { + "$ref": "#/$defs/AWS" + }, + "type": "array" + }, + "file": { + "items": { + "$ref": "#/$defs/File" + }, + "type": "array" + }, + "kubernetes": { + "items": { + "$ref": "#/$defs/Kubernetes" + }, + "type": "array" + }, + "kubernetesFile": { + "items": { + "$ref": "#/$defs/KubernetesFile" + }, + "type": "array" + }, + "azureDevops": { + "items": { + "$ref": "#/$defs/AzureDevops" + }, + "type": "array" + }, + "githubActions": { + "items": { + "$ref": "#/$defs/GitHubActions" + }, + "type": "array" + }, + "azure": { + "items": { + "$ref": "#/$defs/Azure" + }, + "type": "array" + }, + "sql": { + "items": { + "$ref": "#/$defs/SQL" + }, + "type": "array" + }, + "slack": { + "items": { + "$ref": "#/$defs/Slack" + }, + "type": "array" + }, + "trivy": { + "items": { + "$ref": "#/$defs/Trivy" + }, + "type": "array" + }, + "terraform": { + "items": { + "$ref": "#/$defs/Terraform" + }, + "type": "array" + }, + "http": { + "items": { + "$ref": "#/$defs/HTTP" + }, + "type": "array" + }, + "crdSync": { + "type": "boolean" + }, + "retention": { + "$ref": "#/$defs/RetentionSpec" + }, + "full": { + "type": "boolean" + } + }, + "additionalProperties": false, + "type": "object" + }, + "SecretKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "SeverityKeywords": { + "properties": { + "warn": { + "items": { + "type": "string" + }, + "type": "array" + }, + "error": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object" + }, + "Slack": { + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "items": { + "type": "string" + }, + "type": { + "type": "string" + }, + "class": { + "type": "string" + }, + "format": { + "type": "string" + }, + "status": { + "type": "string" + }, + "health": { + "type": "string" + }, + "timestampFormat": { + "type": "string" + }, + "createFields": { + "items": { + "type": "string" + }, + "type": "array" + }, + "deleteFields": { + "items": { + "type": "string" + }, + "type": "array" + }, + "transform": { + "$ref": "#/$defs/Transform" + }, + "labels": { + "$ref": "#/$defs/JSONStringMap" + }, + "tags": { + "$ref": "#/$defs/Tags" + }, + "properties": { + "items": { + "$ref": "#/$defs/ConfigProperties" + }, + "type": "array" + }, + "token": { + "$ref": "#/$defs/EnvVar" + }, + "since": { + "type": "string" + }, + "channels": { + "$ref": "#/$defs/MatchExpressions" + }, + "rules": { + "items": { + "$ref": "#/$defs/SlackChangeExtractionRule" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "token", + "rules" + ] + }, + "SlackChangeAcceptanceFilter": { + "properties": { + "bot": { + "type": "string" + }, + "user": { + "$ref": "#/$defs/SlackUserFilter" + }, + "expr": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "SlackChangeExtractionRule": { + "properties": { + "regexp": { + "type": "string" + }, + "mapping": { + "$ref": "#/$defs/ChangeExtractionMapping" + }, + "config": { + "items": { + "$ref": "#/$defs/EnvVarResourceSelector" + }, + "type": "array" + }, + "filter": { + "$ref": "#/$defs/SlackChangeAcceptanceFilter" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "config" + ] + }, + "SlackUserFilter": { + "properties": { + "name": { + "type": "string" + }, + "displayName": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "TLSConfig": { + "properties": { + "insecureSkipVerify": { + "type": "boolean" + }, + "handshakeTimeout": { + "type": "integer" + }, + "ca": { + "$ref": "#/$defs/EnvVar" + }, + "cert": { + "$ref": "#/$defs/EnvVar" + }, + "key": { + "$ref": "#/$defs/EnvVar" + } + }, + "additionalProperties": false, + "type": "object" + }, + "Tag": { + "properties": { + "name": { + "type": "string" + }, + "label": { + "type": "string" + }, + "jsonpath": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "Tags": { + "items": { + "$ref": "#/$defs/Tag" + }, + "type": "array" + }, + "Terraform": { + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "items": { + "type": "string" + }, + "type": { + "type": "string" + }, + "class": { + "type": "string" + }, + "format": { + "type": "string" + }, + "status": { + "type": "string" + }, + "health": { + "type": "string" + }, + "timestampFormat": { + "type": "string" + }, + "createFields": { + "items": { + "type": "string" + }, + "type": "array" + }, + "deleteFields": { + "items": { + "type": "string" + }, + "type": "array" + }, + "transform": { + "$ref": "#/$defs/Transform" + }, + "labels": { + "$ref": "#/$defs/JSONStringMap" + }, + "tags": { + "$ref": "#/$defs/Tags" + }, + "properties": { + "items": { + "$ref": "#/$defs/ConfigProperties" + }, + "type": "array" + }, + "state": { + "$ref": "#/$defs/TerraformStateSource" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "state" + ] + }, + "TerraformStateSource": { + "properties": { + "s3": { + "$ref": "#/$defs/S3Connection" + }, + "gcs": { + "$ref": "#/$defs/GCSConnection" + }, + "local": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "Time": { + "properties": {}, + "additionalProperties": false, + "type": "object" + }, + "Transform": { + "properties": { + "gotemplate": { + "type": "string" + }, + "jsonpath": { + "type": "string" + }, + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "exclude": { + "items": { + "$ref": "#/$defs/ConfigFieldExclusion" + }, + "type": "array" + }, + "mask": { + "$ref": "#/$defs/MaskList" + }, + "relationship": { + "items": { + "$ref": "#/$defs/RelationshipConfig" + }, + "type": "array" + }, + "changes": { + "$ref": "#/$defs/TransformChange" + } + }, + "additionalProperties": false, + "type": "object" + }, + "TransformChange": { + "properties": { + "mapping": { + "items": { + "$ref": "#/$defs/ChangeMapping" + }, + "type": "array" + }, + "exclude": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object" + }, + "Trivy": { + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "items": { + "type": "string" + }, + "type": { + "type": "string" + }, + "class": { + "type": "string" + }, + "format": { + "type": "string" + }, + "status": { + "type": "string" + }, + "health": { + "type": "string" + }, + "timestampFormat": { + "type": "string" + }, + "createFields": { + "items": { + "type": "string" + }, + "type": "array" + }, + "deleteFields": { + "items": { + "type": "string" + }, + "type": "array" + }, + "transform": { + "$ref": "#/$defs/Transform" + }, + "labels": { + "$ref": "#/$defs/JSONStringMap" + }, + "tags": { + "$ref": "#/$defs/Tags" + }, + "properties": { + "items": { + "$ref": "#/$defs/ConfigProperties" + }, + "type": "array" + }, + "version": { + "type": "string" + }, + "compliance": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ignoredLicenses": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ignoreUnfixed": { + "type": "boolean" + }, + "licenseFull": { + "type": "boolean" + }, + "severity": { + "items": { + "type": "string" + }, + "type": "array" + }, + "vulnType": { + "items": { + "type": "string" + }, + "type": "array" + }, + "scanners": { + "items": { + "type": "string" + }, + "type": "array" + }, + "timeout": { + "type": "string" + }, + "kubernetes": { + "$ref": "#/$defs/TrivyK8sOptions" + } + }, + "additionalProperties": false, + "type": "object" + }, + "TrivyK8sOptions": { + "properties": { + "components": { + "items": { + "type": "string" + }, + "type": "array" + }, + "context": { + "type": "string" + }, + "kubeconfig": { + "type": "string" + }, + "namespace": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "TypeRetentionSpec": { + "properties": { + "name": { + "type": "string" + }, + "createdAge": { + "type": "string" + }, + "updatedAge": { + "type": "string" + }, + "deletedAge": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ValueExpression": { + "properties": { + "expr": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + } + } +} \ No newline at end of file diff --git a/schema/openapi/scrape_config.spec.schema.json b/schema/openapi/scrape_config.spec.schema.json index 5c0a2d5e..aa053a9f 100644 --- a/schema/openapi/scrape_config.spec.schema.json +++ b/schema/openapi/scrape_config.spec.schema.json @@ -11,6 +11,9 @@ "name": { "type": "string" }, + "description": { + "type": "string" + }, "items": { "type": "string" }, @@ -20,12 +23,15 @@ "class": { "type": "string" }, - "transform": { - "$ref": "#/$defs/Transform" - }, "format": { "type": "string" }, + "status": { + "type": "string" + }, + "health": { + "type": "string" + }, "timestampFormat": { "type": "string" }, @@ -41,6 +47,9 @@ }, "type": "array" }, + "transform": { + "$ref": "#/$defs/Transform" + }, "labels": { "$ref": "#/$defs/JSONStringMap" }, @@ -62,11 +71,8 @@ "secretKey": { "$ref": "#/$defs/EnvVar" }, - "region": { - "items": { - "type": "string" - }, - "type": "array" + "assumeRole": { + "type": "string" }, "endpoint": { "type": "string" @@ -74,8 +80,11 @@ "skipTLSVerify": { "type": "boolean" }, - "assumeRole": { - "type": "string" + "region": { + "items": { + "type": "string" + }, + "type": "array" }, "compliance": { "type": "boolean" @@ -100,10 +109,7 @@ } }, "additionalProperties": false, - "type": "object", - "required": [ - "region" - ] + "type": "object" }, "Authentication": { "properties": { @@ -129,6 +135,9 @@ "name": { "type": "string" }, + "description": { + "type": "string" + }, "items": { "type": "string" }, @@ -138,12 +147,15 @@ "class": { "type": "string" }, - "transform": { - "$ref": "#/$defs/Transform" - }, "format": { "type": "string" }, + "status": { + "type": "string" + }, + "health": { + "type": "string" + }, "timestampFormat": { "type": "string" }, @@ -159,6 +171,9 @@ }, "type": "array" }, + "transform": { + "$ref": "#/$defs/Transform" + }, "labels": { "$ref": "#/$defs/JSONStringMap" }, @@ -208,6 +223,9 @@ "name": { "type": "string" }, + "description": { + "type": "string" + }, "items": { "type": "string" }, @@ -217,12 +235,15 @@ "class": { "type": "string" }, - "transform": { - "$ref": "#/$defs/Transform" - }, "format": { "type": "string" }, + "status": { + "type": "string" + }, + "health": { + "type": "string" + }, "timestampFormat": { "type": "string" }, @@ -238,6 +259,9 @@ }, "type": "array" }, + "transform": { + "$ref": "#/$defs/Transform" + }, "labels": { "$ref": "#/$defs/JSONStringMap" }, @@ -291,11 +315,38 @@ "additionalProperties": false, "type": "object" }, + "ChangeExtractionMapping": { + "properties": { + "createdAt": { + "$ref": "#/$defs/ValueExpression" + }, + "severity": { + "$ref": "#/$defs/ValueExpression" + }, + "summary": { + "$ref": "#/$defs/ValueExpression" + }, + "type": { + "$ref": "#/$defs/ValueExpression" + }, + "details": { + "$ref": "#/$defs/ValueExpression" + }, + "timeFormat": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, "ChangeMapping": { "properties": { "filter": { "type": "string" }, + "severity": { + "type": "string" + }, "type": { "type": "string" }, @@ -465,6 +516,51 @@ "additionalProperties": false, "type": "object" }, + "EnvVarResourceSelector": { + "properties": { + "agent": { + "$ref": "#/$defs/ValueExpression" + }, + "scope": { + "type": "string" + }, + "cache": { + "type": "string" + }, + "id": { + "$ref": "#/$defs/ValueExpression" + }, + "name": { + "$ref": "#/$defs/ValueExpression" + }, + "namespace": { + "$ref": "#/$defs/ValueExpression" + }, + "types": { + "items": { + "$ref": "#/$defs/ValueExpression" + }, + "type": "array" + }, + "statuses": { + "items": { + "$ref": "#/$defs/ValueExpression" + }, + "type": "array" + }, + "tagSelector": { + "$ref": "#/$defs/ValueExpression" + }, + "labelSelector": { + "$ref": "#/$defs/ValueExpression" + }, + "fieldSelector": { + "$ref": "#/$defs/ValueExpression" + } + }, + "additionalProperties": false, + "type": "object" + }, "EnvVarSource": { "properties": { "serviceAccount": { @@ -496,6 +592,9 @@ "name": { "type": "string" }, + "description": { + "type": "string" + }, "items": { "type": "string" }, @@ -505,12 +604,15 @@ "class": { "type": "string" }, - "transform": { - "$ref": "#/$defs/Transform" - }, "format": { "type": "string" }, + "status": { + "type": "string" + }, + "health": { + "type": "string" + }, "timestampFormat": { "type": "string" }, @@ -526,6 +628,9 @@ }, "type": "array" }, + "transform": { + "$ref": "#/$defs/Transform" + }, "labels": { "$ref": "#/$defs/JSONStringMap" }, @@ -563,7 +668,7 @@ "additionalProperties": false, "type": "object" }, - "GitHubActions": { + "GCP": { "properties": { "id": { "type": "string" @@ -571,6 +676,9 @@ "name": { "type": "string" }, + "description": { + "type": "string" + }, "items": { "type": "string" }, @@ -580,12 +688,15 @@ "class": { "type": "string" }, - "transform": { - "$ref": "#/$defs/Transform" - }, "format": { "type": "string" }, + "status": { + "type": "string" + }, + "health": { + "type": "string" + }, "timestampFormat": { "type": "string" }, @@ -601,6 +712,9 @@ }, "type": "array" }, + "transform": { + "$ref": "#/$defs/Transform" + }, "labels": { "$ref": "#/$defs/JSONStringMap" }, @@ -613,19 +727,22 @@ }, "type": "array" }, - "owner": { - "type": "string" - }, - "repository": { + "endpoint": { "type": "string" }, - "personalAccessToken": { + "credentials": { "$ref": "#/$defs/EnvVar" }, - "connection": { + "project": { "type": "string" }, - "workflows": { + "include": { + "items": { + "type": "string" + }, + "type": "array" + }, + "exclude": { "items": { "type": "string" }, @@ -635,34 +752,28 @@ "additionalProperties": false, "type": "object", "required": [ - "owner", - "repository", - "personalAccessToken", - "workflows" + "project" ] }, - "HelmRefKeySelector": { + "GCSConnection": { "properties": { - "name": { + "connection": { "type": "string" }, - "key": { + "endpoint": { + "type": "string" + }, + "credentials": { + "$ref": "#/$defs/EnvVar" + }, + "bucket": { "type": "string" } }, "additionalProperties": false, - "type": "object", - "required": [ - "key" - ] - }, - "JSONStringMap": { - "additionalProperties": { - "type": "string" - }, "type": "object" }, - "Kubernetes": { + "GitHubActions": { "properties": { "id": { "type": "string" @@ -670,6 +781,9 @@ "name": { "type": "string" }, + "description": { + "type": "string" + }, "items": { "type": "string" }, @@ -679,12 +793,15 @@ "class": { "type": "string" }, - "transform": { - "$ref": "#/$defs/Transform" - }, "format": { "type": "string" }, + "status": { + "type": "string" + }, + "health": { + "type": "string" + }, "timestampFormat": { "type": "string" }, @@ -700,6 +817,9 @@ }, "type": "array" }, + "transform": { + "$ref": "#/$defs/Transform" + }, "labels": { "$ref": "#/$defs/JSONStringMap" }, @@ -712,58 +832,280 @@ }, "type": "array" }, - "clusterName": { + "owner": { "type": "string" }, - "namespace": { + "repository": { "type": "string" }, - "useCache": { - "type": "boolean" + "personalAccessToken": { + "$ref": "#/$defs/EnvVar" }, - "allowIncomplete": { - "type": "boolean" + "connection": { + "type": "string" }, - "scope": { + "workflows": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "owner", + "repository", + "personalAccessToken", + "workflows" + ] + }, + "HTTP": { + "properties": { + "id": { "type": "string" }, - "since": { + "name": { "type": "string" }, - "selector": { + "description": { "type": "string" }, - "fieldSelector": { + "items": { "type": "string" }, - "maxInflight": { - "type": "integer" + "type": { + "type": "string" }, - "kubeconfig": { - "$ref": "#/$defs/EnvVar" + "class": { + "type": "string" }, - "watch": { + "format": { + "type": "string" + }, + "status": { + "type": "string" + }, + "health": { + "type": "string" + }, + "timestampFormat": { + "type": "string" + }, + "createFields": { "items": { - "$ref": "#/$defs/KubernetesResourceToWatch" + "type": "string" }, "type": "array" }, - "event": { - "$ref": "#/$defs/KubernetesEventConfig" - }, - "exclusions": { - "$ref": "#/$defs/KubernetesExclusionConfig" - }, - "relationships": { + "deleteFields": { "items": { - "$ref": "#/$defs/KubernetesRelationshipSelectorTemplate" + "type": "string" }, "type": "array" - } + }, + "transform": { + "$ref": "#/$defs/Transform" + }, + "labels": { + "$ref": "#/$defs/JSONStringMap" + }, + "tags": { + "$ref": "#/$defs/Tags" + }, + "properties": { + "items": { + "$ref": "#/$defs/ConfigProperties" + }, + "type": "array" + }, + "connection": { + "type": "string" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + }, + "ntlm": { + "type": "boolean" + }, + "ntlmv2": { + "type": "boolean" + }, + "digest": { + "type": "boolean" + }, + "url": { + "type": "string" + }, + "bearer": { + "$ref": "#/$defs/EnvVar" + }, + "oauth": { + "$ref": "#/$defs/OAuth" + }, + "tls": { + "$ref": "#/$defs/TLSConfig" + }, + "env": { + "items": { + "$ref": "#/$defs/EnvVar" + }, + "type": "array" + }, + "method": { + "type": "string" + }, + "body": { + "type": "string" + }, + "headers": { + "additionalProperties": { + "$ref": "#/$defs/EnvVar" + }, + "type": "object" + } + }, + "additionalProperties": false, + "type": "object" + }, + "HelmRefKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } }, "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "JSONStringMap": { + "additionalProperties": { + "type": "string" + }, "type": "object" }, + "Kubernetes": { + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "items": { + "type": "string" + }, + "type": { + "type": "string" + }, + "class": { + "type": "string" + }, + "format": { + "type": "string" + }, + "status": { + "type": "string" + }, + "health": { + "type": "string" + }, + "timestampFormat": { + "type": "string" + }, + "createFields": { + "items": { + "type": "string" + }, + "type": "array" + }, + "deleteFields": { + "items": { + "type": "string" + }, + "type": "array" + }, + "transform": { + "$ref": "#/$defs/Transform" + }, + "labels": { + "$ref": "#/$defs/JSONStringMap" + }, + "tags": { + "$ref": "#/$defs/Tags" + }, + "properties": { + "items": { + "$ref": "#/$defs/ConfigProperties" + }, + "type": "array" + }, + "clusterName": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "useCache": { + "type": "boolean" + }, + "allowIncomplete": { + "type": "boolean" + }, + "scope": { + "type": "string" + }, + "since": { + "type": "string" + }, + "selector": { + "type": "string" + }, + "fieldSelector": { + "type": "string" + }, + "maxInflight": { + "type": "integer" + }, + "kubeconfig": { + "$ref": "#/$defs/EnvVar" + }, + "watch": { + "items": { + "$ref": "#/$defs/KubernetesResourceToWatch" + }, + "type": "array" + }, + "event": { + "$ref": "#/$defs/KubernetesEventConfig" + }, + "exclusions": { + "$ref": "#/$defs/KubernetesExclusionConfig" + }, + "relationships": { + "items": { + "$ref": "#/$defs/KubernetesRelationshipSelectorTemplate" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "clusterName" + ] + }, "KubernetesEventConfig": { "properties": { "exclusions": { @@ -838,6 +1180,9 @@ "name": { "type": "string" }, + "description": { + "type": "string" + }, "items": { "type": "string" }, @@ -847,12 +1192,15 @@ "class": { "type": "string" }, - "transform": { - "$ref": "#/$defs/Transform" - }, "format": { "type": "string" }, + "status": { + "type": "string" + }, + "health": { + "type": "string" + }, "timestampFormat": { "type": "string" }, @@ -868,6 +1216,9 @@ }, "type": "array" }, + "transform": { + "$ref": "#/$defs/Transform" + }, "labels": { "$ref": "#/$defs/JSONStringMap" }, @@ -905,13 +1256,13 @@ "KubernetesRelationshipSelectorTemplate": { "properties": { "kind": { - "$ref": "#/$defs/RelationshipLookup" + "$ref": "#/$defs/Lookup" }, "name": { - "$ref": "#/$defs/RelationshipLookup" + "$ref": "#/$defs/Lookup" }, "namespace": { - "$ref": "#/$defs/RelationshipLookup" + "$ref": "#/$defs/Lookup" } }, "additionalProperties": false, @@ -962,6 +1313,21 @@ "additionalProperties": false, "type": "object" }, + "Lookup": { + "properties": { + "expr": { + "type": "string" + }, + "value": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, "ManagedFieldsEntry": { "properties": { "manager": { @@ -1010,6 +1376,39 @@ }, "type": "array" }, + "MatchExpressions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "OAuth": { + "properties": { + "clientID": { + "$ref": "#/$defs/EnvVar" + }, + "clientSecret": { + "$ref": "#/$defs/EnvVar" + }, + "scope": { + "items": { + "type": "string" + }, + "type": "array" + }, + "tokenURL": { + "type": "string" + }, + "params": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "additionalProperties": false, + "type": "object" + }, "ObjectMeta": { "properties": { "name": { @@ -1124,16 +1523,25 @@ "RelationshipConfig": { "properties": { "id": { - "$ref": "#/$defs/RelationshipLookup" + "$ref": "#/$defs/Lookup" + }, + "external_id": { + "$ref": "#/$defs/Lookup" }, "name": { - "$ref": "#/$defs/RelationshipLookup" + "$ref": "#/$defs/Lookup" + }, + "namespace": { + "$ref": "#/$defs/Lookup" }, "type": { - "$ref": "#/$defs/RelationshipLookup" + "$ref": "#/$defs/Lookup" }, "agent": { - "$ref": "#/$defs/RelationshipLookup" + "$ref": "#/$defs/Lookup" + }, + "scope": { + "$ref": "#/$defs/Lookup" }, "labels": { "additionalProperties": { @@ -1146,21 +1554,9 @@ }, "filter": { "type": "string" - } - }, - "additionalProperties": false, - "type": "object" - }, - "RelationshipLookup": { - "properties": { - "expr": { - "type": "string" - }, - "value": { - "type": "string" }, - "label": { - "type": "string" + "parent": { + "type": "boolean" } }, "additionalProperties": false, @@ -1208,6 +1604,45 @@ "additionalProperties": false, "type": "object" }, + "S3Connection": { + "properties": { + "connection": { + "type": "string" + }, + "accessKey": { + "$ref": "#/$defs/EnvVar" + }, + "secretKey": { + "$ref": "#/$defs/EnvVar" + }, + "sessionToken": { + "$ref": "#/$defs/EnvVar" + }, + "assumeRole": { + "type": "string" + }, + "region": { + "type": "string" + }, + "endpoint": { + "type": "string" + }, + "skipTLSVerify": { + "type": "boolean" + }, + "bucket": { + "type": "string" + }, + "objectPath": { + "type": "string" + }, + "usePathStyle": { + "type": "boolean" + } + }, + "additionalProperties": false, + "type": "object" + }, "SQL": { "properties": { "id": { @@ -1216,6 +1651,9 @@ "name": { "type": "string" }, + "description": { + "type": "string" + }, "items": { "type": "string" }, @@ -1225,12 +1663,15 @@ "class": { "type": "string" }, - "transform": { - "$ref": "#/$defs/Transform" - }, "format": { "type": "string" }, + "status": { + "type": "string" + }, + "health": { + "type": "string" + }, "timestampFormat": { "type": "string" }, @@ -1246,6 +1687,9 @@ }, "type": "array" }, + "transform": { + "$ref": "#/$defs/Transform" + }, "labels": { "$ref": "#/$defs/JSONStringMap" }, @@ -1316,6 +1760,12 @@ "schedule": { "type": "string" }, + "gcp": { + "items": { + "$ref": "#/$defs/GCP" + }, + "type": "array" + }, "aws": { "items": { "$ref": "#/$defs/AWS" @@ -1364,12 +1814,33 @@ }, "type": "array" }, + "slack": { + "items": { + "$ref": "#/$defs/Slack" + }, + "type": "array" + }, "trivy": { "items": { "$ref": "#/$defs/Trivy" }, "type": "array" }, + "terraform": { + "items": { + "$ref": "#/$defs/Terraform" + }, + "type": "array" + }, + "http": { + "items": { + "$ref": "#/$defs/HTTP" + }, + "type": "array" + }, + "crdSync": { + "type": "boolean" + }, "retention": { "$ref": "#/$defs/RetentionSpec" }, @@ -1413,6 +1884,160 @@ "additionalProperties": false, "type": "object" }, + "Slack": { + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "items": { + "type": "string" + }, + "type": { + "type": "string" + }, + "class": { + "type": "string" + }, + "format": { + "type": "string" + }, + "status": { + "type": "string" + }, + "health": { + "type": "string" + }, + "timestampFormat": { + "type": "string" + }, + "createFields": { + "items": { + "type": "string" + }, + "type": "array" + }, + "deleteFields": { + "items": { + "type": "string" + }, + "type": "array" + }, + "transform": { + "$ref": "#/$defs/Transform" + }, + "labels": { + "$ref": "#/$defs/JSONStringMap" + }, + "tags": { + "$ref": "#/$defs/Tags" + }, + "properties": { + "items": { + "$ref": "#/$defs/ConfigProperties" + }, + "type": "array" + }, + "token": { + "$ref": "#/$defs/EnvVar" + }, + "since": { + "type": "string" + }, + "channels": { + "$ref": "#/$defs/MatchExpressions" + }, + "rules": { + "items": { + "$ref": "#/$defs/SlackChangeExtractionRule" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "token", + "rules" + ] + }, + "SlackChangeAcceptanceFilter": { + "properties": { + "bot": { + "type": "string" + }, + "user": { + "$ref": "#/$defs/SlackUserFilter" + }, + "expr": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "SlackChangeExtractionRule": { + "properties": { + "regexp": { + "type": "string" + }, + "mapping": { + "$ref": "#/$defs/ChangeExtractionMapping" + }, + "config": { + "items": { + "$ref": "#/$defs/EnvVarResourceSelector" + }, + "type": "array" + }, + "filter": { + "$ref": "#/$defs/SlackChangeAcceptanceFilter" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "config" + ] + }, + "SlackUserFilter": { + "properties": { + "name": { + "type": "string" + }, + "displayName": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "TLSConfig": { + "properties": { + "insecureSkipVerify": { + "type": "boolean" + }, + "handshakeTimeout": { + "type": "integer" + }, + "ca": { + "$ref": "#/$defs/EnvVar" + }, + "cert": { + "$ref": "#/$defs/EnvVar" + }, + "key": { + "$ref": "#/$defs/EnvVar" + } + }, + "additionalProperties": false, + "type": "object" + }, "Tag": { "properties": { "name": { @@ -1440,6 +2065,91 @@ }, "type": "array" }, + "Terraform": { + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "items": { + "type": "string" + }, + "type": { + "type": "string" + }, + "class": { + "type": "string" + }, + "format": { + "type": "string" + }, + "status": { + "type": "string" + }, + "health": { + "type": "string" + }, + "timestampFormat": { + "type": "string" + }, + "createFields": { + "items": { + "type": "string" + }, + "type": "array" + }, + "deleteFields": { + "items": { + "type": "string" + }, + "type": "array" + }, + "transform": { + "$ref": "#/$defs/Transform" + }, + "labels": { + "$ref": "#/$defs/JSONStringMap" + }, + "tags": { + "$ref": "#/$defs/Tags" + }, + "properties": { + "items": { + "$ref": "#/$defs/ConfigProperties" + }, + "type": "array" + }, + "state": { + "$ref": "#/$defs/TerraformStateSource" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "state" + ] + }, + "TerraformStateSource": { + "properties": { + "s3": { + "$ref": "#/$defs/S3Connection" + }, + "gcs": { + "$ref": "#/$defs/GCSConnection" + }, + "local": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, "Time": { "properties": {}, "additionalProperties": false, @@ -1507,6 +2217,9 @@ "name": { "type": "string" }, + "description": { + "type": "string" + }, "items": { "type": "string" }, @@ -1516,12 +2229,15 @@ "class": { "type": "string" }, - "transform": { - "$ref": "#/$defs/Transform" - }, "format": { "type": "string" }, + "status": { + "type": "string" + }, + "health": { + "type": "string" + }, "timestampFormat": { "type": "string" }, @@ -1537,6 +2253,9 @@ }, "type": "array" }, + "transform": { + "$ref": "#/$defs/Transform" + }, "labels": { "$ref": "#/$defs/JSONStringMap" }, @@ -1636,6 +2355,18 @@ }, "additionalProperties": false, "type": "object" + }, + "ValueExpression": { + "properties": { + "expr": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" } } } diff --git a/schema/openapi/topology.schema.json b/schema/openapi/topology.schema.json index c75c9360..3da01f94 100644 --- a/schema/openapi/topology.schema.json +++ b/schema/openapi/topology.schema.json @@ -1 +1,4573 @@ -{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://github.com/flanksource/canary-checker/api/v1/topology","$ref":"#/$defs/Topology","$defs":{"AWSConnection":{"properties":{"connection":{"type":"string"},"accessKey":{"$ref":"#/$defs/EnvVar"},"secretKey":{"$ref":"#/$defs/EnvVar"},"sessionToken":{"$ref":"#/$defs/EnvVar"},"region":{"type":"string"},"endpoint":{"type":"string"},"skipTLSVerify":{"type":"boolean"}},"additionalProperties":false,"type":"object"},"AlertManagerCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"connection":{"type":"string"},"url":{"type":"string"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"},"relationships":{"$ref":"#/$defs/CheckRelationship"},"alerts":{"items":{"type":"string"},"type":"array"},"filters":{"additionalProperties":{"type":"string"},"type":"object"},"exclude_filters":{"additionalProperties":{"type":"string"},"type":"object"},"ignore":{"items":{"type":"string"},"type":"array"}},"additionalProperties":false,"type":"object","required":["name"]},"Artifact":{"properties":{"path":{"type":"string"}},"additionalProperties":false,"type":"object","required":["path"]},"Authentication":{"properties":{"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"}},"additionalProperties":false,"type":"object"},"AwsConfigCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"query":{"type":"string"},"connection":{"type":"string"},"accessKey":{"$ref":"#/$defs/EnvVar"},"secretKey":{"$ref":"#/$defs/EnvVar"},"sessionToken":{"$ref":"#/$defs/EnvVar"},"region":{"type":"string"},"endpoint":{"type":"string"},"skipTLSVerify":{"type":"boolean"},"aggregatorName":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name","query"]},"AwsConfigRuleCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"ignoreRules":{"items":{"type":"string"},"type":"array"},"rules":{"items":{"type":"string"},"type":"array"},"complianceTypes":{"items":{"type":"string"},"type":"array"},"connection":{"type":"string"},"accessKey":{"$ref":"#/$defs/EnvVar"},"secretKey":{"$ref":"#/$defs/EnvVar"},"sessionToken":{"$ref":"#/$defs/EnvVar"},"region":{"type":"string"},"endpoint":{"type":"string"},"skipTLSVerify":{"type":"boolean"}},"additionalProperties":false,"type":"object","required":["name"]},"AzureConnection":{"properties":{"connection":{"type":"string"},"clientID":{"$ref":"#/$defs/EnvVar"},"clientSecret":{"$ref":"#/$defs/EnvVar"},"tenantID":{"type":"string"}},"additionalProperties":false,"type":"object"},"AzureDevopsCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"connection":{"type":"string"},"organization":{"type":"string"},"personalAccessToken":{"$ref":"#/$defs/EnvVar"},"project":{"type":"string"},"pipeline":{"type":"string"},"variables":{"additionalProperties":{"type":"string"},"type":"object"},"branch":{"items":{"type":"string"},"type":"array"},"thresholdMillis":{"type":"integer"}},"additionalProperties":false,"type":"object","required":["name","organization","personalAccessToken","project","pipeline","variables","branch","thresholdMillis"]},"CanarySpec":{"properties":{"replicas":{"type":"integer"},"env":{"additionalProperties":{"$ref":"#/$defs/VarSource"},"type":"object"},"http":{"items":{"$ref":"#/$defs/HTTPCheck"},"type":"array"},"dns":{"items":{"$ref":"#/$defs/DNSCheck"},"type":"array"},"docker":{"items":{"$ref":"#/$defs/DockerPullCheck"},"type":"array"},"dockerPush":{"items":{"$ref":"#/$defs/DockerPushCheck"},"type":"array"},"containerd":{"items":{"$ref":"#/$defs/ContainerdPullCheck"},"type":"array"},"containerdPush":{"items":{"$ref":"#/$defs/ContainerdPushCheck"},"type":"array"},"s3":{"items":{"$ref":"#/$defs/S3Check"},"type":"array"},"tcp":{"items":{"$ref":"#/$defs/TCPCheck"},"type":"array"},"pod":{"items":{"$ref":"#/$defs/PodCheck"},"type":"array"},"ldap":{"items":{"$ref":"#/$defs/LDAPCheck"},"type":"array"},"icmp":{"items":{"$ref":"#/$defs/ICMPCheck"},"type":"array"},"postgres":{"items":{"$ref":"#/$defs/PostgresCheck"},"type":"array"},"mssql":{"items":{"$ref":"#/$defs/MssqlCheck"},"type":"array"},"mysql":{"items":{"$ref":"#/$defs/MysqlCheck"},"type":"array"},"restic":{"items":{"$ref":"#/$defs/ResticCheck"},"type":"array"},"jmeter":{"items":{"$ref":"#/$defs/JmeterCheck"},"type":"array"},"junit":{"items":{"$ref":"#/$defs/JunitCheck"},"type":"array"},"helm":{"items":{"$ref":"#/$defs/HelmCheck"},"type":"array"},"namespace":{"items":{"$ref":"#/$defs/NamespaceCheck"},"type":"array"},"redis":{"items":{"$ref":"#/$defs/RedisCheck"},"type":"array"},"prometheus":{"items":{"$ref":"#/$defs/PrometheusCheck"},"type":"array"},"mongodb":{"items":{"$ref":"#/$defs/MongoDBCheck"},"type":"array"},"cloudwatch":{"items":{"$ref":"#/$defs/CloudWatchCheck"},"type":"array"},"github":{"items":{"$ref":"#/$defs/GitHubCheck"},"type":"array"},"gitProtocol":{"items":{"$ref":"#/$defs/GitProtocolCheck"},"type":"array"},"kubernetes":{"items":{"$ref":"#/$defs/KubernetesCheck"},"type":"array"},"kubernetesResource":{"items":{"$ref":"#/$defs/KubernetesResourceCheck"},"type":"array"},"folder":{"items":{"$ref":"#/$defs/FolderCheck"},"type":"array"},"exec":{"items":{"$ref":"#/$defs/ExecCheck"},"type":"array"},"awsConfig":{"items":{"$ref":"#/$defs/AwsConfigCheck"},"type":"array"},"awsConfigRule":{"items":{"$ref":"#/$defs/AwsConfigRuleCheck"},"type":"array"},"databaseBackup":{"items":{"$ref":"#/$defs/DatabaseBackupCheck"},"type":"array"},"catalog":{"items":{"$ref":"#/$defs/CatalogCheck"},"type":"array"},"opensearch":{"items":{"$ref":"#/$defs/OpenSearchCheck"},"type":"array"},"elasticsearch":{"items":{"$ref":"#/$defs/ElasticsearchCheck"},"type":"array"},"alertmanager":{"items":{"$ref":"#/$defs/AlertManagerCheck"},"type":"array"},"dynatrace":{"items":{"$ref":"#/$defs/DynatraceCheck"},"type":"array"},"azureDevops":{"items":{"$ref":"#/$defs/AzureDevopsCheck"},"type":"array"},"webhook":{"$ref":"#/$defs/WebhookCheck"},"interval":{"type":"integer"},"schedule":{"type":"string"},"icon":{"type":"string"},"severity":{"type":"string"},"owner":{"type":"string"},"resultMode":{"type":"string"}},"additionalProperties":false,"type":"object"},"CatalogCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"selector":{"$ref":"#/$defs/ResourceSelectors"}},"additionalProperties":false,"type":"object","required":["name","selector"]},"CheckRelationship":{"properties":{"components":{"items":{"$ref":"#/$defs/LookupSpec"},"type":"array"},"configs":{"items":{"$ref":"#/$defs/LookupSpec"},"type":"array"}},"additionalProperties":false,"type":"object"},"CloudWatchCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"connection":{"type":"string"},"accessKey":{"$ref":"#/$defs/EnvVar"},"secretKey":{"$ref":"#/$defs/EnvVar"},"sessionToken":{"$ref":"#/$defs/EnvVar"},"region":{"type":"string"},"endpoint":{"type":"string"},"skipTLSVerify":{"type":"boolean"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"actionPrefix":{"type":"string"},"alarmPrefix":{"type":"string"},"alarms":{"items":{"type":"string"},"type":"array"},"state":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name"]},"ComponentCheck":{"properties":{"selector":{"$ref":"#/$defs/ResourceSelector"},"inline":{"$ref":"#/$defs/CanarySpec"}},"additionalProperties":false,"type":"object"},"ComponentChecks":{"items":{"$ref":"#/$defs/ComponentCheck"},"type":"array"},"ComponentSpec":{"properties":{"name":{"type":"string"},"namespace":{"type":"string"},"tooltip":{"type":"string"},"icon":{"type":"string"},"owner":{"type":"string"},"externalID":{"type":"string"},"id":{"$ref":"#/$defs/Template"},"order":{"type":"integer"},"labels":{"additionalProperties":{"type":"string"},"type":"object"},"hidden":{"type":"boolean"},"type":{"type":"string"},"lifecycle":{"type":"string"},"relationships":{"items":{"$ref":"#/$defs/RelationshipSpec"},"type":"array"},"properties":{"items":{"$ref":"#/$defs/Property"},"type":"array"},"lookup":{"$ref":"#/$defs/CanarySpec"},"components":{"items":{"$ref":"#/$defs/ComponentSpecObject"},"type":"array"},"selectors":{"$ref":"#/$defs/ResourceSelectors"},"checks":{"$ref":"#/$defs/ComponentChecks"},"configs":{"$ref":"#/$defs/ConfigQueries"},"summary":{"$ref":"#/$defs/Summary"},"forEach":{"$ref":"#/$defs/ForEach"},"logs":{"$ref":"#/$defs/LogSelectors"},"parentLookup":{"$ref":"#/$defs/ParentLookup"}},"additionalProperties":false,"type":"object"},"ComponentSpecObject":{"properties":{"name":{"type":"string"},"namespace":{"type":"string"},"tooltip":{"type":"string"},"icon":{"type":"string"},"owner":{"type":"string"},"externalID":{"type":"string"},"id":{"$ref":"#/$defs/Template"},"order":{"type":"integer"},"labels":{"additionalProperties":{"type":"string"},"type":"object"},"hidden":{"type":"boolean"},"type":{"type":"string"},"lifecycle":{"type":"string"},"relationships":{"items":{"$ref":"#/$defs/RelationshipSpec"},"type":"array"},"properties":{"items":{"$ref":"#/$defs/Property"},"type":"array"},"lookup":{"$ref":"#/$defs/CanarySpec"},"components":{"items":{"$ref":"#/$defs/ComponentSpecObject"},"type":"array"},"selectors":{"$ref":"#/$defs/ResourceSelectors"},"checks":{"$ref":"#/$defs/ComponentChecks"},"configs":{"$ref":"#/$defs/ConfigQueries"},"summary":{"$ref":"#/$defs/Summary"},"forEach":{"$ref":"#/$defs/ForEach"},"logs":{"$ref":"#/$defs/LogSelectors"},"parentLookup":{"$ref":"#/$defs/ParentLookup"}},"additionalProperties":false,"type":"object"},"ConfigLookup":{"properties":{"id":{"type":"string"},"config":{"$ref":"#/$defs/ConfigQuery"},"field":{"type":"string"},"display":{"$ref":"#/$defs/Display"}},"additionalProperties":false,"type":"object"},"ConfigMapKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"},"optional":{"type":"boolean"}},"additionalProperties":false,"type":"object","required":["key"]},"ConfigQueries":{"items":{"$ref":"#/$defs/ConfigQuery"},"type":"array"},"ConfigQuery":{"properties":{"agent":{"type":"string"},"cache":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"types":{"$ref":"#/$defs/Items"},"statuses":{"$ref":"#/$defs/Items"},"tagSelector":{"type":"string"},"labelSelector":{"type":"string"},"fieldSelector":{"type":"string"},"class":{"type":"string"},"external_id":{"type":"string"},"tags":{"additionalProperties":{"type":"string"},"type":"object"},"type":{"type":"string"}},"additionalProperties":false,"type":"object"},"ContainerdPullCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"image":{"type":"string"},"auth":{"$ref":"#/$defs/Authentication"},"expectedDigest":{"type":"string"},"expectedSize":{"type":"integer"}},"additionalProperties":false,"type":"object","required":["name","image"]},"ContainerdPushCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"image":{"type":"string"},"username":{"type":"string"},"password":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name","image"]},"DNSCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"server":{"type":"string"},"port":{"type":"integer"},"query":{"type":"string"},"querytype":{"type":"string"},"minrecords":{"type":"integer"},"exactreply":{"items":{"type":"string"},"type":"array"},"timeout":{"type":"integer"},"thresholdMillis":{"type":"integer"}},"additionalProperties":false,"type":"object","required":["name"]},"DatabaseBackupCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"gcp":{"$ref":"#/$defs/GCPDatabase"},"maxAge":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name"]},"Display":{"properties":{"template":{"type":"string"},"jsonPath":{"type":"string"},"expr":{"type":"string"},"javascript":{"type":"string"}},"additionalProperties":false,"type":"object"},"DockerPullCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"image":{"type":"string"},"auth":{"$ref":"#/$defs/Authentication"},"expectedDigest":{"type":"string"},"expectedSize":{"type":"integer"}},"additionalProperties":false,"type":"object","required":["name","image"]},"DockerPushCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"image":{"type":"string"},"auth":{"$ref":"#/$defs/Authentication"}},"additionalProperties":false,"type":"object","required":["name","image"]},"DynatraceCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"connection":{"type":"string"},"host":{"type":"string"},"scheme":{"type":"string"},"apiKey":{"$ref":"#/$defs/EnvVar"}},"additionalProperties":false,"type":"object","required":["name"]},"ElasticsearchCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"connection":{"type":"string"},"url":{"type":"string"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"},"query":{"type":"string"},"index":{"type":"string"},"results":{"type":"integer"}},"additionalProperties":false,"type":"object","required":["name"]},"EnvVar":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueFrom":{"$ref":"#/$defs/EnvVarSource"}},"additionalProperties":false,"type":"object"},"EnvVarSource":{"properties":{"serviceAccount":{"type":"string"},"helmRef":{"$ref":"#/$defs/HelmRefKeySelector"},"configMapKeyRef":{"$ref":"#/$defs/ConfigMapKeySelector"},"secretKeyRef":{"$ref":"#/$defs/SecretKeySelector"}},"additionalProperties":false,"type":"object"},"ExecCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"script":{"type":"string"},"connections":{"$ref":"#/$defs/ExecConnections"},"env":{"items":{"$ref":"#/$defs/EnvVar"},"type":"array"},"checkout":{"$ref":"#/$defs/GitCheckout"},"artifacts":{"items":{"$ref":"#/$defs/Artifact"},"type":"array"}},"additionalProperties":false,"type":"object","required":["name","script"]},"ExecConnections":{"properties":{"aws":{"$ref":"#/$defs/AWSConnection"},"gcp":{"$ref":"#/$defs/GCPConnection"},"azure":{"$ref":"#/$defs/AzureConnection"}},"additionalProperties":false,"type":"object"},"FieldsV1":{"properties":{},"additionalProperties":false,"type":"object"},"FolderCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"path":{"type":"string"},"recursive":{"type":"boolean"},"filter":{"$ref":"#/$defs/FolderFilter"},"minAge":{"type":"string"},"maxAge":{"type":"string"},"minCount":{"type":"integer"},"maxCount":{"type":"integer"},"minSize":{"type":"string"},"maxSize":{"type":"string"},"availableSize":{"type":"string"},"totalSize":{"type":"string"},"awsConnection":{"$ref":"#/$defs/S3Connection"},"gcpConnection":{"$ref":"#/$defs/GCSConnection"},"smbConnection":{"$ref":"#/$defs/SMBConnection"},"sftpConnection":{"$ref":"#/$defs/SFTPConnection"}},"additionalProperties":false,"type":"object","required":["name","path"]},"FolderFilter":{"properties":{"minAge":{"type":"string"},"maxAge":{"type":"string"},"since":{"type":"string"},"minSize":{"type":"string"},"maxSize":{"type":"string"},"regex":{"type":"string"}},"additionalProperties":false,"type":"object"},"ForEach":{"properties":{"components":{"items":{"$ref":"#/$defs/ComponentSpec"},"type":"array"},"properties":{"$ref":"#/$defs/Properties"},"configs":{"items":{"$ref":"#/$defs/ConfigQuery"},"type":"array"},"selectors":{"$ref":"#/$defs/ResourceSelectors"},"relationships":{"items":{"$ref":"#/$defs/RelationshipSpec"},"type":"array"},"checks":{"$ref":"#/$defs/ComponentChecks"}},"additionalProperties":false,"type":"object"},"GCPConnection":{"properties":{"connection":{"type":"string"},"endpoint":{"type":"string"},"credentials":{"$ref":"#/$defs/EnvVar"}},"additionalProperties":false,"type":"object"},"GCPDatabase":{"properties":{"project":{"type":"string"},"instance":{"type":"string"},"gcpConnection":{"$ref":"#/$defs/GCPConnection"}},"additionalProperties":false,"type":"object","required":["project","instance"]},"GCSConnection":{"properties":{"connection":{"type":"string"},"endpoint":{"type":"string"},"credentials":{"$ref":"#/$defs/EnvVar"},"bucket":{"type":"string"}},"additionalProperties":false,"type":"object"},"GitCheckout":{"properties":{"url":{"type":"string"},"connection":{"type":"string"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"},"certificate":{"$ref":"#/$defs/EnvVar"},"destination":{"type":"string"}},"additionalProperties":false,"type":"object"},"GitHubCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"connection":{"type":"string"},"query":{"type":"string"},"githubToken":{"$ref":"#/$defs/EnvVar"}},"additionalProperties":false,"type":"object","required":["name","query"]},"GitProtocolCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"filename":{"type":"string"},"repository":{"type":"string"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"}},"additionalProperties":false,"type":"object","required":["name","repository","username","password"]},"HTTPCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"connection":{"type":"string"},"url":{"type":"string"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"},"endpoint":{"type":"string"},"thresholdMillis":{"type":"integer"},"responseCodes":{"items":{"type":"integer"},"type":"array"},"responseContent":{"type":"string"},"responseJSONContent":{"$ref":"#/$defs/JSONCheck"},"maxSSLExpiry":{"type":"integer"},"method":{"type":"string"},"ntlm":{"type":"boolean"},"ntlmv2":{"type":"boolean"},"body":{"type":"string"},"headers":{"items":{"$ref":"#/$defs/EnvVar"},"type":"array"},"templateBody":{"type":"boolean"},"env":{"items":{"$ref":"#/$defs/EnvVar"},"type":"array"},"oauth2":{"$ref":"#/$defs/Oauth2Config"}},"additionalProperties":false,"type":"object","required":["name"]},"HelmCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"chartmuseum":{"type":"string"},"project":{"type":"string"},"auth":{"$ref":"#/$defs/Authentication"},"cafile":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name"]},"HelmRefKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object","required":["key"]},"ICMPCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"endpoint":{"type":"string"},"thresholdMillis":{"type":"integer"},"packetLossThreshold":{"type":"integer"},"packetCount":{"type":"integer"}},"additionalProperties":false,"type":"object","required":["name"]},"Items":{"items":{"type":"string"},"type":"array"},"JSONCheck":{"properties":{"path":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false,"type":"object","required":["path","value"]},"JmeterCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"jmx":{"$ref":"#/$defs/EnvVar"},"host":{"type":"string"},"port":{"type":"integer"},"properties":{"items":{"type":"string"},"type":"array"},"systemProperties":{"items":{"type":"string"},"type":"array"},"responseDuration":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name","jmx"]},"JunitCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"testResults":{"type":"string"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"timeout":{"type":"integer"},"spec":true,"artifacts":{"items":{"$ref":"#/$defs/Artifact"},"type":"array"}},"additionalProperties":false,"type":"object","required":["name","testResults","spec"]},"KubernetesCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"namespaceSelector":{"$ref":"#/$defs/ResourceSelector"},"resource":{"$ref":"#/$defs/ResourceSelector"},"kubeconfig":{"$ref":"#/$defs/EnvVar"},"ignore":{"items":{"type":"string"},"type":"array"},"kind":{"type":"string"},"healthy":{"type":"boolean"},"ready":{"type":"boolean"}},"additionalProperties":false,"type":"object","required":["name","kind"]},"KubernetesResourceCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"staticResources":{"items":{"$ref":"#/$defs/Unstructured"},"type":"array"},"resources":{"items":{"$ref":"#/$defs/Unstructured"},"type":"array"},"checks":{"items":{"$ref":"#/$defs/KubernetesResourceChecks"},"type":"array"},"checkRetries":{"$ref":"#/$defs/KubernetesResourceCheckRetries"},"clearResources":{"type":"boolean"},"kubeconfig":{"$ref":"#/$defs/EnvVar"},"waitFor":{"$ref":"#/$defs/KubernetesResourceCheckWaitFor"}},"additionalProperties":false,"type":"object","required":["name","resources"]},"KubernetesResourceCheckRetries":{"properties":{"delay":{"type":"string"},"timeout":{"type":"string"},"interval":{"type":"string"}},"additionalProperties":false,"type":"object"},"KubernetesResourceCheckWaitFor":{"properties":{"expr":{"type":"string"},"disable":{"type":"boolean"},"delete":{"type":"boolean"},"timeout":{"type":"string"},"interval":{"type":"string"}},"additionalProperties":false,"type":"object"},"KubernetesResourceChecks":{"properties":{"replicas":{"type":"integer"},"env":{"additionalProperties":{"$ref":"#/$defs/VarSource"},"type":"object"},"http":{"items":{"$ref":"#/$defs/HTTPCheck"},"type":"array"},"dns":{"items":{"$ref":"#/$defs/DNSCheck"},"type":"array"},"docker":{"items":{"$ref":"#/$defs/DockerPullCheck"},"type":"array"},"dockerPush":{"items":{"$ref":"#/$defs/DockerPushCheck"},"type":"array"},"containerd":{"items":{"$ref":"#/$defs/ContainerdPullCheck"},"type":"array"},"containerdPush":{"items":{"$ref":"#/$defs/ContainerdPushCheck"},"type":"array"},"s3":{"items":{"$ref":"#/$defs/S3Check"},"type":"array"},"tcp":{"items":{"$ref":"#/$defs/TCPCheck"},"type":"array"},"pod":{"items":{"$ref":"#/$defs/PodCheck"},"type":"array"},"ldap":{"items":{"$ref":"#/$defs/LDAPCheck"},"type":"array"},"icmp":{"items":{"$ref":"#/$defs/ICMPCheck"},"type":"array"},"postgres":{"items":{"$ref":"#/$defs/PostgresCheck"},"type":"array"},"mssql":{"items":{"$ref":"#/$defs/MssqlCheck"},"type":"array"},"mysql":{"items":{"$ref":"#/$defs/MysqlCheck"},"type":"array"},"restic":{"items":{"$ref":"#/$defs/ResticCheck"},"type":"array"},"jmeter":{"items":{"$ref":"#/$defs/JmeterCheck"},"type":"array"},"junit":{"items":{"$ref":"#/$defs/JunitCheck"},"type":"array"},"helm":{"items":{"$ref":"#/$defs/HelmCheck"},"type":"array"},"namespace":{"items":{"$ref":"#/$defs/NamespaceCheck"},"type":"array"},"redis":{"items":{"$ref":"#/$defs/RedisCheck"},"type":"array"},"prometheus":{"items":{"$ref":"#/$defs/PrometheusCheck"},"type":"array"},"mongodb":{"items":{"$ref":"#/$defs/MongoDBCheck"},"type":"array"},"cloudwatch":{"items":{"$ref":"#/$defs/CloudWatchCheck"},"type":"array"},"github":{"items":{"$ref":"#/$defs/GitHubCheck"},"type":"array"},"gitProtocol":{"items":{"$ref":"#/$defs/GitProtocolCheck"},"type":"array"},"kubernetes":{"items":{"$ref":"#/$defs/KubernetesCheck"},"type":"array"},"kubernetesResource":{"items":{"$ref":"#/$defs/KubernetesResourceCheck"},"type":"array"},"folder":{"items":{"$ref":"#/$defs/FolderCheck"},"type":"array"},"exec":{"items":{"$ref":"#/$defs/ExecCheck"},"type":"array"},"awsConfig":{"items":{"$ref":"#/$defs/AwsConfigCheck"},"type":"array"},"awsConfigRule":{"items":{"$ref":"#/$defs/AwsConfigRuleCheck"},"type":"array"},"databaseBackup":{"items":{"$ref":"#/$defs/DatabaseBackupCheck"},"type":"array"},"catalog":{"items":{"$ref":"#/$defs/CatalogCheck"},"type":"array"},"opensearch":{"items":{"$ref":"#/$defs/OpenSearchCheck"},"type":"array"},"elasticsearch":{"items":{"$ref":"#/$defs/ElasticsearchCheck"},"type":"array"},"alertmanager":{"items":{"$ref":"#/$defs/AlertManagerCheck"},"type":"array"},"dynatrace":{"items":{"$ref":"#/$defs/DynatraceCheck"},"type":"array"},"azureDevops":{"items":{"$ref":"#/$defs/AzureDevopsCheck"},"type":"array"},"webhook":{"$ref":"#/$defs/WebhookCheck"},"interval":{"type":"integer"},"schedule":{"type":"string"},"icon":{"type":"string"},"severity":{"type":"string"},"owner":{"type":"string"},"resultMode":{"type":"string"}},"additionalProperties":false,"type":"object"},"LDAPCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"connection":{"type":"string"},"url":{"type":"string"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"},"bindDN":{"type":"string"},"userSearch":{"type":"string"},"skipTLSVerify":{"type":"boolean"}},"additionalProperties":false,"type":"object","required":["name","bindDN"]},"Labels":{"additionalProperties":{"type":"string"},"type":"object"},"Link":{"properties":{"type":{"type":"string"},"url":{"type":"string"},"tooltip":{"type":"string"},"icon":{"type":"string"},"text":{"type":"string"},"label":{"type":"string"}},"additionalProperties":false,"type":"object"},"LogSelector":{"properties":{"name":{"type":"string"},"type":{"type":"string"},"labels":{"additionalProperties":{"type":"string"},"type":"object"}},"additionalProperties":false,"type":"object"},"LogSelectors":{"items":{"$ref":"#/$defs/LogSelector"},"type":"array"},"Lookup":{"properties":{"expr":{"type":"string"},"value":{"type":"string"},"label":{"type":"string"}},"additionalProperties":false,"type":"object"},"LookupSpec":{"properties":{"name":{"$ref":"#/$defs/Lookup"},"namespace":{"$ref":"#/$defs/Lookup"},"type":{"$ref":"#/$defs/Lookup"}},"additionalProperties":false,"type":"object"},"ManagedFieldsEntry":{"properties":{"manager":{"type":"string"},"operation":{"type":"string"},"apiVersion":{"type":"string"},"time":{"$ref":"#/$defs/Time"},"fieldsType":{"type":"string"},"fieldsV1":{"$ref":"#/$defs/FieldsV1"},"subresource":{"type":"string"}},"additionalProperties":false,"type":"object"},"MetricLabel":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueExpr":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name"]},"MetricLabels":{"items":{"$ref":"#/$defs/MetricLabel"},"type":"array"},"Metrics":{"properties":{"name":{"type":"string"},"labels":{"$ref":"#/$defs/MetricLabels"},"type":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false,"type":"object"},"MongoDBCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"connection":{"type":"string"},"url":{"type":"string"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"}},"additionalProperties":false,"type":"object","required":["name"]},"MssqlCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"connection":{"type":"string"},"url":{"type":"string"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"},"query":{"type":"string"},"results":{"type":"integer"}},"additionalProperties":false,"type":"object","required":["name"]},"MysqlCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"connection":{"type":"string"},"url":{"type":"string"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"},"query":{"type":"string"},"results":{"type":"integer"}},"additionalProperties":false,"type":"object","required":["name"]},"NamespaceCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"namespaceNamePrefix":{"type":"string"},"namespaceLabels":{"additionalProperties":{"type":"string"},"type":"object"},"namespaceAnnotations":{"additionalProperties":{"type":"string"},"type":"object"},"podSpec":{"type":"string"},"schedule_timeout":{"type":"integer"},"readyTimeout":{"type":"integer"},"httpTimeout":{"type":"integer"},"deleteTimeout":{"type":"integer"},"ingressTimeout":{"type":"integer"},"httpRetryInterval":{"type":"integer"},"deadline":{"type":"integer"},"port":{"type":"integer"},"path":{"type":"string"},"ingressName":{"type":"string"},"ingressHost":{"type":"string"},"expectedContent":{"type":"string"},"expectedHttpStatuses":{"items":{"type":"integer"},"type":"array"},"priorityClass":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name","podSpec"]},"Oauth2Config":{"properties":{"scope":{"items":{"type":"string"},"type":"array"},"tokenURL":{"type":"string"},"params":{"additionalProperties":{"type":"string"},"type":"object"}},"additionalProperties":false,"type":"object"},"ObjectFieldSelector":{"properties":{"apiVersion":{"type":"string"},"fieldPath":{"type":"string"}},"additionalProperties":false,"type":"object","required":["fieldPath"]},"ObjectMeta":{"properties":{"name":{"type":"string"},"generateName":{"type":"string"},"namespace":{"type":"string"},"selfLink":{"type":"string"},"uid":{"type":"string"},"resourceVersion":{"type":"string"},"generation":{"type":"integer"},"creationTimestamp":{"$ref":"#/$defs/Time"},"deletionTimestamp":{"$ref":"#/$defs/Time"},"deletionGracePeriodSeconds":{"type":"integer"},"labels":{"additionalProperties":{"type":"string"},"type":"object"},"annotations":{"additionalProperties":{"type":"string"},"type":"object"},"ownerReferences":{"items":{"$ref":"#/$defs/OwnerReference"},"type":"array"},"finalizers":{"items":{"type":"string"},"type":"array"},"managedFields":{"items":{"$ref":"#/$defs/ManagedFieldsEntry"},"type":"array"}},"additionalProperties":false,"type":"object"},"OpenSearchCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"connection":{"type":"string"},"url":{"type":"string"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"},"query":{"type":"string"},"index":{"type":"string"},"results":{"type":"integer"}},"additionalProperties":false,"type":"object","required":["name","query","index"]},"OwnerReference":{"properties":{"apiVersion":{"type":"string"},"kind":{"type":"string"},"name":{"type":"string"},"uid":{"type":"string"},"controller":{"type":"boolean"},"blockOwnerDeletion":{"type":"boolean"}},"additionalProperties":false,"type":"object","required":["apiVersion","kind","name","uid"]},"ParentLookup":{"properties":{"name":{"type":"string"},"namespace":{"type":"string"},"type":{"type":"string"},"externalID":{"type":"string"}},"additionalProperties":false,"type":"object"},"PodCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"spec":{"type":"string"},"scheduleTimeout":{"type":"integer"},"readyTimeout":{"type":"integer"},"httpTimeout":{"type":"integer"},"deleteTimeout":{"type":"integer"},"ingressTimeout":{"type":"integer"},"httpRetryInterval":{"type":"integer"},"deadline":{"type":"integer"},"port":{"type":"integer"},"path":{"type":"string"},"ingressName":{"type":"string"},"ingressHost":{"type":"string"},"ingressClass":{"type":"string"},"expectedContent":{"type":"string"},"expectedHttpStatuses":{"items":{"type":"integer"},"type":"array"},"priorityClass":{"type":"string"},"roundRobinNodes":{"type":"boolean"}},"additionalProperties":false,"type":"object","required":["name"]},"PostgresCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"connection":{"type":"string"},"url":{"type":"string"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"},"query":{"type":"string"},"results":{"type":"integer"}},"additionalProperties":false,"type":"object","required":["name"]},"PrometheusCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"host":{"type":"string"},"connection":{"type":"string"},"url":{"type":"string"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"},"query":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name","query"]},"Properties":{"items":{"$ref":"#/$defs/Property"},"type":"array"},"Property":{"properties":{"label":{"type":"string"},"name":{"type":"string"},"tooltip":{"type":"string"},"icon":{"type":"string"},"text":{"type":"string"},"order":{"type":"integer"},"headline":{"type":"boolean"},"type":{"type":"string"},"color":{"type":"string"},"unit":{"type":"string"},"value":{"type":"integer"},"max":{"type":"integer"},"min":{"type":"integer"},"status":{"type":"string"},"lastTransition":{"type":"string"},"links":{"items":{"$ref":"#/$defs/Link"},"type":"array"},"lookup":{"$ref":"#/$defs/CanarySpec"},"configLookup":{"$ref":"#/$defs/ConfigLookup"},"summary":{"$ref":"#/$defs/Template"}},"additionalProperties":false,"type":"object"},"RedisCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"connection":{"type":"string"},"url":{"type":"string"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"},"addr":{"type":"string"},"db":{"type":"integer"}},"additionalProperties":false,"type":"object","required":["name"]},"RelationshipSpec":{"properties":{"type":{"type":"string"},"ref":{"type":"string"}},"additionalProperties":false,"type":"object"},"ResourceSelector":{"properties":{"name":{"type":"string"},"labelSelector":{"type":"string"},"fieldSelector":{"type":"string"}},"additionalProperties":false,"type":"object"},"ResourceSelectors":{"items":{"$ref":"#/$defs/ResourceSelector"},"type":"array"},"ResticCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"connection":{"type":"string"},"awsConnectionName":{"type":"string"},"repository":{"type":"string"},"password":{"$ref":"#/$defs/EnvVar"},"maxAge":{"type":"string"},"checkIntegrity":{"type":"boolean"},"accessKey":{"$ref":"#/$defs/EnvVar"},"secretKey":{"$ref":"#/$defs/EnvVar"},"caCert":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name","repository","password","maxAge"]},"S3Check":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"connection":{"type":"string"},"accessKey":{"$ref":"#/$defs/EnvVar"},"secretKey":{"$ref":"#/$defs/EnvVar"},"sessionToken":{"$ref":"#/$defs/EnvVar"},"region":{"type":"string"},"endpoint":{"type":"string"},"skipTLSVerify":{"type":"boolean"},"bucket":{"type":"string"},"objectPath":{"type":"string"},"usePathStyle":{"type":"boolean"},"bucketName":{"type":"string"}},"additionalProperties":false,"type":"object","required":["name"]},"S3Connection":{"properties":{"connection":{"type":"string"},"accessKey":{"$ref":"#/$defs/EnvVar"},"secretKey":{"$ref":"#/$defs/EnvVar"},"sessionToken":{"$ref":"#/$defs/EnvVar"},"region":{"type":"string"},"endpoint":{"type":"string"},"skipTLSVerify":{"type":"boolean"},"bucket":{"type":"string"},"objectPath":{"type":"string"},"usePathStyle":{"type":"boolean"}},"additionalProperties":false,"type":"object"},"SFTPConnection":{"properties":{"connection":{"type":"string"},"port":{"type":"integer"},"host":{"type":"string"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"}},"additionalProperties":false,"type":"object","required":["host"]},"SMBConnection":{"properties":{"connection":{"type":"string"},"port":{"type":"integer"},"username":{"$ref":"#/$defs/EnvVar"},"password":{"$ref":"#/$defs/EnvVar"},"domain":{"type":"string"}},"additionalProperties":false,"type":"object"},"SecretKeySelector":{"properties":{"name":{"type":"string"},"key":{"type":"string"},"optional":{"type":"boolean"}},"additionalProperties":false,"type":"object","required":["key"]},"Summary":{"properties":{"healthy":{"type":"integer"},"unhealthy":{"type":"integer"},"warning":{"type":"integer"},"info":{"type":"integer"},"incidents":{"additionalProperties":{"additionalProperties":{"type":"integer"},"type":"object"},"type":"object"},"insights":{"additionalProperties":{"additionalProperties":{"type":"integer"},"type":"object"},"type":"object"},"checks":{"additionalProperties":{"type":"integer"},"type":"object"}},"additionalProperties":false,"type":"object"},"TCPCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"endpoint":{"type":"string"},"thresholdMillis":{"type":"integer"}},"additionalProperties":false,"type":"object","required":["name"]},"Template":{"properties":{"template":{"type":"string"},"jsonPath":{"type":"string"},"expr":{"type":"string"},"javascript":{"type":"string"}},"additionalProperties":false,"type":"object"},"Time":{"properties":{},"additionalProperties":false,"type":"object"},"Topology":{"properties":{"kind":{"type":"string"},"apiVersion":{"type":"string"},"metadata":{"$ref":"#/$defs/ObjectMeta"},"spec":{"$ref":"#/$defs/TopologySpec"},"status":{"$ref":"#/$defs/TopologyStatus"}},"additionalProperties":false,"type":"object"},"TopologySpec":{"properties":{"type":{"type":"string"},"id":{"$ref":"#/$defs/Template"},"schedule":{"type":"string"},"tooltip":{"type":"string"},"icon":{"type":"string"},"text":{"type":"string"},"label":{"type":"string"},"owner":{"type":"string"},"components":{"items":{"$ref":"#/$defs/ComponentSpec"},"type":"array"},"properties":{"$ref":"#/$defs/Properties"},"configs":{"items":{"$ref":"#/$defs/ConfigQuery"},"type":"array"},"groupByTag":{"type":"string"}},"additionalProperties":false,"type":"object"},"TopologyStatus":{"properties":{"persistentID":{"type":"string"},"observedGeneration":{"type":"integer"},"status":{"type":"string"}},"additionalProperties":false,"type":"object"},"Unstructured":{"properties":{"Object":{"type":"object"}},"additionalProperties":false,"type":"object","required":["Object"]},"VarSource":{"properties":{"fieldRef":{"$ref":"#/$defs/ObjectFieldSelector"},"value":{"type":"string"},"configMapKeyRef":{"$ref":"#/$defs/ConfigMapKeySelector"},"secretKeyRef":{"$ref":"#/$defs/SecretKeySelector"}},"additionalProperties":false,"type":"object"},"WebhookCheck":{"properties":{"description":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"icon":{"type":"string"},"labels":{"$ref":"#/$defs/Labels"},"transformDeleteStrategy":{"type":"string"},"metrics":{"items":{"$ref":"#/$defs/Metrics"},"type":"array"},"test":{"$ref":"#/$defs/Template"},"display":{"$ref":"#/$defs/Template"},"transform":{"$ref":"#/$defs/Template"},"token":{"$ref":"#/$defs/EnvVar"}},"additionalProperties":false,"type":"object","required":["name"]}}} \ No newline at end of file +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://github.com/flanksource/canary-checker/api/v1/topology", + "$ref": "#/$defs/Topology", + "$defs": { + "AWSConnection": { + "properties": { + "connection": { + "type": "string" + }, + "accessKey": { + "$ref": "#/$defs/EnvVar" + }, + "secretKey": { + "$ref": "#/$defs/EnvVar" + }, + "sessionToken": { + "$ref": "#/$defs/EnvVar" + }, + "assumeRole": { + "type": "string" + }, + "region": { + "type": "string" + }, + "endpoint": { + "type": "string" + }, + "skipTLSVerify": { + "type": "boolean" + } + }, + "additionalProperties": false, + "type": "object" + }, + "AlertManagerCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "connection": { + "type": "string" + }, + "url": { + "type": "string" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "alerts": { + "items": { + "type": "string" + }, + "type": "array" + }, + "filters": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "exclude_filters": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "ignore": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "Artifact": { + "properties": { + "path": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "path" + ] + }, + "Authentication": { + "properties": { + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + } + }, + "additionalProperties": false, + "type": "object" + }, + "AwsConfigCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "query": { + "type": "string" + }, + "connection": { + "type": "string" + }, + "accessKey": { + "$ref": "#/$defs/EnvVar" + }, + "secretKey": { + "$ref": "#/$defs/EnvVar" + }, + "sessionToken": { + "$ref": "#/$defs/EnvVar" + }, + "assumeRole": { + "type": "string" + }, + "region": { + "type": "string" + }, + "endpoint": { + "type": "string" + }, + "skipTLSVerify": { + "type": "boolean" + }, + "aggregatorName": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "query" + ] + }, + "AwsConfigRuleCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "ignoreRules": { + "items": { + "type": "string" + }, + "type": "array" + }, + "rules": { + "items": { + "type": "string" + }, + "type": "array" + }, + "complianceTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "connection": { + "type": "string" + }, + "accessKey": { + "$ref": "#/$defs/EnvVar" + }, + "secretKey": { + "$ref": "#/$defs/EnvVar" + }, + "sessionToken": { + "$ref": "#/$defs/EnvVar" + }, + "assumeRole": { + "type": "string" + }, + "region": { + "type": "string" + }, + "endpoint": { + "type": "string" + }, + "skipTLSVerify": { + "type": "boolean" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "AzureConnection": { + "properties": { + "connection": { + "type": "string" + }, + "clientID": { + "$ref": "#/$defs/EnvVar" + }, + "clientSecret": { + "$ref": "#/$defs/EnvVar" + }, + "tenantID": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "AzureDevopsCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "connection": { + "type": "string" + }, + "organization": { + "type": "string" + }, + "personalAccessToken": { + "$ref": "#/$defs/EnvVar" + }, + "project": { + "type": "string" + }, + "pipeline": { + "type": "string" + }, + "variables": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "branch": { + "items": { + "type": "string" + }, + "type": "array" + }, + "thresholdMillis": { + "type": "integer" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "organization", + "personalAccessToken", + "project", + "pipeline", + "variables", + "branch", + "thresholdMillis" + ] + }, + "CanarySpec": { + "properties": { + "replicas": { + "type": "integer" + }, + "env": { + "additionalProperties": { + "$ref": "#/$defs/VarSource" + }, + "type": "object" + }, + "http": { + "items": { + "$ref": "#/$defs/HTTPCheck" + }, + "type": "array" + }, + "dns": { + "items": { + "$ref": "#/$defs/DNSCheck" + }, + "type": "array" + }, + "docker": { + "items": { + "$ref": "#/$defs/DockerPullCheck" + }, + "type": "array" + }, + "dockerPush": { + "items": { + "$ref": "#/$defs/DockerPushCheck" + }, + "type": "array" + }, + "containerd": { + "items": { + "$ref": "#/$defs/ContainerdPullCheck" + }, + "type": "array" + }, + "containerdPush": { + "items": { + "$ref": "#/$defs/ContainerdPushCheck" + }, + "type": "array" + }, + "s3": { + "items": { + "$ref": "#/$defs/S3Check" + }, + "type": "array" + }, + "tcp": { + "items": { + "$ref": "#/$defs/TCPCheck" + }, + "type": "array" + }, + "pod": { + "items": { + "$ref": "#/$defs/PodCheck" + }, + "type": "array" + }, + "ldap": { + "items": { + "$ref": "#/$defs/LDAPCheck" + }, + "type": "array" + }, + "icmp": { + "items": { + "$ref": "#/$defs/ICMPCheck" + }, + "type": "array" + }, + "postgres": { + "items": { + "$ref": "#/$defs/PostgresCheck" + }, + "type": "array" + }, + "mssql": { + "items": { + "$ref": "#/$defs/MssqlCheck" + }, + "type": "array" + }, + "mysql": { + "items": { + "$ref": "#/$defs/MysqlCheck" + }, + "type": "array" + }, + "restic": { + "items": { + "$ref": "#/$defs/ResticCheck" + }, + "type": "array" + }, + "jmeter": { + "items": { + "$ref": "#/$defs/JmeterCheck" + }, + "type": "array" + }, + "junit": { + "items": { + "$ref": "#/$defs/JunitCheck" + }, + "type": "array" + }, + "helm": { + "items": { + "$ref": "#/$defs/HelmCheck" + }, + "type": "array" + }, + "namespace": { + "items": { + "$ref": "#/$defs/NamespaceCheck" + }, + "type": "array" + }, + "redis": { + "items": { + "$ref": "#/$defs/RedisCheck" + }, + "type": "array" + }, + "prometheus": { + "items": { + "$ref": "#/$defs/PrometheusCheck" + }, + "type": "array" + }, + "mongodb": { + "items": { + "$ref": "#/$defs/MongoDBCheck" + }, + "type": "array" + }, + "cloudwatch": { + "items": { + "$ref": "#/$defs/CloudWatchCheck" + }, + "type": "array" + }, + "github": { + "items": { + "$ref": "#/$defs/GitHubCheck" + }, + "type": "array" + }, + "gitProtocol": { + "items": { + "$ref": "#/$defs/GitProtocolCheck" + }, + "type": "array" + }, + "kubernetes": { + "items": { + "$ref": "#/$defs/KubernetesCheck" + }, + "type": "array" + }, + "kubernetesResource": { + "items": { + "$ref": "#/$defs/KubernetesResourceCheck" + }, + "type": "array" + }, + "folder": { + "items": { + "$ref": "#/$defs/FolderCheck" + }, + "type": "array" + }, + "exec": { + "items": { + "$ref": "#/$defs/ExecCheck" + }, + "type": "array" + }, + "awsConfig": { + "items": { + "$ref": "#/$defs/AwsConfigCheck" + }, + "type": "array" + }, + "awsConfigRule": { + "items": { + "$ref": "#/$defs/AwsConfigRuleCheck" + }, + "type": "array" + }, + "databaseBackup": { + "items": { + "$ref": "#/$defs/DatabaseBackupCheck" + }, + "type": "array" + }, + "catalog": { + "items": { + "$ref": "#/$defs/CatalogCheck" + }, + "type": "array" + }, + "opensearch": { + "items": { + "$ref": "#/$defs/OpenSearchCheck" + }, + "type": "array" + }, + "elasticsearch": { + "items": { + "$ref": "#/$defs/ElasticsearchCheck" + }, + "type": "array" + }, + "alertmanager": { + "items": { + "$ref": "#/$defs/AlertManagerCheck" + }, + "type": "array" + }, + "dynatrace": { + "items": { + "$ref": "#/$defs/DynatraceCheck" + }, + "type": "array" + }, + "azureDevops": { + "items": { + "$ref": "#/$defs/AzureDevopsCheck" + }, + "type": "array" + }, + "webhook": { + "$ref": "#/$defs/WebhookCheck" + }, + "interval": { + "type": "integer" + }, + "schedule": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "severity": { + "type": "string" + }, + "owner": { + "type": "string" + }, + "resultMode": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "CatalogCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "selector": { + "$ref": "#/$defs/ResourceSelectors" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "selector" + ] + }, + "CheckRelationship": { + "properties": { + "components": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + }, + "configs": { + "items": { + "$ref": "#/$defs/RelationshipSelectorTemplate" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object" + }, + "CloudWatchCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "connection": { + "type": "string" + }, + "accessKey": { + "$ref": "#/$defs/EnvVar" + }, + "secretKey": { + "$ref": "#/$defs/EnvVar" + }, + "sessionToken": { + "$ref": "#/$defs/EnvVar" + }, + "assumeRole": { + "type": "string" + }, + "region": { + "type": "string" + }, + "endpoint": { + "type": "string" + }, + "skipTLSVerify": { + "type": "boolean" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "actionPrefix": { + "type": "string" + }, + "alarmPrefix": { + "type": "string" + }, + "alarms": { + "items": { + "type": "string" + }, + "type": "array" + }, + "state": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "ComponentCheck": { + "properties": { + "selector": { + "$ref": "#/$defs/ResourceSelector" + }, + "inline": { + "$ref": "#/$defs/CanarySpec" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ComponentChecks": { + "items": { + "$ref": "#/$defs/ComponentCheck" + }, + "type": "array" + }, + "ComponentSpec": { + "properties": { + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "tooltip": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "owner": { + "type": "string" + }, + "externalID": { + "type": "string" + }, + "id": { + "$ref": "#/$defs/Template" + }, + "order": { + "type": "integer" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "hidden": { + "type": "boolean" + }, + "type": { + "type": "string" + }, + "lifecycle": { + "type": "string" + }, + "relationships": { + "items": { + "$ref": "#/$defs/RelationshipSpec" + }, + "type": "array" + }, + "properties": { + "items": { + "$ref": "#/$defs/Property" + }, + "type": "array" + }, + "lookup": { + "$ref": "#/$defs/CanarySpec" + }, + "components": { + "items": { + "$ref": "#/$defs/ComponentSpecObject" + }, + "type": "array" + }, + "selectors": { + "$ref": "#/$defs/ResourceSelectors" + }, + "checks": { + "$ref": "#/$defs/ComponentChecks" + }, + "configs": { + "$ref": "#/$defs/ConfigQueries" + }, + "summary": { + "$ref": "#/$defs/Summary" + }, + "forEach": { + "$ref": "#/$defs/ForEach" + }, + "logs": { + "$ref": "#/$defs/LogSelectors" + }, + "parentLookup": { + "$ref": "#/$defs/ParentLookup" + }, + "statusExpr": { + "type": "string" + }, + "healthExpr": { + "type": "string" + }, + "health": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ComponentSpecObject": { + "properties": { + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "tooltip": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "owner": { + "type": "string" + }, + "externalID": { + "type": "string" + }, + "id": { + "$ref": "#/$defs/Template" + }, + "order": { + "type": "integer" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "hidden": { + "type": "boolean" + }, + "type": { + "type": "string" + }, + "lifecycle": { + "type": "string" + }, + "relationships": { + "items": { + "$ref": "#/$defs/RelationshipSpec" + }, + "type": "array" + }, + "properties": { + "items": { + "$ref": "#/$defs/Property" + }, + "type": "array" + }, + "lookup": { + "$ref": "#/$defs/CanarySpec" + }, + "components": { + "items": { + "$ref": "#/$defs/ComponentSpecObject" + }, + "type": "array" + }, + "selectors": { + "$ref": "#/$defs/ResourceSelectors" + }, + "checks": { + "$ref": "#/$defs/ComponentChecks" + }, + "configs": { + "$ref": "#/$defs/ConfigQueries" + }, + "summary": { + "$ref": "#/$defs/Summary" + }, + "forEach": { + "$ref": "#/$defs/ForEach" + }, + "logs": { + "$ref": "#/$defs/LogSelectors" + }, + "parentLookup": { + "$ref": "#/$defs/ParentLookup" + }, + "statusExpr": { + "type": "string" + }, + "healthExpr": { + "type": "string" + }, + "health": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ConfigLookup": { + "properties": { + "id": { + "type": "string" + }, + "config": { + "$ref": "#/$defs/ConfigQuery" + }, + "field": { + "type": "string" + }, + "display": { + "$ref": "#/$defs/Display" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ConfigMapKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + }, + "optional": { + "type": "boolean" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "ConfigQueries": { + "items": { + "$ref": "#/$defs/ConfigQuery" + }, + "type": "array" + }, + "ConfigQuery": { + "properties": { + "agent": { + "type": "string" + }, + "scope": { + "type": "string" + }, + "cache": { + "type": "string" + }, + "search": { + "type": "string" + }, + "includeDeleted": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "types": { + "$ref": "#/$defs/Items" + }, + "statuses": { + "$ref": "#/$defs/Items" + }, + "tagSelector": { + "type": "string" + }, + "labelSelector": { + "type": "string" + }, + "fieldSelector": { + "type": "string" + }, + "class": { + "type": "string" + }, + "external_id": { + "type": "string" + }, + "tags": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ContainerdPullCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "image": { + "type": "string" + }, + "auth": { + "$ref": "#/$defs/Authentication" + }, + "expectedDigest": { + "type": "string" + }, + "expectedSize": { + "type": "integer" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "image" + ] + }, + "ContainerdPushCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "image": { + "type": "string" + }, + "username": { + "type": "string" + }, + "password": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "image" + ] + }, + "DNSCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "server": { + "type": "string" + }, + "port": { + "type": "integer" + }, + "query": { + "type": "string" + }, + "querytype": { + "type": "string" + }, + "minrecords": { + "type": "integer" + }, + "exactreply": { + "items": { + "type": "string" + }, + "type": "array" + }, + "timeout": { + "type": "integer" + }, + "thresholdMillis": { + "type": "integer" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "DatabaseBackupCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "gcp": { + "$ref": "#/$defs/GCPDatabase" + }, + "maxAge": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "Display": { + "properties": { + "template": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "DockerPullCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "image": { + "type": "string" + }, + "auth": { + "$ref": "#/$defs/Authentication" + }, + "expectedDigest": { + "type": "string" + }, + "expectedSize": { + "type": "integer" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "image" + ] + }, + "DockerPushCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "image": { + "type": "string" + }, + "auth": { + "$ref": "#/$defs/Authentication" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "image" + ] + }, + "DynatraceCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "connection": { + "type": "string" + }, + "host": { + "type": "string" + }, + "scheme": { + "type": "string" + }, + "apiKey": { + "$ref": "#/$defs/EnvVar" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "ElasticsearchCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "connection": { + "type": "string" + }, + "url": { + "type": "string" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + }, + "query": { + "type": "string" + }, + "index": { + "type": "string" + }, + "results": { + "type": "integer" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "EnvVar": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "$ref": "#/$defs/EnvVarSource" + } + }, + "additionalProperties": false, + "type": "object" + }, + "EnvVarSource": { + "properties": { + "serviceAccount": { + "type": "string" + }, + "helmRef": { + "$ref": "#/$defs/HelmRefKeySelector" + }, + "configMapKeyRef": { + "$ref": "#/$defs/ConfigMapKeySelector" + }, + "secretKeyRef": { + "$ref": "#/$defs/SecretKeySelector" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ExecCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "script": { + "type": "string" + }, + "connections": { + "$ref": "#/$defs/ExecConnections" + }, + "env": { + "items": { + "$ref": "#/$defs/EnvVar" + }, + "type": "array" + }, + "checkout": { + "$ref": "#/$defs/GitCheckout" + }, + "artifacts": { + "items": { + "$ref": "#/$defs/Artifact" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "script" + ] + }, + "ExecConnections": { + "properties": { + "aws": { + "$ref": "#/$defs/AWSConnection" + }, + "gcp": { + "$ref": "#/$defs/GCPConnection" + }, + "azure": { + "$ref": "#/$defs/AzureConnection" + } + }, + "additionalProperties": false, + "type": "object" + }, + "FieldsV1": { + "properties": {}, + "additionalProperties": false, + "type": "object" + }, + "FolderCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "path": { + "type": "string" + }, + "recursive": { + "type": "boolean" + }, + "filter": { + "$ref": "#/$defs/FolderFilter" + }, + "minAge": { + "type": "string" + }, + "maxAge": { + "type": "string" + }, + "minCount": { + "type": "integer" + }, + "maxCount": { + "type": "integer" + }, + "minSize": { + "type": "string" + }, + "maxSize": { + "type": "string" + }, + "availableSize": { + "type": "string" + }, + "totalSize": { + "type": "string" + }, + "awsConnection": { + "$ref": "#/$defs/S3Connection" + }, + "gcpConnection": { + "$ref": "#/$defs/GCSConnection" + }, + "smbConnection": { + "$ref": "#/$defs/SMBConnection" + }, + "sftpConnection": { + "$ref": "#/$defs/SFTPConnection" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "path" + ] + }, + "FolderFilter": { + "properties": { + "minAge": { + "type": "string" + }, + "maxAge": { + "type": "string" + }, + "since": { + "type": "string" + }, + "minSize": { + "type": "string" + }, + "maxSize": { + "type": "string" + }, + "regex": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ForEach": { + "properties": { + "components": { + "items": { + "$ref": "#/$defs/ComponentSpec" + }, + "type": "array" + }, + "properties": { + "$ref": "#/$defs/Properties" + }, + "configs": { + "items": { + "$ref": "#/$defs/ConfigQuery" + }, + "type": "array" + }, + "selectors": { + "$ref": "#/$defs/ResourceSelectors" + }, + "relationships": { + "items": { + "$ref": "#/$defs/RelationshipSpec" + }, + "type": "array" + }, + "checks": { + "$ref": "#/$defs/ComponentChecks" + } + }, + "additionalProperties": false, + "type": "object" + }, + "GCPConnection": { + "properties": { + "connection": { + "type": "string" + }, + "endpoint": { + "type": "string" + }, + "credentials": { + "$ref": "#/$defs/EnvVar" + } + }, + "additionalProperties": false, + "type": "object" + }, + "GCPDatabase": { + "properties": { + "project": { + "type": "string" + }, + "instance": { + "type": "string" + }, + "gcpConnection": { + "$ref": "#/$defs/GCPConnection" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "project", + "instance" + ] + }, + "GCSConnection": { + "properties": { + "connection": { + "type": "string" + }, + "endpoint": { + "type": "string" + }, + "credentials": { + "$ref": "#/$defs/EnvVar" + }, + "bucket": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "GitCheckout": { + "properties": { + "url": { + "type": "string" + }, + "connection": { + "type": "string" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + }, + "certificate": { + "$ref": "#/$defs/EnvVar" + }, + "destination": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "GitHubCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "connection": { + "type": "string" + }, + "query": { + "type": "string" + }, + "githubToken": { + "$ref": "#/$defs/EnvVar" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "query" + ] + }, + "GitProtocolCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "filename": { + "type": "string" + }, + "repository": { + "type": "string" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "repository", + "username", + "password" + ] + }, + "HTTPCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "connection": { + "type": "string" + }, + "url": { + "type": "string" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + }, + "endpoint": { + "type": "string" + }, + "thresholdMillis": { + "type": "integer" + }, + "responseCodes": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "responseContent": { + "type": "string" + }, + "responseJSONContent": { + "$ref": "#/$defs/JSONCheck" + }, + "maxSSLExpiry": { + "type": "integer" + }, + "method": { + "type": "string" + }, + "ntlm": { + "type": "boolean" + }, + "ntlmv2": { + "type": "boolean" + }, + "body": { + "type": "string" + }, + "headers": { + "items": { + "$ref": "#/$defs/EnvVar" + }, + "type": "array" + }, + "templateBody": { + "type": "boolean" + }, + "env": { + "items": { + "$ref": "#/$defs/EnvVar" + }, + "type": "array" + }, + "oauth2": { + "$ref": "#/$defs/Oauth2Config" + }, + "tlsConfig": { + "$ref": "#/$defs/TLSConfig" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "HTTPConnection": { + "properties": { + "connection": { + "type": "string" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + }, + "ntlm": { + "type": "boolean" + }, + "ntlmv2": { + "type": "boolean" + }, + "digest": { + "type": "boolean" + }, + "url": { + "type": "string" + }, + "bearer": { + "$ref": "#/$defs/EnvVar" + }, + "oauth": { + "$ref": "#/$defs/OAuth" + }, + "tls": { + "$ref": "#/$defs/TLSConfig" + } + }, + "additionalProperties": false, + "type": "object" + }, + "HelmCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "chartmuseum": { + "type": "string" + }, + "project": { + "type": "string" + }, + "auth": { + "$ref": "#/$defs/Authentication" + }, + "cafile": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "HelmRefKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "ICMPCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "endpoint": { + "type": "string" + }, + "thresholdMillis": { + "type": "integer" + }, + "packetLossThreshold": { + "type": "integer" + }, + "packetCount": { + "type": "integer" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "Items": { + "items": { + "type": "string" + }, + "type": "array" + }, + "JSONCheck": { + "properties": { + "path": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "path", + "value" + ] + }, + "JmeterCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "jmx": { + "$ref": "#/$defs/EnvVar" + }, + "host": { + "type": "string" + }, + "port": { + "type": "integer" + }, + "properties": { + "items": { + "type": "string" + }, + "type": "array" + }, + "systemProperties": { + "items": { + "type": "string" + }, + "type": "array" + }, + "responseDuration": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "jmx" + ] + }, + "JunitCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "testResults": { + "type": "string" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "timeout": { + "type": "integer" + }, + "spec": true, + "artifacts": { + "items": { + "$ref": "#/$defs/Artifact" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "testResults", + "spec" + ] + }, + "KubernetesCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "namespaceSelector": { + "$ref": "#/$defs/ResourceSelector" + }, + "resource": { + "$ref": "#/$defs/ResourceSelector" + }, + "kubeconfig": { + "$ref": "#/$defs/EnvVar" + }, + "ignore": { + "items": { + "type": "string" + }, + "type": "array" + }, + "kind": { + "type": "string" + }, + "healthy": { + "type": "boolean" + }, + "ready": { + "type": "boolean" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "kind" + ] + }, + "KubernetesResourceCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "staticResources": { + "items": { + "$ref": "#/$defs/Unstructured" + }, + "type": "array" + }, + "resources": { + "items": { + "$ref": "#/$defs/Unstructured" + }, + "type": "array" + }, + "checks": { + "items": { + "$ref": "#/$defs/KubernetesResourceChecks" + }, + "type": "array" + }, + "checkRetries": { + "$ref": "#/$defs/KubernetesResourceCheckRetries" + }, + "clearResources": { + "type": "boolean" + }, + "kubeconfig": { + "$ref": "#/$defs/EnvVar" + }, + "waitFor": { + "$ref": "#/$defs/KubernetesResourceCheckWaitFor" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "resources" + ] + }, + "KubernetesResourceCheckRetries": { + "properties": { + "delay": { + "type": "string" + }, + "timeout": { + "type": "string" + }, + "interval": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "KubernetesResourceCheckWaitFor": { + "properties": { + "expr": { + "type": "string" + }, + "disable": { + "type": "boolean" + }, + "delete": { + "type": "boolean" + }, + "timeout": { + "type": "string" + }, + "interval": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "KubernetesResourceChecks": { + "properties": { + "replicas": { + "type": "integer" + }, + "env": { + "additionalProperties": { + "$ref": "#/$defs/VarSource" + }, + "type": "object" + }, + "http": { + "items": { + "$ref": "#/$defs/HTTPCheck" + }, + "type": "array" + }, + "dns": { + "items": { + "$ref": "#/$defs/DNSCheck" + }, + "type": "array" + }, + "docker": { + "items": { + "$ref": "#/$defs/DockerPullCheck" + }, + "type": "array" + }, + "dockerPush": { + "items": { + "$ref": "#/$defs/DockerPushCheck" + }, + "type": "array" + }, + "containerd": { + "items": { + "$ref": "#/$defs/ContainerdPullCheck" + }, + "type": "array" + }, + "containerdPush": { + "items": { + "$ref": "#/$defs/ContainerdPushCheck" + }, + "type": "array" + }, + "s3": { + "items": { + "$ref": "#/$defs/S3Check" + }, + "type": "array" + }, + "tcp": { + "items": { + "$ref": "#/$defs/TCPCheck" + }, + "type": "array" + }, + "pod": { + "items": { + "$ref": "#/$defs/PodCheck" + }, + "type": "array" + }, + "ldap": { + "items": { + "$ref": "#/$defs/LDAPCheck" + }, + "type": "array" + }, + "icmp": { + "items": { + "$ref": "#/$defs/ICMPCheck" + }, + "type": "array" + }, + "postgres": { + "items": { + "$ref": "#/$defs/PostgresCheck" + }, + "type": "array" + }, + "mssql": { + "items": { + "$ref": "#/$defs/MssqlCheck" + }, + "type": "array" + }, + "mysql": { + "items": { + "$ref": "#/$defs/MysqlCheck" + }, + "type": "array" + }, + "restic": { + "items": { + "$ref": "#/$defs/ResticCheck" + }, + "type": "array" + }, + "jmeter": { + "items": { + "$ref": "#/$defs/JmeterCheck" + }, + "type": "array" + }, + "junit": { + "items": { + "$ref": "#/$defs/JunitCheck" + }, + "type": "array" + }, + "helm": { + "items": { + "$ref": "#/$defs/HelmCheck" + }, + "type": "array" + }, + "namespace": { + "items": { + "$ref": "#/$defs/NamespaceCheck" + }, + "type": "array" + }, + "redis": { + "items": { + "$ref": "#/$defs/RedisCheck" + }, + "type": "array" + }, + "prometheus": { + "items": { + "$ref": "#/$defs/PrometheusCheck" + }, + "type": "array" + }, + "mongodb": { + "items": { + "$ref": "#/$defs/MongoDBCheck" + }, + "type": "array" + }, + "cloudwatch": { + "items": { + "$ref": "#/$defs/CloudWatchCheck" + }, + "type": "array" + }, + "github": { + "items": { + "$ref": "#/$defs/GitHubCheck" + }, + "type": "array" + }, + "gitProtocol": { + "items": { + "$ref": "#/$defs/GitProtocolCheck" + }, + "type": "array" + }, + "kubernetes": { + "items": { + "$ref": "#/$defs/KubernetesCheck" + }, + "type": "array" + }, + "kubernetesResource": { + "items": { + "$ref": "#/$defs/KubernetesResourceCheck" + }, + "type": "array" + }, + "folder": { + "items": { + "$ref": "#/$defs/FolderCheck" + }, + "type": "array" + }, + "exec": { + "items": { + "$ref": "#/$defs/ExecCheck" + }, + "type": "array" + }, + "awsConfig": { + "items": { + "$ref": "#/$defs/AwsConfigCheck" + }, + "type": "array" + }, + "awsConfigRule": { + "items": { + "$ref": "#/$defs/AwsConfigRuleCheck" + }, + "type": "array" + }, + "databaseBackup": { + "items": { + "$ref": "#/$defs/DatabaseBackupCheck" + }, + "type": "array" + }, + "catalog": { + "items": { + "$ref": "#/$defs/CatalogCheck" + }, + "type": "array" + }, + "opensearch": { + "items": { + "$ref": "#/$defs/OpenSearchCheck" + }, + "type": "array" + }, + "elasticsearch": { + "items": { + "$ref": "#/$defs/ElasticsearchCheck" + }, + "type": "array" + }, + "alertmanager": { + "items": { + "$ref": "#/$defs/AlertManagerCheck" + }, + "type": "array" + }, + "dynatrace": { + "items": { + "$ref": "#/$defs/DynatraceCheck" + }, + "type": "array" + }, + "azureDevops": { + "items": { + "$ref": "#/$defs/AzureDevopsCheck" + }, + "type": "array" + }, + "webhook": { + "$ref": "#/$defs/WebhookCheck" + }, + "interval": { + "type": "integer" + }, + "schedule": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "severity": { + "type": "string" + }, + "owner": { + "type": "string" + }, + "resultMode": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "LDAPCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "connection": { + "type": "string" + }, + "url": { + "type": "string" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + }, + "bindDN": { + "type": "string" + }, + "userSearch": { + "type": "string" + }, + "skipTLSVerify": { + "type": "boolean" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "bindDN" + ] + }, + "Labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "Link": { + "properties": { + "type": { + "type": "string" + }, + "url": { + "type": "string" + }, + "tooltip": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "text": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "LogSelector": { + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "additionalProperties": false, + "type": "object" + }, + "LogSelectors": { + "items": { + "$ref": "#/$defs/LogSelector" + }, + "type": "array" + }, + "Lookup": { + "properties": { + "expr": { + "type": "string" + }, + "value": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ManagedFieldsEntry": { + "properties": { + "manager": { + "type": "string" + }, + "operation": { + "type": "string" + }, + "apiVersion": { + "type": "string" + }, + "time": { + "$ref": "#/$defs/Time" + }, + "fieldsType": { + "type": "string" + }, + "fieldsV1": { + "$ref": "#/$defs/FieldsV1" + }, + "subresource": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "MetricLabel": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "MetricLabels": { + "items": { + "$ref": "#/$defs/MetricLabel" + }, + "type": "array" + }, + "Metrics": { + "properties": { + "name": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/MetricLabels" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "MongoDBCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "connection": { + "type": "string" + }, + "url": { + "type": "string" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "MssqlCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "connection": { + "type": "string" + }, + "url": { + "type": "string" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + }, + "query": { + "type": "string" + }, + "results": { + "type": "integer" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "MysqlCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "connection": { + "type": "string" + }, + "url": { + "type": "string" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + }, + "query": { + "type": "string" + }, + "results": { + "type": "integer" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "NamespaceCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "namespaceNamePrefix": { + "type": "string" + }, + "namespaceLabels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "namespaceAnnotations": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "podSpec": { + "type": "string" + }, + "schedule_timeout": { + "type": "integer" + }, + "readyTimeout": { + "type": "integer" + }, + "httpTimeout": { + "type": "integer" + }, + "deleteTimeout": { + "type": "integer" + }, + "ingressTimeout": { + "type": "integer" + }, + "httpRetryInterval": { + "type": "integer" + }, + "deadline": { + "type": "integer" + }, + "port": { + "type": "integer" + }, + "path": { + "type": "string" + }, + "ingressName": { + "type": "string" + }, + "ingressHost": { + "type": "string" + }, + "expectedContent": { + "type": "string" + }, + "expectedHttpStatuses": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "priorityClass": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "podSpec" + ] + }, + "OAuth": { + "properties": { + "clientID": { + "$ref": "#/$defs/EnvVar" + }, + "clientSecret": { + "$ref": "#/$defs/EnvVar" + }, + "scope": { + "items": { + "type": "string" + }, + "type": "array" + }, + "tokenURL": { + "type": "string" + }, + "params": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "additionalProperties": false, + "type": "object" + }, + "Oauth2Config": { + "properties": { + "scope": { + "items": { + "type": "string" + }, + "type": "array" + }, + "tokenURL": { + "type": "string" + }, + "params": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ObjectFieldSelector": { + "properties": { + "apiVersion": { + "type": "string" + }, + "fieldPath": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "fieldPath" + ] + }, + "ObjectMeta": { + "properties": { + "name": { + "type": "string" + }, + "generateName": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "selfLink": { + "type": "string" + }, + "uid": { + "type": "string" + }, + "resourceVersion": { + "type": "string" + }, + "generation": { + "type": "integer" + }, + "creationTimestamp": { + "$ref": "#/$defs/Time" + }, + "deletionTimestamp": { + "$ref": "#/$defs/Time" + }, + "deletionGracePeriodSeconds": { + "type": "integer" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "annotations": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "ownerReferences": { + "items": { + "$ref": "#/$defs/OwnerReference" + }, + "type": "array" + }, + "finalizers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "managedFields": { + "items": { + "$ref": "#/$defs/ManagedFieldsEntry" + }, + "type": "array" + } + }, + "additionalProperties": false, + "type": "object" + }, + "OpenSearchCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "connection": { + "type": "string" + }, + "url": { + "type": "string" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + }, + "query": { + "type": "string" + }, + "index": { + "type": "string" + }, + "results": { + "type": "integer" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "query", + "index" + ] + }, + "OwnerReference": { + "properties": { + "apiVersion": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "name": { + "type": "string" + }, + "uid": { + "type": "string" + }, + "controller": { + "type": "boolean" + }, + "blockOwnerDeletion": { + "type": "boolean" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "apiVersion", + "kind", + "name", + "uid" + ] + }, + "ParentLookup": { + "properties": { + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "type": { + "type": "string" + }, + "externalID": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "PodCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "spec": { + "type": "string" + }, + "scheduleTimeout": { + "type": "integer" + }, + "readyTimeout": { + "type": "integer" + }, + "httpTimeout": { + "type": "integer" + }, + "deleteTimeout": { + "type": "integer" + }, + "ingressTimeout": { + "type": "integer" + }, + "httpRetryInterval": { + "type": "integer" + }, + "deadline": { + "type": "integer" + }, + "port": { + "type": "integer" + }, + "path": { + "type": "string" + }, + "ingressName": { + "type": "string" + }, + "ingressHost": { + "type": "string" + }, + "ingressClass": { + "type": "string" + }, + "expectedContent": { + "type": "string" + }, + "expectedHttpStatuses": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "priorityClass": { + "type": "string" + }, + "roundRobinNodes": { + "type": "boolean" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "PostgresCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "connection": { + "type": "string" + }, + "url": { + "type": "string" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + }, + "query": { + "type": "string" + }, + "results": { + "type": "integer" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "PrometheusCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "host": { + "type": "string" + }, + "connection": { + "type": "string" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + }, + "ntlm": { + "type": "boolean" + }, + "ntlmv2": { + "type": "boolean" + }, + "digest": { + "type": "boolean" + }, + "url": { + "type": "string" + }, + "bearer": { + "$ref": "#/$defs/EnvVar" + }, + "oauth": { + "$ref": "#/$defs/OAuth" + }, + "tls": { + "$ref": "#/$defs/TLSConfig" + }, + "query": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "query" + ] + }, + "Properties": { + "items": { + "$ref": "#/$defs/Property" + }, + "type": "array" + }, + "Property": { + "properties": { + "label": { + "type": "string" + }, + "name": { + "type": "string" + }, + "tooltip": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "text": { + "type": "string" + }, + "order": { + "type": "integer" + }, + "headline": { + "type": "boolean" + }, + "type": { + "type": "string" + }, + "color": { + "type": "string" + }, + "unit": { + "type": "string" + }, + "value": { + "type": "integer" + }, + "max": { + "type": "integer" + }, + "min": { + "type": "integer" + }, + "status": { + "type": "string" + }, + "lastTransition": { + "type": "string" + }, + "links": { + "items": { + "$ref": "#/$defs/Link" + }, + "type": "array" + }, + "lookup": { + "$ref": "#/$defs/CanarySpec" + }, + "configLookup": { + "$ref": "#/$defs/ConfigLookup" + }, + "summary": { + "$ref": "#/$defs/Template" + } + }, + "additionalProperties": false, + "type": "object" + }, + "RedisCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "connection": { + "type": "string" + }, + "url": { + "type": "string" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + }, + "addr": { + "type": "string" + }, + "db": { + "type": "integer" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "RelationshipSelectorTemplate": { + "properties": { + "id": { + "$ref": "#/$defs/Lookup" + }, + "external_id": { + "$ref": "#/$defs/Lookup" + }, + "name": { + "$ref": "#/$defs/Lookup" + }, + "namespace": { + "$ref": "#/$defs/Lookup" + }, + "type": { + "$ref": "#/$defs/Lookup" + }, + "agent": { + "$ref": "#/$defs/Lookup" + }, + "scope": { + "$ref": "#/$defs/Lookup" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "additionalProperties": false, + "type": "object" + }, + "RelationshipSpec": { + "properties": { + "type": { + "type": "string" + }, + "ref": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ResourceSelector": { + "properties": { + "name": { + "type": "string" + }, + "labelSelector": { + "type": "string" + }, + "fieldSelector": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "ResourceSelectors": { + "items": { + "$ref": "#/$defs/ResourceSelector" + }, + "type": "array" + }, + "ResticCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "connection": { + "type": "string" + }, + "awsConnectionName": { + "type": "string" + }, + "repository": { + "type": "string" + }, + "password": { + "$ref": "#/$defs/EnvVar" + }, + "maxAge": { + "type": "string" + }, + "checkIntegrity": { + "type": "boolean" + }, + "accessKey": { + "$ref": "#/$defs/EnvVar" + }, + "secretKey": { + "$ref": "#/$defs/EnvVar" + }, + "caCert": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "repository", + "password", + "maxAge" + ] + }, + "S3Check": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "connection": { + "type": "string" + }, + "accessKey": { + "$ref": "#/$defs/EnvVar" + }, + "secretKey": { + "$ref": "#/$defs/EnvVar" + }, + "sessionToken": { + "$ref": "#/$defs/EnvVar" + }, + "assumeRole": { + "type": "string" + }, + "region": { + "type": "string" + }, + "endpoint": { + "type": "string" + }, + "skipTLSVerify": { + "type": "boolean" + }, + "bucket": { + "type": "string" + }, + "objectPath": { + "type": "string" + }, + "usePathStyle": { + "type": "boolean" + }, + "bucketName": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "S3Connection": { + "properties": { + "connection": { + "type": "string" + }, + "accessKey": { + "$ref": "#/$defs/EnvVar" + }, + "secretKey": { + "$ref": "#/$defs/EnvVar" + }, + "sessionToken": { + "$ref": "#/$defs/EnvVar" + }, + "assumeRole": { + "type": "string" + }, + "region": { + "type": "string" + }, + "endpoint": { + "type": "string" + }, + "skipTLSVerify": { + "type": "boolean" + }, + "bucket": { + "type": "string" + }, + "objectPath": { + "type": "string" + }, + "usePathStyle": { + "type": "boolean" + } + }, + "additionalProperties": false, + "type": "object" + }, + "SFTPConnection": { + "properties": { + "connection": { + "type": "string" + }, + "port": { + "type": "integer" + }, + "host": { + "type": "string" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + } + }, + "additionalProperties": false, + "type": "object" + }, + "SMBConnection": { + "properties": { + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + }, + "connection": { + "type": "string" + }, + "port": { + "type": "integer" + }, + "domain": { + "type": "string" + }, + "share": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "SecretKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + }, + "optional": { + "type": "boolean" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, + "Summary": { + "properties": { + "healthy": { + "type": "integer" + }, + "unhealthy": { + "type": "integer" + }, + "warning": { + "type": "integer" + }, + "info": { + "type": "integer" + }, + "incidents": { + "additionalProperties": { + "additionalProperties": { + "type": "integer" + }, + "type": "object" + }, + "type": "object" + }, + "insights": { + "additionalProperties": { + "additionalProperties": { + "type": "integer" + }, + "type": "object" + }, + "type": "object" + }, + "checks": { + "additionalProperties": { + "type": "integer" + }, + "type": "object" + } + }, + "additionalProperties": false, + "type": "object" + }, + "TCPCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "endpoint": { + "type": "string" + }, + "thresholdMillis": { + "type": "integer" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + }, + "TLSConfig": { + "properties": { + "insecureSkipVerify": { + "type": "boolean" + }, + "handshakeTimeout": { + "type": "integer" + }, + "ca": { + "$ref": "#/$defs/EnvVar" + }, + "cert": { + "$ref": "#/$defs/EnvVar" + }, + "key": { + "$ref": "#/$defs/EnvVar" + } + }, + "additionalProperties": false, + "type": "object" + }, + "Template": { + "properties": { + "template": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "Time": { + "properties": {}, + "additionalProperties": false, + "type": "object" + }, + "Topology": { + "properties": { + "kind": { + "type": "string" + }, + "apiVersion": { + "type": "string" + }, + "metadata": { + "$ref": "#/$defs/ObjectMeta" + }, + "spec": { + "$ref": "#/$defs/TopologySpec" + }, + "status": { + "$ref": "#/$defs/TopologyStatus" + } + }, + "additionalProperties": false, + "type": "object" + }, + "TopologySpec": { + "properties": { + "type": { + "type": "string" + }, + "id": { + "$ref": "#/$defs/Template" + }, + "schedule": { + "type": "string" + }, + "tooltip": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "text": { + "type": "string" + }, + "label": { + "type": "string" + }, + "owner": { + "type": "string" + }, + "components": { + "items": { + "$ref": "#/$defs/ComponentSpec" + }, + "type": "array" + }, + "healthExpr": { + "type": "string" + }, + "statusExpr": { + "type": "string" + }, + "properties": { + "$ref": "#/$defs/Properties" + }, + "configs": { + "items": { + "$ref": "#/$defs/ConfigQuery" + }, + "type": "array" + }, + "groupBy": { + "$ref": "#/$defs/TopologyTagSelector" + }, + "push": { + "$ref": "#/$defs/HTTPConnection" + } + }, + "additionalProperties": false, + "type": "object" + }, + "TopologyStatus": { + "properties": { + "persistentID": { + "type": "string" + }, + "observedGeneration": { + "type": "integer" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "TopologyTagSelector": { + "properties": { + "tag": { + "type": "string" + }, + "selector": { + "$ref": "#/$defs/ResourceSelector" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "tag" + ] + }, + "Unstructured": { + "properties": { + "Object": { + "type": "object" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "Object" + ] + }, + "VarSource": { + "properties": { + "fieldRef": { + "$ref": "#/$defs/ObjectFieldSelector" + }, + "value": { + "type": "string" + }, + "configMapKeyRef": { + "$ref": "#/$defs/ConfigMapKeySelector" + }, + "secretKeyRef": { + "$ref": "#/$defs/SecretKeySelector" + } + }, + "additionalProperties": false, + "type": "object" + }, + "WebhookCheck": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "$ref": "#/$defs/Labels" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "metrics": { + "items": { + "$ref": "#/$defs/Metrics" + }, + "type": "array" + }, + "test": { + "$ref": "#/$defs/Template" + }, + "display": { + "$ref": "#/$defs/Template" + }, + "transform": { + "$ref": "#/$defs/Template" + }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, + "token": { + "$ref": "#/$defs/EnvVar" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name" + ] + } + } +} \ No newline at end of file diff --git a/schema/openapi/topology.spec.schema.json b/schema/openapi/topology.spec.schema.json index 7eb77806..4fd85f69 100644 --- a/schema/openapi/topology.spec.schema.json +++ b/schema/openapi/topology.spec.schema.json @@ -17,6 +17,9 @@ "sessionToken": { "$ref": "#/$defs/EnvVar" }, + "assumeRole": { + "type": "string" + }, "region": { "type": "string" }, @@ -170,6 +173,9 @@ "transform": { "$ref": "#/$defs/Template" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "query": { "type": "string" }, @@ -185,6 +191,9 @@ "sessionToken": { "$ref": "#/$defs/EnvVar" }, + "assumeRole": { + "type": "string" + }, "region": { "type": "string" }, @@ -240,6 +249,9 @@ "transform": { "$ref": "#/$defs/Template" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "ignoreRules": { "items": { "type": "string" @@ -270,6 +282,9 @@ "sessionToken": { "$ref": "#/$defs/EnvVar" }, + "assumeRole": { + "type": "string" + }, "region": { "type": "string" }, @@ -339,6 +354,9 @@ "transform": { "$ref": "#/$defs/Template" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "connection": { "type": "string" }, @@ -682,6 +700,9 @@ "transform": { "$ref": "#/$defs/Template" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "selector": { "$ref": "#/$defs/ResourceSelectors" } @@ -697,13 +718,13 @@ "properties": { "components": { "items": { - "$ref": "#/$defs/LookupSpec" + "$ref": "#/$defs/RelationshipSelectorTemplate" }, "type": "array" }, "configs": { "items": { - "$ref": "#/$defs/LookupSpec" + "$ref": "#/$defs/RelationshipSelectorTemplate" }, "type": "array" } @@ -749,6 +770,9 @@ "sessionToken": { "$ref": "#/$defs/EnvVar" }, + "assumeRole": { + "type": "string" + }, "region": { "type": "string" }, @@ -767,6 +791,9 @@ "transform": { "$ref": "#/$defs/Template" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "actionPrefix": { "type": "string" }, @@ -889,6 +916,15 @@ }, "parentLookup": { "$ref": "#/$defs/ParentLookup" + }, + "statusExpr": { + "type": "string" + }, + "healthExpr": { + "type": "string" + }, + "health": { + "type": "string" } }, "additionalProperties": false, @@ -976,6 +1012,15 @@ }, "parentLookup": { "$ref": "#/$defs/ParentLookup" + }, + "statusExpr": { + "type": "string" + }, + "healthExpr": { + "type": "string" + }, + "health": { + "type": "string" } }, "additionalProperties": false, @@ -1028,9 +1073,18 @@ "agent": { "type": "string" }, + "scope": { + "type": "string" + }, "cache": { "type": "string" }, + "search": { + "type": "string" + }, + "includeDeleted": { + "type": "boolean" + }, "id": { "type": "string" }, @@ -1100,6 +1154,9 @@ }, "type": "array" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "image": { "type": "string" }, @@ -1146,6 +1203,9 @@ }, "type": "array" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "image": { "type": "string" }, @@ -1189,6 +1249,9 @@ }, "type": "array" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "server": { "type": "string" }, @@ -1258,6 +1321,9 @@ "transform": { "$ref": "#/$defs/Template" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "gcp": { "$ref": "#/$defs/GCPDatabase" }, @@ -1315,6 +1381,9 @@ }, "type": "array" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "image": { "type": "string" }, @@ -1361,6 +1430,9 @@ }, "type": "array" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "image": { "type": "string" }, @@ -1410,6 +1482,9 @@ "transform": { "$ref": "#/$defs/Template" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "connection": { "type": "string" }, @@ -1464,6 +1539,9 @@ "transform": { "$ref": "#/$defs/Template" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "connection": { "type": "string" }, @@ -1560,6 +1638,9 @@ "transform": { "$ref": "#/$defs/Template" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "script": { "type": "string" }, @@ -1644,6 +1725,9 @@ "transform": { "$ref": "#/$defs/Template" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "path": { "type": "string" }, @@ -1865,6 +1949,9 @@ "transform": { "$ref": "#/$defs/Template" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "connection": { "type": "string" }, @@ -1917,6 +2004,9 @@ "transform": { "$ref": "#/$defs/Template" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "filename": { "type": "string" }, @@ -1974,6 +2064,9 @@ "transform": { "$ref": "#/$defs/Template" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "connection": { "type": "string" }, @@ -2036,6 +2129,9 @@ }, "oauth2": { "$ref": "#/$defs/Oauth2Config" + }, + "tlsConfig": { + "$ref": "#/$defs/TLSConfig" } }, "additionalProperties": false, @@ -2044,6 +2140,42 @@ "name" ] }, + "HTTPConnection": { + "properties": { + "connection": { + "type": "string" + }, + "username": { + "$ref": "#/$defs/EnvVar" + }, + "password": { + "$ref": "#/$defs/EnvVar" + }, + "ntlm": { + "type": "boolean" + }, + "ntlmv2": { + "type": "boolean" + }, + "digest": { + "type": "boolean" + }, + "url": { + "type": "string" + }, + "bearer": { + "$ref": "#/$defs/EnvVar" + }, + "oauth": { + "$ref": "#/$defs/OAuth" + }, + "tls": { + "$ref": "#/$defs/TLSConfig" + } + }, + "additionalProperties": false, + "type": "object" + }, "HelmCheck": { "properties": { "description": { @@ -2070,6 +2202,9 @@ }, "type": "array" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "chartmuseum": { "type": "string" }, @@ -2130,6 +2265,9 @@ }, "type": "array" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "endpoint": { "type": "string" }, @@ -2197,6 +2335,9 @@ }, "type": "array" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "jmx": { "$ref": "#/$defs/EnvVar" }, @@ -2267,6 +2408,9 @@ "transform": { "$ref": "#/$defs/Template" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "timeout": { "type": "integer" }, @@ -2321,6 +2465,9 @@ "transform": { "$ref": "#/$defs/Template" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "namespaceSelector": { "$ref": "#/$defs/ResourceSelector" }, @@ -2388,6 +2535,9 @@ "transform": { "$ref": "#/$defs/Template" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "staticResources": { "items": { "$ref": "#/$defs/Unstructured" @@ -2752,6 +2902,9 @@ }, "type": "array" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "connection": { "type": "string" }, @@ -2850,21 +3003,6 @@ "additionalProperties": false, "type": "object" }, - "LookupSpec": { - "properties": { - "name": { - "$ref": "#/$defs/Lookup" - }, - "namespace": { - "$ref": "#/$defs/Lookup" - }, - "type": { - "$ref": "#/$defs/Lookup" - } - }, - "additionalProperties": false, - "type": "object" - }, "ManagedFieldsEntry": { "properties": { "manager": { @@ -3014,6 +3152,9 @@ "transform": { "$ref": "#/$defs/Template" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "connection": { "type": "string" }, @@ -3074,6 +3215,9 @@ "transform": { "$ref": "#/$defs/Template" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "connection": { "type": "string" }, @@ -3125,6 +3269,9 @@ }, "type": "array" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "namespaceNamePrefix": { "type": "string" }, @@ -3196,6 +3343,33 @@ "podSpec" ] }, + "OAuth": { + "properties": { + "clientID": { + "$ref": "#/$defs/EnvVar" + }, + "clientSecret": { + "$ref": "#/$defs/EnvVar" + }, + "scope": { + "items": { + "type": "string" + }, + "type": "array" + }, + "tokenURL": { + "type": "string" + }, + "params": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "additionalProperties": false, + "type": "object" + }, "Oauth2Config": { "properties": { "scope": { @@ -3333,6 +3507,9 @@ "transform": { "$ref": "#/$defs/Template" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "connection": { "type": "string" }, @@ -3437,6 +3614,9 @@ }, "type": "array" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "spec": { "type": "string" }, @@ -3533,6 +3713,9 @@ "transform": { "$ref": "#/$defs/Template" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "connection": { "type": "string" }, @@ -3593,21 +3776,42 @@ "transform": { "$ref": "#/$defs/Template" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "host": { "type": "string" }, "connection": { "type": "string" }, - "url": { - "type": "string" - }, "username": { "$ref": "#/$defs/EnvVar" }, "password": { "$ref": "#/$defs/EnvVar" }, + "ntlm": { + "type": "boolean" + }, + "ntlmv2": { + "type": "boolean" + }, + "digest": { + "type": "boolean" + }, + "url": { + "type": "string" + }, + "bearer": { + "$ref": "#/$defs/EnvVar" + }, + "oauth": { + "$ref": "#/$defs/OAuth" + }, + "tls": { + "$ref": "#/$defs/TLSConfig" + }, "query": { "type": "string" } @@ -3717,6 +3921,9 @@ }, "type": "array" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "connection": { "type": "string" }, @@ -3742,6 +3949,39 @@ "name" ] }, + "RelationshipSelectorTemplate": { + "properties": { + "id": { + "$ref": "#/$defs/Lookup" + }, + "external_id": { + "$ref": "#/$defs/Lookup" + }, + "name": { + "$ref": "#/$defs/Lookup" + }, + "namespace": { + "$ref": "#/$defs/Lookup" + }, + "type": { + "$ref": "#/$defs/Lookup" + }, + "agent": { + "$ref": "#/$defs/Lookup" + }, + "scope": { + "$ref": "#/$defs/Lookup" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "additionalProperties": false, + "type": "object" + }, "RelationshipSpec": { "properties": { "type": { @@ -3801,6 +4041,9 @@ }, "type": "array" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "connection": { "type": "string" }, @@ -3864,6 +4107,9 @@ }, "type": "array" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "connection": { "type": "string" }, @@ -3876,6 +4122,9 @@ "sessionToken": { "$ref": "#/$defs/EnvVar" }, + "assumeRole": { + "type": "string" + }, "region": { "type": "string" }, @@ -3918,6 +4167,9 @@ "sessionToken": { "$ref": "#/$defs/EnvVar" }, + "assumeRole": { + "type": "string" + }, "region": { "type": "string" }, @@ -3959,27 +4211,27 @@ } }, "additionalProperties": false, - "type": "object", - "required": [ - "host" - ] + "type": "object" }, "SMBConnection": { "properties": { - "connection": { - "type": "string" - }, - "port": { - "type": "integer" - }, "username": { "$ref": "#/$defs/EnvVar" }, "password": { "$ref": "#/$defs/EnvVar" }, + "connection": { + "type": "string" + }, + "port": { + "type": "integer" + }, "domain": { "type": "string" + }, + "share": { + "type": "string" } }, "additionalProperties": false, @@ -4071,6 +4323,9 @@ }, "type": "array" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "endpoint": { "type": "string" }, @@ -4084,6 +4339,27 @@ "name" ] }, + "TLSConfig": { + "properties": { + "insecureSkipVerify": { + "type": "boolean" + }, + "handshakeTimeout": { + "type": "integer" + }, + "ca": { + "$ref": "#/$defs/EnvVar" + }, + "cert": { + "$ref": "#/$defs/EnvVar" + }, + "key": { + "$ref": "#/$defs/EnvVar" + } + }, + "additionalProperties": false, + "type": "object" + }, "Template": { "properties": { "template": { @@ -4160,6 +4436,12 @@ }, "type": "array" }, + "healthExpr": { + "type": "string" + }, + "statusExpr": { + "type": "string" + }, "properties": { "$ref": "#/$defs/Properties" }, @@ -4169,8 +4451,11 @@ }, "type": "array" }, - "groupByTag": { - "type": "string" + "groupBy": { + "$ref": "#/$defs/TopologyTagSelector" + }, + "push": { + "$ref": "#/$defs/HTTPConnection" } }, "additionalProperties": false, @@ -4191,6 +4476,21 @@ "additionalProperties": false, "type": "object" }, + "TopologyTagSelector": { + "properties": { + "tag": { + "type": "string" + }, + "selector": { + "$ref": "#/$defs/ResourceSelector" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "tag" + ] + }, "Unstructured": { "properties": { "Object": { @@ -4256,6 +4556,9 @@ "transform": { "$ref": "#/$defs/Template" }, + "relationships": { + "$ref": "#/$defs/CheckRelationship" + }, "token": { "$ref": "#/$defs/EnvVar" }