From d83dface14071a7b82bf061b5dd6b938ba306fd7 Mon Sep 17 00:00:00 2001 From: Yash Mehrotra Date: Tue, 19 Mar 2024 17:46:58 +0530 Subject: [PATCH] chore: update schemas --- schema/openapi/canary.schema.json | 61 +++++++ schema/openapi/canary.spec.schema.json | 61 +++++++ schema/openapi/component.schema.json | 55 ++++++ schema/openapi/component.spec.schema.json | 55 ++++++ schema/openapi/health_catalog.schema.json | 166 +++++++++++++++++++ schema/openapi/health_kubernetes.schema.json | 81 +++++++++ schema/openapi/playbook-spec.schema.json | 2 +- schema/openapi/playbook.schema.json | 2 +- schema/openapi/topology.schema.json | 55 ++++++ schema/openapi/topology.spec.schema.json | 55 ++++++ 10 files changed, 591 insertions(+), 2 deletions(-) create mode 100644 schema/openapi/health_catalog.schema.json diff --git a/schema/openapi/canary.schema.json b/schema/openapi/canary.schema.json index aa1a2996..4cb4001f 100644 --- a/schema/openapi/canary.schema.json +++ b/schema/openapi/canary.schema.json @@ -621,6 +621,12 @@ }, "type": "array" }, + "catalog": { + "items": { + "$ref": "#/$defs/CatalogCheck" + }, + "type": "array" + }, "opensearch": { "items": { "$ref": "#/$defs/OpenSearchCheck" @@ -728,6 +734,52 @@ "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": { @@ -2186,6 +2238,9 @@ "resource": { "$ref": "#/$defs/ResourceSelector" }, + "kubeconfig": { + "$ref": "#/$defs/EnvVar" + }, "ignore": { "items": { "type": "string" @@ -3120,6 +3175,12 @@ "additionalProperties": false, "type": "object" }, + "ResourceSelectors": { + "items": { + "$ref": "#/$defs/ResourceSelector" + }, + "type": "array" + }, "ResticCheck": { "properties": { "description": { diff --git a/schema/openapi/canary.spec.schema.json b/schema/openapi/canary.spec.schema.json index 62f19bb7..5505ff6b 100644 --- a/schema/openapi/canary.spec.schema.json +++ b/schema/openapi/canary.spec.schema.json @@ -621,6 +621,12 @@ }, "type": "array" }, + "catalog": { + "items": { + "$ref": "#/$defs/CatalogCheck" + }, + "type": "array" + }, "opensearch": { "items": { "$ref": "#/$defs/OpenSearchCheck" @@ -728,6 +734,52 @@ "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": { @@ -2186,6 +2238,9 @@ "resource": { "$ref": "#/$defs/ResourceSelector" }, + "kubeconfig": { + "$ref": "#/$defs/EnvVar" + }, "ignore": { "items": { "type": "string" @@ -3120,6 +3175,12 @@ "additionalProperties": false, "type": "object" }, + "ResourceSelectors": { + "items": { + "$ref": "#/$defs/ResourceSelector" + }, + "type": "array" + }, "ResticCheck": { "properties": { "description": { diff --git a/schema/openapi/component.schema.json b/schema/openapi/component.schema.json index 81819ad1..1f7294b1 100644 --- a/schema/openapi/component.schema.json +++ b/schema/openapi/component.schema.json @@ -600,6 +600,12 @@ }, "type": "array" }, + "catalog": { + "items": { + "$ref": "#/$defs/CatalogCheck" + }, + "type": "array" + }, "opensearch": { "items": { "$ref": "#/$defs/OpenSearchCheck" @@ -655,6 +661,52 @@ "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": { @@ -2419,6 +2471,9 @@ "resource": { "$ref": "#/$defs/ResourceSelector" }, + "kubeconfig": { + "$ref": "#/$defs/EnvVar" + }, "ignore": { "items": { "type": "string" diff --git a/schema/openapi/component.spec.schema.json b/schema/openapi/component.spec.schema.json index c95f85d2..045b5d07 100644 --- a/schema/openapi/component.spec.schema.json +++ b/schema/openapi/component.spec.schema.json @@ -600,6 +600,12 @@ }, "type": "array" }, + "catalog": { + "items": { + "$ref": "#/$defs/CatalogCheck" + }, + "type": "array" + }, "opensearch": { "items": { "$ref": "#/$defs/OpenSearchCheck" @@ -655,6 +661,52 @@ "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": { @@ -2419,6 +2471,9 @@ "resource": { "$ref": "#/$defs/ResourceSelector" }, + "kubeconfig": { + "$ref": "#/$defs/EnvVar" + }, "ignore": { "items": { "type": "string" diff --git a/schema/openapi/health_catalog.schema.json b/schema/openapi/health_catalog.schema.json new file mode 100644 index 00000000..4341895d --- /dev/null +++ b/schema/openapi/health_catalog.schema.json @@ -0,0 +1,166 @@ +{ + "$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": { + "patternProperties": { + ".*": { + "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" + }, + "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_kubernetes.schema.json b/schema/openapi/health_kubernetes.schema.json index 152664d1..328d30b8 100644 --- a/schema/openapi/health_kubernetes.schema.json +++ b/schema/openapi/health_kubernetes.schema.json @@ -3,6 +3,69 @@ "$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": { @@ -44,6 +107,9 @@ "resource": { "$ref": "#/$defs/ResourceSelector" }, + "kubeconfig": { + "$ref": "#/$defs/EnvVar" + }, "ignore": { "items": { "type": "string" @@ -129,6 +195,21 @@ "additionalProperties": false, "type": "object" }, + "SecretKeySelector": { + "properties": { + "name": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key" + ] + }, "Template": { "properties": { "template": { diff --git a/schema/openapi/playbook-spec.schema.json b/schema/openapi/playbook-spec.schema.json index bebecbb7..b455edfc 100644 --- a/schema/openapi/playbook-spec.schema.json +++ b/schema/openapi/playbook-spec.schema.json @@ -1 +1 @@ -{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/PlaybookSpec","definitions":{"AWSConnection":{"properties":{"connection":{"type":"string"},"accessKey":{"$ref":"#/definitions/EnvVar"},"secretKey":{"$ref":"#/definitions/EnvVar"},"sessionToken":{"$ref":"#/definitions/EnvVar"},"region":{"type":"string"},"endpoint":{"type":"string"},"skipTLSVerify":{"type":"boolean"},"objectPath":{"type":"string"},"usePathStyle":{"type":"boolean"}},"additionalProperties":false,"type":"object"},"Artifact":{"required":["path"],"properties":{"path":{"type":"string"}},"additionalProperties":false,"type":"object"},"AzureConnection":{"properties":{"connection":{"type":"string"},"clientID":{"$ref":"#/definitions/EnvVar"},"clientSecret":{"$ref":"#/definitions/EnvVar"},"tenantID":{"type":"string"}},"additionalProperties":false,"type":"object"},"AzureDevopsPipeline":{"required":["id"],"properties":{"id":{"type":"string"},"version":{"type":"string"}},"additionalProperties":false,"type":"object"},"AzureDevopsPipelineAction":{"required":["org","project","token","pipeline"],"properties":{"org":{"type":"string"},"project":{"type":"string"},"token":{"$ref":"#/definitions/EnvVar"},"pipeline":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/AzureDevopsPipeline"},"parameters":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/AzureDevopsPipelineParameters"}},"additionalProperties":false,"type":"object"},"AzureDevopsPipelineParameters":{"properties":{"resources":{"additionalProperties":true},"templateParameters":{"additionalProperties":true},"variables":{"additionalProperties":true},"stagesToSkip":{"items":{"type":"string"},"type":"array"}},"additionalProperties":false,"type":"object"},"ConfigMapKeySelector":{"required":["key"],"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object"},"EnvVar":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueFrom":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/EnvVarSource"}},"additionalProperties":false,"type":"object"},"EnvVarSource":{"properties":{"serviceAccount":{"type":"string"},"helmRef":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/HelmRefKeySelector"},"configMapKeyRef":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/ConfigMapKeySelector"},"secretKeyRef":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/SecretKeySelector"}},"additionalProperties":false,"type":"object"},"ExecAction":{"required":["script"],"properties":{"script":{"type":"string"},"connections":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/ExecConnections"},"artifacts":{"items":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/Artifact"},"type":"array"},"env":{"items":{"$ref":"#/definitions/EnvVar"},"type":"array"},"checkout":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/GitCheckout"}},"additionalProperties":false,"type":"object"},"ExecConnections":{"properties":{"aws":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/AWSConnection"},"gcp":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/GCPConnection"},"azure":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/AzureConnection"}},"additionalProperties":false,"type":"object"},"GCPConnection":{"properties":{"connection":{"type":"string"},"endpoint":{"type":"string"},"credentials":{"$ref":"#/definitions/EnvVar"}},"additionalProperties":false,"type":"object"},"GitCheckout":{"properties":{"url":{"type":"string"},"connection":{"type":"string"},"username":{"$ref":"#/definitions/EnvVar"},"password":{"$ref":"#/definitions/EnvVar"},"certificate":{"$ref":"#/definitions/EnvVar"},"destination":{"type":"string"}},"additionalProperties":false,"type":"object"},"GitOpsAction":{"required":["repo","commit"],"properties":{"repo":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/GitOpsActionRepo"},"commit":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/GitOpsActionCommit"},"pr":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/GitOpsActionPR"},"patches":{"items":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/GitOpsActionPatch"},"type":"array"},"files":{"items":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/GitOpsActionFile"},"type":"array"}},"additionalProperties":false,"type":"object"},"GitOpsActionCommit":{"required":["author","email","message"],"properties":{"author":{"type":"string"},"email":{"type":"string"},"message":{"type":"string"}},"additionalProperties":false,"type":"object"},"GitOpsActionFile":{"required":["path","content"],"properties":{"path":{"type":"string"},"content":{"type":"string"}},"additionalProperties":false,"type":"object"},"GitOpsActionPR":{"required":["title"],"properties":{"title":{"type":"string"},"tags":{"items":{"type":"string"},"type":"array"}},"additionalProperties":false,"type":"object"},"GitOpsActionPatch":{"required":["path"],"properties":{"path":{"type":"string"},"yq":{"type":"string"},"jq":{"type":"string"}},"additionalProperties":false,"type":"object"},"GitOpsActionRepo":{"required":["url"],"properties":{"url":{"type":"string"},"base":{"type":"string"},"branch":{"type":"string"},"connection":{"type":"string"},"type":{"type":"string"}},"additionalProperties":false,"type":"object"},"GithubAction":{"required":["repo","username","token"],"properties":{"repo":{"type":"string"},"username":{"type":"string"},"token":{"$ref":"#/definitions/EnvVar"},"workflows":{"items":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/GithubWorkflow"},"type":"array"}},"additionalProperties":false,"type":"object"},"GithubWorkflow":{"required":["id"],"properties":{"id":{"type":"string"},"ref":{"type":"string"},"input":{"type":"string"}},"additionalProperties":false,"type":"object"},"HTTPAction":{"properties":{"connection":{"type":"string"},"url":{"type":"string"},"username":{"$ref":"#/definitions/EnvVar"},"password":{"$ref":"#/definitions/EnvVar"},"method":{"type":"string"},"ntlm":{"type":"boolean"},"ntlmv2":{"type":"boolean"},"headers":{"items":{"$ref":"#/definitions/EnvVar"},"type":"array"},"body":{"type":"string"},"templateBody":{"type":"boolean"}},"additionalProperties":false,"type":"object"},"HelmRefKeySelector":{"required":["key"],"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object"},"NotificationAction":{"required":["title","message"],"properties":{"url":{"type":"string"},"connection":{"type":"string"},"title":{"type":"string"},"message":{"type":"string"},"properties":{"patternProperties":{".*":{"type":"string"}},"type":"object"}},"additionalProperties":false,"type":"object"},"Permission":{"properties":{"role":{"type":"string"},"team":{"type":"string"},"ref":{"type":"string"}},"additionalProperties":false,"type":"object"},"PlaybookAction":{"required":["name"],"properties":{"name":{"type":"string"},"delay":{"type":"string"},"timeout":{"type":"string"},"if":{"type":"string"},"runsOn":{"items":{"type":"string"},"type":"array"},"templatesOn":{"type":"string"},"exec":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/ExecAction"},"gitops":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/GitOpsAction"},"github":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/GithubAction"},"azureDevopsPipeline":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/AzureDevopsPipelineAction"},"http":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/HTTPAction"},"sql":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/SQLAction"},"pod":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/PodAction"},"notification":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/NotificationAction"}},"additionalProperties":false,"type":"object"},"PlaybookApproval":{"properties":{"type":{"type":"string"},"approvers":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/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":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/PlaybookEventWebhookAuthBasic"},"github":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/PlaybookEventWebhookAuthGithub"},"svix":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/PlaybookEventWebhookAuthSVIX"},"jwt":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/PlaybookEventWebhookAuthJWT"}},"additionalProperties":false,"type":"object"},"PlaybookEventWebhookAuthBasic":{"required":["username","password"],"properties":{"username":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/EnvVar"},"password":{"$ref":"#/definitions/EnvVar"}},"additionalProperties":false,"type":"object"},"PlaybookEventWebhookAuthGithub":{"required":["token"],"properties":{"token":{"$ref":"#/definitions/EnvVar"}},"additionalProperties":false,"type":"object"},"PlaybookEventWebhookAuthJWT":{"required":["jwksUri"],"properties":{"jwksUri":{"type":"string"}},"additionalProperties":false,"type":"object"},"PlaybookEventWebhookAuthSVIX":{"required":["secret"],"properties":{"secret":{"$ref":"#/definitions/EnvVar"},"verifyTimestamp":{"type":"string"}},"additionalProperties":false,"type":"object"},"PlaybookParameter":{"required":["name","label"],"properties":{"name":{"type":"string"},"default":{"type":"string"},"label":{"type":"string"},"required":{"type":"boolean"},"icon":{"type":"string"},"description":{"type":"string"},"type":{"type":"string"},"properties":{"additionalProperties":true}},"additionalProperties":false,"type":"object"},"PlaybookResourceFilter":{"properties":{"type":{"type":"string"},"tags":{"patternProperties":{".*":{"type":"string"}},"type":"object"}},"additionalProperties":false,"type":"object"},"PlaybookSpec":{"required":["actions"],"properties":{"description":{"type":"string"},"icon":{"type":"string"},"on":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/PlaybookTrigger"},"runsOn":{"items":{"type":"string"},"type":"array"},"env":{"items":{"$ref":"#/definitions/EnvVar"},"type":"array"},"templatesOn":{"type":"string"},"permissions":{"items":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/Permission"},"type":"array"},"configs":{"items":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/ResourceSelector"},"type":"array"},"checks":{"items":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/PlaybookResourceFilter"},"type":"array"},"components":{"items":{"$ref":"#/definitions/PlaybookResourceFilter"},"type":"array"},"parameters":{"items":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/PlaybookParameter"},"type":"array"},"actions":{"items":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/PlaybookAction"},"type":"array"},"filters":{"items":{"type":"string"},"type":"array"},"approval":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/PlaybookApproval"}},"additionalProperties":false,"type":"object"},"PlaybookTrigger":{"properties":{"canary":{"items":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/PlaybookTriggerEvent"},"type":"array"},"config":{"items":{"$ref":"#/definitions/PlaybookTriggerEvent"},"type":"array"},"component":{"items":{"$ref":"#/definitions/PlaybookTriggerEvent"},"type":"array"},"webhook":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/PlaybookTriggerWebhook"}},"additionalProperties":false,"type":"object"},"PlaybookTriggerEvent":{"required":["event"],"properties":{"event":{"type":"string"},"labels":{"patternProperties":{".*":{"type":"string"}},"type":"object"},"filter":{"type":"string"}},"additionalProperties":false,"type":"object"},"PlaybookTriggerWebhook":{"required":["path"],"properties":{"path":{"type":"string"},"authentication":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/PlaybookEventWebhookAuth"}},"additionalProperties":false,"type":"object"},"PodAction":{"required":["name","spec"],"properties":{"name":{"type":"string"},"maxLength":{"type":"integer"},"spec":{"additionalProperties":true},"artifacts":{"items":{"$ref":"#/definitions/Artifact"},"type":"array"}},"additionalProperties":false,"type":"object"},"ResourceSelector":{"properties":{"agent":{"type":"string"},"cache":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"types":{"items":{"type":"string"},"type":"array"},"statuses":{"items":{"type":"string"},"type":"array"},"labelSelector":{"type":"string"},"fieldSelector":{"type":"string"}},"additionalProperties":false,"type":"object"},"SQLAction":{"required":["query","driver"],"properties":{"connection":{"type":"string"},"url":{"type":"string"},"query":{"type":"string"},"driver":{"type":"string"}},"additionalProperties":false,"type":"object"},"SecretKeySelector":{"required":["key"],"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object"}}} \ No newline at end of file +{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/PlaybookSpec","definitions":{"AWSConnection":{"properties":{"connection":{"type":"string"},"accessKey":{"$ref":"#/definitions/EnvVar"},"secretKey":{"$ref":"#/definitions/EnvVar"},"sessionToken":{"$ref":"#/definitions/EnvVar"},"region":{"type":"string"},"endpoint":{"type":"string"},"skipTLSVerify":{"type":"boolean"},"objectPath":{"type":"string"},"usePathStyle":{"type":"boolean"}},"additionalProperties":false,"type":"object"},"Artifact":{"required":["path"],"properties":{"path":{"type":"string"}},"additionalProperties":false,"type":"object"},"AzureConnection":{"properties":{"connection":{"type":"string"},"clientID":{"$ref":"#/definitions/EnvVar"},"clientSecret":{"$ref":"#/definitions/EnvVar"},"tenantID":{"type":"string"}},"additionalProperties":false,"type":"object"},"AzureDevopsPipeline":{"required":["id"],"properties":{"id":{"type":"string"},"version":{"type":"string"}},"additionalProperties":false,"type":"object"},"AzureDevopsPipelineAction":{"required":["org","project","token","pipeline"],"properties":{"org":{"type":"string"},"project":{"type":"string"},"token":{"$ref":"#/definitions/EnvVar"},"pipeline":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/AzureDevopsPipeline"},"parameters":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/AzureDevopsPipelineParameters"}},"additionalProperties":false,"type":"object"},"AzureDevopsPipelineParameters":{"properties":{"resources":{"additionalProperties":true},"templateParameters":{"additionalProperties":true},"variables":{"additionalProperties":true},"stagesToSkip":{"items":{"type":"string"},"type":"array"}},"additionalProperties":false,"type":"object"},"ConfigMapKeySelector":{"required":["key"],"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object"},"EnvVar":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueFrom":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/EnvVarSource"}},"additionalProperties":false,"type":"object"},"EnvVarSource":{"properties":{"serviceAccount":{"type":"string"},"helmRef":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/HelmRefKeySelector"},"configMapKeyRef":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/ConfigMapKeySelector"},"secretKeyRef":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/SecretKeySelector"}},"additionalProperties":false,"type":"object"},"ExecAction":{"required":["script"],"properties":{"script":{"type":"string"},"connections":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/ExecConnections"},"artifacts":{"items":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/Artifact"},"type":"array"},"env":{"items":{"$ref":"#/definitions/EnvVar"},"type":"array"},"checkout":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/GitCheckout"}},"additionalProperties":false,"type":"object"},"ExecConnections":{"properties":{"aws":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/AWSConnection"},"gcp":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/GCPConnection"},"azure":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/AzureConnection"}},"additionalProperties":false,"type":"object"},"GCPConnection":{"properties":{"connection":{"type":"string"},"endpoint":{"type":"string"},"credentials":{"$ref":"#/definitions/EnvVar"}},"additionalProperties":false,"type":"object"},"GitCheckout":{"properties":{"url":{"type":"string"},"connection":{"type":"string"},"username":{"$ref":"#/definitions/EnvVar"},"password":{"$ref":"#/definitions/EnvVar"},"certificate":{"$ref":"#/definitions/EnvVar"},"destination":{"type":"string"}},"additionalProperties":false,"type":"object"},"GitOpsAction":{"required":["repo","commit"],"properties":{"repo":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/GitOpsActionRepo"},"commit":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/GitOpsActionCommit"},"pr":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/GitOpsActionPR"},"patches":{"items":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/GitOpsActionPatch"},"type":"array"},"files":{"items":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/GitOpsActionFile"},"type":"array"}},"additionalProperties":false,"type":"object"},"GitOpsActionCommit":{"required":["author","email","message"],"properties":{"author":{"type":"string"},"email":{"type":"string"},"message":{"type":"string"}},"additionalProperties":false,"type":"object"},"GitOpsActionFile":{"required":["path","content"],"properties":{"path":{"type":"string"},"content":{"type":"string"}},"additionalProperties":false,"type":"object"},"GitOpsActionPR":{"required":["title"],"properties":{"title":{"type":"string"},"tags":{"items":{"type":"string"},"type":"array"}},"additionalProperties":false,"type":"object"},"GitOpsActionPatch":{"required":["path"],"properties":{"path":{"type":"string"},"yq":{"type":"string"},"jq":{"type":"string"}},"additionalProperties":false,"type":"object"},"GitOpsActionRepo":{"required":["url"],"properties":{"url":{"type":"string"},"base":{"type":"string"},"branch":{"type":"string"},"connection":{"type":"string"},"type":{"type":"string"}},"additionalProperties":false,"type":"object"},"GithubAction":{"required":["repo","username","token"],"properties":{"repo":{"type":"string"},"username":{"type":"string"},"token":{"$ref":"#/definitions/EnvVar"},"workflows":{"items":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/GithubWorkflow"},"type":"array"}},"additionalProperties":false,"type":"object"},"GithubWorkflow":{"required":["id"],"properties":{"id":{"type":"string"},"ref":{"type":"string"},"input":{"type":"string"}},"additionalProperties":false,"type":"object"},"HTTPAction":{"properties":{"connection":{"type":"string"},"url":{"type":"string"},"username":{"$ref":"#/definitions/EnvVar"},"password":{"$ref":"#/definitions/EnvVar"},"method":{"type":"string"},"ntlm":{"type":"boolean"},"ntlmv2":{"type":"boolean"},"headers":{"items":{"$ref":"#/definitions/EnvVar"},"type":"array"},"body":{"type":"string"},"templateBody":{"type":"boolean"}},"additionalProperties":false,"type":"object"},"HelmRefKeySelector":{"required":["key"],"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object"},"NotificationAction":{"required":["title","message"],"properties":{"url":{"type":"string"},"connection":{"type":"string"},"title":{"type":"string"},"message":{"type":"string"},"properties":{"patternProperties":{".*":{"type":"string"}},"type":"object"}},"additionalProperties":false,"type":"object"},"Permission":{"properties":{"role":{"type":"string"},"team":{"type":"string"},"ref":{"type":"string"}},"additionalProperties":false,"type":"object"},"PlaybookAction":{"required":["name"],"properties":{"name":{"type":"string"},"delay":{"type":"string"},"timeout":{"type":"string"},"if":{"type":"string"},"runsOn":{"items":{"type":"string"},"type":"array"},"templatesOn":{"type":"string"},"exec":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/ExecAction"},"gitops":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/GitOpsAction"},"github":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/GithubAction"},"azureDevopsPipeline":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/AzureDevopsPipelineAction"},"http":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/HTTPAction"},"sql":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/SQLAction"},"pod":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/PodAction"},"notification":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/NotificationAction"}},"additionalProperties":false,"type":"object"},"PlaybookApproval":{"properties":{"type":{"type":"string"},"approvers":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/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":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/PlaybookEventWebhookAuthBasic"},"github":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/PlaybookEventWebhookAuthGithub"},"svix":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/PlaybookEventWebhookAuthSVIX"},"jwt":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/PlaybookEventWebhookAuthJWT"}},"additionalProperties":false,"type":"object"},"PlaybookEventWebhookAuthBasic":{"required":["username","password"],"properties":{"username":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/EnvVar"},"password":{"$ref":"#/definitions/EnvVar"}},"additionalProperties":false,"type":"object"},"PlaybookEventWebhookAuthGithub":{"required":["token"],"properties":{"token":{"$ref":"#/definitions/EnvVar"}},"additionalProperties":false,"type":"object"},"PlaybookEventWebhookAuthJWT":{"required":["jwksUri"],"properties":{"jwksUri":{"type":"string"}},"additionalProperties":false,"type":"object"},"PlaybookEventWebhookAuthSVIX":{"required":["secret"],"properties":{"secret":{"$ref":"#/definitions/EnvVar"},"verifyTimestamp":{"type":"string"}},"additionalProperties":false,"type":"object"},"PlaybookParameter":{"required":["name","label"],"properties":{"name":{"type":"string"},"default":{"type":"string"},"label":{"type":"string"},"required":{"type":"boolean"},"icon":{"type":"string"},"description":{"type":"string"},"type":{"type":"string"},"properties":{"additionalProperties":true}},"additionalProperties":false,"type":"object"},"PlaybookResourceFilter":{"properties":{"type":{"type":"string"},"tags":{"patternProperties":{".*":{"type":"string"}},"type":"object"}},"additionalProperties":false,"type":"object"},"PlaybookSpec":{"required":["actions"],"properties":{"title":{"type":"string"},"description":{"type":"string"},"category":{"type":"string"},"icon":{"type":"string"},"on":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/PlaybookTrigger"},"runsOn":{"items":{"type":"string"},"type":"array"},"env":{"items":{"$ref":"#/definitions/EnvVar"},"type":"array"},"templatesOn":{"type":"string"},"permissions":{"items":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/Permission"},"type":"array"},"configs":{"items":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/ResourceSelector"},"type":"array"},"checks":{"items":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/PlaybookResourceFilter"},"type":"array"},"components":{"items":{"$ref":"#/definitions/PlaybookResourceFilter"},"type":"array"},"parameters":{"items":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/PlaybookParameter"},"type":"array"},"actions":{"items":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/PlaybookAction"},"type":"array"},"filters":{"items":{"type":"string"},"type":"array"},"approval":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/PlaybookApproval"}},"additionalProperties":false,"type":"object"},"PlaybookTrigger":{"properties":{"canary":{"items":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/PlaybookTriggerEvent"},"type":"array"},"config":{"items":{"$ref":"#/definitions/PlaybookTriggerEvent"},"type":"array"},"component":{"items":{"$ref":"#/definitions/PlaybookTriggerEvent"},"type":"array"},"webhook":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/PlaybookTriggerWebhook"}},"additionalProperties":false,"type":"object"},"PlaybookTriggerEvent":{"required":["event"],"properties":{"event":{"type":"string"},"labels":{"patternProperties":{".*":{"type":"string"}},"type":"object"},"filter":{"type":"string"}},"additionalProperties":false,"type":"object"},"PlaybookTriggerWebhook":{"required":["path"],"properties":{"path":{"type":"string"},"authentication":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/PlaybookEventWebhookAuth"}},"additionalProperties":false,"type":"object"},"PodAction":{"required":["name","spec"],"properties":{"name":{"type":"string"},"maxLength":{"type":"integer"},"spec":{"additionalProperties":true},"artifacts":{"items":{"$ref":"#/definitions/Artifact"},"type":"array"}},"additionalProperties":false,"type":"object"},"ResourceSelector":{"properties":{"agent":{"type":"string"},"cache":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"types":{"items":{"type":"string"},"type":"array"},"statuses":{"items":{"type":"string"},"type":"array"},"labelSelector":{"type":"string"},"fieldSelector":{"type":"string"}},"additionalProperties":false,"type":"object"},"SQLAction":{"required":["query","driver"],"properties":{"connection":{"type":"string"},"url":{"type":"string"},"query":{"type":"string"},"driver":{"type":"string"}},"additionalProperties":false,"type":"object"},"SecretKeySelector":{"required":["key"],"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object"}}} \ No newline at end of file diff --git a/schema/openapi/playbook.schema.json b/schema/openapi/playbook.schema.json index f8d8695f..46450c60 100644 --- a/schema/openapi/playbook.schema.json +++ b/schema/openapi/playbook.schema.json @@ -1 +1 @@ -{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/Playbook","definitions":{"AWSConnection":{"properties":{"connection":{"type":"string"},"accessKey":{"$ref":"#/definitions/EnvVar"},"secretKey":{"$ref":"#/definitions/EnvVar"},"sessionToken":{"$ref":"#/definitions/EnvVar"},"region":{"type":"string"},"endpoint":{"type":"string"},"skipTLSVerify":{"type":"boolean"},"objectPath":{"type":"string"},"usePathStyle":{"type":"boolean"}},"additionalProperties":false,"type":"object"},"Artifact":{"required":["path"],"properties":{"path":{"type":"string"}},"additionalProperties":false,"type":"object"},"AzureConnection":{"properties":{"connection":{"type":"string"},"clientID":{"$ref":"#/definitions/EnvVar"},"clientSecret":{"$ref":"#/definitions/EnvVar"},"tenantID":{"type":"string"}},"additionalProperties":false,"type":"object"},"AzureDevopsPipeline":{"required":["id"],"properties":{"id":{"type":"string"},"version":{"type":"string"}},"additionalProperties":false,"type":"object"},"AzureDevopsPipelineAction":{"required":["org","project","token","pipeline"],"properties":{"org":{"type":"string"},"project":{"type":"string"},"token":{"$ref":"#/definitions/EnvVar"},"pipeline":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/AzureDevopsPipeline"},"parameters":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/AzureDevopsPipelineParameters"}},"additionalProperties":false,"type":"object"},"AzureDevopsPipelineParameters":{"properties":{"resources":{"additionalProperties":true},"templateParameters":{"additionalProperties":true},"variables":{"additionalProperties":true},"stagesToSkip":{"items":{"type":"string"},"type":"array"}},"additionalProperties":false,"type":"object"},"ConfigMapKeySelector":{"required":["key"],"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object"},"EnvVar":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueFrom":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/EnvVarSource"}},"additionalProperties":false,"type":"object"},"EnvVarSource":{"properties":{"serviceAccount":{"type":"string"},"helmRef":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/HelmRefKeySelector"},"configMapKeyRef":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/ConfigMapKeySelector"},"secretKeyRef":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/SecretKeySelector"}},"additionalProperties":false,"type":"object"},"ExecAction":{"required":["script"],"properties":{"script":{"type":"string"},"connections":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/ExecConnections"},"artifacts":{"items":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/Artifact"},"type":"array"},"env":{"items":{"$ref":"#/definitions/EnvVar"},"type":"array"},"checkout":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/GitCheckout"}},"additionalProperties":false,"type":"object"},"ExecConnections":{"properties":{"aws":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/AWSConnection"},"gcp":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/GCPConnection"},"azure":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/AzureConnection"}},"additionalProperties":false,"type":"object"},"FieldsV1":{"properties":{},"additionalProperties":false,"type":"object"},"GCPConnection":{"properties":{"connection":{"type":"string"},"endpoint":{"type":"string"},"credentials":{"$ref":"#/definitions/EnvVar"}},"additionalProperties":false,"type":"object"},"GitCheckout":{"properties":{"url":{"type":"string"},"connection":{"type":"string"},"username":{"$ref":"#/definitions/EnvVar"},"password":{"$ref":"#/definitions/EnvVar"},"certificate":{"$ref":"#/definitions/EnvVar"},"destination":{"type":"string"}},"additionalProperties":false,"type":"object"},"GitOpsAction":{"required":["repo","commit"],"properties":{"repo":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/GitOpsActionRepo"},"commit":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/GitOpsActionCommit"},"pr":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/GitOpsActionPR"},"patches":{"items":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/GitOpsActionPatch"},"type":"array"},"files":{"items":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/GitOpsActionFile"},"type":"array"}},"additionalProperties":false,"type":"object"},"GitOpsActionCommit":{"required":["author","email","message"],"properties":{"author":{"type":"string"},"email":{"type":"string"},"message":{"type":"string"}},"additionalProperties":false,"type":"object"},"GitOpsActionFile":{"required":["path","content"],"properties":{"path":{"type":"string"},"content":{"type":"string"}},"additionalProperties":false,"type":"object"},"GitOpsActionPR":{"required":["title"],"properties":{"title":{"type":"string"},"tags":{"items":{"type":"string"},"type":"array"}},"additionalProperties":false,"type":"object"},"GitOpsActionPatch":{"required":["path"],"properties":{"path":{"type":"string"},"yq":{"type":"string"},"jq":{"type":"string"}},"additionalProperties":false,"type":"object"},"GitOpsActionRepo":{"required":["url"],"properties":{"url":{"type":"string"},"base":{"type":"string"},"branch":{"type":"string"},"connection":{"type":"string"},"type":{"type":"string"}},"additionalProperties":false,"type":"object"},"GithubAction":{"required":["repo","username","token"],"properties":{"repo":{"type":"string"},"username":{"type":"string"},"token":{"$ref":"#/definitions/EnvVar"},"workflows":{"items":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/GithubWorkflow"},"type":"array"}},"additionalProperties":false,"type":"object"},"GithubWorkflow":{"required":["id"],"properties":{"id":{"type":"string"},"ref":{"type":"string"},"input":{"type":"string"}},"additionalProperties":false,"type":"object"},"HTTPAction":{"properties":{"connection":{"type":"string"},"url":{"type":"string"},"username":{"$ref":"#/definitions/EnvVar"},"password":{"$ref":"#/definitions/EnvVar"},"method":{"type":"string"},"ntlm":{"type":"boolean"},"ntlmv2":{"type":"boolean"},"headers":{"items":{"$ref":"#/definitions/EnvVar"},"type":"array"},"body":{"type":"string"},"templateBody":{"type":"boolean"}},"additionalProperties":false,"type":"object"},"HelmRefKeySelector":{"required":["key"],"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object"},"ManagedFieldsEntry":{"properties":{"manager":{"type":"string"},"operation":{"type":"string"},"apiVersion":{"type":"string"},"time":{"$ref":"#/definitions/Time"},"fieldsType":{"type":"string"},"fieldsV1":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/FieldsV1"},"subresource":{"type":"string"}},"additionalProperties":false,"type":"object"},"NotificationAction":{"required":["title","message"],"properties":{"url":{"type":"string"},"connection":{"type":"string"},"title":{"type":"string"},"message":{"type":"string"},"properties":{"patternProperties":{".*":{"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":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/Time"},"deletionTimestamp":{"$ref":"#/definitions/Time"},"deletionGracePeriodSeconds":{"type":"integer"},"labels":{"patternProperties":{".*":{"type":"string"}},"type":"object"},"annotations":{"patternProperties":{".*":{"type":"string"}},"type":"object"},"ownerReferences":{"items":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/OwnerReference"},"type":"array"},"finalizers":{"items":{"type":"string"},"type":"array"},"managedFields":{"items":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/ManagedFieldsEntry"},"type":"array"}},"additionalProperties":false,"type":"object"},"OwnerReference":{"required":["apiVersion","kind","name","uid"],"properties":{"apiVersion":{"type":"string"},"kind":{"type":"string"},"name":{"type":"string"},"uid":{"type":"string"},"controller":{"type":"boolean"},"blockOwnerDeletion":{"type":"boolean"}},"additionalProperties":false,"type":"object"},"Permission":{"properties":{"role":{"type":"string"},"team":{"type":"string"},"ref":{"type":"string"}},"additionalProperties":false,"type":"object"},"Playbook":{"properties":{"kind":{"type":"string"},"apiVersion":{"type":"string"},"metadata":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/ObjectMeta"},"spec":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/PlaybookSpec"},"status":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/PlaybookStatus"}},"additionalProperties":false,"type":"object"},"PlaybookAction":{"required":["name"],"properties":{"name":{"type":"string"},"delay":{"type":"string"},"timeout":{"type":"string"},"if":{"type":"string"},"runsOn":{"items":{"type":"string"},"type":"array"},"templatesOn":{"type":"string"},"exec":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/ExecAction"},"gitops":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/GitOpsAction"},"github":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/GithubAction"},"azureDevopsPipeline":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/AzureDevopsPipelineAction"},"http":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/HTTPAction"},"sql":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/SQLAction"},"pod":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/PodAction"},"notification":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/NotificationAction"}},"additionalProperties":false,"type":"object"},"PlaybookApproval":{"properties":{"type":{"type":"string"},"approvers":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/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":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/PlaybookEventWebhookAuthBasic"},"github":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/PlaybookEventWebhookAuthGithub"},"svix":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/PlaybookEventWebhookAuthSVIX"},"jwt":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/PlaybookEventWebhookAuthJWT"}},"additionalProperties":false,"type":"object"},"PlaybookEventWebhookAuthBasic":{"required":["username","password"],"properties":{"username":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/EnvVar"},"password":{"$ref":"#/definitions/EnvVar"}},"additionalProperties":false,"type":"object"},"PlaybookEventWebhookAuthGithub":{"required":["token"],"properties":{"token":{"$ref":"#/definitions/EnvVar"}},"additionalProperties":false,"type":"object"},"PlaybookEventWebhookAuthJWT":{"required":["jwksUri"],"properties":{"jwksUri":{"type":"string"}},"additionalProperties":false,"type":"object"},"PlaybookEventWebhookAuthSVIX":{"required":["secret"],"properties":{"secret":{"$ref":"#/definitions/EnvVar"},"verifyTimestamp":{"type":"string"}},"additionalProperties":false,"type":"object"},"PlaybookParameter":{"required":["name","label"],"properties":{"name":{"type":"string"},"default":{"type":"string"},"label":{"type":"string"},"required":{"type":"boolean"},"icon":{"type":"string"},"description":{"type":"string"},"type":{"type":"string"},"properties":{"additionalProperties":true}},"additionalProperties":false,"type":"object"},"PlaybookResourceFilter":{"properties":{"type":{"type":"string"},"tags":{"patternProperties":{".*":{"type":"string"}},"type":"object"}},"additionalProperties":false,"type":"object"},"PlaybookSpec":{"required":["actions"],"properties":{"description":{"type":"string"},"icon":{"type":"string"},"on":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/PlaybookTrigger"},"runsOn":{"items":{"type":"string"},"type":"array"},"env":{"items":{"$ref":"#/definitions/EnvVar"},"type":"array"},"templatesOn":{"type":"string"},"permissions":{"items":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/Permission"},"type":"array"},"configs":{"items":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/ResourceSelector"},"type":"array"},"checks":{"items":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/PlaybookResourceFilter"},"type":"array"},"components":{"items":{"$ref":"#/definitions/PlaybookResourceFilter"},"type":"array"},"parameters":{"items":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/PlaybookParameter"},"type":"array"},"actions":{"items":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/PlaybookAction"},"type":"array"},"filters":{"items":{"type":"string"},"type":"array"},"approval":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/PlaybookApproval"}},"additionalProperties":false,"type":"object"},"PlaybookStatus":{"properties":{},"additionalProperties":false,"type":"object"},"PlaybookTrigger":{"properties":{"canary":{"items":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/PlaybookTriggerEvent"},"type":"array"},"config":{"items":{"$ref":"#/definitions/PlaybookTriggerEvent"},"type":"array"},"component":{"items":{"$ref":"#/definitions/PlaybookTriggerEvent"},"type":"array"},"webhook":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/PlaybookTriggerWebhook"}},"additionalProperties":false,"type":"object"},"PlaybookTriggerEvent":{"required":["event"],"properties":{"event":{"type":"string"},"labels":{"patternProperties":{".*":{"type":"string"}},"type":"object"},"filter":{"type":"string"}},"additionalProperties":false,"type":"object"},"PlaybookTriggerWebhook":{"required":["path"],"properties":{"path":{"type":"string"},"authentication":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/PlaybookEventWebhookAuth"}},"additionalProperties":false,"type":"object"},"PodAction":{"required":["name","spec"],"properties":{"name":{"type":"string"},"maxLength":{"type":"integer"},"spec":{"additionalProperties":true},"artifacts":{"items":{"$ref":"#/definitions/Artifact"},"type":"array"}},"additionalProperties":false,"type":"object"},"ResourceSelector":{"properties":{"agent":{"type":"string"},"cache":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"types":{"items":{"type":"string"},"type":"array"},"statuses":{"items":{"type":"string"},"type":"array"},"labelSelector":{"type":"string"},"fieldSelector":{"type":"string"}},"additionalProperties":false,"type":"object"},"SQLAction":{"required":["query","driver"],"properties":{"connection":{"type":"string"},"url":{"type":"string"},"query":{"type":"string"},"driver":{"type":"string"}},"additionalProperties":false,"type":"object"},"SecretKeySelector":{"required":["key"],"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object"},"Time":{"properties":{},"additionalProperties":false,"type":"object"}}} \ No newline at end of file +{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/Playbook","definitions":{"AWSConnection":{"properties":{"connection":{"type":"string"},"accessKey":{"$ref":"#/definitions/EnvVar"},"secretKey":{"$ref":"#/definitions/EnvVar"},"sessionToken":{"$ref":"#/definitions/EnvVar"},"region":{"type":"string"},"endpoint":{"type":"string"},"skipTLSVerify":{"type":"boolean"},"objectPath":{"type":"string"},"usePathStyle":{"type":"boolean"}},"additionalProperties":false,"type":"object"},"Artifact":{"required":["path"],"properties":{"path":{"type":"string"}},"additionalProperties":false,"type":"object"},"AzureConnection":{"properties":{"connection":{"type":"string"},"clientID":{"$ref":"#/definitions/EnvVar"},"clientSecret":{"$ref":"#/definitions/EnvVar"},"tenantID":{"type":"string"}},"additionalProperties":false,"type":"object"},"AzureDevopsPipeline":{"required":["id"],"properties":{"id":{"type":"string"},"version":{"type":"string"}},"additionalProperties":false,"type":"object"},"AzureDevopsPipelineAction":{"required":["org","project","token","pipeline"],"properties":{"org":{"type":"string"},"project":{"type":"string"},"token":{"$ref":"#/definitions/EnvVar"},"pipeline":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/AzureDevopsPipeline"},"parameters":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/AzureDevopsPipelineParameters"}},"additionalProperties":false,"type":"object"},"AzureDevopsPipelineParameters":{"properties":{"resources":{"additionalProperties":true},"templateParameters":{"additionalProperties":true},"variables":{"additionalProperties":true},"stagesToSkip":{"items":{"type":"string"},"type":"array"}},"additionalProperties":false,"type":"object"},"ConfigMapKeySelector":{"required":["key"],"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object"},"EnvVar":{"properties":{"name":{"type":"string"},"value":{"type":"string"},"valueFrom":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/EnvVarSource"}},"additionalProperties":false,"type":"object"},"EnvVarSource":{"properties":{"serviceAccount":{"type":"string"},"helmRef":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/HelmRefKeySelector"},"configMapKeyRef":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/ConfigMapKeySelector"},"secretKeyRef":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/SecretKeySelector"}},"additionalProperties":false,"type":"object"},"ExecAction":{"required":["script"],"properties":{"script":{"type":"string"},"connections":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/ExecConnections"},"artifacts":{"items":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/Artifact"},"type":"array"},"env":{"items":{"$ref":"#/definitions/EnvVar"},"type":"array"},"checkout":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/GitCheckout"}},"additionalProperties":false,"type":"object"},"ExecConnections":{"properties":{"aws":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/AWSConnection"},"gcp":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/GCPConnection"},"azure":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/AzureConnection"}},"additionalProperties":false,"type":"object"},"FieldsV1":{"properties":{},"additionalProperties":false,"type":"object"},"GCPConnection":{"properties":{"connection":{"type":"string"},"endpoint":{"type":"string"},"credentials":{"$ref":"#/definitions/EnvVar"}},"additionalProperties":false,"type":"object"},"GitCheckout":{"properties":{"url":{"type":"string"},"connection":{"type":"string"},"username":{"$ref":"#/definitions/EnvVar"},"password":{"$ref":"#/definitions/EnvVar"},"certificate":{"$ref":"#/definitions/EnvVar"},"destination":{"type":"string"}},"additionalProperties":false,"type":"object"},"GitOpsAction":{"required":["repo","commit"],"properties":{"repo":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/GitOpsActionRepo"},"commit":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/GitOpsActionCommit"},"pr":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/GitOpsActionPR"},"patches":{"items":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/GitOpsActionPatch"},"type":"array"},"files":{"items":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/GitOpsActionFile"},"type":"array"}},"additionalProperties":false,"type":"object"},"GitOpsActionCommit":{"required":["author","email","message"],"properties":{"author":{"type":"string"},"email":{"type":"string"},"message":{"type":"string"}},"additionalProperties":false,"type":"object"},"GitOpsActionFile":{"required":["path","content"],"properties":{"path":{"type":"string"},"content":{"type":"string"}},"additionalProperties":false,"type":"object"},"GitOpsActionPR":{"required":["title"],"properties":{"title":{"type":"string"},"tags":{"items":{"type":"string"},"type":"array"}},"additionalProperties":false,"type":"object"},"GitOpsActionPatch":{"required":["path"],"properties":{"path":{"type":"string"},"yq":{"type":"string"},"jq":{"type":"string"}},"additionalProperties":false,"type":"object"},"GitOpsActionRepo":{"required":["url"],"properties":{"url":{"type":"string"},"base":{"type":"string"},"branch":{"type":"string"},"connection":{"type":"string"},"type":{"type":"string"}},"additionalProperties":false,"type":"object"},"GithubAction":{"required":["repo","username","token"],"properties":{"repo":{"type":"string"},"username":{"type":"string"},"token":{"$ref":"#/definitions/EnvVar"},"workflows":{"items":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/GithubWorkflow"},"type":"array"}},"additionalProperties":false,"type":"object"},"GithubWorkflow":{"required":["id"],"properties":{"id":{"type":"string"},"ref":{"type":"string"},"input":{"type":"string"}},"additionalProperties":false,"type":"object"},"HTTPAction":{"properties":{"connection":{"type":"string"},"url":{"type":"string"},"username":{"$ref":"#/definitions/EnvVar"},"password":{"$ref":"#/definitions/EnvVar"},"method":{"type":"string"},"ntlm":{"type":"boolean"},"ntlmv2":{"type":"boolean"},"headers":{"items":{"$ref":"#/definitions/EnvVar"},"type":"array"},"body":{"type":"string"},"templateBody":{"type":"boolean"}},"additionalProperties":false,"type":"object"},"HelmRefKeySelector":{"required":["key"],"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object"},"ManagedFieldsEntry":{"properties":{"manager":{"type":"string"},"operation":{"type":"string"},"apiVersion":{"type":"string"},"time":{"$ref":"#/definitions/Time"},"fieldsType":{"type":"string"},"fieldsV1":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/FieldsV1"},"subresource":{"type":"string"}},"additionalProperties":false,"type":"object"},"NotificationAction":{"required":["title","message"],"properties":{"url":{"type":"string"},"connection":{"type":"string"},"title":{"type":"string"},"message":{"type":"string"},"properties":{"patternProperties":{".*":{"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":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/Time"},"deletionTimestamp":{"$ref":"#/definitions/Time"},"deletionGracePeriodSeconds":{"type":"integer"},"labels":{"patternProperties":{".*":{"type":"string"}},"type":"object"},"annotations":{"patternProperties":{".*":{"type":"string"}},"type":"object"},"ownerReferences":{"items":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/OwnerReference"},"type":"array"},"finalizers":{"items":{"type":"string"},"type":"array"},"managedFields":{"items":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/ManagedFieldsEntry"},"type":"array"}},"additionalProperties":false,"type":"object"},"OwnerReference":{"required":["apiVersion","kind","name","uid"],"properties":{"apiVersion":{"type":"string"},"kind":{"type":"string"},"name":{"type":"string"},"uid":{"type":"string"},"controller":{"type":"boolean"},"blockOwnerDeletion":{"type":"boolean"}},"additionalProperties":false,"type":"object"},"Permission":{"properties":{"role":{"type":"string"},"team":{"type":"string"},"ref":{"type":"string"}},"additionalProperties":false,"type":"object"},"Playbook":{"properties":{"kind":{"type":"string"},"apiVersion":{"type":"string"},"metadata":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/ObjectMeta"},"spec":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/PlaybookSpec"},"status":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/PlaybookStatus"}},"additionalProperties":false,"type":"object"},"PlaybookAction":{"required":["name"],"properties":{"name":{"type":"string"},"delay":{"type":"string"},"timeout":{"type":"string"},"if":{"type":"string"},"runsOn":{"items":{"type":"string"},"type":"array"},"templatesOn":{"type":"string"},"exec":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/ExecAction"},"gitops":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/GitOpsAction"},"github":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/GithubAction"},"azureDevopsPipeline":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/AzureDevopsPipelineAction"},"http":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/HTTPAction"},"sql":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/SQLAction"},"pod":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/PodAction"},"notification":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/NotificationAction"}},"additionalProperties":false,"type":"object"},"PlaybookApproval":{"properties":{"type":{"type":"string"},"approvers":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/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":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/PlaybookEventWebhookAuthBasic"},"github":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/PlaybookEventWebhookAuthGithub"},"svix":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/PlaybookEventWebhookAuthSVIX"},"jwt":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/PlaybookEventWebhookAuthJWT"}},"additionalProperties":false,"type":"object"},"PlaybookEventWebhookAuthBasic":{"required":["username","password"],"properties":{"username":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/EnvVar"},"password":{"$ref":"#/definitions/EnvVar"}},"additionalProperties":false,"type":"object"},"PlaybookEventWebhookAuthGithub":{"required":["token"],"properties":{"token":{"$ref":"#/definitions/EnvVar"}},"additionalProperties":false,"type":"object"},"PlaybookEventWebhookAuthJWT":{"required":["jwksUri"],"properties":{"jwksUri":{"type":"string"}},"additionalProperties":false,"type":"object"},"PlaybookEventWebhookAuthSVIX":{"required":["secret"],"properties":{"secret":{"$ref":"#/definitions/EnvVar"},"verifyTimestamp":{"type":"string"}},"additionalProperties":false,"type":"object"},"PlaybookParameter":{"required":["name","label"],"properties":{"name":{"type":"string"},"default":{"type":"string"},"label":{"type":"string"},"required":{"type":"boolean"},"icon":{"type":"string"},"description":{"type":"string"},"type":{"type":"string"},"properties":{"additionalProperties":true}},"additionalProperties":false,"type":"object"},"PlaybookResourceFilter":{"properties":{"type":{"type":"string"},"tags":{"patternProperties":{".*":{"type":"string"}},"type":"object"}},"additionalProperties":false,"type":"object"},"PlaybookSpec":{"required":["actions"],"properties":{"title":{"type":"string"},"description":{"type":"string"},"category":{"type":"string"},"icon":{"type":"string"},"on":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/PlaybookTrigger"},"runsOn":{"items":{"type":"string"},"type":"array"},"env":{"items":{"$ref":"#/definitions/EnvVar"},"type":"array"},"templatesOn":{"type":"string"},"permissions":{"items":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/Permission"},"type":"array"},"configs":{"items":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/ResourceSelector"},"type":"array"},"checks":{"items":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/PlaybookResourceFilter"},"type":"array"},"components":{"items":{"$ref":"#/definitions/PlaybookResourceFilter"},"type":"array"},"parameters":{"items":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/PlaybookParameter"},"type":"array"},"actions":{"items":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/PlaybookAction"},"type":"array"},"filters":{"items":{"type":"string"},"type":"array"},"approval":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/PlaybookApproval"}},"additionalProperties":false,"type":"object"},"PlaybookStatus":{"properties":{},"additionalProperties":false,"type":"object"},"PlaybookTrigger":{"properties":{"canary":{"items":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/PlaybookTriggerEvent"},"type":"array"},"config":{"items":{"$ref":"#/definitions/PlaybookTriggerEvent"},"type":"array"},"component":{"items":{"$ref":"#/definitions/PlaybookTriggerEvent"},"type":"array"},"webhook":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/PlaybookTriggerWebhook"}},"additionalProperties":false,"type":"object"},"PlaybookTriggerEvent":{"required":["event"],"properties":{"event":{"type":"string"},"labels":{"patternProperties":{".*":{"type":"string"}},"type":"object"},"filter":{"type":"string"}},"additionalProperties":false,"type":"object"},"PlaybookTriggerWebhook":{"required":["path"],"properties":{"path":{"type":"string"},"authentication":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/PlaybookEventWebhookAuth"}},"additionalProperties":false,"type":"object"},"PodAction":{"required":["name","spec"],"properties":{"name":{"type":"string"},"maxLength":{"type":"integer"},"spec":{"additionalProperties":true},"artifacts":{"items":{"$ref":"#/definitions/Artifact"},"type":"array"}},"additionalProperties":false,"type":"object"},"ResourceSelector":{"properties":{"agent":{"type":"string"},"cache":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"types":{"items":{"type":"string"},"type":"array"},"statuses":{"items":{"type":"string"},"type":"array"},"labelSelector":{"type":"string"},"fieldSelector":{"type":"string"}},"additionalProperties":false,"type":"object"},"SQLAction":{"required":["query","driver"],"properties":{"connection":{"type":"string"},"url":{"type":"string"},"query":{"type":"string"},"driver":{"type":"string"}},"additionalProperties":false,"type":"object"},"SecretKeySelector":{"required":["key"],"properties":{"name":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false,"type":"object"},"Time":{"properties":{},"additionalProperties":false,"type":"object"}}} \ No newline at end of file diff --git a/schema/openapi/topology.schema.json b/schema/openapi/topology.schema.json index 8ec69f4c..fb16df2d 100644 --- a/schema/openapi/topology.schema.json +++ b/schema/openapi/topology.schema.json @@ -600,6 +600,12 @@ }, "type": "array" }, + "catalog": { + "items": { + "$ref": "#/$defs/CatalogCheck" + }, + "type": "array" + }, "opensearch": { "items": { "$ref": "#/$defs/OpenSearchCheck" @@ -655,6 +661,52 @@ "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": { @@ -2389,6 +2441,9 @@ "resource": { "$ref": "#/$defs/ResourceSelector" }, + "kubeconfig": { + "$ref": "#/$defs/EnvVar" + }, "ignore": { "items": { "type": "string" diff --git a/schema/openapi/topology.spec.schema.json b/schema/openapi/topology.spec.schema.json index 75bae914..76372520 100644 --- a/schema/openapi/topology.spec.schema.json +++ b/schema/openapi/topology.spec.schema.json @@ -600,6 +600,12 @@ }, "type": "array" }, + "catalog": { + "items": { + "$ref": "#/$defs/CatalogCheck" + }, + "type": "array" + }, "opensearch": { "items": { "$ref": "#/$defs/OpenSearchCheck" @@ -655,6 +661,52 @@ "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": { @@ -2389,6 +2441,9 @@ "resource": { "$ref": "#/$defs/ResourceSelector" }, + "kubeconfig": { + "$ref": "#/$defs/EnvVar" + }, "ignore": { "items": { "type": "string"