{
    "$schema": "http://json-schema.org/draft-04/schema",
    "$id": "https://www.updatecli.io/latest/schema/compose/spec",
    "properties": {
        "name": {
            "type": "string",
            "description": "Name contains the compose name"
        },
        "policies": {
            "items": {
                "properties": {
                    "name": {
                        "type": "string",
                        "description": "Name contains the policy name"
                    },
                    "policy": {
                        "type": "string",
                        "description": "Policy contains the policy OCI name"
                    },
                    "config": {
                        "items": {
                            "type": "string"
                        },
                        "type": "array",
                        "description": "Config contains a list of Updatecli config file path"
                    },
                    "values": {
                        "items": {
                            "type": "string"
                        },
                        "type": "array",
                        "description": "Values contains a list of Updatecli config file path"
                    },
                    "valuesinline": {
                        "type": "object",
                        "description": "ValuesInline contains a list of inline values for Updatecli config\nA deep merge will be performed between global inline values and policy inline values if both are defined.\n\nExample:\n  key1: value1\n  key2: value2"
                    },
                    "secrets": {
                        "items": {
                            "type": "string"
                        },
                        "type": "array",
                        "description": "Secrets contains a list of Updatecli secret file path"
                    }
                },
                "additionalProperties": false,
                "type": "object"
            },
            "type": "array",
            "description": "Policies contains a list of policies"
        },
        "environments": {
            "additionalProperties": {
                "type": "string"
            },
            "type": "object",
            "description": "Environment contains a list of environment variables\n\nExample:\n  ENV_VAR1: value1\n  ENV_VAR2: value2"
        },
        "env_files": {
            "items": {
                "type": "string"
            },
            "type": "array",
            "description": "Env_files contains a list of environment files\n\nExample:\n  - env_file1.env\n  - env_file2.env"
        },
        "valuesinline": {
            "type": "object",
            "description": "ValuesInline contains a list of inline values for Updatecli config\nThis is the default inline values that will be applied to all policies if not overridden by the policy inline values.\nA deep merge will be performed between global inline values and policy inline values if both are defined.\n\nExample:\n  key1: value1\n  key2: value2"
        },
        "include": {
            "items": {
                "type": "string"
            },
            "type": "array",
            "description": "Include contains a list of compose files to include"
        }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
        "name"
    ]
}