[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#","$id":"http://github.com/Microsoft/Briefcase/product.schema.json","title":"MLBriefcase","description":"A ML briefcase schema","type":"object","definitions":{"resource":{"type":"object","properties":{"name":{"type":"string","description":"The name of this resource"},"credentialprovider":{"type":"string","description":"Name of the credential provider to be used."},"secret":{"$ref":"#/definitions/property"},"metadata":{"type":"object","description":"Allows to attach user-definied metadata to resources"}}},"property":{"anyOf":[{"type":"string"},{"type":"object","properties":{"key":{"type":"string","description":"Overrides the key to lookup the value for the property."}}}]},"azureTenantId":{"type":"object","properties":{"tenantid":{"$ref":"#/definitions/property","description":"Azure tenant id (a GUID)","examples":["72f988bf-86f1-41af-91ab-2d7cd011db47"]}}},"awsBoto3":{"type":"object","description":"AWS Boto3","allOf":[{"$ref":"#/definitions/resource"},{"type":"object","properties":{"region_name":{"$ref":"#/definitions/property","description":"Region name"},"key_id":{"$ref":"#/definitions/property","description":"AWS Access Key ID"}}}]}},"properties":{"azure":{"description":"Azure services","type":"object","properties":{"auth":{"description":"Azure authentication services","type":"object","properties":{"devicecode":{"description":"Azure Device Code authentication","type":"array","items":{"description":"Azure Device Code authentication. Prompts the user with a URL.","type":"object","allOf":[{"$ref":"#/definitions/resource"},{"$ref":"#/definitions/azureTenantId"},{"properties":{"name":{"default":"devicecode"}}}]}},"managedserviceidentity":{"description":"Azure Managed Service Idenity","type":"array","items":{"description":"Azure Managed Service Identity (https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/overview)","type":"object","allOf":[{"$ref":"#/definitions/resource"}]}},"serviceprincipal":{"description":"Azure Service Princiapl","type":"array","items":{"description":"Azure Service Principal","type":"object","allOf":[{"$ref":"#/definitions/resource"},{"$ref":"#/definitions/azureTenantId"},{"properties":{"name":{"default":"serviceprincipal"},"clientid":{"$ref":"#/definitions/property","description":"TODO The client id (a guid)"}}}]}}}},"subscription":{"description":"Azure Subscription","type":"array","items":{"description":"Azure Subscription","type":"object","allOf":[{"$ref":"#/definitions/resource"},{"properties":{"id":{"$ref":"#/definitions/property","description":"Azure subscription id (e.g. guids)"},"ids":{"type":"array","description":"List of Azure subscription ids (e.g. guids)","items":{"type":"string"}}}}]}},"keyvault":{"description":"Azure KeyVaults","type":"array","items":{"description":"Azure KeyVault https://docs.microsoft.com/en-us/azure/key-vault","type":"object","allOf":[{"$ref":"#/definitions/resource"},{"$ref":"#/definitions/azureTenantId"},{"properties":{"name":{"default":"keyvault"},"dnsname":{"$ref":"#/definitions/property","description":"DNS for the Azure KeyVault instance","default":"https://<name>.vault.azure.net/","examples":["https://example1.vault.azure.net/"]},"credential":{"$ref":"#/definitions/property","description":"Name of credential resource. E.g. device code or service principal resource"}}}]}},"cognitiveservice":{"type":"object","description":"Azure Cognitive Services","properties":{"anomalydetection":{"type":"array","description":"Azure Cognitive Service Anomaly Detection","items":{"description":"Azure Cognitive Service Anomaly Detection (https://docs.microsoft.com/en-us/azure/cognitive-services/anomaly-detector/)","allOf":[{"$ref":"#/definitions/resource"},{"properties":{"url":{"$ref":"#/definitions/property","description":"End point URL for Azure Cognitive Service","default":"https://<your-custom-subdomain>.api.cognitive.microsoft.com/anomalydetector/v1.0/timeseries/entire/detect","examples":["https://example1.api.cognitive.microsoft.com/anomalydetector/v1.0/timeseries/entire/detect"]}}}]}},"contentmoderator":{"type":"array","description":"Azure Cognitive Service Content Moderator","items":{"description":"Azure Cognitive Service Content Moderator","allOf":[{"$ref":"#/definitions/resource"},{"properties":{"url":{"$ref":"#/definitions/property","description":"End point URL for Azure Cognitive Service","default":"https://<your-custom-subdomain>.api.cognitive.microsoft.com/","examples":["https://example1.api.cognitive.microsoft.com/"]}}}]}},"face":{"type":"array","description":"Azure Cognitive Service Face","items":{"description":"Azure Cognitive Service Face (https://azure.microsoft.com/en-us/services/cognitive-services/face/)","allOf":[{"$ref":"#/definitions/resource"},{"properties":{"url":{"$ref":"#/definitions/property","description":"End point URL for Azure Cognitive Service","default":"https://<your-custom-subdomain>.api.cognitive.microsoft.com","examples":["https://example1.api.cognitive.microsoft.com"]}}}]}},"spellcheck":{"type":"array","description":"Azure Cognitive Service Spell Checker","items":{"description":"Azure Cognitive Service Spell Checker","allOf":[{"$ref":"#/definitions/resource"},{"properties":{"url":{"$ref":"#/definitions/property","description":"End point URL for Azure Cognitive Service","default":"https://<your-custom-subdomain>.api.cognitive.microsoft.com/","examples":["https://example1.api.cognitive.microsoft.com/"]}}}]}},"textanalytics":{"type":"array","description":"Azure Cognitive Service Text Analytics","items":{"description":"Azure Cognitive Service Text Analytics","allOf":[{"$ref":"#/definitions/resource"},{"properties":{"url":{"$ref":"#/definitions/property","description":"End point URL for Azure Cognitive Service","default":"https://<your-custom-subdomain>.api.cognitive.microsoft.com","examples":["https://example1.api.cognitive.microsoft.com"]}}}]}},"vision":{"type":"array","description":"Azure Cognitive Service Vision","items":{"description":"Azure Cognitive Service Vision","allOf":[{"$ref":"#/definitions/resource"},{"properties":{"url":{"$ref":"#/definitions/property","description":"End point URL for Azure Cognitive Service","default":"https://<your-custom-subdomain>.api.cognitive.microsoft.com","examples":["https://example1.api.cognitive.microsoft.com"]}}}]}}}},"storage":{"type":"object","description":"Azure Storage Services","properties":{"account":{"type":"array","description":"Azure Storage Account","items":{"description":"Azure Storage Account","allOf":[{"$ref":"#/definitions/resource"},{"properties":{"accountname":{"$ref":"#/definitions/property","description":"Azure blob account name"},"accountkey":{"$ref":"#/definitions/property","description":"Azure blob account key"},"secrettype":{"$ref":"#/definitions/property","description":"Is the secret a key or SAS token","default":"key","enum":["key","sas"]}}}]}},"blob":{"type":"array","description":"Azure Blob Storage","items":{"description":"Azure Blob Storage","allOf":[{"$ref":"#/definitions/resource"},{"properties":{"url":{"$ref":"#/definitions/property","description":"URL to Azure blob"},"account":{"$ref":"#/definitions/property","description":"Name of Azure Storage account resource object"},"containername":{"$ref":"#/definitions/property","description":"Name of container"},"path":{"$ref":"#/definitions/property","description":"Path to blob"}}}]}}}}}},"amazon":{"type":"object","description":"Amazon Web Services (AWS)","properties":{"rekognition":{"type":"array","items":{"type":"object","description":"AWS Rekognition services","$ref":"#/definitions/awsBoto3"}},"comprehend":{"type":"array","items":{"description":"AWS Rekognition services","$ref":"#/definitions/awsBoto3"}}}},"google":{"type":"object","description":"Google Cloud Platform services","properties":{"language":{"type":"array","description":"Google NER service","items":{"$ref":"#/definitions/resource"}},"video":{"type":"array","description":"Google video intelligence for content moderation annotation","items":{"$ref":"#/definitions/resource"}},"vision":{"type":"array","description":"Google Face Detect SDK","items":{"$ref":"#/definitions/resource"}}}},"clarifai":{"type":"object","description":"ClarifAI Services","properties":{"moderation":{"type":"array","description":"Clarifai Moderation image SDK","items":{"description":"Clarifai Moderation image SDK","$ref":"#/definitions/resource"}}}},"python":{"description":"Python specific resources","properties":{"jupyterlabCredentialProvider":{"description":"JupyterLab Credential Provider","$ref":"#/definitions/resource"},"env":{"description":"Environment variable Credential Provider","$ref":"#/definitions/resource"},"dotenv":{"description":".env file Credential Provider","$ref":"#/definitions/resource"},"keyring":{"description":"Python KeyRing Credential Provider (https://pypi.org/project/keyring)","type":"array","items":{"allOf":[{"$ref":"#/definitions/resource"},{"type":"object","properties":{"service_name":{"$ref":"#/definitions/property","description":"Service name used when calling get_password"}}}]}},"sqlalchemy":{"description":"Python SQL Alchemy (https://www.sqlalchemy.org/)","type":"array","items":{"allOf":[{"$ref":"#/definitions/resource"},{"type":"object","properties":{"url":{"$ref":"#/definitions/property","description":"drivername://username:password@host/path?query"},"drivername":{"$ref":"#/definitions/property","description":"the name of the database backend. This name will correspond to a module in sqlalchemy/databases or a third party plug-in."},"username":{"$ref":"#/definitions/property","description":"The user name."},"host":{"$ref":"#/definitions/property","description":"The name of the host."},"port":{"$ref":"#/definitions/property","description":"The port number."},"database":{"$ref":"#/definitions/property","description":"The database name."},"query":{"$ref":"#/definitions/property","description":"A dictionary of options to be passed to the dialect and/or the DBAPI upon connect."}}}]}}}}}}
</schema>

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

MLBriefcase

A ML briefcase schema

The name of this resource

Name of the credential provider to be used.

Allows to attach user-definied metadata to resources

Overrides the key to lookup the value for the property.

Azure tenant id (a GUID)

AWS Boto3

Region name

AWS Access Key ID

Azure services

Azure authentication services

Azure Device Code authentication

Azure Device Code authentication. Prompts the user with a URL.

Azure Managed Service Idenity

Azure Managed Service Identity (https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/overview)

Azure Service Princiapl

Azure Service Principal

TODO The client id (a guid)

Azure Subscription

Azure Subscription

Azure subscription id (e.g. guids)

List of Azure subscription ids (e.g. guids)

Azure KeyVaults

Azure KeyVault https://docs.microsoft.com/en-us/azure/key-vault

DNS for the Azure KeyVault instance

Name of credential resource. E.g. device code or service principal resource

Azure Cognitive Services

Azure Cognitive Service Anomaly Detection (https://docs.microsoft.com/en-us/azure/cognitive-services/anomaly-detector/)

End point URL for Azure Cognitive Service

Azure Cognitive Service Content Moderator

Azure Cognitive Service Face

Azure Cognitive Service Face (https://azure.microsoft.com/en-us/services/cognitive-services/face/)

Azure Cognitive Service Spell Checker

Azure Cognitive Service Spell Checker

Azure Cognitive Service Text Analytics

Azure Cognitive Service Text Analytics

Azure Cognitive Service Vision

Azure Cognitive Service Vision

Azure Storage Services

Azure Storage Account

Azure Storage Account

Azure blob account name

Azure blob account key

Is the secret a key or SAS token

Azure Blob Storage

Azure Blob Storage

URL to Azure blob

Name of Azure Storage account resource object

Name of container

Path to blob

Amazon Web Services (AWS)

AWS Rekognition services

AWS Rekognition services

Google Cloud Platform services

Google NER service

Google video intelligence for content moderation annotation

Google Face Detect SDK

ClarifAI Services

Clarifai Moderation image SDK

Clarifai Moderation image SDK

Python specific resources

JupyterLab Credential Provider

Environment variable Credential Provider

.env file Credential Provider

Python KeyRing Credential Provider (https://pypi.org/project/keyring)

Service name used when calling get_password

Python SQL Alchemy (https://www.sqlalchemy.org/)

the name of the database backend. This name will correspond to a module in sqlalchemy/databases or a third party plug-in.

The user name.

The name of the host.

The port number.

The database name.

A dictionary of options to be passed to the dialect and/or the DBAPI upon connect.

Provide a JSON object that satisfies the schema "MLBriefcase". 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#","$id":"https://json.schemastore.org/browser.i18n.json","additionalProperties":false,"definitions":{"translationEntry":{"description":"Translation key","type":"object","properties":{"message":{"type":"string","description":"Translation string"},"description":{"type":"string","description":"(optional): Description of this string for the translator team"},"placeholders":{"$ref":"#/definitions/placeholders"}},"required":["message"],"additionalProperties":false},"placeholders":{"type":"object","description":"(optional): List of placeholders that can be used in the message.","additionalProperties":false,"patternProperties":{"^(?!@@)[@a-zA-Z0-9_-]+$":{"$ref":"#/definitions/placeholder"}}},"placeholder":{"description":"Placeholder key","type":"object","properties":{"content":{"type":"string","description":"Value to insert. It can contain a variable $1"},"example":{"type":"string","description":"(optional) example of this placeholder"}},"required":["content"],"additionalProperties":false}},"patternProperties":{"^(?!@@)[@a-zA-Z0-9_-]+$":{"$ref":"#/definitions/translationEntry"}},"title":"browser.i18n messages.json translation file","type":"object"}
</schema>

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

Translation key

Translation string

(optional): Description of this string for the translator team

(optional): List of placeholders that can be used in the message.

Placeholder key

Value to insert. It can contain a variable $1

(optional) example of this placeholder

Provide a JSON object that satisfies the schema "browser.i18n messages.json translation file". 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://json.schemastore.org/browsh-schema.json","$schema":"http://json-schema.org/draft-07/schema#","$comment":"https://www.brow.sh/docs/config/","properties":{"browsh_supporter":{"default":"\u2665","enum":["I have shown my support for Browsh","\u2665"],"description":"By showing your support you can disable the app's branding and nags to donate","type":"string"},"startup-url":{"description":"The page to show at startup. Browsh will fail to boot if this URL is not accessible","type":"string"},"default_search_engine_base":{"default":"https://www.google.com/search?q=","description":"The base query when a non-URL is entered into the URL bar","type":"string"},"mobile_user_agent":{"default":"Mozilla/5.0 (Android 7.0; Mobile; rv:54.0) Gecko/58.0 Firefox/58.0","description":"The mobile user agent for forcing web pages to use their mobile layout","type":"string"},"browsh":{"description":"Browsh internals","properties":{"websocket-port":{"default":3334,"type":"integer"},"use_experimental_text_visibility":{"description":"Possibly better handling of overlapping text in web pages. If a page seems to have text that shouldn't be visible, if it should be behind another element for example, then this experimental feature should help. It can also be toggled in-browser with F6","default":false,"type":"boolean"},"custom_css":{"description":"Custom CSS to apply to all loaded tabs","type":"string"}},"type":"object"},"firefox":{"properties":{"path":{"default":"firefox","description":"The path to your Firefox binary","type":"string"},"profile":{"default":"browsh-default","description":"Browsh has its own profile, separate from the normal user's. But you can change that","type":"string"},"use-existing":{"default":false,"description":"Don't let Browsh launch Firefox, but make it try to connect to an existing one. Note it will need to have been launched with the '--marionette' flag","type":"boolean"},"with-gui":{"default":"with-gui","description":"Launch Firefox in with its visible GUI window. Useful for setting up the Browsh profile.","type":"string"},"preferences":{"items":{"type":"string"},"description":"Config that you might usually set through Firefox's 'about:config' page Note that string must be wrapped in quotes","type":"array"}},"tty":{"properties":{"small_pixel_frame_rate":{"default":"250","description":"The time in milliseconds between requesting a new TTY-sized pixel frame. This is essentially the frame rate for graphics. Lower values make for smoother animations and feedback, but also increases the CPU load","type":"integer"}},"type":"object"},"http-server":{"properties":{"port":{"default":4333,"type":"integer"},"bind":{"default":"0.0.0.0","type":"string"},"render_delay":{"default":100,"description":"The time to wait in milliseconds after the DOM is ready before trying to parse and render the page's text. Too soon and text risks not being parsed, too long and you wait unnecessarily","type":"integer"},"timeout":{"default":30,"description":"The length of time in seconds to wait before aborting the page load","type":"integer"},"columns":{"default":100,"description":"The dimensions of a char-based window onto a webpage. The columns are ultimately the width of the final text","type":"string"},"rows":{"default":30,"description":"Whereas the rows represent the height of the original web page made visible to the original browser window. So the number of rows can effect things like how far down a web page images are lazy-loaded","type":"string"},"jpeg_compression":{"default":0.9,"description":"The amount of lossy JPG compression to apply to the background image of HTML pages","type":"string"},"rate-limit":{"default":"100000000-M","description":"Rate limit. For syntax, see: https://github.com/ulule/limiter","type":"string"},"blocked-domains":{"items":{"type":"string"},"description":"Blocking is useful if the HTTP server is made public. All values are evaluated as regular expressions","type":"array"},"blocked-user-agents":{"items":{"type":"string"},"description":"Blocking is useful if the HTTP server is made public. All values are evaluated as regular expressions","type":"array"},"header":{"description":"HTML snippets to show at top and bottom of final page","type":"string"},"footer":{"description":"HTML snippets to show at top and bottom of final page","type":"string"}}},"type":"object"}},"title":"JSON schema for browsh","type":"object"}
</schema>

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

By showing your support you can disable the app's branding and nags to donate

The page to show at startup. Browsh will fail to boot if this URL is not accessible

The base query when a non-URL is entered into the URL bar

Mozilla/5.0 (Android 7.0; Mobile; rv:54.0) Gecko/58.0 Firefox/58.0

The mobile user agent for forcing web pages to use their mobile layout

Browsh internals

Possibly better handling of overlapping text in web pages. If a page seems to have text that shouldn't be visible, if it should be behind another element for example, then this experimental feature should help. It can also be toggled in-browser with F6

Custom CSS to apply to all loaded tabs

The path to your Firefox binary

Browsh has its own profile, separate from the normal user's. But you can change that

Don't let Browsh launch Firefox, but make it try to connect to an existing one. Note it will need to have been launched with the '--marionette' flag

Launch Firefox in with its visible GUI window. Useful for setting up the Browsh profile.

Config that you might usually set through Firefox's 'about:config' page Note that string must be wrapped in quotes

The time in milliseconds between requesting a new TTY-sized pixel frame. This is essentially the frame rate for graphics. Lower values make for smoother animations and feedback, but also increases the CPU load

The time to wait in milliseconds after the DOM is ready before trying to parse and render the page's text. Too soon and text risks not being parsed, too long and you wait unnecessarily

The length of time in seconds to wait before aborting the page load

The dimensions of a char-based window onto a webpage. The columns are ultimately the width of the final text

Whereas the rows represent the height of the original web page made visible to the original browser window. So the number of rows can effect things like how far down a web page images are lazy-loaded

The amount of lossy JPG compression to apply to the background image of HTML pages

Rate limit. For syntax, see: https://github.com/ulule/limiter

Blocking is useful if the HTTP server is made public. All values are evaluated as regular expressions

HTML snippets to show at top and bottom of final page

JSON schema for browsh

Provide a JSON object that satisfies the schema "JSON schema for browsh". 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#","$id":"https://json.schemastore.org/buf.gen.json","$comment":"https://buf.build/docs/configuration/v2/buf-gen-yaml","$defs":{"types":{"description":"Include only the specified types when generating.","type":"array","minItems":1,"items":{"type":"string"}},"exclude_types":{"description":"Exclude the specified types when generating.","type":"array","minItems":1,"items":{"type":"string"}},"paths":{"description":"Include only the specified paths when generating.","type":"array","minItems":1,"items":{"type":"string"}},"exclude_paths":{"description":"Exclude the specified paths when generating.","type":"array","minItems":1,"items":{"type":"string"}}},"title":"buf.gen.yaml","description":"buf.gen.yaml is a configuration file used by the buf generate command to generate integration code for the languages of your choice.","type":"object","properties":{"version":{"$comment":"https://buf.build/docs/configuration/v2/buf-gen-yaml#version","description":"Required. Defines the current configuration version. Accepted values are `v2`, `v1`, or `v1beta1`.","type":"string","enum":["v2","v1","v1beta1"]}},"if":{"properties":{"version":{"const":"v1"}}},"then":{"required":["version","plugins"],"properties":{"plugins":{"$comment":"https://buf.build/docs/configuration/v1/buf-gen-yaml#plugins","description":"Required. Each entry in the plugins key is a protoc plugin configuration. Plugins are invoked in parallel and their outputs are written in the order you specify here.","type":"array","items":{"type":"object","properties":{"plugin":{"$comment":"https://buf.build/docs/configuration/v1/buf-gen-yaml#plugin","type":"string","description":"Required. The name of the plugin to use\u2014can be local or remote. See https://buf.build/docs/configuration/v1/buf-gen-yaml#plugin."},"name":{"type":"string"},"remote":{"type":"string","deprecated":true},"out":{"$comment":"https://buf.build/docs/configuration/v1/buf-gen-yaml#out","type":"string","description":"Required. Controls where the generated files are deposited for a given plugin. Although absolute paths are supported, this configuration is typically a relative output directory to where buf generate is run."},"opt":{"$comment":"https://buf.build/docs/configuration/v1/buf-gen-yaml#opt","description":"Optional. Specifies one or more plugin options for each plugin independently. You can provide options as either a single string or a list of strings.","oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"path":{"$comment":"https://buf.build/docs/configuration/v1/buf-gen-yaml#path","description":"Optional. Only works with local plugins. Overrides the default location and explicitly specifies where to locate the plugin.","oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"revision":{"$comment":"https://buf.build/docs/configuration/v1/buf-gen-yaml#revision","description":"Optional. May be used along with the plugin field to pin an exact version of a remote plugin. In most cases, we recommend omitting revision, in which case the latest revision of that version of the plugin will be used (automatically pulling in the latest bug fixes).","type":"integer","minimum":0},"strategy":{"$comment":"https://buf.build/docs/configuration/v1/buf-gen-yaml#strategy","description":"Optional. Specifies the invocation strategy to use. See https://buf.build/docs/configuration/v1/buf-gen-yaml#strategy.","type":"string","enum":["directory","all"]},"protoc_path":{"$comment":"https://buf.build/docs/configuration/v1/buf-gen-yaml#protoc_path","description":"Optional. Only applies to the code generators that are built in to protoc. Normally, a plugin is a separate executable with a binary name like protoc-gen-<name>. But for a handful of plugins, the executable used is protoc itself. See https://buf.build/docs/configuration/v1/buf-gen-yaml#protoc_path.","oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"types":{"$ref":"#/$defs/types"},"exclude_types":{"$ref":"#/$defs/exclude_types"}},"required":["out"],"additionalProperties":false}},"managed":{"$comment":"https://buf.build/docs/configuration/v1/buf-gen-yaml#managed","description":"The managed key is used to configure managed mode, an advanced feature for Protobuf options. See https://buf.build/docs/generate/managed-mode.","type":"object","properties":{"enabled":{"$comment":"https://buf.build/docs/configuration/v1/buf-gen-yaml#enabled","description":"Required if any other managed keys are set. Setting enabled equal to true with no other keys set enables managed mode according to default behavior. See https://buf.build/docs/generate/managed-mode#default-behavior.","type":"boolean"},"cc_enable_arenas":{"$comment":"https://buf.build/docs/configuration/v1/buf-gen-yaml#cc_enable_arenas","description":"Optional. If unset, this option is left as specified in your .proto files. As of Protocol Buffers release v3.14.0, changing this value no longer has any effect.","type":"boolean"},"csharp_namespace":{"$comment":"https://buf.build/docs/configuration/v1/buf-gen-yaml#csharp_namespace","description":"Optional. Controls the default C# namespace for classes generated from all of the .proto files contained within the input. Managed mode generates C# files with a top-level namespace based on each .proto file\u2019s package, with each part transformed to PascalCase.","type":"object","additionalProperties":false,"properties":{"except":{"description":"Optional. Removes the specified modules from the default csharp_namespace option behavior. The except keys must be valid module names.","type":"array","items":{"type":"string"}},"override":{"description":"Optional. Overrides the csharp_namespace value used for specific modules. The override keys must be valid module names.","type":"object","additionalProperties":{"type":"string"}}}},"go_package_prefix":{"$comment":"https://buf.build/docs/configuration/v1/buf-gen-yaml#go_package_prefix","description":"Optional. Controls what the go_package value is set to for all of the .proto files contained within the input. If unset, this option is left as specified in your .proto files.","type":"object","required":["default"],"additionalProperties":false,"properties":{"default":{"description":"Required if the go_package_prefix key is set. The default value is used as a prefix for the go_package value set in each of the files. It must be a relative file path that must not jump context from the current directory\u2014that is, it must be subdirectories relative to the current working directory.","type":"string"},"except":{"description":"Optional. Removes certain modules from the go_package option behavior. The except values must be valid module names. There are situations where you may want to enable managed mode for the go_package option in most of your Protobuf files, but not necessarily for all of your Protobuf files. This is particularly relevant for the buf.build/googleapis/googleapis module, which points its go_package value to an external repository. Popular libraries such as grpc-go depend on these go_package values, so it's important that managed mode does not overwrite them.","type":"array","items":{"type":"string"}},"override":{"description":"Optional. Overrides the go_package file option value used for specific modules. The override keys must be valid module names. Additionally, the corresponding override values must be a valid Go import path and must not jump context from the current directory. As an example, ../external is invalid. This setting is used for workspace environments, where you have a module that imports from another module in the same workspace, and you need to generate the Go code for each module in different directories. This is particularly relevant for repositories that decouple their private API definitions from their public API definitions.","type":"object","additionalProperties":{"type":"string"}}}},"java_multiple_files":{"$comment":"https://buf.build/docs/configuration/v1/buf-gen-yaml#java_multiple_files","description":"Optional. Controls what the java_multiple_files value is set to for all of the .proto files contained within the input. The only accepted values are false and true. Managed mode defaults to true (Protobuf's default is false). See https://buf.build/docs/configuration/v1/buf-gen-yaml#java_multiple_files.","type":"boolean"},"java_package_prefix":{"$comment":"https://buf.build/docs/configuration/v1/buf-gen-yaml#java_package_prefix","description":"Optional. Controls what is prepended to the java_package value is set to for all of the .proto files contained within the input. If this is unset, managed mode's default value is `com`.","oneOf":[{"type":"string"},{"type":"object","required":["default"],"additionalProperties":false,"properties":{"default":{"description":"Required if the java_package_prefix key is set. The default value is used as a prefix for the java_package value set in each of the files.","type":"string"},"except":{"description":"Optional. Removes the specified modules from the java_package option behavior. The except keys must be valid module names.","type":"array","items":{"type":"string"}},"override":{"description":"Optional. Overrides the java_package option value used for specific modules. The override keys must be valid module names.","type":"object","additionalProperties":{"type":"string"}}}}]},"java_string_check_utf8":{"$comment":"https://buf.build/docs/configuration/v1/buf-gen-yaml#java_string_check_utf8","description":"Optional. Controls what the java_string_check_utf8 value is set to for all of the .proto files contained within the input. The only accepted values are false and true. If unset, this option is left as specified in your .proto files. Protobuf's default is false.","type":"boolean"},"objc_class_prefix":{"$comment":"https://buf.build/docs/configuration/v1/buf-gen-yaml#objc_class_prefix","description":"Optional. When managed mode is enabled, this defaults to an abbreviation of the package name as described in the default behavior section. The value is prepended to all generated classes. See https://buf.build/docs/generate/managed-mode#default-behavior.","type":"object","required":["default"],"additionalProperties":false,"properties":{"default":{"description":"Optional. Overrides managed mode's default value for the class prefix.","type":"string"},"except":{"description":"Optional. Removes the specified modules from the objc_class_prefix option behavior. The except keys must be valid module names.","type":"array","items":{"type":"string"}},"override":{"description":"Optional. Overrides any default objc_class_prefix option value for specific modules. The override keys must be valid module names.","type":"object","additionalProperties":{"type":"string"}}}},"optimize_for":{"$comment":"https://buf.build/docs/configuration/v1/buf-gen-yaml#optimize_for","description":"Optional. Controls what the optimize_for value is set to for all of the .proto files contained within the input. The only accepted values are SPEED, CODE_SIZE and LITE_RUNTIME. Managed mode will not modify this option if unset.","type":"string","enum":["SPEED","CODE_SIZE","LITE_RUNTIME"]},"ruby_package":{"$comment":"https://buf.build/docs/configuration/v1/buf-gen-yaml#ruby_package","description":"Optional. Controls what the ruby_package value is set to for all of the .proto files contained within the input. Managed mode's default value is the package name with each package sub-name capitalized, with :: substituted for .","type":"object","additionalProperties":false,"properties":{"except":{"description":"Optional. Removes the specified modules from the ruby_package file option override behavior. The except keys must be valid module names.","type":"array","items":{"type":"string"}},"override":{"description":"Optional. Overrides the ruby_package file option value used for specific modules. The override keys must be valid module names.","type":"object","additionalProperties":{"type":"string"}}}},"override":{"$comment":"https://buf.build/docs/configuration/v1/buf-gen-yaml#per-file-override","description":"Optional. This is a list of per-file overrides for each modifier. See https://buf.build/docs/configuration/v1/buf-gen-yaml#per-file-override.","type":"object","properties":{"CSHARP_NAMESPACE":{"type":"object","additionalProperties":{"type":"string"}},"GO_PACKAGE":{"type":"object","additionalProperties":{"type":"string"}},"JAVA_MULTIPLE_FILES":{"type":"object","additionalProperties":{"type":"string"}},"JAVA_OUTER_CLASSNAME":{"type":"object","additionalProperties":{"type":"string"}},"JAVA_PACKAGE":{"type":"object","additionalProperties":{"type":"string"}},"JAVA_STRING_CHECK_UTF8":{"type":"object","additionalProperties":{"type":"string"}},"OBJC_CLASS_PREFIX":{"type":"object","additionalProperties":{"type":"string"}},"OPTIMIZE_FOR":{"type":"object","additionalProperties":{"type":"string"}},"PHP_METADATA_NAMESPACE":{"type":"object","additionalProperties":{"type":"string"}},"PHP_NAMESPACE":{"type":"object","additionalProperties":{"type":"string"}},"RUBY_PACKAGE":{"type":"object","additionalProperties":{"type":"string"}}}}}}}},"else":{"$comment":"v2 properties","properties":{"clean":{"$comment":"https://buf.build/docs/configuration/v2/buf-gen-yaml#clean","description":"Optional. When set to true, buf generate deletes all directories, zip files, and/or jar files specified by the out field for each plugin before running code generation.","type":"boolean","default":false},"managed":{"$comment":"https://buf.build/docs/configuration/v2/buf-gen-yaml#managed","description":"The managed key is used to enable managed mode, an advanced feature that allows you to specify Protobuf file and field options without defining them in the Protobuf files. See Managed mode for details about default behavior and accepted values for each available option key.","type":"object","minProperties":1,"additionalProperties":false,"properties":{"enabled":{"$comment":"https://buf.build/docs/configuration/v2/buf-gen-yaml#enabled","description":"Required if any other managed keys are set. Default is false. If a file or field option has no default, then managed mode doesn't modify that option and will only modify it if an override rule is specified.","type":"boolean","default":false},"disable":{"$comment":"https://buf.build/docs/configuration/v2/buf-gen-yaml#disable","description":"Optional. Allows you to granularly disable managed mode for either file options or field options by specifying a list of rules. There are two types of rules: file option or field option. For both types of disable rules, you can set any combination of keys and the union is used to determine the combination of file and field options that managed mode doesn't modify. A disable rule must have at least one key set.","type":"array","items":{"type":"object","additionalProperties":false,"minProperties":1,"properties":{"module":{"type":"string"},"path":{"type":"string"},"file_option":{"type":"string"},"field_option":{"type":"string"},"field":{"type":"string"}}}},"override":{"$comment":"https://buf.build/docs/configuration/v2/buf-gen-yaml#override","description":"Optional. Allows you to granularly override the file and field options that managed mode handles. Similar to disable rules, there are two types of override rules: field option or file option. For each override rule, you must provide an option and a valid value based on the option. You can then choose to set a path and/or module to filter the files that the override rule applies to. The rules will be applied instead of managed mode's default behavior, unless an option or file has an applicable disable rule.","type":"array","items":{"type":"object","additionalProperties":false,"minProperties":1,"properties":{"file_option":{"type":"string"},"value":{"type":"string"},"path":{"type":"string"},"module":{"type":"string"},"field_option":{"type":"string"},"field":{"type":"string"}}}}}},"plugins":{"$comment":"https://buf.build/docs/configuration/v2/buf-gen-yaml#plugins","description":"Required. Each entry in the plugins key is a protoc plugin configuration. Plugins are invoked in parallel and their outputs are written in the order you specify here.","type":"array","items":{"type":"object","additionalProperties":false,"minProperties":1,"required":["out"],"properties":{"remote":{"description":"Indicates a remote plugin hosted on either the public BSR or a private BSR. Its value must be in the form of <REMOTE>/<ORGANIZATION>/<PLUGIN>.","type":"string"},"revision":{"description":"The revision of the remote plugin. Only valid when specified with the `remote` key.","type":"integer","minimum":1},"protoc_builtin":{"description":"Only applies to the code generators that are built into protoc. The following values for this field result in invoking protoc instead of a dedicated plugin binary. If you specify this type of plugin, you must also provide the protoc_path value as a string.","type":"string"},"protoc_path":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"local":{"description":"A string or list of strings that point to the names of plugin binaries on your ${PATH}, or to its relative or absolute location on disk. If you specify a list of strings, the first is the local name, and the subsequent strings are considered arguments passed to the binary.","oneOf":[{"type":"string"},{"type":"array","minItems":1,"items":{"type":"string"}}]},"out":{"$comment":"https://buf.build/docs/configuration/v2/buf-gen-yaml#out","description":"Required. Controls where the generated files are deposited for a given plugin. Although absolute paths are supported, this configuration is typically a relative output directory to where buf generate is run.","type":"string"},"opt":{"$comment":"https://buf.build/docs/configuration/v2/buf-gen-yaml#opt","description":"Optional. Specifies one or more plugin options for a plugin. You can provide options as either a single string or a list of strings.","oneOf":[{"type":"string"},{"type":"array","minItems":1,"items":{"type":"string"}}]},"strategy":{"$comment":"https://buf.build/docs/configuration/v2/buf-gen-yaml#strategy","description":"Optional. Specifies the invocation strategy to use.","type":"string","enum":["directory","all"]},"include_imports":{"$comment":"https://buf.build/docs/configuration/v2/buf-gen-yaml#include_imports","description":"Optional. Generates all imports except for Well-Known Types. This setting works the same as the --include-imports flag on buf generate\u2014if they conflict with each other, the flag gets precedence.","type":"boolean"},"include_wkt":{"$comment":"https://buf.build/docs/configuration/v2/buf-gen-yaml#include_wkt","description":"Optional. Generates Well-Known Types. Can't be set without --include-imports. This setting works the same as the --include-wkt flag on buf generate\u2014if they conflict with each other, the flag gets precedence.","type":"boolean"},"types":{"$ref":"#/$defs/types"},"exclude_types":{"$ref":"#/$defs/exclude_types"}}}},"inputs":{"$comment":"https://buf.build/docs/configuration/v2/buf-gen-yaml#inputs","description":"Optional. A list of inputs to generate code for.","type":"array","items":{"anyOf":[{"type":"object","additionalProperties":false,"minProperties":1,"properties":{"types":{"$ref":"#/$defs/types"},"exclude_types":{"$ref":"#/$defs/exclude_types"},"paths":{"$ref":"#/$defs/paths"},"exclude_paths":{"$ref":"#/$defs/exclude_paths"},"directory":{"description":"Specifies a local directory path as the input, with the location as the value. The path should be a valid module or workspace root, or a directory of Protobuf files. The path can be relative to the workspace or absolute.","type":"string"}}},{"type":"object","additionalProperties":false,"minProperties":1,"properties":{"types":{"$ref":"#/$defs/types"},"exclude_types":{"$ref":"#/$defs/exclude_types"},"paths":{"$ref":"#/$defs/paths"},"exclude_paths":{"$ref":"#/$defs/exclude_paths"},"module":{"description":"Specifies a remote BSR module as the input, with the location as the value. A commit or label can also be specified.","type":"string","examples":["buf.build/acme/weather","buf.build/acme/weather:main","buf.build/acme/weather:7abdb7802c8f4737a1a23a35ca8266ef"]}}},{"type":"object","additionalProperties":false,"minProperties":1,"properties":{"types":{"$ref":"#/$defs/types"},"exclude_types":{"$ref":"#/$defs/exclude_types"},"paths":{"$ref":"#/$defs/paths"},"exclude_paths":{"$ref":"#/$defs/exclude_paths"},"git_repo":{"description":"Specifies a Git repo as the input, with the location as the key value. The path to the Git repository can be either a local .git directory or a remote location (http/https/ssh/git). Note that remote http://, https://, ssh://, and git:// locations must be prefixed with their scheme.","type":"string"},"branch":{"description":"Use a specific branch of the repo as the input.","type":"string"},"tag":{"description":"Use a specific commit or tag in the repo as the input.","type":"string"},"ref":{"description":"Use an explicit reference in the repo as the input. Any valid input to git checkout is accepted, but most Git hosts (including GitHub) only allow fetching by reference and not commits by sha. Use git ls-remote --refs to get a list of available references and their corresponding commits.","type":"string"},"subdir":{"description":"Use a specific subdirectory of the repo as the base directory of the input","type":"string"},"depth":{"description":"Specifies how deep within the repo to generate. Defaults to 50 if ref is specified.","type":"integer","minimum":1},"recurse_subdirectories":{"description":"Controls whether to generate for modules recursively.","type":"boolean"}}},{"type":"object","additionalProperties":false,"minProperties":1,"properties":{"types":{"$ref":"#/$defs/types"},"exclude_types":{"$ref":"#/$defs/exclude_types"},"paths":{"$ref":"#/$defs/paths"},"exclude_paths":{"$ref":"#/$defs/exclude_paths"},"tarball":{"description":"Specifies a local or remote (http/https) tarball, with the location as the value. When generating, strip_components is applied before subdir.","type":"string"},"strip_components":{"description":"Reads at the relative path and strips some number of components.","type":"integer"},"subdir":{"description":"Reads at the relative path and uses the subdirectory specified within the archive as the base directory.","type":"string"},"compression":{"description":"Compression is automatically detected if the file extension is .tgz, .tar.gz, or .tar.zst but can be manually specified here.","type":"string","enum":["gzip","zstd"]}}},{"type":"object","additionalProperties":false,"minProperties":1,"properties":{"types":{"$ref":"#/$defs/types"},"exclude_types":{"$ref":"#/$defs/exclude_types"},"paths":{"$ref":"#/$defs/paths"},"exclude_paths":{"$ref":"#/$defs/exclude_paths"},"zip_archive":{"description":"Specifies a local or remote (http/https) zip archive, with the location as the value. When generating, strip_components is applied before subdir.","type":"string"},"strip_components":{"description":"Reads at the relative path and strips some number of components.","type":"integer"},"subdir":{"description":"Reads at the relative path and uses the subdirectory specified within the archive as the base directory.","type":"string"}}},{"type":"object","additionalProperties":false,"minProperties":1,"properties":{"types":{"type":"array","minItems":1,"items":{"type":"string"}},"exclude_types":{"type":"array","minItems":1,"items":{"type":"string"}},"paths":{"type":"array","minItems":1,"items":{"type":"string"}},"exclude_paths":{"type":"array","minItems":1,"items":{"type":"string"}},"proto_file":{"description":"Specifies a single .proto file as the input, with the location as the value. The path can be relative to the workspace or absolute.","type":"string"},"include_package_files":{"description":"Include all other files in the package and their imports for the specified .proto file.","type":"boolean"}}},{"type":"object","additionalProperties":false,"minProperties":1,"properties":{"types":{"$ref":"#/$defs/types"},"exclude_types":{"$ref":"#/$defs/exclude_types"},"paths":{"$ref":"#/$defs/paths"},"exclude_paths":{"$ref":"#/$defs/exclude_paths"},"binary_image":{"description":"Specifies a Buf image in binary format as the input, with the location as the value.","type":"string"},"compression":{"description":"Compression is automatically detected if the file extension is .gz or .zst but can be manually specified here.","type":"string","enum":["gzip","zstd"]}}},{"type":"object","additionalProperties":false,"minProperties":1,"properties":{"types":{"$ref":"#/$defs/types"},"exclude_types":{"$ref":"#/$defs/exclude_types"},"paths":{"$ref":"#/$defs/paths"},"exclude_paths":{"$ref":"#/$defs/exclude_paths"},"json_image":{"description":"Specifies a Buf image in JSON format as the input, with the location as the value.","type":"string"},"compression":{"description":"Compression is automatically detected if the file extension is .gz or .zst but can be manually specified here.","type":"string","enum":["gzip","zstd"]}}},{"type":"object","additionalProperties":false,"minProperties":1,"properties":{"types":{"$ref":"#/$defs/types"},"exclude_types":{"$ref":"#/$defs/exclude_types"},"paths":{"$ref":"#/$defs/paths"},"exclude_paths":{"$ref":"#/$defs/exclude_paths"},"yaml_image":{"description":"Specifies a Buf image in YAML format as the input, with the location as the value.","type":"string"},"compression":{"description":"Compression is automatically detected if the file extension is .gz or .zst but can be manually specified here.","type":"string","enum":["gzip","zstd"]}}},{"type":"object","additionalProperties":false,"minProperties":1,"properties":{"types":{"$ref":"#/$defs/types"},"exclude_types":{"$ref":"#/$defs/exclude_types"},"paths":{"$ref":"#/$defs/paths"},"exclude_paths":{"$ref":"#/$defs/exclude_paths"},"txt_image":{"description":"Specifies a Buf image in text format as the input, with the location as the value.","type":"string"},"compression":{"description":"Compression is automatically detected if the file extension is .gz or .zst but can be manually specified here.","type":"string","enum":["gzip","zstd"]}}}]}}}}}
</schema>

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

Include only the specified types when generating.

Exclude the specified types when generating.

Include only the specified paths when generating.

Exclude the specified paths when generating.

buf.gen.yaml

buf.gen.yaml is a configuration file used by the buf generate command to generate integration code for the languages of your choice.

Required. Defines the current configuration version. Accepted values are `v2`, `v1`, or `v1beta1`.

Required. Each entry in the plugins key is a protoc plugin configuration. Plugins are invoked in parallel and their outputs are written in the order you specify here.

Required. The name of the plugin to use—can be local or remote. See https://buf.build/docs/configuration/v1/buf-gen-yaml#plugin.

Required. Controls where the generated files are deposited for a given plugin. Although absolute paths are supported, this configuration is typically a relative output directory to where buf generate is run.

Optional. Specifies one or more plugin options for each plugin independently. You can provide options as either a single string or a list of strings.

Optional. Only works with local plugins. Overrides the default location and explicitly specifies where to locate the plugin.

Optional. May be used along with the plugin field to pin an exact version of a remote plugin. In most cases, we recommend omitting revision, in which case the latest revision of that version of the plugin will be used (automatically pulling in the latest bug fixes).

Optional. Specifies the invocation strategy to use. See https://buf.build/docs/configuration/v1/buf-gen-yaml#strategy.

Optional. Only applies to the code generators that are built in to protoc. Normally, a plugin is a separate executable with a binary name like protoc-gen-<name>. But for a handful of plugins, the executable used is protoc itself. See https://buf.build/docs/configuration/v1/buf-gen-yaml#protoc_path.

The managed key is used to configure managed mode, an advanced feature for Protobuf options. See https://buf.build/docs/generate/managed-mode.

Required if any other managed keys are set. Setting enabled equal to true with no other keys set enables managed mode according to default behavior. See https://buf.build/docs/generate/managed-mode#default-behavior.

Optional. If unset, this option is left as specified in your .proto files. As of Protocol Buffers release v3.14.0, changing this value no longer has any effect.

Optional. Controls the default C# namespace for classes generated from all of the .proto files contained within the input. Managed mode generates C# files with a top-level namespace based on each .proto file’s package, with each part transformed to PascalCase.

Optional. Removes the specified modules from the default csharp_namespace option behavior. The except keys must be valid module names.

Optional. Overrides the csharp_namespace value used for specific modules. The override keys must be valid module names.

Optional. Controls what the go_package value is set to for all of the .proto files contained within the input. If unset, this option is left as specified in your .proto files.

Required if the go_package_prefix key is set. The default value is used as a prefix for the go_package value set in each of the files. It must be a relative file path that must not jump context from the current directory—that is, it must be subdirectories relative to the current working directory.

Optional. Removes certain modules from the go_package option behavior. The except values must be valid module names. There are situations where you may want to enable managed mode for the go_package option in most of your Protobuf files, but not necessarily for all of your Protobuf files. This is particularly relevant for the buf.build/googleapis/googleapis module, which points its go_package value to an external repository. Popular libraries such as grpc-go depend on these go_package values, so it's important that managed mode does not overwrite them.

Optional. Overrides the go_package file option value used for specific modules. The override keys must be valid module names. Additionally, the corresponding override values must be a valid Go import path and must not jump context from the current directory. As an example, ../external is invalid. This setting is used for workspace environments, where you have a module that imports from another module in the same workspace, and you need to generate the Go code for each module in different directories. This is particularly relevant for repositories that decouple their private API definitions from their public API definitions.

Optional. Controls what the java_multiple_files value is set to for all of the .proto files contained within the input. The only accepted values are false and true. Managed mode defaults to true (Protobuf's default is false). See https://buf.build/docs/configuration/v1/buf-gen-yaml#java_multiple_files.

Optional. Controls what is prepended to the java_package value is set to for all of the .proto files contained within the input. If this is unset, managed mode's default value is `com`.

Required if the java_package_prefix key is set. The default value is used as a prefix for the java_package value set in each of the files.

Optional. Removes the specified modules from the java_package option behavior. The except keys must be valid module names.

Optional. Overrides the java_package option value used for specific modules. The override keys must be valid module names.

Optional. Controls what the java_string_check_utf8 value is set to for all of the .proto files contained within the input. The only accepted values are false and true. If unset, this option is left as specified in your .proto files. Protobuf's default is false.

Optional. When managed mode is enabled, this defaults to an abbreviation of the package name as described in the default behavior section. The value is prepended to all generated classes. See https://buf.build/docs/generate/managed-mode#default-behavior.

Optional. Overrides managed mode's default value for the class prefix.

Optional. Removes the specified modules from the objc_class_prefix option behavior. The except keys must be valid module names.

Optional. Overrides any default objc_class_prefix option value for specific modules. The override keys must be valid module names.

Optional. Controls what the optimize_for value is set to for all of the .proto files contained within the input. The only accepted values are SPEED, CODE_SIZE and LITE_RUNTIME. Managed mode will not modify this option if unset.

Optional. Controls what the ruby_package value is set to for all of the .proto files contained within the input. Managed mode's default value is the package name with each package sub-name capitalized, with :: substituted for .

Optional. Removes the specified modules from the ruby_package file option override behavior. The except keys must be valid module names.

Optional. Overrides the ruby_package file option value used for specific modules. The override keys must be valid module names.

Optional. This is a list of per-file overrides for each modifier. See https://buf.build/docs/configuration/v1/buf-gen-yaml#per-file-override.

Optional. When set to true, buf generate deletes all directories, zip files, and/or jar files specified by the out field for each plugin before running code generation.

The managed key is used to enable managed mode, an advanced feature that allows you to specify Protobuf file and field options without defining them in the Protobuf files. See Managed mode for details about default behavior and accepted values for each available option key.

Required if any other managed keys are set. Default is false. If a file or field option has no default, then managed mode doesn't modify that option and will only modify it if an override rule is specified.

Optional. Allows you to granularly disable managed mode for either file options or field options by specifying a list of rules. There are two types of rules: file option or field option. For both types of disable rules, you can set any combination of keys and the union is used to determine the combination of file and field options that managed mode doesn't modify. A disable rule must have at least one key set.

Optional. Allows you to granularly override the file and field options that managed mode handles. Similar to disable rules, there are two types of override rules: field option or file option. For each override rule, you must provide an option and a valid value based on the option. You can then choose to set a path and/or module to filter the files that the override rule applies to. The rules will be applied instead of managed mode's default behavior, unless an option or file has an applicable disable rule.

Indicates a remote plugin hosted on either the public BSR or a private BSR. Its value must be in the form of <REMOTE>/<ORGANIZATION>/<PLUGIN>.

The revision of the remote plugin. Only valid when specified with the `remote` key.

Only applies to the code generators that are built into protoc. The following values for this field result in invoking protoc instead of a dedicated plugin binary. If you specify this type of plugin, you must also provide the protoc_path value as a string.

A string or list of strings that point to the names of plugin binaries on your ${PATH}, or to its relative or absolute location on disk. If you specify a list of strings, the first is the local name, and the subsequent strings are considered arguments passed to the binary.

Optional. Specifies one or more plugin options for a plugin. You can provide options as either a single string or a list of strings.

Optional. Specifies the invocation strategy to use.

Optional. Generates all imports except for Well-Known Types. This setting works the same as the --include-imports flag on buf generate—if they conflict with each other, the flag gets precedence.

Optional. Generates Well-Known Types. Can't be set without --include-imports. This setting works the same as the --include-wkt flag on buf generate—if they conflict with each other, the flag gets precedence.

Optional. A list of inputs to generate code for.

Specifies a local directory path as the input, with the location as the value. The path should be a valid module or workspace root, or a directory of Protobuf files. The path can be relative to the workspace or absolute.

Specifies a remote BSR module as the input, with the location as the value. A commit or label can also be specified.

Specifies a Git repo as the input, with the location as the key value. The path to the Git repository can be either a local .git directory or a remote location (http/https/ssh/git). Note that remote http://, https://, ssh://, and git:// locations must be prefixed with their scheme.

Use a specific branch of the repo as the input.

Use a specific commit or tag in the repo as the input.

Use an explicit reference in the repo as the input. Any valid input to git checkout is accepted, but most Git hosts (including GitHub) only allow fetching by reference and not commits by sha. Use git ls-remote --refs to get a list of available references and their corresponding commits.

Use a specific subdirectory of the repo as the base directory of the input

Specifies how deep within the repo to generate. Defaults to 50 if ref is specified.

Controls whether to generate for modules recursively.

Specifies a local or remote (http/https) tarball, with the location as the value. When generating, strip_components is applied before subdir.

Reads at the relative path and strips some number of components.

Reads at the relative path and uses the subdirectory specified within the archive as the base directory.

Compression is automatically detected if the file extension is .tgz, .tar.gz, or .tar.zst but can be manually specified here.

Specifies a local or remote (http/https) zip archive, with the location as the value. When generating, strip_components is applied before subdir.

Specifies a single .proto file as the input, with the location as the value. The path can be relative to the workspace or absolute.

Include all other files in the package and their imports for the specified .proto file.

Specifies a Buf image in binary format as the input, with the location as the value.

Compression is automatically detected if the file extension is .gz or .zst but can be manually specified here.

Specifies a Buf image in JSON format as the input, with the location as the value.

Specifies a Buf image in YAML format as the input, with the location as the value.

Specifies a Buf image in text format as the input, with the location as the value.

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


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

https://buf.build/docs/configuration/v2/buf-yaml#ignore_only - All of the #/$defs/lint-rule values can be keys, plus custom lint rules

Optional. Allows directories or files to be excluded from specific lint categories or rules. As with ignore, the paths must be relative to buf.yaml.

https://buf.build/docs/configuration/v2/buf-yaml/#ignore_only_1 - All of the #/$defs/breaking-rule values can be keys, plus custom breaking rules.

Optional. Allows directories or files to be excluded from specific breaking change detection categories or rules. As with ignore, the paths must be relative to buf.yaml. We do not recommend this option in general.

Optional. The lint settings you specify in this section are the default for all modules in the workspace, but can be replaced for individual modules by specifying different settings at the module level. Module-level settings have all of the same fields and behavior as workspace-level settings. If no lint settings are specified for the workspace, it uses the default settings.

Optional. Lists the categories and/or specific rules to use. The STANDARD category is used if lint is unset.

Optional. Excludes specific directories or files from all lint rules. If a directory is ignored, then all files and subfolders of the directory are also ignored. The specified paths must be relative to the buf.yaml file.

Optional. Default is false if unset. If this option is set to true, you can't add leading comments within Protobuf files to ignore lint errors for certain components within the files. If the option is unset, for any line in a leading comment that starts with buf:lint:ignore <rule_id>, the linter ignores errors for that rule.

Optional. Controls the behavior of the ENUM_ZERO_VALUE_SUFFIX lint rule. By default, this rule verifies that the zero value of all enums ends in _UNSPECIFIED, as recommended by the Google Protobuf Style Guide.

Optional. Allows the same message type to be used for a single RPC's request and response type. We don't recommend using this option.

Optional. Allows RPC requests to be google.protobuf.Empty messages. You can set this if you want to allow messages to be void forever and never take any parameters. We don't recommend using this option.

Optional. Allows RPC responses to be google.protobuf.Empty messages. You can set this if you want to allow messages to never return any parameters. We don't recommend using this option.

Optional. Controls the behavior of the SERVICE_SUFFIX lint rule. By default, this rule verifies that all service names are suffixed with Service.

Optional. Specifies the breaking change detection rules enforced on the Protobuf files in the directory.

Optional. Lists the rules or categories to use for breaking change detection. The FILE category is used if breaking is unset, which is conservative and appropriate for most teams.

Optional. Removes rules or categories from the use list. We don't recommend using this option.

Optional. Excludes specific directories or files from all breaking change detection rules. If a directory is ignored, then all files and subfolders of the directory are also ignored. The specified paths must be relative to the buf.yaml file. This option can be useful for ignoring packages that are in active development but not deployed in production, especially alpha or beta packages. If you want to ignore all alpha,beta, or test packages, we recommend using the ignore_unstable_packages setting instead.

Optional. Ignores packages with a last component that's one of the unstable forms recognized by the Buf linter's PACKAGE_VERSION_SUFFIX rule.

buf.yaml

buf.yaml is used to define a module. It's the primary configuration file, and is responsible for the module's name, dependencies, and lint and breaking configuration.

The version key is required, and defines the current configuration version. The accepted values are `v2`, `v1`, and `v1beta1`.

The name is optional, and uniquely identifies your module. The name must be a valid module name and is directly associated with the repository that owns it.

The deps key is optional, and declares one or more modules that your module depends on. Each deps entry must be a module reference, and, is directly associated with a repository, as well as a reference, which is either a tag or commit.

The build key is optional, and is used to control how buf builds modules.

Optional. Lists directories within this directory to include in Protobuf file discovery. Only directories added to this list are included in Buf operations.

The excludes key is optional, and lists directories to ignore from .proto file discovery. Any directories added to this list are completely skipped and excluded in the module. We do not recommend using this option in general, however in some situations it is unavoidable.

The lint key is optional, and specifies the lint rules enforced on the files in the module. See https://buf.build/docs/lint/rules.

The use key is optional, and lists the IDs or categories to use for linting.

The ignore key is optional, and allows directories or files to be excluded from all lint rules when running buf lint. If a directory is ignored, then all files and subfolders of the directory will also be ignored. The specified directory or file paths must be relative to the buf.yaml.

The allow_comment_ignores key is optional, and turns on comment-driven ignores. We do not recommend using this option in general, however in some situations it is unavoidable. See https://buf.build/docs/configuration/v1/buf-yaml#allow_comment_ignores.

The enum_zero_value_suffix key is optional, and controls the behavior of the ENUM_ZERO_VALUE_SUFFIX lint rule. See https://buf.build/docs/configuration/v1/buf-yaml#enum_zero_value_suffix.

The rpc_allow_same_request_response key is optional, and allows the same message type to be used for a single RPC's request and response type. We do not recommend using this option in general.

The rpc_allow_google_protobuf_empty_requests key is optional, and allows RPC requests to be google.protobuf.Empty messages. This can be set if you want to allow messages to be void forever, that is, to never take any parameters. We do not recommend using this option in general.

The rpc_allow_google_protobuf_empty_responses key is optional, and allows RPC responses to be google.protobuf.Empty messages. This can be set if you want to allow messages to never return any parameters. We do not recommend using this option in general.

The service_suffix key is optional, and controls the behavior of the SERVICE_SUFFIX lint rule. See https://buf.build/docs/configuration/v1/buf-yaml#service_suffix.

The breaking key is optional, and specifies the breaking change detection rules enforced on the files contained within the module.

The use key is optional, and lists the IDs or categories to use for breaking change detection. The default value is the single item FILE, which is what we recommend.

The except key is optional, and removes IDs or categories from the use list. We do not recommend using this option in general.

The ignore key is optional, and allows directories or files to be excluded from all breaking rules when running buf breaking. If a directory is ignored, then all files and subfolders of the directory will also be ignored. The specified directory or file paths must be relative to the buf.yaml. This option can be useful for ignoring packages that are in active development but not deployed in production, especially alpha or beta packages, and we expect ignore to be commonly used for this case.

The ignore_unstable_packages key is optional, and ignores packages with a last component that is one of the unstable forms recognized by PACKAGE_VERSION_SUFFIX.

Required. Defines the list of modules that will be built together in this workspace. Any dependencies that the files have on each other are automatically taken into account when building and shouldn't be declared in the deps section.

Required. The path to a directory containing Protobuf files, which must be defined relative to the workspace root (the directory that contains the buf.yaml file). All path values must point to directories within the workspace.

Optional. A Buf Schema Registry (BSR) path that uniquely identifies this directory. The name must be a valid module name and it defines the BSR repository that contains the commit and label history and generated artifacts for the Protobuf files in the directory.

Optional. Lists directories within this directory to exclude from Protobuf file discovery. Any directories added to this list are completely skipped and excluded from Buf operations. We don't recommend using this option, but in some situations it's unavoidable.

Optional. Declares one or more modules that your workspace depends on. Each deps entry must be a module name, which is directly associated with a BSR repository, and can also include a specific reference, which is either a commit ID or a label. Dependencies are shared between all modules in the set. Buf tooling already accounts for dependencies between the modules that are part of the set, so they shouldn't be declared here.

Provide a JSON object that satisfies the schema "buf.yaml". 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-07/schema#","$id":"https://json.schemastore.org/buf.plugin.json","$comment":"https://github.com/bufbuild/plugins/blob/main/CONTRIBUTING.md","title":"buf.plugin.yaml","description":"A `buf.plugin.yaml` file captures metadata about the plugin. It includes mandatory and optional fields that are displayed on the individual plugin page and the BSR plugin homepage at https://buf.build/plugins.","type":"object","required":["version","name","plugin_version"],"properties":{"version":{"description":"The YAML configuration version, must be `v1`.","type":"string","const":"v1"},"name":{"description":"The plugin identity with format `{remote}/{organization_name}/{plugin_name}`.","type":"string"},"plugin_version":{"description":"The plugin version with format`v{semver}`, the `v` prefix is required and the version must be valid [semantic versioning](https://semver.org/).","type":"string"},"source_url":{"description":"URL to the source code of the Protobuf plugin.","type":"string"},"description":{"description":"Description of the plugin.","type":"string"},"output_languages":{"description":"The output language types generated by the plugin. See the PluginLanguage enum for existing languages. Open a GitHub issue in the Buf CLI (https://github.com/bufbuild/buf) if the output language isn't found for a plugin.","type":"array","items":{"type":"string","enum":["go","javascript","typescript","swift","cpp","java","dart","rust","python","ruby","kotlin","objective_c","php","csharp","scala","c"]}},"spdx_license_id":{"description":"The license id for the plugin from https://spdx.org/licenses.","type":"string"},"integration_guide_url":{"description":"The URL to the integration guide for the plugin.","type":"string"},"deps":{"description":"A list of dependencies on other plugins used by Generated SDKs.","type":"array","items":{"type":"object","additionalProperties":false,"required":["plugin"],"properties":{"plugin":{"description":"The reference to the plugin dependency with format `{name}:{plugin_version}`.","type":"string"},"revision":{"description":"If specified, the dependency will be to a specific version of a plugin. It is recommended to leave this off (the plugin will depend on the latest revision at time of publishing).","type":"integer","minimum":0}}}},"registry":{"description":"Configuration to enable a plugin for use with Generated SDKs.","type":"object","additionalProperties":false,"properties":{"opts":{"description":"Options supplied to the plugin when generating code for the SDK.","type":"array","items":{"type":"string"}},"go":{"description":"Generated SDK configuration for a Go plugin.","type":"object","additionalProperties":false,"properties":{"min_version":{"description":"The minimum Go version required by the plugin (e.g. `1.19`), used as the go directive in the `go.mod` file. See https://go.dev/ref/mod#go-mod-file-go.","type":"string"},"deps":{"description":"A list of Go module requirements. Each requirement corresponds to a require directive in the `go.mod` file. See https://go.dev/ref/mod#go-mod-file-require.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"module":{"description":"Go module name.","type":"string"},"version":{"description":"Go module version.","type":"string"}}}}}},"npm":{"description":"Generated SDK configuration for a JavaScript/TypeScript plugin.","type":"object","additionalProperties":false,"required":["import_style"],"properties":{"rewrite_import_path_suffix":{"description":"The suffix used in the generated files and their imported dependencies (supported by @bufbuild/protoplugin (https://www.npmjs.com/package/@bufbuild/protoplugin) plugins).","type":"string"},"deps":{"description":"NPM package dependencies for the Generated SDK.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"package":{"description":"The name of the NPM package dependency.","type":"string"},"version":{"description":"The version of the NPM package dependency (see https://docs.npmjs.com/about-semantic-versioning#using-semantic-versioning-to-specify-update-types-your-package-can-accept for more details).","type":"string"}}}},"import_style":{"description":"One of either `module` or `commonjs`.","type":"string","enum":["module","commonjs"]}}},"maven":{"description":"Generated SDK configuration for a Java/Kotlin plugin.","type":"object","additionalProperties":false,"properties":{"compiler":{"type":"object","additionalProperties":false,"properties":{"java":{"description":"Java compiler settings.","type":"object","additionalProperties":false,"properties":{"encoding":{"description":"Encoding of source files.","type":"string","default":"UTF-8"},"release":{"description":"Target Java release.","type":"integer","default":"8"},"source":{"description":"Source bytecode level.","type":"integer","default":"8"},"target":{"description":"Target bytecode level.","type":"integer","default":"8"}}},"kotlin":{"description":"Kotlin compiler settings.","type":"object","additionalProperties":false,"required":["version"],"properties":{"api_version":{"description":"Kotlin API version.","type":"string"},"jvm_target":{"description":"JVM bytecode target version","type":"string","default":"1.8"},"language_version":{"description":"Kotlin version source compatibility.","type":"string","default":"8"},"version":{"description":"Version of the Kotlin compiler","type":"string"}}}}},"deps":{"description":"Runtime dependencies of the generated Java/Kotlin code (in GAV format).","type":"array","uniqueItems":true,"items":{"type":"string"}},"additional_runtimes":{"description":"Configures additional supported runtimes.","type":"array","items":{"type":"object","additionalProperties":false,"required":["name"],"properties":{"name":{"description":"The name of the additional runtime. The only known name at this time is `lite` for Protobuf lite runtime support.","type":"string","const":"lite"},"deps":{"description":"Dependencies for the runtime. These override `registry -> maven -> deps` if specified.","type":"array","uniqueItems":true,"items":{"type":"string"}},"opts":{"description":"Plugin options for the additional runtime.","type":"array","items":{"type":"string"}}}}}}},"python":{"description":"Generated SDK configuration for a Python plugin.","type":"object","additionalProperties":false,"required":["package_type"],"properties":{"deps":{"description":"Runtime dependencies of the generated code.","type":"array","uniqueItems":true,"items":{"type":"string"}},"requires_python":{"description":"Specifies the `Requires-Python` of the generated package.","type":"string"},"package_type":{"description":"One of `runtime` or `stub-only`.","type":"string","enum":["runtime","stub-only"]}}},"swift":{"description":"Generated SDK configuration for a Swift plugin.","type":"object","additionalProperties":false,"properties":{"deps":{"description":"Dependencies of the generated code.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"source":{"description":"URL of the Swift package.","type":"string"},"package":{"description":"Name of the Swift package.","type":"string"},"version":{"description":"Version of the Swift package.","type":"string"},"products":{"description":"Products to import.","type":"array","items":{"type":"string"}},"platforms":{"type":"object","additionalProperties":false,"properties":{"macos":{"description":"Version of the macOS platform.","type":"string"},"ios":{"description":"Version of the iOS platform.","type":"string"},"tvos":{"description":"Version of the tvOS platform.","type":"string"},"watchos":{"description":"Version of the watchOS platform.","type":"string"}}},"swift_versions":{"description":"Versions of Swift the package supports.","type":"array","items":{"type":"string"}}}}}}},"cargo":{"description":"Generated SDK configuration for a Rust plugin.","type":"object","additionalProperties":false,"properties":{"rust_version":{"description":"The rust-version set for the generated crate.","type":"string"},"deps":{"description":"Crates.io dependencies for the Generated SDK.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"name":{"description":"The name of the dependency.","type":"string"},"req":{"description":"The version request of the dependency.","type":"string"},"default_features":{"description":"Whether or not to enable default features for the dependency.","type":"boolean"},"features":{"description":"The features to enable for the dependency.","type":"array","items":{"type":"string"}}}}}}},"nuget":{"description":"Generated SDK configuration for a C# plugin.","type":"object","additionalProperties":false,"properties":{"target_frameworks":{"description":"The target frameworks the generated package supports.","type":"array","items":{"type":"string"}},"deps":{"description":"nuget.org dependencies for the Generated SDK.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"name":{"description":"The package ID of the dependency.","type":"string"},"version":{"description":"The version range of the dependency.","type":"string"},"target_frameworks":{"description":"The target frameworks the dependency applies to.","type":"array","items":{"type":"string"}}}}}}},"cmake":{"description":"Generated SDK configuration for a CMake plugin.","type":"object","additionalProperties":false}}}}}
</schema>

[User] Provide a JSON object that satisfies the schema "buf.plugin.yaml". Here are the required top‑level fields: version, name, plugin_version. Return only the valid JSON object.

buf.plugin.yaml

A `buf.plugin.yaml` file captures metadata about the plugin. It includes mandatory and optional fields that are displayed on the individual plugin page and the BSR plugin homepage at https://buf.build/plugins.

The YAML configuration version, must be `v1`.

The plugin identity with format `{remote}/{organization_name}/{plugin_name}`.

The plugin version with format`v{semver}`, the `v` prefix is required and the version must be valid [semantic versioning](https://semver.org/).

URL to the source code of the Protobuf plugin.

Description of the plugin.

The output language types generated by the plugin. See the PluginLanguage enum for existing languages. Open a GitHub issue in the Buf CLI (https://github.com/bufbuild/buf) if the output language isn't found for a plugin.

go javascript typescript swift cpp java dart rust python ruby kotlin objective_c php csharp scala c

The license id for the plugin from https://spdx.org/licenses.

The URL to the integration guide for the plugin.

A list of dependencies on other plugins used by Generated SDKs.

The reference to the plugin dependency with format `{name}:{plugin_version}`.

If specified, the dependency will be to a specific version of a plugin. It is recommended to leave this off (the plugin will depend on the latest revision at time of publishing).

Configuration to enable a plugin for use with Generated SDKs.

Options supplied to the plugin when generating code for the SDK.

Generated SDK configuration for a Go plugin.

The minimum Go version required by the plugin (e.g. `1.19`), used as the go directive in the `go.mod` file. See https://go.dev/ref/mod#go-mod-file-go.

A list of Go module requirements. Each requirement corresponds to a require directive in the `go.mod` file. See https://go.dev/ref/mod#go-mod-file-require.

Go module name.

Go module version.

Generated SDK configuration for a JavaScript/TypeScript plugin.

The suffix used in the generated files and their imported dependencies (supported by @bufbuild/protoplugin (https://www.npmjs.com/package/@bufbuild/protoplugin) plugins).

NPM package dependencies for the Generated SDK.

The name of the NPM package dependency.

The version of the NPM package dependency (see https://docs.npmjs.com/about-semantic-versioning#using-semantic-versioning-to-specify-update-types-your-package-can-accept for more details).

One of either `module` or `commonjs`.

Generated SDK configuration for a Java/Kotlin plugin.

Java compiler settings.

Encoding of source files.

Target Java release.

Source bytecode level.

Target bytecode level.

Kotlin compiler settings.

Kotlin API version.

JVM bytecode target version

Kotlin version source compatibility.

Version of the Kotlin compiler

Runtime dependencies of the generated Java/Kotlin code (in GAV format).

Configures additional supported runtimes.

The name of the additional runtime. The only known name at this time is `lite` for Protobuf lite runtime support.

Dependencies for the runtime. These override `registry -> maven -> deps` if specified.

Plugin options for the additional runtime.

Generated SDK configuration for a Python plugin.

Runtime dependencies of the generated code.

Specifies the `Requires-Python` of the generated package.

One of `runtime` or `stub-only`.

Generated SDK configuration for a Swift plugin.

Dependencies of the generated code.

URL of the Swift package.

Name of the Swift package.

Version of the Swift package.

Products to import.

Version of the macOS platform.

Version of the iOS platform.

Version of the tvOS platform.

Version of the watchOS platform.

Versions of Swift the package supports.

Generated SDK configuration for a Rust plugin.

The rust-version set for the generated crate.

Crates.io dependencies for the Generated SDK.

The name of the dependency.

The version request of the dependency.

Whether or not to enable default features for the dependency.

The features to enable for the dependency.

Generated SDK configuration for a C# plugin.

The target frameworks the generated package supports.

nuget.org dependencies for the Generated SDK.

The package ID of the dependency.

The version range of the dependency.

The target frameworks the dependency applies to.

Generated SDK configuration for a CMake plugin.

Provide a JSON object that satisfies the schema "buf.plugin.yaml". Here are the required top‑level fields: version, name, plugin_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-07/schema#","$id":"https://json.schemastore.org/buf.work.json","$comment":"https://buf.build/docs/configuration/v1/buf-work-yaml","title":"buf.work.yaml","description":"buf.work.yaml is used to define a workspace, which is an advanced local development feature. Workspaces make it possible to consolidate one or more modules into a single buildable unit. They also allow users to run buf operations across multiple modules with a single execution (such as buf lint).","type":"object","properties":{"version":{"description":"Required. Defines the current configuration version. The only accepted value is v1.","type":"string","const":"v1"},"directories":{"description":"Required. Lists the directories that define modules to be included in the workspace. The directory paths must be relative to the buf.work.yaml, and can't point to a location outside of the directory where your buf.work.yaml is.","type":"array","items":{"type":"string"}}},"required":["version","directories"]}
</schema>

[User] Provide a JSON object that satisfies the schema "buf.work.yaml". Here are the required top‑level fields: version, directories. Return only the valid JSON object.

buf.work.yaml

buf.work.yaml is used to define a workspace, which is an advanced local development feature. Workspaces make it possible to consolidate one or more modules into a single buildable unit. They also allow users to run buf operations across multiple modules with a single execution (such as buf lint).

Required. Defines the current configuration version. The only accepted value is v1.

Required. Lists the directories that define modules to be included in the workspace. The directory paths must be relative to the buf.work.yaml, and can't point to a location outside of the directory where your buf.work.yaml is.

Provide a JSON object that satisfies the schema "buf.work.yaml". Here are the required top‑level fields: version, directories. 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#","definitions":{"Entry(String,NodeCacheUser)":{"type":"object","properties":{"key":{"type":"string"},"value":{"$ref":"#/definitions/NodeCacheUser"},"hashCode()":{"type":"integer"}},"required":["key","value","hashCode()"],"additionalProperties":false,"minProperties":1},"NodeCacheUser":{"type":"object","properties":{"level":{"type":"string","enum":["read","readwrite"],"description":"The level of the access for the build cache user"},"note":{"type":["string","null"],"description":"Some optional free text"},"password":{"allOf":[{"$ref":"#/definitions/Sha256HashedSecretString"},{"description":"The hashed password of the user"}]}},"required":["level","password"],"description":"A user of the build cache","additionalProperties":false,"minProperties":1},"Sha256HashedSecretString":{"type":"string","pattern":"^(?:\\s*[A-Za-z0-9+/]){43}(?:\\s*=):(?:(?:\\s*[A-Za-z0-9+/]){4})*(?:(?:\\s*[A-Za-z0-9+/]){2}(?:\\s*=){2}|(?:\\s*[A-Za-z0-9+/]){3}(?:\\s*=))?\\s*$"},"TargetSizeFixed":{"type":"object","description":"Use a fixed target cache size","additionalProperties":false,"minProperties":1,"properties":{"type":{"const":"fixed"},"size":{"type":"integer","description":"The total available size of the cache in MiB","minimum":1}}},"TargetSizeMaxAvailable":{"type":"object","description":"Set the target cache size dynamically based on the disk volume's capacity","additionalProperties":false,"minProperties":1,"properties":{"type":{"const":"maxAvailable"}}},"UiAccessDisabled":{"type":"object","description":"Access to the build cache node UI is disabled","additionalProperties":false,"minProperties":1,"properties":{"type":{"const":"disabled"}}},"UiAccessGenerated":{"type":"object","description":"Generated as startup credentials used for secure access to cache node UI","additionalProperties":false,"minProperties":1,"properties":{"type":{"const":"generated"}}},"UiAccessOpen":{"type":"object","description":"Access to the build cache node UI is open for anyone","additionalProperties":false,"minProperties":1,"properties":{"type":{"const":"open"}}},"UiAccessSecure":{"type":"object","required":["password","username"],"description":"Credentials used for secure access to cache node UI","additionalProperties":false,"minProperties":1,"properties":{"type":{"const":"secure"},"password":{"allOf":[{"$ref":"#/definitions/Sha256HashedSecretString"},{"description":"The hashed password for securing the cache node UI"}]},"username":{"type":"string","description":"The username for securing the cache node UI"}}}},"type":"object","description":"The configuration format for build cache nodes","additionalProperties":false,"minProperties":1,"properties":{"version":{"const":5,"description":"The version of the config file model (must be 5)."},"cache":{"allOf":[{"type":"object","properties":{"accessControl":{"allOf":[{"type":"object","properties":{"anonymousLevel":{"type":"string","enum":["none","read","readwrite"],"description":"The level of the access for anonymous users"},"users":{"type":"object","additionalProperties":{"$ref":"#/definitions/NodeCacheUser"},"description":"The users of the cache and their access level"}},"description":"These credentials are used to restrict access to the build cache","additionalProperties":false,"minProperties":1},{"description":"The credentials for reading and writing to the cache"}]},"freeSpaceBufferSize":{"type":"integer","description":"The free space buffer to reserve in MiB","minimum":256},"maxArtifactSize":{"type":"integer","description":"The maximum size of a single artifact in the cache in MiB","minimum":1},"maxEntryAgeInHours":{"type":["integer","null"],"description":"The maximum age of an artifact in the cache in hours, if enabled","minimum":1},"targetSize":{"type":"object","properties":{"type":{"enum":["fixed","maxAvailable"]}},"required":["type"],"allOf":[{"if":{"properties":{"type":{"const":"fixed"}}},"then":{"$ref":"#/definitions/TargetSizeFixed"}},{"if":{"properties":{"type":{"const":"maxAvailable"}}},"then":{"$ref":"#/definitions/TargetSizeMaxAvailable"}}],"minProperties":1}},"description":"Settings around cache size and access","additionalProperties":false,"minProperties":1},{"description":"The cache settings"}]},"registration":{"allOf":[{"type":["object","null"],"properties":{"key":{"type":"string","description":"The key of the node (can be found on the nodes screen of Gradle Enterprise)"},"nodeAddress":{"type":"string","description":"The URI of this build cache node","format":"uri"},"secret":{"type":"string","description":"The secret of the node (can be found on the nodes screen of Gradle Enterprise)"},"serverAddress":{"type":"string","description":"The URI of the Gradle Enterprise instance","format":"uri"}},"required":["key","nodeAddress","secret","serverAddress"],"description":"Settings for connecting to Gradle Enterprise","additionalProperties":false,"minProperties":1},{"description":"The registration details to connect to Gradle Enterprise"}]},"uiAccess":{"type":"object","properties":{"type":{"enum":["disabled","open","secure","generated"]}},"required":["type"],"allOf":[{"if":{"properties":{"type":{"const":"disabled"}}},"then":{"$ref":"#/definitions/UiAccessDisabled"}},{"if":{"properties":{"type":{"const":"open"}}},"then":{"$ref":"#/definitions/UiAccessOpen"}},{"if":{"properties":{"type":{"const":"secure"}}},"then":{"$ref":"#/definitions/UiAccessSecure"}},{"if":{"properties":{"type":{"const":"generated"}}},"then":{"$ref":"#/definitions/UiAccessGenerated"}}],"minProperties":1}},"required":["version"]}
</schema>

[User] Provide a JSON object that satisfies the schema "build-cache-node-config-schema-5". Here are the required top‑level fields: version. Return only the valid JSON object.

The level of the access for the build cache user

Some optional free text

The hashed password of the user

A user of the build cache

Use a fixed target cache size

The total available size of the cache in MiB

Set the target cache size dynamically based on the disk volume's capacity

Access to the build cache node UI is disabled

Generated as startup credentials used for secure access to cache node UI

Access to the build cache node UI is open for anyone

Credentials used for secure access to cache node UI

The hashed password for securing the cache node UI

The username for securing the cache node UI

The configuration format for build cache nodes

The version of the config file model (must be 5).

The level of the access for anonymous users

The users of the cache and their access level

These credentials are used to restrict access to the build cache

The credentials for reading and writing to the cache

The free space buffer to reserve in MiB

The maximum size of a single artifact in the cache in MiB

The maximum age of an artifact in the cache in hours, if enabled

Settings around cache size and access

The cache settings

The key of the node (can be found on the nodes screen of Gradle Enterprise)

The URI of this build cache node

The secret of the node (can be found on the nodes screen of Gradle Enterprise)

The URI of the Gradle Enterprise instance

Settings for connecting to Gradle Enterprise

The registration details to connect to Gradle Enterprise

Provide a JSON object that satisfies the schema "build-cache-node-config-schema-5". Here are the required top‑level fields: version. Return only the valid JSON object.