[User] Provide a JSON object that satisfies the schema "Nullstone configuration specification". Here are the required top‑level fields: version. Return only the valid JSON object.

Nullstone configuration specification

The Nullstone configuration file is a YAML file defining a platform-agnostic architecture

Provide a JSON object that satisfies the schema "Nullstone configuration specification". Here are the required top‑level fields: version. Return only the valid JSON object.


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$schema":"http://json-schema.org/draft-06/schema#","$id":"https://html-validate.org/schemas/config.json","type":"object","additionalProperties":false,"properties":{"$schema":{"type":"string"},"root":{"type":"boolean","title":"Mark as root configuration","description":"If this is set to true no further configurations will be searched.","default":false},"extends":{"type":"array","items":{"type":"string"},"title":"Configurations to extend","description":"Array of shareable or builtin configurations to extend."},"elements":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"object"}]},"title":"Element metadata to load","description":"Array of modules, plugins or files to load element metadata from. Use <rootDir> to refer to the folder with the package.json file.","examples":[["html-validate:recommended","plugin:recommended","module","./local-file.json"]]},"plugins":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"object"}]},"title":"Plugins to load","description":"Array of plugins load. Use <rootDir> to refer to the folder with the package.json file.","examples":[["my-plugin","./local-plugin"]]},"transform":{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"function":true}]},"title":"File transformations to use.","description":"Object where key is regular expression to match filename and value is name of transformer or a function.","examples":[{"^.*\\.foo$":"my-transformer","^.*\\.bar$":"my-plugin","^.*\\.baz$":"my-plugin:named"}]},"rules":{"type":"object","patternProperties":{".*":{"anyOf":[{"enum":[0,1,2,"off","warn","error"]},{"type":"array","minItems":1,"maxItems":1,"items":[{"enum":[0,1,2,"off","warn","error"]}]},{"type":"array","minItems":2,"maxItems":2,"items":[{"enum":[0,1,2,"off","warn","error"]},{}]}]}},"title":"Rule configuration.","description":"Enable/disable rules, set severity. Some rules have additional configuration like style or patterns to use.","examples":[{"foo":"error","bar":"off","baz":["error",{"style":"camelcase"}]}]}}}
</schema>

[User] Provide a JSON object that satisfies the schema "config". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

Mark as root configuration

If this is set to true no further configurations will be searched.

Configurations to extend

Array of shareable or builtin configurations to extend.

Element metadata to load

Array of modules, plugins or files to load element metadata from. Use <rootDir> to refer to the folder with the package.json file.

html-validate:recommended plugin:recommended module ./local-file.json

Plugins to load

Array of plugins load. Use <rootDir> to refer to the folder with the package.json file.

File transformations to use.

Object where key is regular expression to match filename and value is name of transformer or a function.

Rule configuration.

Enable/disable rules, set severity. Some rules have additional configuration like style or patterns to use.

