{
    "$schema": "http://json-schema.org/schema#",
    "type": "object",
    "properties": {
        "falcon": {
            "type": "object",
            "required": [
                "cid"
            ],
            "properties": {
                "cid": {
                    "type": "string",
                    "pattern": "^[0-9a-fA-F]{32}-[0-9a-fA-F]{2}$",
                    "example": [
                        "1234567890ABCDEF1234567890ABCDEF-12"
                    ]
                },
                "trace": {
                    "type": [
                        "null",
                        "string"
                    ],
                    "pattern": "^(|none|err|warn|info|debug)$"
                },
                "backend": {
                    "type": "null"
                }
            }
        },
        "node": {
            "type": "object",
            "required": [
                "enabled"
            ],
            "properties": {
                "backend": {
                    "type": [
                        "null",
                        "string"
                    ],
                    "pattern": "^(kernel|bpf)$"
                },
                "daemonset": {
                    "type": "object",
                    "required": [
                        "updateStrategy"
                    ],
                    "properties": {
                        "annotations": {
                            "type": "object"
                        },
                        "podAnnotationKey": {
                            "type": "string"
                        },
                        "labels": {
                            "type": "object"
                        },
                        "tolerations": {
                            "type": "array"
                        },
                        "nodeAffinity": {
                            "type": "object"
                        },
                        "priorityClassName": {
                            "type": "string"
                        },
                        "updateStrategy": {
                            "type": "string",
                            "default": "RollingUpdate",
                            "pattern": "^(RollingUpdate|OnDelete)$"
                        },
                        "maxUnavailable": {
                            "oneOf": [
                                {
                                    "type": "string",
                                    "default": "10%",
                                    "pattern": "^[0-9]+%$"
                                },
                                {
                                    "type": "integer",
                                    "default": "1",
                                    "pattern": "^[0-9]+$"
                                }
                            ]
                        },
                        "serviceAccountName": {
                            "type": "object",
                            "properties": {
                                "name": {
                                    "type": "string",
                                    "default": "crowdstrike-falcon-sa"
                                },
                                "annotations": {
                                    "type": "object",
                                    "default": {}
                                }
                            }
                        }
                    }
                },
                "enabled": {
                    "type": "boolean",
                    "default": "true"
                },
                "image": {
                    "type": "object",
                    "required": [
                        "repository",
                        "pullPolicy",
                        "tag"
                    ],
                    "properties": {
                        "registryConfigJSON": {
                            "type": [
                                "null",
                                "string"
                            ]
                        },
                        "pullPolicy": {
                            "type": "string",
                            "default": "Always",
                            "pattern": "^(Always|Never|IfNotPresent)$"
                        },
                        "pullSecrets": {
                            "type": [
                                "null",
                                "string"
                            ]
                        },
                        "repository": {
                            "type": "string"
                        },
                        "tag": {
                            "type": "string",
                            "default": "latest"
                        },
                        "digest": {
                            "type": [
                                "null",
                                "string"
                            ],
                            "pattern": "^sha256:[0-9a-f]{64}$"
                        }
                    }
                },
                "podAnnotations": {
                    "type": "object"
                },
                "terminationGracePeriod": {
                    "type": "integer",
                    "default": "30",
                    "pattern": "^[0-9]+$"
                }
            }
        },
        "container": {
            "type": "object",
            "required": [
                "enabled"
            ],
            "properties": {
                "tolerations": {
                    "type": "array"
                },
                "annotations": {
                    "type": "object"
                },
                "podAnnotations": {
                    "type": "object"
                },
                "labels": {
                    "type": "object"
                },
                "azure": {
                    "type": "object",
                    "required": [
                        "enabled",
                        "azureConfig"
                    ],
                    "properties": {
                        "enabled": {
                            "type": "boolean",
                            "default": "false"
                        },
                        "azureConfig": {
                            "type": "string",
                            "default": "/etc/kubernetes/azure.json"
                        }
                    }
                },
                "gcp": {
                    "type": "object",
                    "required": [
                        "enabled"
                    ],
                    "properties": {
                        "enabled": {
                            "type": "boolean",
                            "default": "false"
                        }
                    }
                },
                "networkPolicy": {
                    "type": "object",
                    "required": [
                        "enabled"
                    ],
                    "properties": {
                        "enabled": {
                            "type": "boolean",
                            "default": "false"
                        }
                    }
                },
                "autoCertificateUpdate": {
                    "type": "boolean",
                    "default": "true"
                },
                "registryCertSecret": {
                    "type": [
                        "null",
                        "string"
                    ]
                },
                "namespaceLabelKey": {
                    "type": "string"
                },
                "autoDeploymentUpdate": {
                    "type": "boolean",
                    "default": "true"
                },
                "certExpiration": {
                    "type": "integer",
                    "default": "3650",
                    "minimum": 0
                },
                "injectorPort": {
                    "type": "integer",
                    "default": "4433",
                    "minimum": 1024,
                    "maximum": 32767
                },
                "disableNSInjection": {
                    "type": "boolean",
                    "default": "false"
                },
                "disablePodInjection": {
                    "type": "boolean",
                    "default": "false"
                },
                "enabled": {
                    "type": "boolean",
                    "default": "true"
                },
                "image": {
                    "type": "object",
                    "required": [
                        "repository",
                        "pullPolicy",
                        "tag"
                    ],
                    "properties": {
                        "pullPolicy": {
                            "type": "string",
                            "default": "Always",
                            "pattern": "^(Always|Never|IfNotPresent)$"
                        },
                        "pullSecrets": {
                            "type": "object",
                            "properties": {
                                "enable": {
                                    "type": "boolean",
                                    "default": "false"
                                },
                                "name": {
                                    "type": [
                                        "null",
                                        "string"
                                    ]
                                },
                                "allNamespaces": {
                                    "type": "boolean",
                                    "default": "false"
                                },
                                "namespaces": {
                                    "type": [
                                        "null",
                                        "string"
                                    ]
                                },
                                "registryConfigJSON": {
                                    "type": [
                                        "null",
                                        "string"
                                    ]
                                }
                            }
                        },
                        "repository": {
                            "type": "string"
                        },
                        "tag": {
                            "type": "string",
                            "default": "latest"
                        },
                        "digest": {
                            "type": [
                                "null",
                                "string"
                            ],
                            "pattern": "^sha256:[0-9a-f]{64}$"
                        }
                    }
                },
                "replicas": {
                    "type": "integer",
                    "default": 2,
                    "minimum": 1
                },
                "topologySpreadConstraints": {
                    "type": "array"
                },
                "resources": {
                    "type": "object",
                    "properties": {
                        "requests": {
                            "type": "object",
                            "properties": {
                                "cpu": {
                                    "type": "string"
                                },
                                "memory": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                }
            }
        },
        "serviceAccount": {
            "type": "object",
            "properties": {
                "name": {
                    "type": "string",
                    "default": "crowdstrike-falcon-sa"
                },
                "annotations": {
                    "type": "object",
                    "default": {},
                    "examples": [
                        {
                            "iam.gke.io/gcp-service-account": "my-service-account@my-project.iam.gserviceaccount.com"
                        }
                    ]
                }
            }
        },
        "testing": {
            "type": "object",
            "properties": {
                "enabled": {
                    "type": "boolean",
                    "default": "false"
                }
            }
        },
        "nameOverride": {
            "type": "string"
        },
        "fullnameOverride": {
            "type": "string"
        }
    }
}