{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "type": "object",
    "properties": {
        "logging": {
            "type": "object",
            "description": "Specifies if and how log messages should be collected and sent.",
            "properties": {
                "enabled": {
                    "type": "boolean",
                    "description": "Tells if log processing should be performed at all.",
                    "default": true
                },
                "requestPolicy": {
                    "type": "string",
                    "description": "Specifies if the messages are pushed as an array or each message on its own.",
                    "enum": [
                        "BATCH",
                        "PER_MESSAGE"
                    ],
                    "default": "BATCH"
                },
                "threshold": {
                    "type": "object",
                    "description": "Specifies how often to publish collected log messages.",
                    "default": {
                        "seconds": 120,
                        "messages": 100
                    },
                    "properties": {
                        "seconds": {
                            "type": "integer",
                            "description": "The maximum number of seconds to keep log messages before publishing them.",
                            "default": 120
                        },
                        "messages": {
                            "type": "integer",
                            "description": "The maximum number of log messages to gather before publishing them.",
                            "default": 100
                        }
                    }
                },
                "retry": {
                    "type": "object",
                    "description": "Specifiy if the activity should retry to submit messages.",
                    "default": {
                        "enabled": false
                    },
                    "properties": {
                        "enabled": {
                            "type": "boolean",
                            "description": "Enable or disable the feature.",
                            "default": false
                        },
                        "seconds": {
                            "type": "integer",
                            "description": "The time interval in seconds between the retries. Should be higher than 'threshold.seconds'.",
                            "default": 180
                        },
                        "retries": {
                            "type": "integer",
                            "description": "Number of retries until messages are deleted.",
                            "default": 10
                        }
                    }
                }
            }
        },
        "instanceId": {
            "type": "object",
            "properties": {
                "enabled": {
                    "type": "boolean",
                    "description": "Configure if an instance ID is added to the headers of a POST request.",
                    "default": false
                },
                "header": {
                    "type": "string",
                    "description": "The name of the header that includes the temporary identifier for the current browser session.",
                    "default": "x-laxar-log-tags"
                }
            }
        }
    }
}