Provide a JSON object that satisfies the schema "config". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/Config","definitions":{"BazelStep":{"properties":{"build_targets":{"items":{"type":"string"},"type":"array","description":"List of bazel targets to build"},"test_targets":{"items":{"type":"string"},"type":"array","description":"List of bazel targets to test"},"build_flags":{"items":{"type":"string"},"type":"array","description":"Build flags to use in addition to defined in /etc/bazel.bazelrc"},"test_flags":{"items":{"type":"string"},"type":"array","description":"Test flags to use in addition to defined in /etc/bazel.bazelrc"}},"additionalProperties":false,"type":"object"},"BranchesAndPaths":{"required":["branches"],"properties":{"branches":{"items":{"type":"string"},"type":"array","description":"List of branch name masks (doubleglob) to match"},"paths":{"items":{"type":"string"},"type":"array","description":"List of path masks (doubleglob) to match. If not specified, all paths are matched"},"branches-ignore":{"items":{"type":"string"},"type":"array","description":"List of branch name masks (doubleglob) to ignore"},"paths-ignore":{"items":{"type":"string"},"type":"array","description":"List of path masks (doubleglob) to match. If not specified, all paths are ignored"},"from-branches":{"items":{"type":"string"},"type":"array","description":"List of source branches masks (doubleglob) to match. If not specified will match any source branch name"},"from-branches-ignore":{"items":{"type":"string"},"type":"array","description":"List of source branches masks (doubleglob) to ignore. If not specified, no source branch names are ignored"}},"additionalProperties":false,"type":"object"},"BranchesOrTags":{"anyOf":[{"required":["branches"]},{"required":["tags"]}],"properties":{"branches":{"items":{"type":"string"},"type":"array","description":"List of branch name masks (doubleglob) to match"},"tags":{"items":{"type":"string"},"type":"array","description":"List of tag masks (doubleglob) to match"},"branches-ignore":{"items":{"type":"string"},"type":"array","description":"List of branch name masks (doubleglob) to ignore"},"tags-ignore":{"items":{"type":"string"},"type":"array","description":"List of tag masks (doubleglob) to ignore"}},"additionalProperties":false,"type":"object"},"Config":{"required":["workflows"],"properties":{"workflows":{"items":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/Workflow"},"type":"array","description":"The list of FasterCI workflows"}},"additionalProperties":false,"type":"object"},"On":{"anyOf":[{"required":["push"]},{"required":["pull_request"]}],"properties":{"push":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/BranchesOrTags","description":"Run the workflow on code push"},"pull_request":{"$ref":"#/definitions/BranchesAndPaths","description":"Run the workflow on pull request"}},"additionalProperties":false,"type":"object"},"Step":{"anyOf":[{"required":["github_check_md_file"]},{"required":["run"]},{"required":["bazel"]}],"dependencies":{"github_check":["name"],"github_check_md_file":["name"]},"properties":{"name":{"type":"string","description":"Step name, optional"},"working-directory":{"type":"string","description":"Directory to run the step instead of default repo directory"},"github_check":{"type":"boolean","description":"Report the result of the step as a separate github check"},"github_check_md_file":{"type":"string","description":"After completing the step, report as a separate Github Check, using the content of the file as a report body, optional"},"run":{"type":"string","description":"Arbitrary command execution; Could be multiline"},"bazel":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/BazelStep","description":"Bazel step"},"side_effects":{"type":"boolean","description":"Side effects step is anything that may change the state not related to building from the source tree or tests execution. Think of publishing artifacts, sending notifications etc."}},"additionalProperties":false,"type":"object"},"Workflow":{"required":["name","on"],"properties":{"name":{"type":"string","description":"Workflow name"},"on":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/On","description":"Event to activate the workflow on"},"image":{"type":"string","description":"Docker image to run the workflow"},"cleanup":{"type":"string","description":"optional cleanup command, executed after the workflow"},"max_parallel":{"type":"integer","description":"optional maximum number of parallel runs of this workflow"},"ephemeral":{"type":"boolean","description":"optionally mark this workflow as ephemeral. Will not keep the workflow state between runs"},"env":{"patternProperties":{".*":{"type":"string"}},"type":"object","description":"Environment variables"},"secrets":{"items":{"type":"string"},"type":"array","description":"List of secrets to mount as environment variables"},"hide_from_github":{"type":"boolean","description":"Do not notify github"},"init":{"type":"string","description":"Optional command to run before the workflow. Use multiline for multiple commands"},"steps":{"items":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/Step"},"type":"array","description":"List of workflow steps to execute"}},"additionalProperties":false,"type":"object"}}}
</schema>

[User] Provide a JSON object that satisfies the schema "config.schema". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

List of bazel targets to build

List of bazel targets to test

Build flags to use in addition to defined in /etc/bazel.bazelrc

Test flags to use in addition to defined in /etc/bazel.bazelrc

List of branch name masks (doubleglob) to match

List of path masks (doubleglob) to match. If not specified, all paths are matched

List of branch name masks (doubleglob) to ignore

List of path masks (doubleglob) to match. If not specified, all paths are ignored

List of source branches masks (doubleglob) to match. If not specified will match any source branch name

List of source branches masks (doubleglob) to ignore. If not specified, no source branch names are ignored

List of tag masks (doubleglob) to match

List of tag masks (doubleglob) to ignore

The list of FasterCI workflows

Run the workflow on code push

Run the workflow on pull request

Step name, optional

Directory to run the step instead of default repo directory

Report the result of the step as a separate github check

After completing the step, report as a separate Github Check, using the content of the file as a report body, optional

Arbitrary command execution; Could be multiline

Bazel step

Side effects step is anything that may change the state not related to building from the source tree or tests execution. Think of publishing artifacts, sending notifications etc.

Workflow name

Event to activate the workflow on

Docker image to run the workflow

optional cleanup command, executed after the workflow

optional maximum number of parallel runs of this workflow

optionally mark this workflow as ephemeral. Will not keep the workflow state between runs

Environment variables

List of secrets to mount as environment variables

Do not notify github

Optional command to run before the workflow. Use multiline for multiple commands

List of workflow steps to execute

Provide a JSON object that satisfies the schema "config.schema". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$id":"https://github.com/k3d-io/k3d/tree/main/pkg/config/config.versions.schema.json","$schema":"https://raw.githubusercontent.com/k3d-io/k3d/main/pkg/config/config.versions.meta.schema.json#","title":"All k3d config versions","type":"object","oneOf":[{"allOf":[{"properties":{"version":{"const":"v1alpha5"}}},{"$ref":"https://raw.githubusercontent.com/k3d-io/k3d/main/pkg/config/v1alpha5/schema.json"}]},{"allOf":[{"properties":{"version":{"const":"v1alpha4"}}},{"$ref":"https://raw.githubusercontent.com/k3d-io/k3d/main/pkg/config/v1alpha4/schema.json"}]},{"allOf":[{"properties":{"version":{"const":"v1alpha3"}}},{"$ref":"https://raw.githubusercontent.com/k3d-io/k3d/main/pkg/config/v1alpha3/schema.json"}]},{"allOf":[{"properties":{"version":{"const":"v1alpha2"}}},{"$ref":"https://raw.githubusercontent.com/k3d-io/k3d/main/pkg/config/v1alpha2/schema.json"}]}]}
</schema>

[User] Provide a JSON object that satisfies the schema "All k3d config versions". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

All k3d config versions

Provide a JSON object that satisfies the schema "All k3d config versions". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$schema":"http://json-schema.org/draft-07/schema#","title":"DeployStack Configuration Schema","description":"Configuration schema for DeployStack applications","type":"object","properties":{"application":{"type":"object","description":"Application metadata and settings","properties":{"logo":{"type":"string","description":"Path to the application logo. Can be a local file relative to .deploystack directory or an external URL. Supports PNG, WEBP, or JPG formats.","pattern":"^(https?://.*|.*)\\.(?:png|svg|jpg|jpeg|webp)$"},"name":{"type":"string","description":"Application name for display in catalogs and deployment interfaces (maximum 40 characters)","maxLength":40},"description":{"type":"string","description":"Brief description of your application (maximum 500 characters)","maxLength":500}}},"deployment":{"type":"object","description":"Deployment configuration including branch settings","properties":{"branches":{"type":"object","description":"Configuration for multiple branch deployment support","patternProperties":{"^[a-zA-Z0-9._-]+$":{"type":"object","description":"Branch-specific configuration","properties":{"label":{"type":"string","description":"Display label for the branch in UI elements","maxLength":20},"description":{"type":"string","description":"Detailed description of the branch version","maxLength":100},"active":{"type":"boolean","description":"Whether this branch is active for deployment","default":true},"priority":{"type":"integer","description":"Optional priority for ordering in UI (lower numbers appear first)","minimum":1},"exclude_providers":{"type":"array","description":"List of cloud providers to exclude from template generation for this branch","items":{"type":"string","enum":["aws","rnd","dop"],"description":"Provider code to exclude (aws: AWS CloudFormation, rnd: Render.com, dop: DigitalOcean)"},"uniqueItems":true},"serviceConnections":{"type":"object","description":"Configuration for service-to-service communication","properties":{"mappings":{"type":"array","description":"Defines relationships between services for connection configuration","items":{"type":"object","properties":{"fromService":{"type":"string","description":"Service that needs to connect to another service"},"toService":{"type":"string","description":"Service being connected to"},"environmentVariables":{"type":"array","description":"Environment variable names that reference the target service","items":{"type":"string"}},"property":{"type":"string","description":"Type of connection property to reference (e.g., 'connectionString', 'hostport')","default":"hostport","enum":["connectionString","hostport","host","port"]}},"required":["fromService","toService","environmentVariables"]}}},"required":["mappings"]}},"required":["label"]}},"minProperties":1}}}}}
</schema>

[User] Provide a JSON object that satisfies the schema "DeployStack Configuration Schema". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

DeployStack Configuration Schema

Configuration schema for DeployStack applications

Application metadata and settings

Path to the application logo. Can be a local file relative to .deploystack directory or an external URL. Supports PNG, WEBP, or JPG formats.

Application name for display in catalogs and deployment interfaces (maximum 40 characters)

Brief description of your application (maximum 500 characters)

Deployment configuration including branch settings

Configuration for multiple branch deployment support

Branch-specific configuration

Display label for the branch in UI elements

Detailed description of the branch version

Whether this branch is active for deployment

Optional priority for ordering in UI (lower numbers appear first)

List of cloud providers to exclude from template generation for this branch

Provider code to exclude (aws: AWS CloudFormation, rnd: Render.com, dop: DigitalOcean)

Configuration for service-to-service communication

Defines relationships between services for connection configuration

Service that needs to connect to another service

Service being connected to

Environment variable names that reference the target service

Type of connection property to reference (e.g., 'connectionString', 'hostport')

Provide a JSON object that satisfies the schema "DeployStack Configuration Schema". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"title":"JSON schema for Batect configuration files","$schema":"http://json-schema.org/draft-07/schema#","$id":"https://ide-integration.batect.dev/v1/configSchema.json","type":"object","additionalProperties":false,"properties":{"containers":{"$ref":"#/definitions/containers"},"tasks":{"$ref":"#/definitions/tasks"},"config_variables":{"$ref":"#/definitions/configVariablesList"},"project_name":{"type":"string","description":"The name of your project. Used to label any images built.","minLength":1},"forbid_telemetry":{"type":"boolean","description":"Forbid reporting telemetry information for this project, even if the user has previously consented to telemetry."},"include":{"$ref":"#/definitions/includesList"}},"patternProperties":{"^\\.":{}},"definitions":{"containers":{"type":"object","description":"Definitions for each of the containers that make up your various environments","additionalProperties":{"$ref":"#/definitions/container"}},"container":{"type":"object","additionalProperties":false,"properties":{"image":{"type":"string","description":"Image name (in standard Docker image reference format) to use for this container","minLength":1},"build_directory":{"type":"string","description":"Path (relative to the configuration file's directory) to a directory containing a Dockerfile to build and use as an image for this container","minLength":1},"build_args":{"description":"List of build args to use when building the image in build_directory","$ref":"#/definitions/buildArgList"},"build_target":{"type":"string","description":"Dockerfile stage name to build and use for this container","minLength":1},"build_ssh":{"description":"List of SSH agents to forward to the image build process when building the image in build_directory","$ref":"#/definitions/buildSSHAgentList"},"build_secrets":{"description":"Secrets to expose to the image build process when building the image in build_directory","$ref":"#/definitions/buildSecretsList"},"dockerfile":{"type":"string","description":"Dockerfile (relative to build_directory) to use when building the image. Defaults to Dockerfile if not set.","minLength":1},"command":{"type":"string","description":"Command to run when the container starts","minLength":1},"entrypoint":{"type":"string","description":"Entrypoint to use to run the command","minLength":1},"environment":{"description":"List of environment variables for the container","$ref":"#/definitions/environmentVariableList"},"working_directory":{"type":"string","description":"Working directory to start the container in","minLength":1},"volumes":{"description":"List of volume mounts to create for the container","$ref":"#/definitions/volumeMountList"},"ports":{"description":"List of ports to make available to the host machine","$ref":"#/definitions/portMappingList"},"dependencies":{"description":"List of other containers that should be started and healthy before starting this container","$ref":"#/definitions/containerDependencyList"},"health_check":{"description":"Overrides health check configuration specified in the image or Dockerfile","$ref":"#/definitions/healthCheckOptions"},"run_as_current_user":{"$ref":"#/definitions/runAsCurrentUserOptions"},"privileged":{"type":"boolean","description":"Enable privileged mode for the container"},"enable_init_process":{"type":"boolean","description":"Set to `true` to run an init process inside the container that forwards signals and reaps processes"},"capabilities_to_add":{"description":"List of additional capabilities to add to the container","$ref":"#/definitions/capabilityList"},"capabilities_to_drop":{"description":"List of additional capabilities to remove from the container","$ref":"#/definitions/capabilityList"},"additional_hostnames":{"description":"Hostnames to associate with this container in addition to the default hostname","$ref":"#/definitions/additionalHostnamesList"},"additional_hosts":{"description":"Additional hostnames to add to /etc/hosts in the container","type":"object","additionalProperties":{"type":"string"}},"setup_commands":{"description":"Commands to run after the container reports as healthy but before dependency containers start","$ref":"#/definitions/setupCommandsList"},"log_driver":{"type":"string","description":"Docker log driver to use"},"log_options":{"description":"Additional options to pass to Docker log driver","type":"object","additionalProperties":{"type":"string"}},"image_pull_policy":{"description":"Whether or not to pull image (including base image for containers that use a built image), even if it has already been pulled","type":"string","enum":["Always","IfNotPresent"]},"shm_size":{"description":"Size of /dev/shm (shared memory for IPC) for the container","type":"string","pattern":"^\\d+\\s*[mkg]?b?$"},"labels":{"description":"Labels to apply to the container","type":"object","additionalProperties":{"type":"string"}}},"oneOf":[{"required":["image"],"not":{"required":["build_args","dockerfile","build_target","build_ssh"]}},{"required":["build_directory"]}]},"tasks":{"type":"object","description":"Definitions for each of your tasks, the actions you launch through Batect","additionalProperties":{"$ref":"#/definitions/task"}},"task":{"type":"object","description":"Definition of a single task","additionalProperties":false,"properties":{"run":{"$ref":"#/definitions/taskRunOptions"},"description":{"type":"string","description":"Description shown when running `batect --list-tasks`","minLength":1},"group":{"type":"string","description":"Name used to group tasks when running `batect --list-tasks`","minLength":1},"dependencies":{"description":"List of other containers that should be started and healthy before starting the task container given in `run`","$ref":"#/definitions/containerDependencyList"},"prerequisites":{"type":"array","description":"List of other tasks that should be run before running this task","uniqueItems":true,"items":{"type":"string"}},"customise":{"type":"object","description":"Customisations for dependency containers run as part of this task","additionalProperties":{"$ref":"#/definitions/taskContainerCustomisation"}}},"anyOf":[{"required":["run"]},{"required":["prerequisites"],"not":{"required":["dependencies","run"]}}]},"taskRunOptions":{"type":"object","description":"Specifies what to do when this task starts","additionalProperties":false,"properties":{"container":{"type":"string","description":"Container to run for this task","minLength":1},"command":{"type":"string","description":"Command to run for this task","minLength":1},"entrypoint":{"type":"string","description":"Entrypoint to use to run the command for this task","minLength":1},"environment":{"description":"List of environment variables to pass to the container, in addition to those defined on the container itself","$ref":"#/definitions/environmentVariableList"},"ports":{"description":"List of port mappings to create for the container, in addition to those defined on the container itself","$ref":"#/definitions/portMappingList"},"working_directory":{"type":"string","description":"Working directory to start the container in","minLength":1}},"required":["container"]},"taskContainerCustomisation":{"type":"object","additionalProperties":false,"properties":{"environment":{"description":"List of environment variables to pass to the container, in addition to those defined on the container itself","$ref":"#/definitions/environmentVariableList"},"ports":{"description":"List of port mappings to create for the container, in addition to those defined on the container itself","$ref":"#/definitions/portMappingList"},"working_directory":{"type":"string","description":"Working directory to start the container in","minLength":1}}},"containerDependencyList":{"type":"array","uniqueItems":true,"items":{"type":"string","minLength":1}},"additionalHostnamesList":{"type":"array","uniqueItems":true,"items":{"type":"string","minLength":1}},"environmentVariableList":{"type":"object","additionalProperties":{"type":["string","number"]}},"buildArgList":{"type":"object","additionalProperties":{"type":"string"}},"buildSSHAgentList":{"type":"array","items":{"minLength":1,"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"ID used to refer to agent from Dockerfile","minimum":1},"paths":{"type":"array","description":"Paths to keys or SSH agent sockets to expose to image build process","items":{"type":"string"}}},"required":["id"]}},"buildSecretsList":{"type":"object","additionalProperties":{"$ref":"#/definitions/buildSecret"}},"buildSecret":{"oneOf":[{"$ref":"#/definitions/environmentSecret"},{"$ref":"#/definitions/fileSecret"}]},"environmentSecret":{"type":"object","additionalProperties":false,"properties":{"environment":{"type":"string","description":"Name of the environment variable to expose as a secret","minLength":1}},"required":["environment"]},"fileSecret":{"type":"object","additionalProperties":false,"properties":{"path":{"type":"string","description":"Path to the file to expose as a secret","minLength":1}},"required":["path"]},"portMappingList":{"type":"array","items":{"oneOf":[{"type":"string","pattern":"^\\d+(-\\d+)?:\\d+(-\\d+)?(/.*)?$"},{"type":"object","additionalProperties":false,"properties":{"local":{"type":"integer","description":"Port on the host machine to map","minimum":1},"container":{"type":"integer","description":"Port inside the container to map","minimum":1},"protocol":{"type":"string","description":"Protocol to use (eg. TCP or UDP)","minLength":1}},"required":["local","container"]},{"type":"object","additionalProperties":false,"properties":{"local":{"type":"string","description":"Ports on the host machine to map","pattern":"^\\d+-\\d+$"},"container":{"type":"string","description":"Ports inside the container to map","pattern":"^\\d+-\\d+$"},"protocol":{"type":"string","description":"Protocol to use (eg. TCP or UDP)","minLength":1}},"required":["local","container"]}]}},"volumeMountList":{"type":"array","items":{"oneOf":[{"type":"string","pattern":"^.+:.+(:.+)?$"},{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string","description":"Type of volume mount","enum":["local"]},"local":{"type":"string","description":"Path on the host machine to mount","minLength":1},"container":{"type":"string","description":"Path inside the container to mount the host path at","minLength":1},"options":{"type":"string","description":"Docker volume mount options to use when creating mount","enum":["cached","delegated","consistent","default","ro"]}},"required":["local","container"]},{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string","description":"Type of volume mount","enum":["cache"]},"name":{"type":"string","description":"Name of the cache","minLength":1},"container":{"type":"string","description":"Path inside the container to mount the cache at","minLength":1},"options":{"type":"string","description":"Docker volume mount options to use when creating mount","enum":["cached","delegated","consistent","default","ro"]}},"required":["type","name","container"]},{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string","description":"Type of volume mount","enum":["tmpfs"]},"container":{"type":"string","description":"Path inside the container to mount the tmpfs filesystem at","minLength":1},"options":{"type":"string","description":"Docker tmpfs mount options to use when creating mount"}},"required":["type","container"]}]}},"healthCheckOptions":{"type":"object","additionalProperties":false,"properties":{"retries":{"type":"integer","description":"The number of times to perform the health check before considering the container unhealthy","minimum":0},"interval":{"type":"string","description":"The interval between runs of the health check. Accepts values such as `2s` (two seconds) or `1m` (one minute).","minLength":1},"start_period":{"type":"string","description":"The time to wait before failing health checks count against the retry count. The health check is still run during this period, and if the check succeeds, the container is immediately considered healthy. Accepts values such as `2s` (two seconds) or `1m` (one minute).","minLength":1},"timeout":{"type":"string","description":"The time to wait before timing out a single health check command invocation. Accepts values such as `2s` (two seconds) or `1m` (one minute).","minLength":1},"command":{"type":"string","description":"The command to run to check the health of the container. If this command exits with code 0, the container is considered healthy.","minLength":1}}},"runAsCurrentUserOptions":{"oneOf":[{"type":"object","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Set to `true` to enable 'run as current user' mode","enum":[false]}},"required":["enabled"]},{"type":"object","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Set to `true` to enable 'run as current user' mode","enum":[true]},"home_directory":{"type":"string","description":"Directory to use as home directory for user inside container","minLength":1}},"required":["enabled","home_directory"]}]},"capabilityList":{"type":"array","items":{"oneOf":[{"type":"string","enum":["AUDIT_CONTROL","AUDIT_READ","AUDIT_WRITE","BLOCK_SUSPEND","CHOWN","DAC_OVERRIDE","DAC_READ_SEARCH","FOWNER","FSETID","IPC_LOCK","IPC_OWNER","KILL","LEASE","LINUX_IMMUTABLE","MAC_ADMIN","MAC_OVERRIDE","MKNOD","NET_ADMIN","NET_BIND_SERVICE","NET_BROADCAST","NET_RAW","SETGID","SETFCAP","SETPCAP","SETUID","SYS_ADMIN","SYS_BOOT","SYS_CHROOT","SYS_MODULE","SYS_NICE","SYS_PACCT","SYS_PTRACE","SYS_RAWIO","SYS_RESOURCE","SYS_TIME","SYS_TTY_CONFIG","SYSLOG","WAKE_ALARM","ALL"]}]}},"setupCommandsList":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"command":{"type":"string","description":"Command to execute","minLength":1},"working_directory":{"type":"string","description":"Working directory to start the command in (defaults to container working directory if not set)","minLength":1}},"required":["command"]}},"configVariablesList":{"type":"object","description":"Definitions for each of the config variables used to configure your tasks and containers","additionalProperties":{"$ref":"#/definitions/configVariable"}},"configVariable":{"type":"object","description":"Definition of a single config variable","additionalProperties":false,"properties":{"description":{"type":"string","description":"Human-readable description of the purpose of the variable","minLength":1},"default":{"type":"string","description":"Default value of the variable if one is not provided elsewhere","minLength":1}}},"includesList":{"type":"array","description":"List of configuration files to include in this project","items":{"$ref":"#/definitions/include"}},"include":{"oneOf":[{"type":"string","description":"Path (relative to this file) to the file to include"},{"type":"object","properties":{"type":{"type":"string","description":"The type of include","enum":["file"]},"path":{"type":"string","description":"Path (relative to this file) of the file to include","minLength":1}},"additionalProperties":false,"required":["type","path"]},{"type":"object","properties":{"type":{"type":"string","description":"The type of include","enum":["git"]},"repo":{"type":"string","description":"Git repository containing the file to include","minLength":1},"ref":{"type":"string","description":"Git reference (commit, tag or branch) containing the file to include"},"path":{"type":"string","description":"Path (relative to the root of the repository) of the file to include (defaults to batect-bundle.yml if not set)","minLength":1}},"additionalProperties":false,"required":["type","repo","ref"]}]}}}
</schema>

[User] Provide a JSON object that satisfies the schema "JSON schema for Batect configuration files". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

The name of your project. Used to label any images built.

Forbid reporting telemetry information for this project, even if the user has previously consented to telemetry.

Definitions for each of the containers that make up your various environments

Image name (in standard Docker image reference format) to use for this container

Path (relative to the configuration file's directory) to a directory containing a Dockerfile to build and use as an image for this container

List of build args to use when building the image in build_directory

Dockerfile stage name to build and use for this container

List of SSH agents to forward to the image build process when building the image in build_directory

Secrets to expose to the image build process when building the image in build_directory

Dockerfile (relative to build_directory) to use when building the image. Defaults to Dockerfile if not set.

Command to run when the container starts

Entrypoint to use to run the command

List of environment variables for the container

Working directory to start the container in

List of volume mounts to create for the container

List of ports to make available to the host machine

List of other containers that should be started and healthy before starting this container

Overrides health check configuration specified in the image or Dockerfile

Enable privileged mode for the container

Set to `true` to run an init process inside the container that forwards signals and reaps processes

List of additional capabilities to add to the container

List of additional capabilities to remove from the container

Hostnames to associate with this container in addition to the default hostname

Additional hostnames to add to /etc/hosts in the container

Commands to run after the container reports as healthy but before dependency containers start

Docker log driver to use

Additional options to pass to Docker log driver

Whether or not to pull image (including base image for containers that use a built image), even if it has already been pulled

Size of /dev/shm (shared memory for IPC) for the container

Labels to apply to the container

Definitions for each of your tasks, the actions you launch through Batect

Definition of a single task

Description shown when running `batect --list-tasks`

Name used to group tasks when running `batect --list-tasks`

List of other containers that should be started and healthy before starting the task container given in `run`

List of other tasks that should be run before running this task

Customisations for dependency containers run as part of this task

Specifies what to do when this task starts

Container to run for this task

Command to run for this task

Entrypoint to use to run the command for this task

List of environment variables to pass to the container, in addition to those defined on the container itself

List of port mappings to create for the container, in addition to those defined on the container itself

ID used to refer to agent from Dockerfile

Paths to keys or SSH agent sockets to expose to image build process

Name of the environment variable to expose as a secret

Path to the file to expose as a secret

Port on the host machine to map

Port inside the container to map

Protocol to use (eg. TCP or UDP)

Ports on the host machine to map

Ports inside the container to map

Protocol to use (eg. TCP or UDP)

Type of volume mount

Path on the host machine to mount

Path inside the container to mount the host path at

Docker volume mount options to use when creating mount

Type of volume mount

Name of the cache

Path inside the container to mount the cache at

Type of volume mount

Path inside the container to mount the tmpfs filesystem at

Docker tmpfs mount options to use when creating mount

The number of times to perform the health check before considering the container unhealthy

The interval between runs of the health check. Accepts values such as `2s` (two seconds) or `1m` (one minute).

The time to wait before failing health checks count against the retry count. The health check is still run during this period, and if the check succeeds, the container is immediately considered healthy. Accepts values such as `2s` (two seconds) or `1m` (one minute).

The time to wait before timing out a single health check command invocation. Accepts values such as `2s` (two seconds) or `1m` (one minute).

The command to run to check the health of the container. If this command exits with code 0, the container is considered healthy.

Set to `true` to enable 'run as current user' mode

Directory to use as home directory for user inside container

Command to execute

Working directory to start the command in (defaults to container working directory if not set)

Definitions for each of the config variables used to configure your tasks and containers

Definition of a single config variable

Human-readable description of the purpose of the variable

Default value of the variable if one is not provided elsewhere

List of configuration files to include in this project

Path (relative to this file) to the file to include

The type of include

Path (relative to this file) of the file to include

The type of include

Git repository containing the file to include

Git reference (commit, tag or branch) containing the file to include

Path (relative to the root of the repository) of the file to include (defaults to batect-bundle.yml if not set)

Provide a JSON object that satisfies the schema "JSON schema for Batect configuration files". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$schema":"http://json-schema.org/draft-07/schema#","title":"MS\u00b2Rescore configuration","type":"object","required":["ms2rescore"],"properties":{"ms2rescore":{"description":"General MS\u00b2Rescore settings.","type":"object","required":["psm_file"],"additionalProperties":false,"properties":{"feature_generators":{"description":"Feature generators and their configurations.","type":"object","patternProperties":{".*":{"$ref":"#/definitions/feature_generator"},"basic":{"$ref":"#/definitions/basic"},"ms2pip":{"$ref":"#/definitions/ms2pip"},"deeplc":{"$ref":"#/definitions/deeplc"},"maxquant":{"$ref":"#/definitions/maxquant"},"ionmob":{"$ref":"#/definitions/ionmob"},"im2deep":{"$ref":"#/definitions/im2deep"}},"default":{"basic":{},"ms2pip":{"model":"HCD","ms2_tolerance":0.02},"deeplc":{},"maxquant":{}}},"rescoring_engine":{"description":"Rescoring engine to use and its configuration. Leave empty to skip rescoring and write features to file.","type":"object","minProperties":0,"maxProperties":1,"patternProperties":{".*":{"$ref":"#/definitions/rescoring_engine"},"percolator":{"$ref":"#/definitions/percolator"},"mokapot":{"$ref":"#/definitions/mokapot"}},"default":{"mokapot":{}}},"config_file":{"description":"Path to configuration file","oneOf":[{"type":"string"},{"type":"null"}]},"psm_file":{"description":"Path to file with peptide-spectrum matches.","oneOf":[{"type":"string"},{"type":"null"},{"type":"array","items":{"type":"string"}}]},"psm_file_type":{"description":"PSM file type. By default inferred from file extension.","type":"string","default":"infer"},"psm_reader_kwargs":{"description":"Keyword arguments passed to the PSM reader.","type":"object","default":{}},"spectrum_path":{"description":"Path to spectrum file or directory with spectrum files","oneOf":[{"type":"string"},{"type":"null"}]},"output_path":{"description":"Path and root name for output files","oneOf":[{"type":"string"},{"type":"null"}]},"log_level":{"description":"Logging level","type":"string","enum":["debug","info","warning","error","critical"]},"id_decoy_pattern":{"description":"Regex pattern used to identify the decoy PSMs in identification file.","oneOf":[{"type":"string"},{"type":"null"}],"default":null},"spectrum_id_pattern":{"description":"Regex pattern to extract index or scan number from spectrum file. Requires at least one capturing group.","oneOf":[{"type":"string"},{"type":"null"}],"default":"(.*)","format":"regex"},"psm_id_pattern":{"description":"Regex pattern to extract index or scan number from PSM file. Requires at least one capturing group.","oneOf":[{"type":"string"},{"type":"null"}],"default":"(.*)","format":"regex"},"psm_id_rt_pattern":{"description":"Regex pattern to extract retention time from PSM identifier. Requires at least one capturing group.","oneOf":[{"type":"string"},{"type":"null"}],"default":null,"format":"regex"},"psm_id_im_pattern":{"description":"Regex pattern to extract ion mobility from PSM identifier. Requires at least one capturing group.","oneOf":[{"type":"string"},{"type":"null"}],"default":null,"format":"regex"},"lower_score_is_better":{"description":"Bool indicating if lower score is better","type":"boolean","default":false},"max_psm_rank_input":{"description":"Maximum rank of PSMs to use as input for rescoring","type":"number","default":10,"minimum":1},"max_psm_rank_output":{"description":"Maximum rank of PSMs to return after rescoring, before final FDR calculation","type":"number","default":1,"minimum":1},"modification_mapping":{"description":"Mapping of modification labels to each replacement label.","type":"object","default":{}},"fixed_modifications":{"description":"Mapping of amino acids with fixed modifications to the modification name.","type":"object","default":{},"additionalProperties":true},"processes":{"description":"Number of parallel processes to use; -1 for all available","type":"number","multipleOf":1,"minimum":-1,"default":-1},"rename_to_usi":{"description":"Convert spectrum IDs to their universal spectrum identifier","type":"boolean"},"fasta_file":{"description":"Path to FASTA file with protein sequences to use for protein inference","oneOf":[{"type":"string"},{"type":"null"}]},"write_flashlfq":{"description":"Write results to a FlashLFQ-compatible file","type":"boolean","default":false},"write_report":{"description":"Write an HTML report with various QC metrics and charts","type":"boolean","default":false},"profile":{"description":"Write a txt report using cProfile for profiling","type":"boolean","default":false}}}},"definitions":{"feature_generator":{"description":"Feature generator configuration","type":"object","additionalProperties":true},"rescoring_engine":{"description":"Rescoring engine configuration","type":"object","additionalProperties":true},"basic":{"$ref":"#/definitions/feature_generator","description":"Basic feature generator configuration","type":"object","additionalProperties":true},"ms2pip":{"$ref":"#/definitions/feature_generator","description":"MS\u00b2PIP feature generator configuration","type":"object","additionalProperties":true,"properties":{"model":{"description":"MS\u00b2PIP model to use (see MS\u00b2PIP documentation)","type":"string","default":"HCD"},"ms2_tolerance":{"description":"MS2 error tolerance in Da","type":"number","minimum":0,"default":0.02}}},"deeplc":{"$ref":"#/definitions/feature_generator","description":"DeepLC feature generator configuration","type":"object","additionalProperties":true,"properties":{"calibration_set_size":{"description":"Calibration set size","oneOf":[{"type":"integer"},{"type":"number"}],"default":0.15}}},"maxquant":{"$ref":"#/definitions/feature_generator","description":"MaxQuant feature generator configuration","type":"object","additionalProperties":true},"ionmob":{"$ref":"#/definitions/feature_generator","description":"Ion mobility feature generator configuration using Ionmob","type":"object","additionalProperties":true,"properties":{"ionmob_model":{"description":"Path to Ionmob model directory","type":"string","default":"GRUPredictor"},"reference_dataset":{"description":"Path to Ionmob reference dataset file","type":"string","default":"Meier_unimod.parquet"},"tokenizer":{"description":"Path to tokenizer json file","type":"string","default":"tokenizer.json"}}},"im2deep":{"$ref":"#/definitions/feature_generator","description":"Ion mobility feature generator configuration using IM2Deep","type":"object","additionalProperties":true,"properties":{"reference_dataset":{"description":"Path to IM2Deep reference dataset file","type":"string","default":"Meier_unimod.parquet"}}},"mokapot":{"$ref":"#/definitions/rescoring_engine","description":"Mokapot rescoring engine configuration. Additional properties are passed to the Mokapot brew function.","type":"object","additionalProperties":true,"properties":{"train_fdr":{"description":"FDR threshold for training Mokapot","type":"number","minimum":0,"maximum":1,"default":0.01},"write_weights":{"description":"Write Mokapot weights to a text file","type":"boolean","default":false},"write_txt":{"description":"Write Mokapot results to a text file","type":"boolean","default":false}}},"percolator":{"$ref":"#/definitions/rescoring_engine","description":"Percolator rescoring engine configuration","type":"object","additionalProperties":true,"properties":{"init-weights":{"description":"Weights file for scoring function","oneOf":[{"type":"string"},{"type":"null"}],"default":false}}}}}
</schema>

[User] Provide a JSON object that satisfies the schema "MS²Rescore configuration". Here are the required top‑level fields: ms2rescore. Return only the valid JSON object.

MS²Rescore configuration

General MS²Rescore settings.

Feature generators and their configurations.

Rescoring engine to use and its configuration. Leave empty to skip rescoring and write features to file.

Path to configuration file

Path to file with peptide-spectrum matches.

PSM file type. By default inferred from file extension.

Keyword arguments passed to the PSM reader.

Path to spectrum file or directory with spectrum files

Path and root name for output files

Logging level

Regex pattern used to identify the decoy PSMs in identification file.

Regex pattern to extract index or scan number from spectrum file. Requires at least one capturing group.

Regex pattern to extract index or scan number from PSM file. Requires at least one capturing group.

Regex pattern to extract retention time from PSM identifier. Requires at least one capturing group.

Regex pattern to extract ion mobility from PSM identifier. Requires at least one capturing group.

Bool indicating if lower score is better

Maximum rank of PSMs to use as input for rescoring

Maximum rank of PSMs to return after rescoring, before final FDR calculation

Mapping of modification labels to each replacement label.

Mapping of amino acids with fixed modifications to the modification name.

Number of parallel processes to use; -1 for all available

Convert spectrum IDs to their universal spectrum identifier

Path to FASTA file with protein sequences to use for protein inference

Write results to a FlashLFQ-compatible file

Write an HTML report with various QC metrics and charts

Write a txt report using cProfile for profiling

Feature generator configuration

Rescoring engine configuration

Basic feature generator configuration

MS²PIP feature generator configuration

MS²PIP model to use (see MS²PIP documentation)

MS2 error tolerance in Da

DeepLC feature generator configuration

Calibration set size

MaxQuant feature generator configuration

Ion mobility feature generator configuration using Ionmob

Path to Ionmob model directory

Path to Ionmob reference dataset file

Path to tokenizer json file

Ion mobility feature generator configuration using IM2Deep

Path to IM2Deep reference dataset file

Mokapot rescoring engine configuration. Additional properties are passed to the Mokapot brew function.

FDR threshold for training Mokapot

Write Mokapot weights to a text file

Write Mokapot results to a text file

Percolator rescoring engine configuration

Weights file for scoring function

Provide a JSON object that satisfies the schema "MS²Rescore configuration". Here are the required top‑level fields: ms2rescore. Return only the valid JSON object.


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$schema":"http://json-schema.org/draft-07/schema","type":"object","title":"Schema for cog.yaml","description":"Defines how to build a Docker image and how to run predictions on your model inside that image.","properties":{"build":{"$id":"#/properties/build","type":"object","description":"This stanza describes how to build the Docker image your model runs in.","properties":{"cuda":{"$id":"#/properties/build/properties/cuda","type":"string","description":"Cog automatically picks the correct version of CUDA to install, but this lets you override it for whatever reason."},"cudnn":{"$id":"#/properties/build/properties/cudnn","type":"string","description":"Cog automatically picks the correct version of cuDNN to install, but this lets you override it for whatever reason."},"gpu":{"$id":"#/properties/build/properties/gpu","type":"boolean","description":"Enable GPUs for this model. When enabled, the [nvidia-docker](https://github.com/NVIDIA/nvidia-docker) base image will be used, and Cog will automatically figure out what versions of CUDA and cuDNN to use based on the version of Python, PyTorch, and Tensorflow that you are using."},"python_version":{"$id":"#/properties/build/properties/python_version","type":["string","number"],"description":"The minor (`3.8`) or patch (`3.8.1`) version of Python to use."},"python_packages":{"$id":"#/properties/build/properties/python_packages","type":["array","null"],"description":"A list of Python packages to install, in the format `package==version`.","additionalItems":true,"items":{"$id":"#/properties/build/properties/python_packages/items","anyOf":[{"$id":"#/properties/build/properties/python_packages/items/anyOf/0","type":"string"}]}},"pre_install":{"$id":"#/properties/build/properties/pre_install","type":["array","null"],"description":"A list of setup commands to run in the environment before your Python packages are installed.","additionalItems":true,"items":{"$id":"#/properties/build/properties/pre_install/items","anyOf":[{"$id":"#/properties/build/properties/pre_install/items/anyOf/0","type":"string"}]}},"python_requirements":{"$id":"#/properties/build/properties/python_requirements","type":"string","description":"A pip requirements file specifying the Python packages to install."},"system_packages":{"$id":"#/properties/build/properties/system_packages","type":["array","null"],"description":"A list of Ubuntu APT packages to install.","additionalItems":true,"items":{"$id":"#/properties/build/properties/system_packages/items","anyOf":[{"$id":"#/properties/build/properties/system_packages/items/anyOf/0","type":"string"}]}},"run":{"$id":"#/properties/build/properties/run","type":["array","null"],"description":"A list of setup commands to run in the environment after your system packages and Python packages have been installed. If you're familiar with Docker, it's like a `RUN` instruction in your `Dockerfile`.","additionalItems":true,"items":{"$id":"#/properties/build/properties/run/items","anyOf":[{"$id":"#/properties/build/properties/run/items/anyOf/0","type":"string"},{"$id":"#/properties/build/properties/run/items/anyOf/1","type":"object","properties":{"command":{"type":"string"},"mounts":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["secret"]},"id":{"type":"string"},"target":{"type":"string"}},"required":["type","id","target"]}}},"required":["command"]}]}},"fast":{"$id":"#/properties/build/properties/fast","type":"boolean","description":"A flag to enable the experimental fast-push feature from a config level."},"python_overrides":{"$id":"#/properties/build/properties/python_overrides","type":"string","description":"A file in the format of pip requirements that specifies python overrides."}},"additionalProperties":false},"image":{"$id":"#/properties/image","type":"string","description":"The name given to built Docker images. If you want to push to a registry, this should also include the registry name."},"predict":{"$id":"#/properties/predict","type":"string","description":"The pointer to the `Predictor` object in your code, which defines how predictions are run on your model."},"train":{"$id":"#/properties/train","type":"string","description":"The pointer to the `Predictor` object in your code, which defines how predictions are run on your model."},"concurrency":{"$id":"#/properties/concurrency","type":"object","description":"The concurrency settings for the model.","required":["max"],"additionalProperties":false,"properties":{"max":{"$id":"#/properties/concurrency/properties/max","type":"integer","description":"The maximum number of concurrent predictions."},"default_target":{"$id":"#/properties/concurrency/properties/default_target","type":"integer","description":"The default target for number of concurrent predictions. This setting can be used by an autoscaler to determine when to scale a deployment of a model up or down."}}},"tests":{"$id":"#/properties/tests","type":["array","null"],"description":"A list of test cog commands to run.","additionalItems":false,"items":{"type":"object","additionalItems":true}},"environment":{"$id":"#/properties/properties/environment","type":["array","null"],"description":"A list of environment variables to make available during builds and at runtime, in the format `NAME=value`","additionalItems":true,"items":{"$id":"#/properties/properties/environment/items","type":"string","pattern":"^[A-Za-z_][A-Za-z0-9_]*=[^\\s]+$"}}},"additionalProperties":false}
</schema>

[User] Provide a JSON object that satisfies the schema "Schema for cog.yaml". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

Schema for cog.yaml

Defines how to build a Docker image and how to run predictions on your model inside that image.

This stanza describes how to build the Docker image your model runs in.

Cog automatically picks the correct version of CUDA to install, but this lets you override it for whatever reason.

Cog automatically picks the correct version of cuDNN to install, but this lets you override it for whatever reason.

Enable GPUs for this model. When enabled, the [nvidia-docker](https://github.com/NVIDIA/nvidia-docker) base image will be used, and Cog will automatically figure out what versions of CUDA and cuDNN to use based on the version of Python, PyTorch, and Tensorflow that you are using.

The minor (`3.8`) or patch (`3.8.1`) version of Python to use.

A list of Python packages to install, in the format `package==version`.

A list of setup commands to run in the environment before your Python packages are installed.

A pip requirements file specifying the Python packages to install.

A list of Ubuntu APT packages to install.

A list of setup commands to run in the environment after your system packages and Python packages have been installed. If you're familiar with Docker, it's like a `RUN` instruction in your `Dockerfile`.

A flag to enable the experimental fast-push feature from a config level.

A file in the format of pip requirements that specifies python overrides.

The name given to built Docker images. If you want to push to a registry, this should also include the registry name.

The pointer to the `Predictor` object in your code, which defines how predictions are run on your model.

The concurrency settings for the model.

The maximum number of concurrent predictions.

The default target for number of concurrent predictions. This setting can be used by an autoscaler to determine when to scale a deployment of a model up or down.

A list of test cog commands to run.

A list of environment variables to make available during builds and at runtime, in the format `NAME=value`

Provide a JSON object that satisfies the schema "Schema for cog.yaml". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$id":"https://github.com/nwithan8/tauticord/.schema/config_v2.schema.json","$schema":"http://json-schema.org/draft-07/schema#","$comment":"https://github.com/nwithan8/tauticord","title":"Tauticord Config v2 Schema","type":"object","additionalProperties":true,"definitions":{"emptyString":{"id":"#/definitions/emptyString","type":"string","pattern":"^$"},"emptyableString":{"id":"#/definitions/emptyableString","oneOf":[{"$ref":"#/definitions/emptyString"},{"type":"string"}]},"numberZero":{"id":"#/definitions/numberZero","type":"number","minimum":0,"maximum":0},"positiveInteger":{"id":"#/definitions/positiveInteger","type":"integer","minimum":1},"hostWithIpAndOptionalPort":{"id":"#/definitions/hostWithIpAndOptionalPort","type":"string","pattern":"^(https?://)?[a-zA-Z0-9.-]+(:[0-9]{1,5})?$"},"discordBotToken":{"id":"#/definitions/discordBotToken","type":"string","pattern":"^[MNO][a-zA-Z\\d_-]{23,25}\\.[a-zA-Z\\d_-]{6}\\.[a-zA-Z\\d_-]{27,}$","description":"A Discord Bot Token","$comment":"https://github.com/Yelp/detect-secrets/blob/master/detect_secrets/plugins/discord.py#L17C22-L17C81"},"discordChannelId":{"id":"#/definitions/discordChannelId","description":"A Discord channel ID","type":"string","pattern":"^[0-9]{17,20}$"},"discordUserId":{"id":"#/definitions/discordUserId","description":"A Discord user ID","type":"string","pattern":"^[0-9]{17,20}$"},"discordServerId":{"id":"#/definitions/discordServerId","description":"A Discord server ID","type":"string","pattern":"^[0-9]{17,20}$"},"discordTextChannelName":{"id":"#/definitions/discordTextChannelName","description":"A Discord text channel name. No emojis allowed.","type":"string","pattern":"^[a-z0-9-]{2,100}$","$comment":"Cannot contain spaces or uppercase letters"},"discordVoiceChannelName":{"id":"#/definitions/discordVoiceChannelName","description":"A Discord voice channel name. No emojis allowed.","type":"string","pattern":"^[a-zA-Z0-9-_ ]{2,100}$"},"discordCategoryName":{"id":"#/definitions/discordCategoryName","description":"A Discord category name. No emojis allowed.","type":"string","pattern":"^[a-zA-Z0-9-_ ]{2,100}$"},"tautulliApiKey":{"id":"#/definitions/tautulliApiKey","description":"A Tautulli API key","type":"string","pattern":"^[a-zA-Z0-9]{32}$"},"tautulliUrl":{"id":"#/definitions/tautulliUrl","description":"A Tautulli URL","$ref":"#/definitions/hostWithIpAndOptionalPort"},"voiceChannel":{"id":"#/definitions/voiceChannel","type":"object","properties":{"CustomName":{"description":"The custom name to use for the voice channel (overrides the default name)","oneOf":[{"$ref":"#/definitions/discordVoiceChannelName"},{"$ref":"#/definitions/emptyString"}]},"CustomEmoji":{"description":"The custom emoji to use for the voice channel (overrides the default emoji)","type":"string"},"Enable":{"description":"Whether to enable the voice channel","type":"boolean"},"VoiceChannelID":{"description":"The ID of the voice channel","oneOf":[{"$ref":"#/definitions/discordChannelId"},{"$ref":"#/definitions/numberZero"}]}},"required":["CustomName","CustomEmoji","Enable","VoiceChannelID"]},"recentlyAddedVoiceChannel":{"id":"#/definitions/voiceChannel","type":"object","properties":{"CustomName":{"description":"The custom name to use for the voice channel (overrides the default name)","oneOf":[{"$ref":"#/definitions/discordVoiceChannelName"},{"$ref":"#/definitions/emptyString"}]},"CustomEmoji":{"description":"The custom emoji to use for the voice channel (overrides the default emoji)","type":"string"},"Enable":{"description":"Whether to enable the voice channel","type":"boolean"},"VoiceChannelID":{"description":"The ID of the voice channel","oneOf":[{"$ref":"#/definitions/discordChannelId"},{"$ref":"#/definitions/numberZero"}]},"Hours":{"description":"The number of hours to look back for recently added items","type":"integer","minimum":1}},"required":["CustomName","CustomEmoji","Enable","VoiceChannelID","Hours"]},"library":{"id":"#/definitions/library","type":"object","properties":{"Name":{"description":"The name of the library as it appears in Plex","type":"string"},"ID":{"description":"The ID of the library as it appears in Tautulli. Use if the library name is not unique","oneOf":[{"$ref":"#/definitions/positiveInteger"},{"$ref":"#/definitions/numberZero"}]},"AlternateName":{"description":"An alternate name for the library (used as the voice channel name)","oneOf":[{"$ref":"#/definitions/discordVoiceChannelName"},{"$ref":"#/definitions/emptyString"}]},"Albums":{"description":"Settings for the voice channel about album information (used if the library is a music library)","$ref":"#/definitions/voiceChannel"},"Artists":{"description":"Settings for the voice channel about artist information (used if the library is a music library)","$ref":"#/definitions/voiceChannel"},"Episodes":{"description":"Settings for the voice channel about episode information (used if the library is a TV show library)","$ref":"#/definitions/voiceChannel"},"Movies":{"description":"Settings for the voice channel about movie information (used if the library is a movie library)","$ref":"#/definitions/voiceChannel"},"Series":{"description":"Settings for the voice channel about series/show information (used if the library is a TV show library)","$ref":"#/definitions/voiceChannel"},"Tracks":{"description":"Settings for the voice channel about track information (used if the library is a music library)","$ref":"#/definitions/voiceChannel"},"RecentlyAdded":{"description":"Settings for the voice channel about recently added items","$ref":"#/definitions/recentlyAddedVoiceChannel"}},"required":["Name","AlternateName"]},"combinedLibrarySubLibrary":{"id":"#/definitions/combinedLibrarySubLibrary","type":"object","properties":{"Name":{"description":"The name of the library as it appears in Tautulli","type":"string"},"ID":{"description":"The ID of the library as it appears in Tautulli. Use if the library name is not unique","oneOf":[{"$ref":"#/definitions/positiveInteger"},{"$ref":"#/definitions/numberZero"}]}},"required":["Name"]},"combinedLibrary":{"id":"#/definitions/combinedLibrary","type":"object","properties":{"Name":{"description":"The name for the combined library (used as the voice channel name)","oneOf":[{"$ref":"#/definitions/discordVoiceChannelName"},{"$ref":"#/definitions/emptyString"}]},"Libraries":{"description":"The libraries to combine","type":"array","items":{"$ref":"#/definitions/combinedLibrarySubLibrary"}},"Albums":{"description":"Settings for the voice channel about album information (used if the library is a music library)","$ref":"#/definitions/voiceChannel"},"Artists":{"description":"Settings for the voice channel about artist information (used if the library is a music library)","$ref":"#/definitions/voiceChannel"},"Episodes":{"description":"Settings for the voice channel about episode information (used if the library is a TV show library)","$ref":"#/definitions/voiceChannel"},"Movies":{"description":"Settings for the voice channel about movie information (used if the library is a movie library)","$ref":"#/definitions/voiceChannel"},"Series":{"description":"Settings for the voice channel about series/show information (used if the library is a TV show library)","$ref":"#/definitions/voiceChannel"},"Tracks":{"description":"Settings for the voice channel about track information (used if the library is a music library)","$ref":"#/definitions/voiceChannel"},"RecentlyAdded":{"description":"Settings for the voice channel about recently added items","$ref":"#/definitions/recentlyAddedVoiceChannel"}},"required":["Name","Libraries"]}},"properties":{"Tautulli":{"title":"Tautulli configuration","description":"Settings for the Tautulli instance","type":"object","properties":{"URL":{"title":"Tautulli URL","description":"The URL of the Tautulli instance","$ref":"#/definitions/tautulliUrl"},"APIKey":{"title":"Tautulli API key","description":"The API key for the Tautulli instance","$ref":"#/definitions/tautulliApiKey"},"UseSelfSignedCert":{"title":"Use self-signed certificate","description":"Whether to use a self-signed certificate for the Tautulli instance (ignore SSL warnings)","type":"boolean"},"RefreshSeconds":{"title":"Activity data refresh interval","description":"How often, in seconds, the bot pulls new live activity data. A 5-second minimum is built-in; it's for your own good","type":"integer","minimum":5,"multipleOf":5},"TerminateMessage":{"title":"Stream termination message","description":"The message to send when a stream is terminated","type":"string"}},"required":["URL","APIKey","UseSelfSignedCert","RefreshSeconds","TerminateMessage"]},"Discord":{"title":"Discord configuration","description":"Settings for the Discord bot and server","type":"object","properties":{"BotToken":{"title":"Discord bot token","description":"The token for the Discord bot","$ref":"#/definitions/discordBotToken"},"ServerID":{"title":"Discord server ID","description":"The ID of the Discord server where the bot will be used","$ref":"#/definitions/discordServerId"},"AdminIDs":{"title":"Admin IDs","description":"The IDs of the Discord users who will have admin permissions","type":"array","items":{"$ref":"#/definitions/discordUserId"}},"PostSummaryMessage":{"title":"Post summary message","description":"Whether to post a summary message in the activity summary channel","type":"boolean"},"ChannelName":{"title":"Activity summary channel name","description":"The name of the channel where the bot will post messages","$ref":"#/definitions/discordTextChannelName"},"EnableTermination":{"title":"Enable stream termination","description":"Whether to enable stream termination","type":"boolean"},"EnableSlashCommands":{"title":"Enable slash commands","description":"Whether to enable slash commands for the bot","type":"boolean"},"StatusMessage":{"title":"Bot Discord activity status","description":"Settings regarding the bot's Discord status/activity","type":"object","properties":{"Enable":{"title":"Enable bot activity status","description":"Whether to enable the bot's activity status","type":"boolean"},"CustomMessage":{"title":"Custom activity status message","description":"Display a custom activity status message. Overrides default if not-empty","type":"string"},"ShowStreamCount":{"title":"Show active stream count","description":"Whether to display current active stream count in activity status message","type":"boolean"}}}},"required":["BotToken","ServerID","AdminIDs","PostSummaryMessage","ChannelName","EnableSlashCommands"]},"Display":{"title":"Display configuration","description":"Settings for how the bot displays information","type":"object","properties":{"Anonymize":{"title":"Anonymization settings","description":"Settings for anonymizing user information","type":"object","properties":{"HideBandwidth":{"title":"Hide bandwidth","description":"Whether to hide bandwidth information","type":"boolean"},"HideETA":{"title":"Hide ETA","description":"Whether to hide ETAs for streams","type":"boolean"},"HidePlatforms":{"title":"Hide platforms","description":"Whether to hide stream platform information","type":"boolean"},"HidePlayerNames":{"title":"Hide player names","description":"Whether to hide stream player names","type":"boolean"},"HideProgress":{"title":"Hide progress","description":"Whether to hide stream progress","type":"boolean"},"HideQuality":{"title":"Hide quality","description":"Whether to hide stream quality information","type":"boolean"},"HideTranscode":{"title":"Hide transcode","description":"Whether to hide stream transcoding information","type":"boolean"},"HideUsernames":{"title":"Hide usernames","description":"Whether to hide Plex usernames","type":"boolean"}},"required":["HideBandwidth","HideETA","HidePlatforms","HidePlayerNames","HideProgress","HideQuality","HideTranscode","HideUsernames"]},"ServerName":{"title":"Server name","description":"The name of the Plex server","type":"string"},"ThousandsSeparator":{"title":"Thousands separator","description":"The character to use as a numerical thousands separator","type":"string"},"Time":{"title":"Time settings","description":"Settings for how the bot handles time","type":"object","properties":{},"required":[]},"UseFriendlyNames":{"title":"Use friendly names","description":"Whether to use Plex user names instead of Plex usernames","type":"boolean"}},"required":["Anonymize","ServerName","ThousandsSeparator","Time","UseFriendlyNames"]},"Extras":{"title":"Extras configuration","description":"Extra settings for the bot","type":"object","properties":{"AllowAnalytics":{"title":"Allow analytics","description":"Whether to allow the bot to collect and send analytics data","type":"boolean"},"EnableUpdateReminders":{"title":"Enable update reminders","description":"Whether to enable update reminders","type":"boolean"}},"required":["AllowAnalytics","EnableUpdateReminders"]},"Stats":{"title":"Stats configuration","description":"Settings for the bot's stat tracking features (via voice channels)","type":"object","properties":{"Activity":{"title":"Activity stats settings","type":"object","properties":{"CategoryName":{"title":"Category name","description":"The name of the category for activity stats","$ref":"#/definitions/discordCategoryName"},"Enable":{"title":"Enable activity stats","description":"Whether to enable activity stats","type":"boolean"},"StatTypes":{"title":"Stat types","description":"The types of activity stats to track","type":"object","properties":{"Bandwidth":{"title":"Bandwidth","description":"Settings for bandwidth stats","$ref":"#/definitions/voiceChannel"},"LocalBandwidth":{"title":"Local bandwidth","description":"Settings for local bandwidth stats","type":"object","$ref":"#/definitions/voiceChannel"},"PlexServerAvailability":{"title":"Plex server availability","description":"Settings for Plex server availability stats","type":"object","$ref":"#/definitions/voiceChannel"},"RemoteBandwidth":{"title":"Remote bandwidth","description":"Settings for remote bandwidth stats","type":"object","$ref":"#/definitions/voiceChannel"},"StreamCount":{"title":"Stream count","description":"Settings for stream count stats","type":"object","$ref":"#/definitions/voiceChannel"},"TranscodeCount":{"title":"Transcode count","description":"Settings for transcode count stats","type":"object","$ref":"#/definitions/voiceChannel"}},"required":["Bandwidth","LocalBandwidth","PlexServerAvailability","RemoteBandwidth","StreamCount","TranscodeCount"]}},"required":["CategoryName","Enable","StatTypes"]},"Libraries":{"title":"Library stats settings","description":"Settings for Plex library stats","type":"object","properties":{"Enable":{"title":"Enable library stats","description":"Whether to enable library stats","type":"boolean"},"CategoryName":{"title":"Category name","description":"The name of the category for library stats","$ref":"#/definitions/discordCategoryName"},"RefreshSeconds":{"title":"Library data refresh interval","description":"How often, in seconds, the bot pulls new library data. A 5-minute minimum is built-in; it's for your own good","type":"integer","minimum":300,"multipleOf":5},"Libraries":{"title":"Libraries","description":"Libraries to track","type":"array","items":{"$ref":"#/definitions/library"}},"CombinedLibraries":{"title":"Combined libraries","description":"Combined libraries to track","type":"array","items":{"$ref":"#/definitions/combinedLibrary"}}},"required":["Enable","CategoryName","RefreshSeconds","Libraries","CombinedLibraries"]},"Performance":{"title":"Performance stats settings","description":"Settings for performance stats","type":"object","properties":{"CategoryName":{"title":"Category name","description":"The name of the category for performance stats","$ref":"#/definitions/discordCategoryName"},"Enable":{"title":"Enable performance stats","description":"Whether to enable performance stats","type":"boolean"},"Metrics":{"title":"Metrics","description":"The performance metrics to track","type":"object","properties":{"CPU":{"title":"CPU","description":"Settings for CPU stats","type":"object","$ref":"#/definitions/voiceChannel"},"DiskSpace":{"title":"Disk space","description":"Settings for disk space stats","type":"object","$ref":"#/definitions/voiceChannel"},"Memory":{"title":"Memory","description":"Settings for memory stats","type":"object","$ref":"#/definitions/voiceChannel"},"UserCount":{"title":"User count","description":"Settings for user count stats","type":"object","$ref":"#/definitions/voiceChannel"}},"required":["CPU","DiskSpace","Memory","UserCount"]}},"required":["CategoryName","Enable","Metrics"]}},"required":["Activity","Libraries","Performance"]}},"required":["Tautulli","Discord","Display","Stats","Extras"]}
</schema>

[User] Provide a JSON object that satisfies the schema "Tauticord Config v2 Schema". Here are the required top‑level fields: Tautulli, Discord, Display, Stats, Extras. Return only the valid JSON object.

Tauticord Config v2 Schema

A Discord Bot Token

A Discord channel ID

A Discord user ID

A Discord server ID

A Discord text channel name. No emojis allowed.

Cannot contain spaces or uppercase letters

A Discord voice channel name. No emojis allowed.

A Discord category name. No emojis allowed.

A Tautulli API key

A Tautulli URL

The custom name to use for the voice channel (overrides the default name)

The custom emoji to use for the voice channel (overrides the default emoji)

Whether to enable the voice channel

The ID of the voice channel

Whether to enable the voice channel

The ID of the voice channel

The number of hours to look back for recently added items

CustomName CustomEmoji Enable VoiceChannelID Hours

The name of the library as it appears in Plex

The ID of the library as it appears in Tautulli. Use if the library name is not unique

An alternate name for the library (used as the voice channel name)

Settings for the voice channel about album information (used if the library is a music library)

Settings for the voice channel about artist information (used if the library is a music library)

Settings for the voice channel about episode information (used if the library is a TV show library)

Settings for the voice channel about movie information (used if the library is a movie library)

Settings for the voice channel about series/show information (used if the library is a TV show library)

Settings for the voice channel about track information (used if the library is a music library)

Settings for the voice channel about recently added items

The name of the library as it appears in Tautulli

The name for the combined library (used as the voice channel name)

The libraries to combine

Tautulli configuration

Settings for the Tautulli instance

Tautulli URL

The URL of the Tautulli instance

Tautulli API key

The API key for the Tautulli instance

Use self-signed certificate

Whether to use a self-signed certificate for the Tautulli instance (ignore SSL warnings)

Activity data refresh interval

How often, in seconds, the bot pulls new live activity data. A 5-second minimum is built-in; it's for your own good

Stream termination message

The message to send when a stream is terminated

URL APIKey UseSelfSignedCert RefreshSeconds TerminateMessage

Discord configuration

Settings for the Discord bot and server

Discord bot token

The token for the Discord bot

Discord server ID

The ID of the Discord server where the bot will be used

Admin IDs

The IDs of the Discord users who will have admin permissions

Post summary message

Whether to post a summary message in the activity summary channel

Activity summary channel name

The name of the channel where the bot will post messages

Enable stream termination

Whether to enable stream termination

Enable slash commands

Whether to enable slash commands for the bot

Bot Discord activity status

Settings regarding the bot's Discord status/activity

Enable bot activity status

Whether to enable the bot's activity status

Custom activity status message

Display a custom activity status message. Overrides default if not-empty

Show active stream count

Whether to display current active stream count in activity status message

BotToken ServerID AdminIDs PostSummaryMessage ChannelName EnableSlashCommands

Display configuration

Settings for how the bot displays information

Anonymization settings

Settings for anonymizing user information

Hide bandwidth

Whether to hide bandwidth information

Hide ETA

Whether to hide ETAs for streams

Hide platforms

Whether to hide stream platform information

Hide player names

Whether to hide stream player names

Hide progress

Whether to hide stream progress

Hide quality

Whether to hide stream quality information

Hide transcode

Whether to hide stream transcoding information

Hide usernames

Whether to hide Plex usernames

HideBandwidth HideETA HidePlatforms HidePlayerNames HideProgress HideQuality HideTranscode HideUsernames

Server name

The name of the Plex server

Thousands separator

The character to use as a numerical thousands separator

Time settings

Settings for how the bot handles time

Use friendly names

Whether to use Plex user names instead of Plex usernames

Anonymize ServerName ThousandsSeparator Time UseFriendlyNames

Extras configuration

Extra settings for the bot

Allow analytics

Whether to allow the bot to collect and send analytics data

Enable update reminders

Whether to enable update reminders

Stats configuration

Settings for the bot's stat tracking features (via voice channels)

Activity stats settings

Category name

The name of the category for activity stats

Enable activity stats

Whether to enable activity stats

Stat types

The types of activity stats to track

Bandwidth

Settings for bandwidth stats

Local bandwidth

Settings for local bandwidth stats

Plex server availability

Settings for Plex server availability stats

Remote bandwidth

Settings for remote bandwidth stats

Stream count

Settings for stream count stats

Transcode count

Settings for transcode count stats

Bandwidth LocalBandwidth PlexServerAvailability RemoteBandwidth StreamCount TranscodeCount

Library stats settings

Settings for Plex library stats

Enable library stats

Whether to enable library stats

Category name

The name of the category for library stats

Library data refresh interval

How often, in seconds, the bot pulls new library data. A 5-minute minimum is built-in; it's for your own good

Libraries

Libraries to track

Combined libraries

Combined libraries to track

Enable CategoryName RefreshSeconds Libraries CombinedLibraries

Performance stats settings

Settings for performance stats

Category name

The name of the category for performance stats

Enable performance stats

Whether to enable performance stats

Metrics

The performance metrics to track

CPU

Settings for CPU stats

Disk space

Settings for disk space stats

Memory

Settings for memory stats

User count

Settings for user count stats

Provide a JSON object that satisfies the schema "Tauticord Config v2 Schema". Here are the required top‑level fields: Tautulli, Discord, Display, Stats, Extras. Return only the valid JSON object.