{
    "properties": {
        "connect": {
            "properties": {
                "cpus": {
                    "default": 2,
                    "description": "CPU shares to allocate to each connect worker instance.",
                    "minimum": 1,
                    "type": "number"
                },
                "group_id": {
                    "default": "dcos-connect-group",
                    "description": "A unique string that identifies the Connect cluster group this worker belongs to.",
                    "type": "string"
                },
                "heap": {
                    "default": 768,
                    "description": "JVM heap allocation (in MB) for connect worker task; should be ~256MB less than total memory for the instance.",
                    "minimum": 256,
                    "type": "number"
                },
                "instances": {
                    "default": 1,
                    "description": "Number of instances to run.",
                    "minimum": 1,
                    "type": "integer"
                },
                "key_converter": {
                    "default": "io.confluent.connect.avro.AvroConverter",
                    "description": "Key converter, e.g. org.apache.kafka.connect.json.JsonConverter, io.confluent.connect.avro.AvroConverter, ...",
                    "type": "string"
                },
                "key_converter_schema_enable": {
                    "default": true,
                    "description": "Key converter schema check enable.",
                    "type": "boolean"
                },
                "mem": {
                    "default": 1024,
                    "description": "Memory (MB) to allocate to each connect worker instance.",
                    "minimum": 512,
                    "type": "number"
                },
                "name": {
                    "default": "connect",
                    "description": "Service name for the connect worker application(s)",
                    "type": "string"
                },
                "role": {
                    "default": "*",
                    "description": "Deploy connect worker only on nodes with this role.",
                    "type": "string"
                },
                "user": {
                    "default": "nobody",
                    "description": "The user that the service will run as.",
                    "title": "User",
                    "type": "string"
                },
                "value_converter": {
                    "default": "io.confluent.connect.avro.AvroConverter",
                    "description": "Value converter, e.g. org.apache.kafka.connect.json.JsonConverter, io.confluent.connect.avro.AvroConverter, ...",
                    "type": "string"
                },
                "value_converter_schema_enable": {
                    "default": true,
                    "description": "Value converter schema check enable.",
                    "type": "boolean"
                },
                "virtual_network_enabled": {
                    "default": false,
                    "description": "Enable virtual networking",
                    "type": "boolean"
                },
                "virtual_network_name": {
                    "default": "dcos",
                    "description": "The name of the virtual network to join",
                    "type": "string"
                },
                "virtual_network_plugin_labels": {
                    "default": [],
                    "description": "Labels to pass to the virtual network plugin (e.g., [{\"key\": \"key_1\", \"value\": \"value_1\"}, {\"key\": \"key_2\", \"value\": \"value_2\"}])",
                    "items": {
                        "properties": {
                            "key": {
                                "default": "",
                                "type": "string"
                            },
                            "value": {
                                "default": "",
                                "type": "string"
                            }
                        },
                        "type": "object"
                    },
                    "type": "array"
                }
            },
            "required": [
                "cpus",
                "mem",
                "instances",
                "name"
            ],
            "type": "object"
        },
        "kafka": {
            "description": "Rest proxy kafka service configuration",
            "properties": {
                "bootstrap_servers": {
                    "default": "broker.confluent-kafka.l4lb.thisdcos.directory:9092",
                    "description": "The name of the kafka bootstrapserver. Broker vip (for TLS it is broker-tls.confluent-kafka.l4lb.thisdcos.directory:9093) or comma separated list of broker dns names (like in the kerberos case). Note slahes in a kafka service name have to be removed.",
                    "title": "Kafka bootstrap servers",
                    "type": "string"
                },
                "client_sasl_kerberos_service_name": {
                    "default": "kafka",
                    "description": "The Kerberos principal name that Kafka runs as. This can be defined either in Kafka's JAAS config or in Kafka's config.",
                    "title": "Kafka client sasl kerberos service name",
                    "type": "string"
                },
                "client_sasl_mechanism": {
                    "default": "GSSAPI",
                    "description": "SASL mechanism used for client connections. This may be any mechanism for which a security provider is available. GSSAPI is the default mechanism.",
                    "title": "Kafka client sasl mechanism",
                    "type": "string"
                },
                "client_security_protocol": {
                    "default": "PLAINTEXT",
                    "description": "Protocol used to communicate with brokers. Valid values are: PLAINTEXT, SSL, SASL_PLAINTEXT, SASL_SSL",
                    "title": "Kafka client security protocol",
                    "type": "string"
                },
                "kerberos_enabled": {
                    "default": false,
                    "description": "Enable kerberos",
                    "type": "boolean"
                },
                "kerberos_jaas_secret": {
                    "default": "jaas",
                    "description": "Kerberos jaas secret containing jaas config",
                    "title": "Kerberos jaas secret",
                    "type": "string"
                },
                "kerberos_keytab_secret": {
                    "default": "__dcos_base64___keytab",
                    "description": "Kerberos keytab secret containing keytab",
                    "title": "Kerberos keytab secret",
                    "type": "string"
                },
                "kerberos_krb5_secret": {
                    "default": "krb5",
                    "description": "Kerberos krb5 secret containing krb5 config",
                    "title": "Kerberos krb5 secret",
                    "type": "string"
                },
                "zookeeper_connect": {
                    "default": "master.mesos:2181/dcos-service-confluent-kafka",
                    "description": "... . Note slahes in a kafka service name have to be removed, all excpet the first get replaced by two underscores.",
                    "title": "Zookeeper connect",
                    "type": "string"
                }
            },
            "required": [
                "bootstrap_servers",
                "zookeeper_connect"
            ],
            "type": "object"
        },
        "schema-registry": {
            "description": "Connect schema registry configuration",
            "properties": {
                "url": {
                    "default": "http://schema-registry.marathon.l4lb.thisdcos.directory:8081",
                    "description": "The base URL for the schema registry.",
                    "title": "Schema registry url",
                    "type": "string"
                }
            },
            "required": [
                "url"
            ],
            "type": "object"
        }
    },
    "type": "object"
}