[
    {
        "DisplayName": "Machine ID",
        "Description": "Sets an optional name for the server process to identify a group of servers with the same ID",
        "Category": "TeamSpeak 6:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Keywords": "machine,id,machine-id",
        "FieldName": "machine-id",
        "InputType": "text",
        "ParamFieldName": "machine-id",
        "IncludeInCommandLine": true,
        "SkipIfEmpty": true,
        "DefaultValue": "",
        "EnumValues": {}
    },
    {
        "DisplayName": "License File Directory Path",
        "Description": "Sets the directory path where the server will look for the licensekey.dat file",
        "Category": "TeamSpeak 6:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Keywords": "license,path,license-path",
        "FieldName": "license-path",
        "InputType": "text",
        "ParamFieldName": "license-path",
        "IncludeInCommandLine": true,
        "DefaultValue": "./",
        "Placeholder": "./",
        "Required": true,
        "EnumValues": {}
    },
    {
        "DisplayName": "IPv4 Server Binding",
        "Category": "TeamSpeak 6:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "If required, you can change the IPv4 binding of the server by changing the Application IP Binding for the instance",
        "Keywords": "ipv4,binding,ip,address,net_ip",
        "FieldName": "$ApplicationIPBinding",
        "InputType": "hidden",
        "ParamFieldName": "IPv4Binding",
        "EnumValues": {}
    },
    {
        "DisplayName": "IPv6 Server Binding",
        "Category": "TeamSpeak 6:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets the IPv6 binding of the server",
        "Keywords": "ipv6,binding,ip,address",
        "FieldName": "IPv6Binding",
        "InputType": "text",
        "ParamFieldName": "IPv6Binding",
        "DefaultValue": "::",
        "Placeholder": "::",
        "EnumValues": {}
    },
    {
        "DisplayName": "Voice UDP Threads",
        "Category": "TeamSpeak 6:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets the number of threads to use for voice processing. Empty = automatic based on CPU cores",
        "Keywords": "threads,voice,udp,voice-udp,threads-voice-udp",
        "FieldName": "threads-voice-udp",
        "InputType": "number",
        "MinValue": "1",
        "MaxValue": "16",
        "ParamFieldName": "threads-voice-udp",
        "IncludeInCommandLine": true,
        "SkipIfEmpty": true,
        "DefaultValue": "",
        "Placeholder": "4",
        "EnumValues": {}
    },
    {
        "DisplayName": "Log Path",
        "Category": "TeamSpeak 6:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets the directory path where log files are stored",
        "Keywords": "log,path,logs,log-path",
        "FieldName": "log-path",
        "InputType": "text",
        "ParamFieldName": "log-path",
        "IncludeInCommandLine": true,
        "SkipIfEmpty": true,
        "DefaultValue": "logs",
        "Placeholder": "logs",
        "EnumValues": {}
    },
    {
        "DisplayName": "Append Logs",
        "Category": "TeamSpeak 6:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "If set, the server will write one ever-growing log file per virtual server",
        "Keywords": "log,append,log-append",
        "FieldName": "log-append",
        "InputType": "checkbox",
        "ParamFieldName": "log-append",
        "IncludeInCommandLine": true,
        "DefaultValue": "0",
        "EnumValues": {
            "False": "0",
            "True": "1"
        }
    },
    {
        "DisplayName": "No Default Virtual Server",
        "Category": "TeamSpeak 6:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "If set, no default server is created even if no server exists in the database",
        "Keywords": "virtual,server,default,no-default-virtual-server",
        "FieldName": "no-default-virtual-server",
        "InputType": "checkbox",
        "ParamFieldName": "no-default-virtual-server",
        "IncludeInCommandLine": true,
        "DefaultValue": "0",
        "EnumValues": {
            "False": "0",
            "True": "1"
        }
    },
    {
        "DisplayName": "No Permission Update",
        "Category": "TeamSpeak 6:stadia_controller",
        "Subcategory": "Database:database:2",
        "Description": "If set, disables automatic permission updates in the database",
        "Keywords": "database,permission,update,no-permission-update",
        "FieldName": "no-permission-update",
        "InputType": "checkbox",
        "ParamFieldName": "no-permission-update",
        "IncludeInCommandLine": true,
        "DefaultValue": "0",
        "EnumValues": {
            "False": "0",
            "True": "1"
        }
    },
    {
        "DisplayName": "Database Plugin",
        "Category": "TeamSpeak 6:stadia_controller",
        "Subcategory": "Database:database:2",
        "Description": "Specifies the database plugin to use",
        "Keywords": "database,plugin,db-plugin",
        "FieldName": "db-plugin",
        "InputType": "enum",
        "ParamFieldName": "db-plugin",
        "IncludeInCommandLine": true,
        "DefaultValue": "sqlite3",
        "EnumValues": {
            "mariadb": "MariaDB/MySQL",
            "sqlite3": "SQLite3"
        }
    },
    {
        "DisplayName": "SQL Path",
        "Category": "TeamSpeak 6:stadia_controller",
        "Subcategory": "Database:database:2",
        "Description": "Sets the directory path to the SQL folder containing the SQL queries executed by the server",
        "Keywords": "database,sql,path,db-sql-path",
        "FieldName": "db-sql-path",
        "InputType": "text",
        "ParamFieldName": "db-sql-path",
        "IncludeInCommandLine": true,
        "SkipIfEmpty": true,
        "DefaultValue": "sql",
        "Placeholder": "sql",
        "EnumValues": {}
    },
    {
        "DisplayName": "SQL Create Path",
        "Category": "TeamSpeak 6:stadia_controller",
        "Subcategory": "Database:database:2",
        "Description": "Sets the path relative to the SQL Path where to load the database creation scripts from",
        "Keywords": "database,sql,create,path,db-sql-create-path",
        "FieldName": "db-sql-create-path",
        "InputType": "text",
        "ParamFieldName": "db-sql-create-path",
        "IncludeInCommandLine": true,
        "DefaultValue": "create_sqlite",
        "EnumValues": {
            "create_mariadb": "MariaDB/MySQL",
            "create_sqlite": "SQLite3"
        }
    },
    {
        "DisplayName": "Client Keep Period",
        "Category": "TeamSpeak 6:stadia_controller",
        "Subcategory": "Database:database:2",
        "Description": "Sets the period to keep clients in the database",
        "Keywords": "database,client,keep,days,db-client-keep-days",
        "FieldName": "db-client-keep-days",
        "InputType": "number",
        "MinValue": "1",
        "ParamFieldName": "db-client-keep-days",
        "IncludeInCommandLine": true,
        "SkipIfEmpty": true,
        "DefaultValue": "30",
        "Placeholder": "30",
        "Suffix": "days",
        "EnumValues": {}
    },
    {
        "DisplayName": "Skip Database Integrity Check",
        "Category": "TeamSpeak 6:stadia_controller",
        "Subcategory": "Database:database:2",
        "Description": "If set, skips the database integrity check when opening the database. SQLite only",
        "Keywords": "database,integrity,check,skip,db-skip-integrity-check",
        "FieldName": "db-skip-integrity-check",
        "InputType": "checkbox",
        "ParamFieldName": "db-skip-integrity-check",
        "IncludeInCommandLine": true,
        "DefaultValue": "0",
        "EnumValues": {
            "True": "1",
            "False": "0"
        }
    },
    {
        "DisplayName": "Database Host",
        "Category": "TeamSpeak 6:stadia_controller",
        "Subcategory": "Database:database:2",
        "Description": "Sets the hostname or IP address of the database server",
        "Keywords": "database,host,db-host",
        "FieldName": "db-host",
        "InputType": "text",
        "ParamFieldName": "db-host",
        "IncludeInCommandLine": true,
        "SkipIfEmpty": true,
        "DefaultValue": "localhost",
        "Placeholder": "localhost",
        "EnumValues": {}
    },
    {
        "DisplayName": "Database Port",
        "Category": "TeamSpeak 6:stadia_controller",
        "Subcategory": "Database:database:2",
        "Description": "Sets the port used to connect to the database server",
        "Keywords": "database,port,db-port",
        "FieldName": "db-port",
        "InputType": "number",
        "MinValue": "1",
        "MaxValue": "65535",
        "ParamFieldName": "db-port",
        "IncludeInCommandLine": true,
        "SkipIfEmpty": true,
        "DefaultValue": "3306",
        "Placeholder": "3306",
        "EnumValues": {}
    },
    {
        "DisplayName": "Database Socket",
        "Category": "TeamSpeak 6:stadia_controller",
        "Subcategory": "Database:database:2",
        "Description": "Sets the socket to use for the database connection",
        "Keywords": "database,socket,db-socket",
        "FieldName": "db-socket",
        "InputType": "text",
        "ParamFieldName": "db-socket",
        "IncludeInCommandLine": true,
        "SkipIfEmpty": true,
        "DefaultValue": "",
        "Placeholder": "/var/run/mysqld/mysqld.sock",
        "EnumValues": {}
    },
    {
        "DisplayName": "Database Timeout",
        "Category": "TeamSpeak 6:stadia_controller",
        "Subcategory": "Database:database:2",
        "Description": "Sets the timeout for the database connection",
        "Keywords": "database,timeout,db-timeout",
        "FieldName": "db-timeout",
        "InputType": "number",
        "MinValue": "1",
        "MaxValue": "432000",
        "ParamFieldName": "db-timeout",
        "IncludeInCommandLine": true,
        "SkipIfEmpty": true,
        "DefaultValue": "10",
        "Placeholder": "10",
        "Suffix": "seconds",
        "EnumValues": {}
    },
    {
        "DisplayName": "Database Name",
        "Category": "TeamSpeak 6:stadia_controller",
        "Subcategory": "Database:database:2",
        "Description": "Sets the name of the database to use",
        "Keywords": "database,name,db-name",
        "FieldName": "db-name",
        "InputType": "text",
        "ParamFieldName": "db-name",
        "IncludeInCommandLine": true,
        "SkipIfEmpty": true,
        "DefaultValue": "",
        "Placeholder": "teamspeak",
        "EnumValues": {}
    },
    {
        "DisplayName": "Database Username",
        "Category": "TeamSpeak 6:stadia_controller",
        "Subcategory": "Database:database:2",
        "Description": "Sets the username for database authentication",
        "Keywords": "database,username",
        "FieldName": "db-username",
        "InputType": "text",
        "ParamFieldName": "db-username",
        "IncludeInCommandLine": true,
        "SkipIfEmpty": true,
        "DefaultValue": "",
        "Placeholder": "root",
        "EnumValues": {}
    },
    {
        "DisplayName": "Database Password",
        "Category": "TeamSpeak 6:stadia_controller",
        "Subcategory": "Database:database:2",
        "Description": "Sets the password for database authentication",
        "Keywords": "database,password,db-password",
        "FieldName": "db-password",
        "InputType": "Password",
        "ParamFieldName": "db-password",
        "IncludeInCommandLine": true,
        "SkipIfEmpty": true,
        "DefaultValue": "",
        "EnumValues": {}
    },
    {
        "DisplayName": "Database Connections",
        "Category": "TeamSpeak 6:stadia_controller",
        "Subcategory": "Database:database:2",
        "Description": "Sets the number of connections to establish to the database",
        "Keywords": "database,connections,db-connections",
        "FieldName": "db-connections",
        "InputType": "number",
        "ParamFieldName": "db-connections",
        "IncludeInCommandLine": true,
        "SkipIfEmpty": true,
        "DefaultValue": "10",
        "Placeholder": "10",
        "EnumValues": {}
    },
    {
        "DisplayName": "Log Database Queries",
        "Category": "TeamSpeak 6:stadia_controller",
        "Subcategory": "Database:database:2",
        "Description": "If set, logs database queries",
        "Keywords": "database,log,queries,db-log-queries",
        "FieldName": "db-log-queries",
        "InputType": "checkbox",
        "ParamFieldName": "db-log-queries",
        "IncludeInCommandLine": true,
        "DefaultValue": "0",
        "EnumValues": {
            "True": "1",
            "False": "0"
        }
    },
    {
        "DisplayName": "Query Pool Size",
        "Category": "TeamSpeak 6:stadia_controller",
        "Subcategory": "Query:manufacturing:3",
        "Description": "Sets the number of threads to use for query command processing. Empty = automatic based on CPU cores",
        "Keywords": "query,pool,size,threads,query-pool-size",
        "FieldName": "query-pool-size",
        "InputType": "number",
        "MinValue": "2",
        "MaxValue": "32",
        "ParamFieldName": "query-pool-size",
        "IncludeInCommandLine": true,
        "SkipIfEmpty": true,
        "DefaultValue": "",
        "Placeholder": "2",
        "EnumValues": {}
    },
    {
        "DisplayName": "Query Log Timing",
        "Category": "TeamSpeak 6:stadia_controller",
        "Subcategory": "Query:manufacturing:3",
        "Description": "Sets the interval after which to log query statistics",
        "Keywords": "query,log,timing,interval,query-log-timing",
        "FieldName": "query-log-timing",
        "InputType": "number",
        "MinValue": "10",
        "MaxValue": "31556952",
        "ParamFieldName": "query-log-timing",
        "IncludeInCommandLine": true,
        "SkipIfEmpty": true,
        "DefaultValue": "3600",
        "Placeholder": "3600",
        "Suffix": "seconds",
        "EnumValues": {}
    },
    {
        "DisplayName": "Query IP Allow List",
        "Category": "TeamSpeak 6:stadia_controller",
        "Subcategory": "Query:manufacturing:3",
        "Description": "Specifies the path to a file listing IPs exempt from query flood protection",
        "Keywords": "query,ip,allow,list,query-ip-allow-list",
        "FieldName": "query-ip-allow-list",
        "InputType": "text",
        "ParamFieldName": "query-ip-allow-list",
        "IncludeInCommandLine": true,
        "SkipIfEmpty": true,
        "DefaultValue": "./allowlist.txt",
        "Placeholder": "./allowlist.txt",
        "EnumValues": {}
    },
    {
        "DisplayName": "Query IP Block List",
        "Category": "TeamSpeak 6:stadia_controller",
        "Subcategory": "Query:manufacturing:3",
        "Description": "Specifies the path to a file listing IPs that are blocked from the query interface",
        "Keywords": "query,ip,block,list,query-ip-block-list",
        "FieldName": "query-ip-block-list",
        "InputType": "text",
        "ParamFieldName": "query-ip-block-list",
        "IncludeInCommandLine": true,
        "SkipIfEmpty": true,
        "DefaultValue": "./blocklist.txt",
        "Placeholder": "./blocklist.txt",
        "EnumValues": {}
    },
    {
        "DisplayName": "Query Admin Password",
        "Category": "TeamSpeak 6:stadia_controller",
        "Subcategory": "Query:manufacturing:3",
        "Description": "Sets a password for the serveradmin query account, overriding the database",
        "Keywords": "query,admin,password,query-admin-password",
        "FieldName": "query-admin-password",
        "InputType": "Password",
        "ParamFieldName": "query-admin-password",
        "IncludeInCommandLine": true,
        "SkipIfEmpty": true,
        "DefaultValue": "",
        "EnumValues": {}
    },
    {
        "DisplayName": "Log Query Commands",
        "Category": "TeamSpeak 6:stadia_controller",
        "Subcategory": "Query:manufacturing:3",
        "Description": "If set, every command received on the query interface will be logged",
        "Keywords": "query,log,commands,query-log-commands",
        "FieldName": "query-log-commands",
        "InputType": "checkbox",
        "ParamFieldName": "query-log-commands",
        "IncludeInCommandLine": true,
        "DefaultValue": "0",
        "EnumValues": {
            "False": "0",
            "True": "1"
        }
    },
    {
        "DisplayName": "Skip Query Brute Force Check",
        "Category": "TeamSpeak 6:stadia_controller",
        "Subcategory": "Query:manufacturing:3",
        "Description": "If set, skips brute force checking when clients connect to the query interface",
        "Keywords": "query,skip,brute,force,check,query-skip-brute-force-check",
        "FieldName": "query-skip-brute-force-check",
        "InputType": "checkbox",
        "ParamFieldName": "query-skip-brute-force-check",
        "IncludeInCommandLine": true,
        "DefaultValue": "0",
        "EnumValues": {
            "False": "0",
            "True": "1"
        }
    },
    {
        "DisplayName": "Query Memory Buffer",
        "Category": "TeamSpeak 6:stadia_controller",
        "Subcategory": "Query:manufacturing:3",
        "Description": "Sets the memory allocation for query connection buffering",
        "Keywords": "query,buffer,memory,query-buffer-mb",
        "FieldName": "query-buffer-mb",
        "InputType": "number",
        "MinValue": "20",
        "MaxValue": "100",
        "ParamFieldName": "query-buffer-mb",
        "IncludeInCommandLine": true,
        "SkipIfEmpty": true,
        "DefaultValue": "20",
        "Placeholder": "20",
        "Suffix": "MB",
        "EnumValues": {}
    },
    {
        "DisplayName": "Query Documentation Path",
        "Category": "TeamSpeak 6:stadia_controller",
        "Subcategory": "Query:manufacturing:3",
        "Description": "Specifies the directory path to the query documentation files",
        "Keywords": "query,documentation,path,query-documentation-path",
        "FieldName": "query-documentation-path",
        "InputType": "text",
        "ParamFieldName": "query-documentation-path",
        "IncludeInCommandLine": true,
        "SkipIfEmpty": true,
        "DefaultValue": "serverquerydocs",
        "Placeholder": "serverquerydocs",
        "EnumValues": {}
    },
    {
        "DisplayName": "Query Timeout",
        "Category": "TeamSpeak 6:stadia_controller",
        "Subcategory": "Query:manufacturing:3",
        "Description": "Sets the timeout for query connections",
        "Keywords": "query,timeout,query-timeout",
        "FieldName": "query-timeout",
        "InputType": "number",
        "ParamFieldName": "query-timeout",
        "IncludeInCommandLine": true,
        "SkipIfEmpty": true,
        "DefaultValue": "300",
        "Placeholder": "300",
        "Suffix": "seconds",
        "EnumValues": {}
    },
    {
        "DisplayName": "Enable SSH Query Interface",
        "Category": "TeamSpeak 6:stadia_controller",
        "Subcategory": "Query:manufacturing:3",
        "Description": "If set, enables the SSH query interface",
        "Keywords": "query,ssh,enable",
        "FieldName": "query-ssh-enable",
        "InputType": "checkbox",
        "ParamFieldName": "query-ssh-enable",
        "IncludeInCommandLine": true,
        "DefaultValue": "0",
        "EnumValues": {
            "False": "0",
            "True": "1"
        }
    },
    {
        "DisplayName": "SSH Query RSA Key",
        "Category": "TeamSpeak 6:stadia_controller",
        "Subcategory": "Query:manufacturing:3",
        "Description": "Specifies the SSH RSA host key file to use for the query SSH interface",
        "Keywords": "query,ssh,rsa,key,query-ssh-rsa-key",
        "FieldName": "query-ssh-rsa-key",
        "InputType": "text",
        "ParamFieldName": "query-ssh-rsa-key",
        "IncludeInCommandLine": true,
        "SkipIfEmpty": true,
        "DefaultValue": "ssh_host_rsa_key",
        "Placeholder": "ssh_host_rsa_key",
        "EnumValues": {}
    },
    {
        "DisplayName": "Enable HTTP Query Interface",
        "Category": "TeamSpeak 6:stadia_controller",
        "Subcategory": "Query:manufacturing:3",
        "Description": "If set, enables the HTTP query interface",
        "Keywords": "query,http,enable,query-http-enable",
        "FieldName": "query-http-enable",
        "InputType": "checkbox",
        "ParamFieldName": "query-http-enable",
        "IncludeInCommandLine": true,
        "DefaultValue": "0",
        "EnumValues": {
            "False": "0",
            "True": "1"
        }
    },
    {
        "DisplayName": "Enable HTTPS Query Interface",
        "Category": "TeamSpeak 6:stadia_controller",
        "Subcategory": "Query:manufacturing:3",
        "Description": "If set, enables the HTTPS query interface",
        "Keywords": "query,https,enable,query-https-enable",
        "FieldName": "query-https-enable",
        "InputType": "checkbox",
        "ParamFieldName": "query-https-enable",
        "IncludeInCommandLine": true,
        "DefaultValue": "0",
        "EnumValues": {
            "False": "0",
            "True": "1"
        }
    },
    {
        "DisplayName": "HTTPS Query Certificate",
        "Category": "TeamSpeak 6:stadia_controller",
        "Subcategory": "Query:manufacturing:3",
        "Description": "Specifies the file containing the certificate for HTTPS query connections",
        "Keywords": "query,https,certificate,query-https-certificate",
        "FieldName": "query-https-certificate",
        "InputType": "text",
        "ParamFieldName": "query-https-certificate",
        "IncludeInCommandLine": true,
        "SkipIfEmpty": true,
        "DefaultValue": "",
        "Placeholder": "cert.pem",
        "EnumValues": {}
    },
    {
        "DisplayName": "HTTPS Query Private Key",
        "Category": "TeamSpeak 6:stadia_controller",
        "Subcategory": "Query:manufacturing:3",
        "Description": "Specifies the file containing the private key for the certificate used by HTTPS query connections",
        "Keywords": "query,https,private,key,query-https-private-key",
        "FieldName": "query-https-private-key",
        "InputType": "text",
        "ParamFieldName": "query-https-private-key",
        "IncludeInCommandLine": true,
        "SkipIfEmpty": true,
        "DefaultValue": "",
        "Placeholder": "privkey.pem",
        "EnumValues": {}
    },
    {
        "DisplayName": "HTTP Proxy",
        "Category": "TeamSpeak 6:stadia_controller",
        "Subcategory": "Additional:tune:4",
        "Description": "Sets the proxy server for connecting to external services",
        "Keywords": "http,proxy,external,services,http-proxy",
        "FieldName": "http-proxy",
        "InputType": "text",
        "ParamFieldName": "http-proxy",
        "IncludeInCommandLine": true,
        "SkipIfEmpty": true,
        "DefaultValue": "",
        "Placeholder": "http://proxy.example.com:8180",
        "EnumValues": {}
    },
    {
        "DisplayName": "Crashdump Path",
        "Category": "TeamSpeak 6:stadia_controller",
        "Subcategory": "Additional:tune:4",
        "Description": "Sets the directory path to store crash dumps",
        "Keywords": "crashdump,path,crashdumps,crashdump-path",
        "FieldName": "crashdump-path",
        "InputType": "text",
        "ParamFieldName": "crashdump-path",
        "IncludeInCommandLine": true,
        "SkipIfEmpty": true,
        "DefaultValue": "crashdumps",
        "Placeholder": "crashdumps",
        "EnumValues": {}
    },
    {
        "DisplayName": "Enable Permission Hints",
        "Category": "TeamSpeak 6:stadia_controller",
        "Subcategory": "Additional:tune:4",
        "Description": "If set, enables permission hints (may affect performance on larger servers)",
        "Keywords": "hints,permission,enable,hints-enabled",
        "FieldName": "hints-enabled",
        "InputType": "checkbox",
        "ParamFieldName": "hints-enabled",
        "IncludeInCommandLine": true,
        "DefaultValue": "0",
        "EnumValues": {
            "False": "0",
            "True": "1"
        }
    },
    {
        "DisplayName": "MaxMind DB Path",
        "Category": "TeamSpeak 6:stadia_controller",
        "Subcategory": "Additional:tune:4",
        "Description": "Sets the directory path to the MaxMind IP database",
        "Keywords": "maxmind,db,path,maxmind-db-path",
        "FieldName": "maxmind-db-path",
        "InputType": "text",
        "ParamFieldName": "maxmind-db-path",
        "IncludeInCommandLine": true,
        "SkipIfEmpty": true,
        "DefaultValue": "",
        "Placeholder": "/path/to/GeoLite2-City.mmdb",
        "EnumValues": {}
    },
    {
        "DisplayName": "Administrative Domain",
        "Category": "TeamSpeak 6:stadia_controller",
        "Subcategory": "Additional:tune:4",
        "Description": "Sets the administrative domain",
        "Keywords": "administrative,domain,administrative-domain",
        "FieldName": "administrative-domain",
        "InputType": "text",
        "ParamFieldName": "administrative-domain",
        "IncludeInCommandLine": true,
        "SkipIfEmpty": true,
        "DefaultValue": "",
        "EnumValues": {}
    },
    {
        "DisplayName": "Enable S3 File Transfer",
        "Category": "TeamSpeak 6:stadia_controller",
        "Subcategory": "Storage:backup:5",
        "Description": "If set, enables S3 file transfer",
        "Keywords": "s3,file,transfer,enable,s3ft-enabled",
        "FieldName": "s3ft-enabled",
        "InputType": "checkbox",
        "ParamFieldName": "s3ft-enabled",
        "IncludeInCommandLine": true,
        "DefaultValue": "0",
        "EnumValues": {
            "False": "0",
            "True": "1"
        }
    },
    {
        "DisplayName": "S3 Access Key",
        "Category": "TeamSpeak 6:stadia_controller",
        "Subcategory": "Storage:backup:5",
        "Description": "Sets the access key for S3 file transfer",
        "Keywords": "s3,access,key,s3ft-access-key",
        "FieldName": "s3ft-access-key",
        "InputType": "text",
        "ParamFieldName": "s3ft-access-key",
        "IncludeInCommandLine": true,
        "SkipIfEmpty": true,
        "DefaultValue": "",
        "EnumValues": {}
    },
    {
        "DisplayName": "S3 Secret Key",
        "Category": "TeamSpeak 6:stadia_controller",
        "Subcategory": "Storage:backup:5",
        "Description": "Sets the secret key for S3 file transfer",
        "Keywords": "s3,secret,key,s3ft-secret-key",
        "FieldName": "s3ft-secret-key",
        "InputType": "Password",
        "ParamFieldName": "s3ft-secret-key",
        "IncludeInCommandLine": true,
        "SkipIfEmpty": true,
        "DefaultValue": "",
        "EnumValues": {}
    },
    {
        "DisplayName": "S3 Bucket",
        "Category": "TeamSpeak 6:stadia_controller",
        "Subcategory": "Storage:backup:5",
        "Description": "Sets the S3 bucket for file storage",
        "Keywords": "s3,bucket,s3ft-bucket",
        "FieldName": "s3ft-bucket",
        "InputType": "text",
        "ParamFieldName": "s3ft-bucket",
        "IncludeInCommandLine": true,
        "SkipIfEmpty": true,
        "DefaultValue": "",
        "EnumValues": {}
    },
    {
        "DisplayName": "S3 Domain",
        "Category": "TeamSpeak 6:stadia_controller",
        "Subcategory": "Storage:backup:5",
        "Description": "Sets the S3 domain",
        "Keywords": "s3,domain,s3ft-domain",
        "FieldName": "s3ft-domain",
        "InputType": "text",
        "ParamFieldName": "s3ft-domain",
        "IncludeInCommandLine": true,
        "SkipIfEmpty": true,
        "DefaultValue": "",
        "Placeholder": "s3.amazonaws.com",
        "EnumValues": {}
    },
    {
        "DisplayName": "S3 Account ID",
        "Category": "TeamSpeak 6:stadia_controller",
        "Subcategory": "Storage:backup:5",
        "Description": "Sets an optional S3 account ID",
        "Keywords": "s3,account,id,s3ft-account-id",
        "FieldName": "s3ft-account-id",
        "InputType": "text",
        "ParamFieldName": "s3ft-account-id",
        "IncludeInCommandLine": true,
        "SkipIfEmpty": true,
        "DefaultValue": "",
        "EnumValues": {}
    },
    {
        "DisplayName": "S3 Region",
        "Category": "TeamSpeak 6:stadia_controller",
        "Subcategory": "Storage:backup:5",
        "Description": "Sets the region for S3 file transfer",
        "Keywords": "s3,region,s3ft-region",
        "FieldName": "s3ft-region",
        "InputType": "text",
        "ParamFieldName": "s3ft-region",
        "IncludeInCommandLine": true,
        "SkipIfEmpty": true,
        "DefaultValue": "",
        "EnumValues": {}
    },
    {
        "DisplayName": "S3 Presigned URL Expiration",
        "Category": "TeamSpeak 6:stadia_controller",
        "Subcategory": "Storage:backup:5",
        "Description": "Sets the expiration time for presigned URLs",
        "Keywords": "s3,presigned,url,expiration,s3ft-presigned-url-expiration",
        "FieldName": "s3ft-presigned-url-expiration",
        "InputType": "number",
        "ParamFieldName": "s3ft-presigned-url-expiration",
        "IncludeInCommandLine": true,
        "SkipIfEmpty": true,
        "DefaultValue": "300",
        "Placeholder": "300",
        "Suffix": "seconds",
        "EnumValues": {}
    },
    {
        "DisplayName": "Server Version",
        "Category": "Updates",
        "Subcategory": "Server Updates:build:-1",
        "Description": "Sets the [server version](https://github.com/teamspeak/teamspeak6-server/releases) to install. Format: v6.0.0-beta2. Empty = latest release. Update the server after changing this setting",
        "Keywords": "server,version,latest,specific",
        "FieldName": "ServerVersion",
        "InputType": "text",
        "ParamFieldName": "ServerVersion",
        "DefaultValue": "",
        "Placeholder": "v6.0.0-beta2",
        "EnumValues": {}
    }
]