[
    {
        "DisplayName": "App Download Type",
        "Category": "Java App Runner:code",
        "Subcategory": "Download:download:2",
        "Description": "Sets how to download the app. Specify the App Download Source and the relevant Git repo or  GitHub release settings accordingly. Update the app after changing this setting",
        "Keywords": "download,type,DownloadType",
        "FieldName": "DownloadType",
        "InputType": "enum",
        "ParamFieldName": "DownloadType",
        "DefaultValue": "",
        "Required": true,
        "EnumValues": {
            "": "--Please select--",
            "DownloadURL": "Download URL",
            "GithubRelease": "GitHub release",
            "GitRepo": "Git repo",
            "None": "None"
        }
    },
    {
        "DisplayName": "App Download Source",
        "Category": "Java App Runner:code",
        "Subcategory": "Download:download:2",
        "Description": "Sets the source for the App Download Type. Git repo = URL that ends in .git. GitHub release = User/Repo. Download URL = URL to a file/zip. Update the app after changing this setting",
        "Keywords": "download,source,DownloadSource",
        "FieldName": "DownloadSource",
        "InputType": "text",
        "ParamFieldName": "DownloadSource",
        "DefaultValue": "",
        "EnumValues": {}
    },
    {
        "DisplayName": "Git Repo Branch",
        "Category": "Java App Runner:code",
        "Subcategory": "Download:download:2",
        "Description": "If \"Git repo\" is selected under App Download Type, sets the branch if required. Empty = default branch",
        "Keywords": "git,repo,branch,DownloadBranch",
        "FieldName": "DownloadBranch",
        "InputType": "text",
        "ParamFieldName": "DownloadBranch",
        "DefaultValue": "",
        "EnumValues": {}
    },
    {
        "DisplayName": "Git Repo Username",
        "Category": "Java App Runner:code",
        "Subcategory": "Download:download:2",
        "Description": "If \"Git repo\" is selected under App Download Type, sets the username if login is required",
        "Keywords": "git,repo,username,DownloadUsername",
        "FieldName": "DownloadUsername",
        "InputType": "text",
        "ParamFieldName": "DownloadUsername",
        "DefaultValue": "",
        "EnumValues": {}
    },
    {
        "DisplayName": "Git Repo Password/Token",
        "Category": "Java App Runner:code",
        "Subcategory": "Download:download:2",
        "Description": "If \"Git repo\" is selected under App Download Type, sets the password/token if login is required",
        "Keywords": "git,repo,password,token,DownloadPassword",
        "FieldName": "DownloadPassword",
        "InputType": "Password",
        "ParamFieldName": "DownloadPassword",
        "DefaultValue": "",
        "EnumValues": {}
    },
    {
        "DisplayName": "GitHub Release Filename",
        "Category": "Java App Runner:code",
        "Subcategory": "Download:download:2",
        "Description": "If \"GitHub release\" is selected under App Download Type, sets the name of the zip file to download",
        "Keywords": "github,release,filename,DownloadFilename",
        "FieldName": "DownloadFilename",
        "InputType": "text",
        "ParamFieldName": "DownloadFilename",
        "DefaultValue": "",
        "Placeholder": "app.zip",
        "EnumValues": {}
    },
    {
        "DisplayName": "GitHub Release Version",
        "Category": "Java App Runner:code",
        "Subcategory": "Download:download:2",
        "Description": "If \"GitHub release\" is selected under App Download Type, sets the release version to download. Empty = latest",
        "Keywords": "github,release,version,DownloadVersion",
        "FieldName": "DownloadVersion",
        "InputType": "text",
        "ParamFieldName": "DownloadVersion",
        "DefaultValue": "",
        "Placeholder": "1.0.0",
        "EnumValues": {}
    },
    {
        "DisplayName": "Java Version",
        "Category": "Java App Runner:code",
        "Subcategory": "App:settings:1",
        "Description": "Sets the Java version to run the app with. The version must be accessible to AMP. For \"Specific system version\", also set Specific System Java Version. For \"Specific instance version\", also set Specific Instance Java Version. Ensure the version is compatible with the app",
        "Keywords": "java,version,JavaVersion",
        "FieldName": "JavaVersion",
        "InputType": "enum",
        "ParamFieldName": "JavaVersion",
        "DefaultValue": "{{Windows:$PATH\\java.exe}}{{Linux:/usr/bin/java}}",
        "EnumValues": {
            "{{Windows:$PATH\\java.exe}}{{Linux:/usr/bin/java}}": "System default",
            "{{SpecificJavaVersion}}": "Specific system version",
            "{{Windows:java\\bin\\java.exe}}{{Linux:java/bin/java}}": "Specific instance version"
        }
    },
    {
        "DisplayName": "Specific System Java Version",
        "Category": "Java App Runner:code",
        "Subcategory": "App:settings:1",
        "Description": "Sets the full path to the Java executable on the system, if \"Specific system version\" is selected under Java Version",
        "Keywords": "java,version,system,SpecificJavaVersion",
        "FieldName": "SpecificJavaVersion",
        "InputType": "text",
        "ParamFieldName": "SpecificJavaVersion",
        "DefaultValue": "",
        "EnumValues": {}
    },
    {
        "DisplayName": "Specific Instance Java Version",
        "Category": "Java App Runner:code",
        "Subcategory": "App:settings:1",
        "Description": "Sets the Eclipse Temurin Java version to install in the instance to run the app with, if \"Specific instance version\" is selected under Java Version. Useful for using a Java version that is not installed on the system or in AMP's Docker image (if using AMP's Docker). Update the server after changing this setting",
        "Keywords": "java,version,instance,SpecificInstanceJavaVersion",
        "FieldName": "SpecificInstanceJavaVersion",
        "InputType": "enum",
        "ParamFieldName": "SpecificInstanceJavaVersion",
        "IncludeInCommandLine": false,
        "DefaultValue": "21",
        "EnumValues": {
            "25": "25 - LTS",
            "24": "24",
            "23": "23",
            "22": "22",
            "21": "21 - LTS (default)",
            "20": "20",
            "19": "19",
            "18": "18",
            "17": "17 - LTS",
            "16": "16",
            "11": "11 - LTS",
            "8": "8 - LTS"
        }
    },
    {
        "DisplayName": "Java Arguments",
        "Category": "Java App Runner:code",
        "Subcategory": "App:settings:1",
        "Description": "Specifies any command line arguments to run Java with (NOT options passed to the jar)",
        "Keywords": "command,line,arguments,args,java,JavaArgs",
        "FieldName": "JavaArgs",
        "InputType": "text",
        "ParamFieldName": "JavaArgs",
        "DefaultValue": "",
        "Placeholder": "-Xmx1024M -Xms1024M",
        "EnumValues": {}
    },
    {
        "DisplayName": "Jar Name",
        "Category": "Java App Runner:code",
        "Subcategory": "App:settings:1",
        "Description": "Sets the jar name to run. Also set App Subdirectory as needed, or include the jar path under the root directory here if App Subdirectory is not otherwise appropriate",
        "Keywords": "jar,name,JarName",
        "FieldName": "JarName",
        "InputType": "text",
        "ParamFieldName": "JarName",
        "DefaultValue": "",
        "Placeholder": "myapp.jar",
        "EnumValues": {}
    },
    {
        "DisplayName": "App Subdirectory",
        "Category": "Java App Runner:code",
        "Subcategory": "App:settings:1",
        "Description": "Sets any applicable subdirectory path under the root directory that the app is installed in. This will set the working directory for running the app accordingly",
        "Keywords": "app,directory,subdirectory,path,AppDir",
        "FieldName": "AppDir",
        "InputType": "text",
        "ParamFieldName": "AppDir",
        "DefaultValue": "",
        "EnumValues": {}
    },
    {
        "DisplayName": "Jar Options",
        "Category": "Java App Runner:code",
        "Subcategory": "App:settings:1",
        "Description": "Specifies any command line options to pass to the jar (NOT arguments to run Java wth)",
        "Keywords": "command,line,options,jar,JarOptions",
        "FieldName": "JarOptions",
        "InputType": "text",
        "ParamFieldName": "JarOptions",
        "DefaultValue": "",
        "Placeholder": "nogui",
        "EnumValues": {}
    },
    {
        "DisplayName": "App Environment Variables",
        "Category": "Java App Runner:code",
        "Subcategory": "App:settings:1",
        "Description": "To set a list of environment variables to run the app with, use a relevant config file in the working directory, such as a '.env' file. For example, this may include a [Discord bot token](https://discord.com/developers/applications/). Consult any example config file included with the app for relevant variables to specify",
        "Keywords": "environment,variables,EnvVars",
        "FieldName": "EnvVars",
        "InputType": "hidden",
        "ParamFieldName": "EnvVars",
        "EnumValues": {}
    }
]