[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/Function","definitions":{"BuildSpec":{"properties":{"git":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/Git","description":"Git stores information about an optionally associated git repository."},"builderImages":{"patternProperties":{".*":{"type":"string"}},"type":"object","description":"BuilderImages define optional explicit builder images to use by\nbuilder implementations in leau of the in-code defaults.  They key\nis the builder's short name.  For example:\nbuilderImages:\n  pack: example.com/user/my-pack-node-builder\n  s2i: example.com/user/my-s2i-node-builder"},"buildpacks":{"items":{"type":"string"},"type":"array","description":"Optional list of buildpacks to use when building the function"},"builder":{"enum":["pack","s2i"],"type":"string","description":"Builder is the name of the subsystem that will complete the underlying\nbuild (pack, s2i, etc)"},"buildEnvs":{"items":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/Env"},"type":"array","description":"Build Env variables to be set"},"pvcSize":{"type":"string","description":"PVCSize specifies the size of persistent volume claim used to store function\nwhen using deployment and remote build process (only relevant when Remote is true)."}},"additionalProperties":false,"type":"object","description":"BuildSpec"},"DeploySpec":{"properties":{"namespace":{"type":"string","description":"Namespace into which the function is deployed on supported platforms."},"remote":{"type":"boolean","description":"Remote indicates the deployment (and possibly build) process are to\nbe triggered in a remote environment rather than run locally."},"annotations":{"patternProperties":{".*":{"type":"string"}},"type":"object","description":"Map containing user-supplied annotations\nExample: { \"division\": \"finance\" }"},"options":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/Options","description":"Options to be set on deployed function (scaling, etc.)"},"labels":{"items":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/Label"},"type":"array","description":"Map of user-supplied labels"},"healthEndpoints":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/HealthEndpoints","description":"Health endpoints specified by the language pack"},"serviceAccountName":{"type":"string","description":"ServiceAccountName is the name of the service account used for the\nfunction pod. The service account must exist in the namespace to\nsucceed.\nMore info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/"}},"additionalProperties":false,"type":"object","description":"DeploySpec"},"EmptyDir":{"properties":{"medium":{"type":"string","description":"medium represents what type of storage medium should back this directory.\nThe default is \"\" which means to use the node's default medium.\nMust be an empty string (default) or Memory.\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir"},"sizeLimit":{"type":"string","description":"sizeLimit is the total amount of local storage required for this EmptyDir volume.\nThe size limit is also applicable for memory medium.\nThe maximum usage on memory medium EmptyDir would be the minimum value between\nthe SizeLimit specified here and the sum of memory limits of all containers in a pod.\nThe default is nil which means that the limit is undefined.\nMore info: http://kubernetes.io/docs/user-guide/volumes#emptydir"}},"additionalProperties":false,"type":"object"},"Env":{"properties":{"name":{"pattern":"^[-._a-zA-Z][-._a-zA-Z0-9]*$","type":"string"},"value":{"type":"string"}},"additionalProperties":false,"type":"object"},"Function":{"required":["specVersion","created"],"properties":{"specVersion":{"type":"string","description":"SpecVersion at which this function is known to be compatible.\nMore specifically, it is the highest migration which has been applied.\nFor details see the .Migrated() and .Migrate() methods."},"name":{"pattern":"^[a-z0-9]([-a-z0-9]*[a-z0-9])?$","type":"string","description":"Name of the function."},"domain":{"type":"string","description":"Domain of the function optionally specifies the domain to use as the\nroute of the function. By default the cluster's default will be used.\nNote that the value defined here must be one which the cluster is\nconfigured to recognize, or this will have no effect and the cluster\ndefault will be applied.  This value shuld therefore ideally be\nvalidated by the client."},"runtime":{"type":"string","description":"Runtime is the language plus context.  nodejs|go|quarkus|rust etc."},"registry":{"type":"string","description":"Registry at which to store interstitial containers, in the form\n[registry]/[user]."},"image":{"type":"string","description":"Image is the full OCI image tag in form:\n  [registry]/[namespace]/[name]:[tag]\nexample:\n  quay.io/alice/my.function.name\nRegistry is optional and is defaulted to DefaultRegistry\nexample:\n  alice/my.function.name\nIf Image is provided, it overrides the default of concatenating\n\"Registry+Name:latest\" to derive the Image."},"imageDigest":{"type":"string","description":"ImageDigest is the SHA256 hash of the latest image that has been built"},"created":{"type":"string","description":"Created time is the moment that creation was successfully completed\naccording to the client which is in charge of what constitutes being\nfully \"Created\" (aka initialized)","format":"date-time"},"invoke":{"type":"string","description":"Invoke defines hints for use when invoking this function.\nSee Client.Invoke for usage."},"build":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/BuildSpec","description":"Build defines the build properties for a function"},"run":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/RunSpec","description":"Run defines the runtime properties for a function"},"deploy":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/DeploySpec","description":"Deploy defines the deployment properties for a function"}},"additionalProperties":false,"type":"object","description":"Function"},"Git":{"properties":{"url":{"type":"string"},"revision":{"type":"string"},"contextDir":{"type":"string"}},"additionalProperties":false,"type":"object"},"HealthEndpoints":{"properties":{"liveness":{"type":"string"},"readiness":{"type":"string"}},"additionalProperties":false,"type":"object","description":"HealthEndpoints specify the liveness and readiness endpoints for a Runtime"},"Label":{"required":["key"],"properties":{"key":{"pattern":"^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*\\/)?([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]$","type":"string","description":"Key consist of optional prefix part (ended by '/') and name part\nPrefix part validation pattern: [a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*\nName part validation pattern: ([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]"},"value":{"pattern":"^(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?$","type":"string"}},"additionalProperties":false,"type":"object"},"Options":{"properties":{"scale":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/ScaleOptions"},"resources":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/ResourcesOptions"}},"additionalProperties":false,"type":"object"},"PersistentVolumeClaim":{"properties":{"claimName":{"type":"string","description":"claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume.\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims"},"readOnly":{"type":"boolean","description":"readOnly Will force the ReadOnly setting in VolumeMounts.\nDefault false."}},"additionalProperties":false,"type":"object"},"ResourcesLimitsOptions":{"properties":{"cpu":{"pattern":"^([+-]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$","type":"string"},"memory":{"pattern":"^([+-]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$","type":"string"},"concurrency":{"type":"integer","minimum":0}},"additionalProperties":false,"type":"object"},"ResourcesOptions":{"properties":{"requests":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/ResourcesRequestsOptions"},"limits":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/ResourcesLimitsOptions"}},"additionalProperties":false,"type":"object"},"ResourcesRequestsOptions":{"properties":{"cpu":{"pattern":"^([+-]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$","type":"string"},"memory":{"pattern":"^([+-]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$","type":"string"}},"additionalProperties":false,"type":"object"},"RunSpec":{"properties":{"volumes":{"items":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/Volume"},"type":"array","description":"List of volumes to be mounted to the function"},"envs":{"items":{"$ref":"#/definitions/Env"},"type":"array","description":"Env variables to be set"},"startTimeout":{"type":"integer","description":"StartTimeout specifies that this function should have a custom timeout\nwhen starting. This setting is currently respected by the host runner,\nwith containerized docker runner and deployed Knative service integration\nin development."}},"additionalProperties":false,"type":"object","description":"RunSpec"},"ScaleOptions":{"properties":{"min":{"type":"integer","minimum":0},"max":{"type":"integer","minimum":0},"metric":{"enum":["concurrency","rps"],"type":"string"},"target":{"type":"number","minimum":0},"utilization":{"maximum":100,"minimum":1,"type":"number"}},"additionalProperties":false,"type":"object"},"Volume":{"properties":{"secret":{"type":"string"},"configMap":{"type":"string"},"presistentVolumeClaim":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/PersistentVolumeClaim"},"emptyDir":{"$schema":"http://json-schema.org/draft-04/schema#","$ref":"#/definitions/EmptyDir"},"path":{"type":"string"}},"additionalProperties":false,"type":"object","oneOf":[{"required":["secret"],"title":"secret"},{"required":["configMap"],"title":"configmap"},{"required":["presistentVolumeClaim"],"title":"presistentVolumeClaim"},{"required":["emptyDir"],"title":"emptyDir"}]}}}
</schema>

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

Git stores information about an optionally associated git repository.

BuilderImages define optional explicit builder images to use by
builder implementations in leau of the in-code defaults.  They key
is the builder's short name.  For example:
builderImages:
  pack: example.com/user/my-pack-node-builder
  s2i: example.com/user/my-s2i-node-builder

Optional list of buildpacks to use when building the function

Builder is the name of the subsystem that will complete the underlying
build (pack, s2i, etc)

Build Env variables to be set

PVCSize specifies the size of persistent volume claim used to store function
when using deployment and remote build process (only relevant when Remote is true).

BuildSpec

Namespace into which the function is deployed on supported platforms.

Remote indicates the deployment (and possibly build) process are to
be triggered in a remote environment rather than run locally.

Map containing user-supplied annotations
Example: { "division": "finance" }

Options to be set on deployed function (scaling, etc.)

Map of user-supplied labels

Health endpoints specified by the language pack

ServiceAccountName is the name of the service account used for the
function pod. The service account must exist in the namespace to
succeed.
More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/

DeploySpec

medium represents what type of storage medium should back this directory.
The default is "" which means to use the node's default medium.
Must be an empty string (default) or Memory.
More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir

sizeLimit is the total amount of local storage required for this EmptyDir volume.
The size limit is also applicable for memory medium.
The maximum usage on memory medium EmptyDir would be the minimum value between
the SizeLimit specified here and the sum of memory limits of all containers in a pod.
The default is nil which means that the limit is undefined.
More info: http://kubernetes.io/docs/user-guide/volumes#emptydir

SpecVersion at which this function is known to be compatible.
More specifically, it is the highest migration which has been applied.
For details see the .Migrated() and .Migrate() methods.

Name of the function.

Domain of the function optionally specifies the domain to use as the
route of the function. By default the cluster's default will be used.
Note that the value defined here must be one which the cluster is
configured to recognize, or this will have no effect and the cluster
default will be applied.  This value shuld therefore ideally be
validated by the client.

Runtime is the language plus context.  nodejs|go|quarkus|rust etc.

Registry at which to store interstitial containers, in the form
[registry]/[user].

Image is the full OCI image tag in form:
  [registry]/[namespace]/[name]:[tag]
example:
  quay.io/alice/my.function.name
Registry is optional and is defaulted to DefaultRegistry
example:
  alice/my.function.name
If Image is provided, it overrides the default of concatenating
"Registry+Name:latest" to derive the Image.

ImageDigest is the SHA256 hash of the latest image that has been built

Created time is the moment that creation was successfully completed
according to the client which is in charge of what constitutes being
fully "Created" (aka initialized)

Invoke defines hints for use when invoking this function.
See Client.Invoke for usage.

Build defines the build properties for a function

Run defines the runtime properties for a function

Deploy defines the deployment properties for a function

Function

HealthEndpoints specify the liveness and readiness endpoints for a Runtime

Key consist of optional prefix part (ended by '/') and name part
Prefix part validation pattern: [a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*
Name part validation pattern: ([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]

claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume.
More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims

readOnly Will force the ReadOnly setting in VolumeMounts.
Default false.

List of volumes to be mounted to the function

Env variables to be set

StartTimeout specifies that this function should have a custom timeout
when starting. This setting is currently respected by the host runner,
with containerized docker runner and deployed Knative service integration
in development.

RunSpec

secret

configmap

presistentVolumeClaim

emptyDir

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


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$schema":"http://json-schema.org/draft-04/schema#","definitions":{"bindingBase":{"properties":{"name":{"type":"string"},"type":{"type":"string"},"direction":{"type":"string","enum":["in","out","inout"]},"dataType":{"enum":["string","binary","stream"],"description":"The data type hint for the binding parameter (string, binary, or stream)."}},"required":["name","type","direction"]},"dynamicBinding":{"properties":{"type":{"not":{"enum":["serviceBusTrigger","serviceBus","blobTrigger","blob","manualTrigger","eventHubTrigger","eventHub","timerTrigger","queueTrigger","queue","httpTrigger","http","mobileTable","documentDB","table","notificationHub","twilioSms","sendGrid","sql","sqlTrigger","kusto","mysql","mysqlTrigger"]}},"direction":{"enum":["in","out","inout"]}}},"serviceBusBinding":{"properties":{"queueName":{"type":"string","description":"The service bus queue to monitor (if using a queue)"},"topicName":{"type":"string","description":"The service bus topic to monitor (if using a queue)"},"subscriptionName":{"type":"string","description":"The topic subscription name"},"connection":{"type":"string","description":"An app setting (or environment variable) with the service bus connection string to be used by this binding."},"accessRights":{"type":"string","description":"The permission level of the service bus connection string used by this binding.","enum":["manage","listen","send"]}},"oneOf":[{"properties":{"type":{"enum":["serviceBusTrigger"]},"direction":{"enum":["in"]}}},{"properties":{"type":{"enum":["serviceBus"]},"direction":{"enum":["out"]}}}]},"blobBinding":{"properties":{"path":{"type":"string","description":"The path to the blob container"},"connection":{"type":"string","description":"An app setting (or environment variable) with the storage connection string to be used by this binding."}},"oneOf":[{"properties":{"type":{"enum":["blobTrigger"]},"direction":{"enum":["in"]}}},{"properties":{"type":{"enum":["blob"]}}}]},"manualTriggerBinding":{"properties":{"type":{"enum":["manualTrigger"]},"direction":{"enum":["in"]}}},"eventHubBinding":{"properties":{"path":{"type":"string","description":"The event hub path."},"connection":{"type":"string","description":"The event hub connection string setting."}},"oneOf":[{"properties":{"type":{"enum":["eventHubTrigger"]},"direction":{"enum":["in"]},"consumerGroup":{"type":"string","description":"The event hub consumer group."},"cardinality":{"enum":["one","many"],"description":"The cardinality hint for the input binding parameter (single message or array of messages)."}}},{"properties":{"type":{"enum":["eventHub"]},"direction":{"enum":["out"]}}}]},"timerTriggerBinding":{"properties":{"type":{"enum":["timerTrigger"]},"direction":{"enum":["in"]},"schedule":{"type":"string","description":"A cron expression of the format '{second} {minute} {hour} {day} {month} {day of week}' to specify the schedule."},"runOnStartup":{"type":"boolean","description":"When true, your timer function will be invoked immediately after a runtime restart and on-schedule thereafter."},"useMonitor":{"type":"boolean","description":"When true, schedule will be persisted to aid in maintaining the correct schedule even through restarts. Defaults to true for schedules with interval >= 1 minute."}}},"queueBinding":{"properties":{"queueName":{"type":"string","description":"The queue name."},"connection":{"type":"string","description":"An app setting (or environment variable) with the storage connection string to be used by this binding."}},"oneOf":[{"properties":{"type":{"enum":["queueTrigger"]},"direction":{"enum":["in"]}}},{"properties":{"type":{"enum":["queue"]},"direction":{"enum":["out"]}}}]},"httpTrigger":{},"httpBinding":{"oneOf":[{"properties":{"type":{"enum":["httpTrigger"]},"direction":{"enum":["in"]},"route":{"type":"string","description":"The function HTTP route template."},"webHookType":{"type":"string","description":"The type of WebHook handled by the trigger (if handling a pre-defined WebHook)."},"authLevel":{"type":"string","default":"function","enum":["anonymous","function","admin"],"description":"The function HTTP authorization level."},"methods":{"type":"array","items":[{"type":"string","enum":["get","post","delete","head","patch","put","options","trace"]}]}}},{"properties":{"type":{"enum":["http"]},"direction":{"enum":["out"]}}}]},"mobileBinding":{"properties":{"type":{"enum":["mobileTable"]},"tableName":{"type":"string","description":"This is the name of the table within your Mobile App to which data will be written."},"connection":{"type":"string","description":"This is the app setting name that specifies the URL of your Mobile App."},"apiKey":{"type":"string","description":"This is app setting name that specifies the API Key for your Mobile App."}},"oneOf":[{"properties":{"direction":{"enum":["in"]},"id":{"type":"string","description":"This is the id for the record to retrieve."}}},{"properties":{"direction":{"enum":["out"]}}}]},"documentDBBinding":{"properties":{"type":{"enum":["documentDB"]},"connection":{"type":"string","description":"This is the connection string for your DocumentDB account."},"databaseName":{"type":"string","description":"This is the name of the database within your DocumentDB account to which data will be written."},"collectionName":{"type":"string","description":"This is the name of the collection within your database to which data will be written."}},"oneOf":[{"properties":{"direction":{"enum":["in"]},"id":{"type":"string","description":"This is the id for the record to retrieve."},"sqlQuery":{"type":"string","description":"This is the query to run against the collection."}}},{"properties":{"direction":{"enum":["out"]},"createIfNotExists":{"type":"boolean","description":"When true, your database and collection will be created automatically."}}}]},"tableBinding":{"properties":{"type":{"enum":["table"]},"tableName":{"type":"string","description":"The name of the storage table."},"partitionKey":{"type":"string","description":"The partition key."},"rowKey":{"type":"string","description":"The table row key."},"connection":{"type":"string","description":"An app setting (or environment variable) with the storage connection string to be used by this binding."}},"oneOf":[{"properties":{"direction":{"enum":["in"]},"take":{"type":"string","description":"The number or records to retrieve."},"filter":{"type":"string","description":"A filter expression to be applied when retrieving rows."}}},{"properties":{"direction":{"enum":["out"]}}}]},"notificationHubBinding":{"properties":{"type":{"enum":["notificationHub"]},"direction":{"enum":["out"]},"tagExpression":{"type":"string","description":"The tag to send the notification to."},"hubName":{"type":"string","description":"The name of the notification hub."},"connection":{"type":"string","description":"The name of the app setting which contains the notification hub connection string."},"platform":{"type":"string","description":"The notification platform to target. Sends template notification if platform is omitted.","enum":["apns","adm","gcm","wns","mpns"]}}},"twilioSmsBinding":{"properties":{"type":{"enum":["twilioSms"]},"direction":{"enum":["out"]},"accountSid":{"type":"string","description":"The name of the app setting which contains your Twilio Account Sid."},"authToken":{"type":"string","description":"The name of the app setting which contains your Twilio authentication token."},"to":{"type":"string","description":"The phone number the SMS text is sent to."},"from":{"type":"string","description":"The phone number the SMS text is sent from."},"body":{"type":"string","description":"Optional body of SMS text message."}}},"sendGridBinding":{"properties":{"type":{"enum":["sendGrid"]},"direction":{"enum":["out"]},"apiKey":{"type":"string","description":"The name of the app setting which contains your SendGrid api key."},"to":{"type":"string","description":"The email address to send to."},"from":{"type":"string","description":"The email address to send from."},"subject":{"type":"string","description":"The subject of the email."},"text":{"type":"string","description":"The text of the email."}}},"sqlBinding":{"properties":{"connectionStringSetting":{"type":"string","description":"The name of the app setting that contains the SQL connection string used to connect to the database."}},"oneOf":[{"properties":{"type":{"enum":["sqlTrigger"]},"tableName":{"type":"string","description":"The name of the table to be monitored for changes."}}},{"properties":{"type":{"enum":["sql"]},"direction":{"enum":["in"]},"commandText":{"type":"string","description":"Either a query string or the name of a stored procedure to execute."},"commandType":{"enum":["text","storedProcedure"],"description":"Whether the commandText is a query (text) or a stored procedure (storedProcedure)."},"parameters":{"type":"string","description":"The parameters to the query or stored procedure."}}},{"properties":{"type":{"const":"sql"},"direction":{"const":"out"},"commandText":{"type":"string","description":"The name of the table into which rows will be upserted."}}}]},"kustoBinding":{"properties":{"connection":{"type":"string","description":"Name of the app setting that contains the kusto connection string used to connect to kusto."},"database":{"type":"string","description":"Name of the database within your kusto account to which data will be read/written."},"managedServiceIdentity":{"type":"string","description":"A managed service identity that has to be attached to use the bindings."},"type":{"enum":["kusto"]}},"oneOf":[{"properties":{"direction":{"enum":["in"]},"kqlCommand":{"type":"string","description":"The Kusto command to execute.Can be a KQL query or a KQL function with optional parameters."},"kqlParameters":{"type":"string","description":"The parameters to the query or function. Named parameters are of the form @paramName=paramValue."}}},{"properties":{"direction":{"enum":["out"]},"tableName":{"type":"string","description":"The table to ingest the data into."},"mappingRef":{"type":"string","description":"An ingestion mapping ref that points to the mapping created in kusto and referenced in ingestion (optional)."},"dataFormat":{"type":"string","description":"Dataformat to use in ingestion.The default dataformat is `multijson/json`. This has been tested for text formats"}}}]},"mySqlBinding":{"properties":{"connectionStringSetting":{"type":"string","description":"The name of the app setting that contains the MySql connection string used to connect to the database."}},"oneOf":[{"properties":{"type":{"enum":["mysql"]},"direction":{"enum":["in"]},"commandText":{"type":"string","description":"Either a query string or the name of a stored procedure to execute."},"commandType":{"enum":["text","storedProcedure"],"description":"Whether the commandText is a query or a stored procedure."},"parameters":{"type":"string","description":"The parameters to the query or stored procedure."}}},{"properties":{"type":{"const":"mysql"},"direction":{"enum":["out"]},"commandText":{"type":"string","description":"The name of the table into which rows will be upserted."}}},{"properties":{"type":{"enum":["mysqlTrigger"]},"tableName":{"type":"string","description":"The name of the table to be monitored for changes."}}}]}},"id":"https://json.schemastore.org/function.json","properties":{"disabled":{"type":"boolean","description":"If set to true, marks the function as disabled (it cannot be triggered)."},"excluded":{"type":"boolean","description":"If set to true, the function will not be loaded, compiled, or triggered."},"scriptFile":{"type":"string","description":"Optional path to function script file."},"entryPoint":{"type":"string","description":"Optional named entry point."},"configurationSource":{"enum":["attributes","config"],"description":"For C# precompiled functions only. If set to 'attributes', use WebJobs attributes to specify bindings. Otherwise, use the 'bindings' property of this function.json."},"retry":{"description":"Retry policy of function execution failures.","type":"object","properties":{"strategy":{"description":"Retry strategy to use for retrying function executions","enum":["exponentialBackoff","fixedDelay"],"default":"exponentialBackoff"},"maxRetryCount":{"description":"The maximum number of retries allowed per function execution. -1 means to retry indefinitely.","type":"integer"},"delayInterval":{"description":"Value indicating the delayInterval for function execution retries when using FixedDelay strategy.","oneOf":[{"type":"string","pattern":"^(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d$"},{"enum":[null]}]},"minimumInterval":{"description":"Value indicating the minimumInterval for function execution retries when using ExponentialBackoff strategy.","oneOf":[{"type":"string","pattern":"^(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d$"},{"enum":[null]}]},"maximumInterval":{"description":"Value indicating the maximumInterval for function execution retries when using ExponentialBackoff strategy.","oneOf":[{"type":"string","pattern":"^(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d$"},{"enum":[null]}]}}},"bindings":{"type":"array","description":"A list of function bindings.","items":{"oneOf":[{"$ref":"#/definitions/dynamicBinding"},{"oneOf":[{"$ref":"#/definitions/serviceBusBinding"},{"$ref":"#/definitions/blobBinding"},{"$ref":"#/definitions/manualTriggerBinding"},{"$ref":"#/definitions/eventHubBinding"},{"$ref":"#/definitions/timerTriggerBinding"},{"$ref":"#/definitions/queueBinding"},{"$ref":"#/definitions/httpBinding"},{"$ref":"#/definitions/mobileBinding"},{"$ref":"#/definitions/documentDBBinding"},{"$ref":"#/definitions/tableBinding"},{"$ref":"#/definitions/notificationHubBinding"},{"$ref":"#/definitions/twilioSmsBinding"},{"$ref":"#/definitions/sendGridBinding"},{"$ref":"#/definitions/sqlBinding"},{"$ref":"#/definitions/kustoBinding"},{"$ref":"#/definitions/mySqlBinding"}]}],"allOf":[{"$ref":"#/definitions/bindingBase"}]}}},"title":"JSON schema for Azure Functions function.json files","type":"object"}
</schema>

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

The data type hint for the binding parameter (string, binary, or stream).

serviceBusTrigger serviceBus blobTrigger blob manualTrigger eventHubTrigger eventHub timerTrigger queueTrigger queue httpTrigger http mobileTable documentDB table notificationHub twilioSms sendGrid sql sqlTrigger kusto mysql mysqlTrigger

The service bus queue to monitor (if using a queue)

The service bus topic to monitor (if using a queue)

The topic subscription name

An app setting (or environment variable) with the service bus connection string to be used by this binding.

The permission level of the service bus connection string used by this binding.

The path to the blob container

An app setting (or environment variable) with the storage connection string to be used by this binding.

The event hub path.

The event hub connection string setting.

The event hub consumer group.

The cardinality hint for the input binding parameter (single message or array of messages).

A cron expression of the format '{second} {minute} {hour} {day} {month} {day of week}' to specify the schedule.

When true, your timer function will be invoked immediately after a runtime restart and on-schedule thereafter.

When true, schedule will be persisted to aid in maintaining the correct schedule even through restarts. Defaults to true for schedules with interval >= 1 minute.

The queue name.

The function HTTP route template.

The type of WebHook handled by the trigger (if handling a pre-defined WebHook).

The function HTTP authorization level.

get post delete head patch put options trace

This is the name of the table within your Mobile App to which data will be written.

This is the app setting name that specifies the URL of your Mobile App.

This is app setting name that specifies the API Key for your Mobile App.

This is the id for the record to retrieve.

This is the connection string for your DocumentDB account.

This is the name of the database within your DocumentDB account to which data will be written.

This is the name of the collection within your database to which data will be written.

This is the query to run against the collection.

When true, your database and collection will be created automatically.

The name of the storage table.

The partition key.

The table row key.

The number or records to retrieve.

A filter expression to be applied when retrieving rows.

The tag to send the notification to.

The name of the notification hub.

The name of the app setting which contains the notification hub connection string.

The notification platform to target. Sends template notification if platform is omitted.

The name of the app setting which contains your Twilio Account Sid.

The name of the app setting which contains your Twilio authentication token.

The phone number the SMS text is sent to.

The phone number the SMS text is sent from.

Optional body of SMS text message.

The name of the app setting which contains your SendGrid api key.

The email address to send to.

The email address to send from.

The subject of the email.

The text of the email.

The name of the app setting that contains the SQL connection string used to connect to the database.

The name of the table to be monitored for changes.

Either a query string or the name of a stored procedure to execute.

Whether the commandText is a query (text) or a stored procedure (storedProcedure).

The parameters to the query or stored procedure.

The name of the table into which rows will be upserted.

Name of the app setting that contains the kusto connection string used to connect to kusto.

Name of the database within your kusto account to which data will be read/written.

A managed service identity that has to be attached to use the bindings.

The Kusto command to execute.Can be a KQL query or a KQL function with optional parameters.

The parameters to the query or function. Named parameters are of the form @paramName=paramValue.

The table to ingest the data into.

An ingestion mapping ref that points to the mapping created in kusto and referenced in ingestion (optional).

Dataformat to use in ingestion.The default dataformat is `multijson/json`. This has been tested for text formats

The name of the app setting that contains the MySql connection string used to connect to the database.

Whether the commandText is a query or a stored procedure.

If set to true, marks the function as disabled (it cannot be triggered).

If set to true, the function will not be loaded, compiled, or triggered.

Optional path to function script file.

Optional named entry point.

For C# precompiled functions only. If set to 'attributes', use WebJobs attributes to specify bindings. Otherwise, use the 'bindings' property of this function.json.

Retry policy of function execution failures.

Retry strategy to use for retrying function executions

The maximum number of retries allowed per function execution. -1 means to retry indefinitely.

Value indicating the delayInterval for function execution retries when using FixedDelay strategy.

Value indicating the minimumInterval for function execution retries when using ExponentialBackoff strategy.

Value indicating the maximumInterval for function execution retries when using ExponentialBackoff strategy.

A list of function bindings.

Provide a JSON object that satisfies the schema "JSON schema for Azure Functions function.json files". 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 "MappingConfig". Here are the required top‑level fields: mappings. Return only the valid JSON object.

MAPPING_TYPE

Class for lookup tables

Parent Dir

Id

In Lang

Out Lang

Language Name

Display Name

As Is

Case Sensitive

Escape Special

Out Delimiter

Reverse

Prevent Feeding

Alignments

Alignments Path

Authors

Abbreviations

Abbreviations Path

Rules

Rules Path

Mapping

NORM_FORM_ENUM

RULE_ORDERING_ENUM

In

Out

Context Before

Context After

Prevent Feeding

Match Pattern

Intermediate Form

Comment

Rule

This is the format used by g2p for configuring mappings.

Mappings

MappingConfig

Provide a JSON object that satisfies the schema "MappingConfig". Here are the required top‑level fields: mappings. Return only the valid JSON object.


[User] Provide a JSON object that satisfies the schema "Ansible galaxy.yml Schema". Here are the required top‑level fields: namespace, name, version, readme, authors, description, repository. Return only the valid JSON object.

CollectionVersionConstraintModel

SPDXLicense

An enumeration.

SPDXLicenseEnum

Authors

Build Ignore

Dependencies

Description

Documentation

Homepage

Issues

License

License File

A dict controlling use of manifest directives used in building the collection artifact.
The key directives is a list of MANIFEST.in style directives
The key omit_default_directives is a boolean that controls whether the default directives are used.
Mutually exclusive with build_ignore.

Directives

Omit Default Directives

Manifest

Name

Namespace

The path to the Markdown (.md) readme file. This path is relative to the root of the collection.
See [metadata structure](https://docs.ansible.com/ansible/latest/dev_guide/collections_galaxy_meta.html)

Readme

Repository

Tags

Version must use [SemVer](https://semver.org/) format, which is more restrictive than [PEP-440](https://peps.python.org/pep-0440/). For example `1.0.0-rc1` is valid but `1.0.0rc` is not.

Version

namespace name version readme authors description repository

Ansible galaxy.yml Schema

Provide a JSON object that satisfies the schema "Ansible galaxy.yml Schema". Here are the required top‑level fields: namespace, name, version, readme, authors, description, repository. 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/gaspar-3.0.json","title":"Gaspar Config","type":"object","anyOf":[{"required":["Models"]},{"required":["Controllers"]}],"additionalProperties":false,"minProperties":1,"properties":{"$schema":{"type":"string"},"Models":{"title":"Models","type":"object","description":"Options for outputting Models and Enums","required":["Output"],"additionalProperties":false,"properties":{"Include":{"type":"array","description":"List of file locations containing the models or controllers you wish to translate. Optional, if not provided will use all .cs files in the project.","items":{"type":"string"},"default":["./**/*.cs"]},"Exclude":{"type":"array","description":"List of file locations to exclude from the Include list","items":{"type":"string"}},"Output":{"type":"array","description":"Output options. You must supply at least one of these.","minItems":1,"items":{"title":"Output definition","type":"object","required":["Type","Location"],"properties":{"Type":{"type":"string","description":"Output for","enum":["TypeScript","Angular","Swift","Kotlin","Proto"]},"Location":{"type":"string","description":"The location to output the translated file to (relative to the project root).","minLength":1}},"allOf":[{"if":{"anyOf":[{"properties":{"Type":{"const":"Kotlin"}}},{"properties":{"Type":{"const":"Proto"}}}]},"then":{"additionalProperties":false,"required":["PackageNamespace"],"properties":{"Type":true,"Location":true,"PackageNamespace":{"type":"string","description":"Namespace to be used when generating .proto file outputs."}}}},{"if":{"properties":{"Type":{"const":"TypeScript"}}},"then":{"additionalProperties":false,"properties":{"Type":true,"Location":true,"AddInferredNullables":{"type":"boolean","description":"Property types that are explicitly nullable (e.g. int?) will always be outputted with null types (e.g. number | null). Set this property to true to add null types to C# types that could be null if unset.\nIn short, if your C# project doesn't enable \"nullable annotation context\", set this to true.","default":false},"NullablesAlsoUndefinded":{"type":"boolean","description":"If set to true, all nullable properties (those exported with | null) will additional have | undefined added to the type.","default":false}}}}]}},"UseEnumValue":{"type":"boolean","description":"Enums will be written with their value, either set directly or from an Attribute (e.g. [EnumMember(Value = \"name\")]).","default":true},"StringLiteralTypesInsteadOfEnums":{"type":"boolean","description":"For TypeScript, if true will export enums as types instead of TypeScript enums.","default":false}}},"Controllers":{"type":"object","title":"Controllers","description":"Options for outputting service communication contracts for Controllers","required":["Output","ServiceName"],"additionalProperties":false,"properties":{"Include":{"type":"array","items":{"type":"string"},"default":["./**/*.cs"],"description":"List of file locations containing the models or controllers you wish to translate. Optional, if not provided will use all .cs files in the project."},"Exclude":{"type":"array","items":{"type":"string"},"description":"List of file locations to exclude from the Include list"},"Output":{"type":"array","description":"Output options. You must supply at least one of these.","minItems":1,"items":{"type":"object","title":"Output definition","required":["Type","Location"],"properties":{"Type":{"type":"string","description":"Output for","enum":["Angular","CSharp","Ocelot","Python","TypeScript"]},"Location":{"type":"string","description":"The location to output the translated file to (relative to the project root). You can include {ServiceName}, {ServiceHost} or {ServicePort} to have those placeholders replaced (see the demo file).","minLength":1},"UrlPrefix":{"type":"string","description":"When building the service contract, you can prefix the url with this value; e.g. \"http://myservice.com:81\". The service url will be built from this followed by / then the action route. Can include {ServiceName}, {ServiceHost} or {ServicePort} to have those placeholders replaced (see the demo file)."}},"allOf":[{"if":{"properties":{"Type":{"const":"CSharp"}}},"then":{"additionalProperties":false,"properties":{"Type":true,"Location":true,"UrlPrefix":true,"UrlHandlerFunction":{"type":"string","description":"If you would like to run your url through a function to ensure it is correct, you can provide the function name here."},"LoggingReceiver":{"type":"string","description":"When using your exported service communication endpoint, if there's an error receiving the response or deserializing it, the error will be logged to the console (using Console.WriteLine). If you would like the error to be absorbed by your own logging system you can provide a static logging class name here."},"ModelNamespaces":{"type":"array","description":"List of namespaces to include at the top of your exported Service Communication class. This would include the namespaces to custom types in the export, or your serializer and logging tools.","items":{"type":"string"}}}}},{"if":{"anyOf":[{"properties":{"Type":{"const":"TypeScript"}}},{"properties":{"Type":{"const":"Angular"}}}]},"then":{"additionalProperties":false,"properties":{"Type":true,"Location":true,"UrlPrefix":true,"AddInferredNullables":{"type":"boolean","description":"Property types that are explicitly nullable (e.g. int?) will always be outputted with null types (e.g. number | null). Set this property to true to add null types to C# types that could be null if unset.\nIn short, if your C# project doesn't enable \"nullable annotation context\", set this to true.","default":false},"NullablesAlsoUndefinded":{"type":"boolean","description":"If set to true, all nullable properties (those exported with | null) will additional have | undefined added to the type.","default":false},"HelperFile":{"type":"string","description":"The service communication export requires some extra code to handle the boilerplate requests. This is the name of the file that should be exported. If omitted, the code will be included at the top of the exported service communications file, which may cause issues if you're exporting from multiple projects."},"ModelPath":{"type":"string","description":"Path to a file containing definitions for any custom types used in your service communications (excluding the extension, as is usual for TypeScript includes). Ideally, this is the file exported by the model export part of this application."},"ErrorHandlerPath":{"type":"string","description":"If an error is received from the requested endpoint, it will be absorbed (although it will always be seen in the browser console). The response will include the error details if you want to handle it from the calling class, but if you always want to show a message to the user (e.g. using a SnackBar), you can provide an error handler."},"DefaultErrorMessage":{"type":"string","description":"When using the ErrorHandler (above), this controls what the message parameter contains.","enum":["None","ServerResponse","Generic"]},"Imports":{"type":"object","title":"Imports","description":"List of imports to include at the top of your exported Service Communication class.","additionalProperties":{"type":"string"}}}}},{"if":{"properties":{"Type":{"const":"Python"}}},"then":{"additionalProperties":false,"properties":{"Type":true,"Location":true,"UrlPrefix":true,"HelperFile":{"type":"string","description":"The service communication export requires some extra code to handle the boilerplate requests. This is the name of the file that should be exported. If omitted, the code will be included at the top of the exported service communications file, which may cause issues if you're exporting from multiple projects."},"Imports":{"type":"object","title":"Python imports","description":"List of imports to include at the top of your exported Service Communication class.","additionalProperties":{"type":"string"}}}}},{"if":{"properties":{"Type":{"const":"Ocelot"}}},"then":{"additionalProperties":false,"properties":{"Type":true,"Location":true,"UrlPrefix":true,"DefaultScopes":{"type":"array","description":"If specified, the scopes listed here will be outputted into the \"AllowedScopes\" section of \"AuthenticationOptions\" for all routes. Scopes can include {ServiceName}, {ServiceHost} or {ServicePort} to have those placeholders replaced (see the demo file).","items":{"type":"string"}},"ScopesByHttpMethod":{"type":"object","title":"Ocelot scopes by http method","description":"Dictionary keyed on scope names. Each element can contain an array of Http Methods; if the route matches a listed method, the key will be added to the \"AllowedScopes\" section of \"AuthenticationOptions\". Dictionary keys can include {ServiceName}, {ServiceHost} or {ServicePort} to have those placeholders replaced (see the demo file).","examples":[{"service.write":["POST","PUT","GET"],"service.read":["GET"]}],"additionalProperties":{"type":"array"}},"NoAuth":{"type":"boolean","description":"If true, the \"AuthenticationOptions\" section of the Ocelot config will not be outputted.","default":false},"ExcludeScopes":{"type":"boolean","description":"If true, the \"AllowedScopes\" section of the Ocelot config will not be outputted.","default":false}}}}]}},"ServiceName":{"type":"string","description":"Used to name exported items, can also be used in paths.","minLength":1},"ServiceHost":{"type":"string","description":"Used by Ocelot Export, and can be used in paths. Typically set to 'http' or 'https'"},"ServicePort":{"type":"integer","description":"Used by Ocelot Export, and can be used in paths.","minimum":1}}},"GroupTypes":{"type":"object","title":"Group Types","description":"Export names to run multiple outputs under a single name.  e.g. Specify a group type called 'App' and add 'Swift' and 'Kotlin'","examples":[{"App":["Swift","Kotlin"]}],"additionalProperties":{"type":"array","uniqueItems":true,"items":{"type":"string","enum":["Angular","CSharp","Ocelot","TypeScript","Proto","Python","Swift","Kotlin"]}}},"TypeTranslations":{"type":"object","title":"Output type translations","description":"For TypeScript, Angular, Swift, Kotlin and Proto, you can override type names to objects each language will understand.","propertyNames":{"enum":["TypeScript","Angular","Swift","Kotlin","Proto"]},"examples":[{"TypeScript":{"IMyInterface":"Object"}}],"additionalProperties":{"type":"object","title":"Type translations","description":"Type names to override for the specified language.","examples":[{"IMyInterface":"Object"}],"additionalProperties":{"type":"string"}}},"GlobalTypeTranslations":{"type":"object","title":"Global type translations","description":"For TypeScript, Angular, Swift, Kotlin and Proto, you can override type names to objects the exported language will understand.  These will apply equally to all exports, 'TypeTranslations' may be more useful","examples":[{"IMyInterface":"Object"}],"additionalProperties":{"type":"string"}},"IgnoreMissingOutputLocations":{"type":"boolean","description":"If the file output location cannot be found, you will get a build error; add \"IgnoreMissingOutputLocations\": true to skip the error. This is useful when you need to build in an environment where the output may not be available (e.g. docker); although it would usually be preferable to use dotnet build /p:RunGaspar=False in your scripts.","default":false},"IgnoreAnnotations":{"type":"boolean","description":"Set this to true to export all objects irrespective if they have [ExportFor] or not.","default":false}}}
</schema>

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

Gaspar Config

Models

Options for outputting Models and Enums

List of file locations containing the models or controllers you wish to translate. Optional, if not provided will use all .cs files in the project.

List of file locations to exclude from the Include list

Output options. You must supply at least one of these.

Output definition

Output for

The location to output the translated file to (relative to the project root).

Namespace to be used when generating .proto file outputs.

Property types that are explicitly nullable (e.g. int?) will always be outputted with null types (e.g. number | null). Set this property to true to add null types to C# types that could be null if unset.
In short, if your C# project doesn't enable "nullable annotation context", set this to true.

If set to true, all nullable properties (those exported with | null) will additional have | undefined added to the type.

Enums will be written with their value, either set directly or from an Attribute (e.g. [EnumMember(Value = "name")]).

For TypeScript, if true will export enums as types instead of TypeScript enums.

Controllers

Options for outputting service communication contracts for Controllers

Output options. You must supply at least one of these.

Output definition

Output for

The location to output the translated file to (relative to the project root). You can include {ServiceName}, {ServiceHost} or {ServicePort} to have those placeholders replaced (see the demo file).

When building the service contract, you can prefix the url with this value; e.g. "http://myservice.com:81". The service url will be built from this followed by / then the action route. Can include {ServiceName}, {ServiceHost} or {ServicePort} to have those placeholders replaced (see the demo file).

If you would like to run your url through a function to ensure it is correct, you can provide the function name here.

When using your exported service communication endpoint, if there's an error receiving the response or deserializing it, the error will be logged to the console (using Console.WriteLine). If you would like the error to be absorbed by your own logging system you can provide a static logging class name here.

List of namespaces to include at the top of your exported Service Communication class. This would include the namespaces to custom types in the export, or your serializer and logging tools.

Property types that are explicitly nullable (e.g. int?) will always be outputted with null types (e.g. number | null). Set this property to true to add null types to C# types that could be null if unset.
In short, if your C# project doesn't enable "nullable annotation context", set this to true.

If set to true, all nullable properties (those exported with | null) will additional have | undefined added to the type.

The service communication export requires some extra code to handle the boilerplate requests. This is the name of the file that should be exported. If omitted, the code will be included at the top of the exported service communications file, which may cause issues if you're exporting from multiple projects.

Path to a file containing definitions for any custom types used in your service communications (excluding the extension, as is usual for TypeScript includes). Ideally, this is the file exported by the model export part of this application.

If an error is received from the requested endpoint, it will be absorbed (although it will always be seen in the browser console). The response will include the error details if you want to handle it from the calling class, but if you always want to show a message to the user (e.g. using a SnackBar), you can provide an error handler.

When using the ErrorHandler (above), this controls what the message parameter contains.

Imports

List of imports to include at the top of your exported Service Communication class.

The service communication export requires some extra code to handle the boilerplate requests. This is the name of the file that should be exported. If omitted, the code will be included at the top of the exported service communications file, which may cause issues if you're exporting from multiple projects.

Python imports

List of imports to include at the top of your exported Service Communication class.

If specified, the scopes listed here will be outputted into the "AllowedScopes" section of "AuthenticationOptions" for all routes. Scopes can include {ServiceName}, {ServiceHost} or {ServicePort} to have those placeholders replaced (see the demo file).

Ocelot scopes by http method

Dictionary keyed on scope names. Each element can contain an array of Http Methods; if the route matches a listed method, the key will be added to the "AllowedScopes" section of "AuthenticationOptions". Dictionary keys can include {ServiceName}, {ServiceHost} or {ServicePort} to have those placeholders replaced (see the demo file).

If true, the "AuthenticationOptions" section of the Ocelot config will not be outputted.

If true, the "AllowedScopes" section of the Ocelot config will not be outputted.

Used to name exported items, can also be used in paths.

Used by Ocelot Export, and can be used in paths. Typically set to 'http' or 'https'

Group Types

Export names to run multiple outputs under a single name.  e.g. Specify a group type called 'App' and add 'Swift' and 'Kotlin'

Angular CSharp Ocelot TypeScript Proto Python Swift Kotlin

Output type translations

For TypeScript, Angular, Swift, Kotlin and Proto, you can override type names to objects each language will understand.

Type translations

Type names to override for the specified language.

Global type translations

For TypeScript, Angular, Swift, Kotlin and Proto, you can override type names to objects the exported language will understand.  These will apply equally to all exports, 'TypeTranslations' may be more useful

If the file output location cannot be found, you will get a build error; add "IgnoreMissingOutputLocations": true to skip the error. This is useful when you need to build in an environment where the output may not be available (e.g. docker); although it would usually be preferable to use dotnet build /p:RunGaspar=False in your scripts.

Set this to true to export all objects irrespective if they have [ExportFor] or not.

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


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$schema":"http://json-schema.org/draft-07/schema","$id":"https://dwp.gov.uk/exchange/publishing-tools/gateway-config-schema.json","title":"Gateway configuration","type":"object","properties":{"services":{"title":"Services","type":"array","items":{"$ref":"service-schema.json"}}},"additionalProperties":false,"required":["services"]}
</schema>

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

Gateway configuration

Services

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


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

Provide a JSON object that satisfies the schema "gcp-blueprint-metadata". 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/gematik-test-hcp1s.json","title":"HCPIsRepository","description":"List of all hcpis","definitions":{"Hcpi":{"title":"HCPI","description":"An HCPI","type":"object","additionalProperties":false,"properties":{"hcpiData":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string"},"telematik-id":{"type":"string"},"hcpiRole":{"type":"string"}},"required":["name","telematik-id","hcpiRole"]},"ownerTestsuite":{"type":"string"},"cards":{"type":"array","items":{"$ref":"https://json.schemastore.org/gematik-test-patients.json#/definitions/Card","type":"object"}}},"required":["hcpiData","cards"]}},"type":"object","properties":{"hcpis":{"type":"object","existingJavaType":"java.util.Map<String, Hcpi>","additionalProperties":{"$ref":"#/definitions/Hcpi","type":"object"}}}}
</schema>

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

HCPIsRepository

List of all hcpis

HCPI

An HCPI

Provide a JSON object that satisfies the schema "HCPIsRepository". 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/gematik-test-hcps.json","title":"HCPsRepository","description":"List of all hcps","definitions":{"Hcp":{"title":"HCP","description":"An HCP","type":"object","additionalProperties":false,"properties":{"hcpData":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"object","additionalProperties":false,"properties":{"title":{"type":"string"},"given":{"type":"string"},"last":{"type":"string"}},"required":["given","last"]},"telematik-id":{"type":"string"},"hcpi":{"type":"string"},"hcpRole":{"type":"string"}},"required":["name","telematik-id","hcpi","hcpRole"]},"ownerTestsuite":{"type":"string"},"cards":{"type":"array","items":{"$ref":"https://json.schemastore.org/gematik-test-patients.json#/definitions/Card","type":"object"}}},"required":["hcpData","cards"]}},"type":"object","properties":{"hcps":{"type":"object","existingJavaType":"java.util.Map<String, Hcp>","additionalProperties":{"$ref":"#/definitions/Hcp","type":"object"}}}}
</schema>

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

HCPsRepository

List of all hcps

HCP

An HCP

Provide a JSON object that satisfies the schema "HCPsRepository". 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 "PatientsRepository". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

PatientsRepository

List of all patients used for testing by gematik

A patient

Provide a JSON object that satisfies the schema "PatientsRepository". 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 "Tiger environment configuration". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

Tiger environment configuration

A configuration file for the test environment of the gematik Tiger test platform

Provide a JSON object that satisfies the schema "Tiger environment configuration". 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":"https://json-schema.org/draft/2020-12/schema","title":"Gen YAML Configuration Schema","type":"object","additionalProperties":false,"properties":{"configVersion":{"type":"string","description":"The version of the configuration file","minLength":1},"generation":{"$ref":"#/$defs/generation"},"go":{"$ref":"./languages/go.schema.json","description":"Configuration specific to Go SDK"},"typescript":{"$ref":"./languages/typescript.schema.json","description":"Configuration specific to TypeScript SDK"},"python":{"$ref":"./languages/python.schema.json","description":"Configuration specific to Python SDK"},"java":{"$ref":"./languages/java.schema.json","description":"Configuration specific to Java SDK"},"csharp":{"$ref":"./languages/csharp.schema.json","description":"Configuration specific to C# SDK"},"unity":{"$ref":"./languages/unity.schema.json","description":"Configuration specific to Unity SDK"},"php":{"$ref":"./languages/php.schema.json","description":"Configuration specific to PHP SDK"},"ruby":{"$ref":"./languages/ruby.schema.json","description":"Configuration specific to Ruby SDK"},"postman":{"$ref":"./languages/postman.schema.json","description":"Configuration specific to Postman Collections"},"terraform":{"$ref":"./languages/terraform.schema.json","description":"Configuration specific to Terraform Providers"}},"required":["configVersion","generation"],"$defs":{"generation":{"type":"object","description":"Generation configuration","additionalProperties":true,"properties":{"devContainers":{"$ref":"#/$defs/devContainers"},"baseServerURL":{"type":"string","description":"The base URL of the server. This value will be used if global servers are not defined in the spec."},"sdkClassName":{"type":"string","description":"Generated name of the root SDK class"},"maintainOpenAPIOrder":{"type":"boolean","description":"Maintains the order of parameters and fields in the OpenAPI specification"},"usageSnippets":{"$ref":"#/$defs/usageSnippets"},"useClassNamesForArrayFields":{"type":"boolean","description":"Use class names for array fields instead of the child's schema type"},"fixes":{"$ref":"#/$defs/fixes"},"auth":{"$ref":"#/$defs/auth"},"mockServer":{"$ref":"#/$defs/mockServer"},"tests":{"$ref":"#/$defs/tests"}}},"devContainers":{"type":"object","description":"Dev container configuration","properties":{"enabled":{"type":"boolean","description":"Whether dev containers are enabled"},"schemaPath":{"type":"string","description":"Path to the schema file for the dev container"}},"additionalProperties":true},"usageSnippets":{"type":"object","description":"Configuration for usage snippets","properties":{"optionalPropertyRendering":{"type":"string","enum":["always","never","withExample"],"description":"Controls how optional properties are rendered in usage snippets"}},"additionalProperties":true},"fixes":{"type":"object","description":"Fixes applied to the SDK generation","properties":{"nameResolutionDec2023":{"type":"boolean","description":"Enables name resolution fixes from December 2023"},"nameResolutionFeb2025":{"type":"boolean","description":"Enables name resolution fixes from February 2025"},"parameterOrderingFeb2024":{"type":"boolean","description":"Enables parameter ordering fixes from February 2024"},"requestResponseComponentNamesFeb2024":{"type":"boolean","description":"Enables request and response component naming fixes from February 2024"}},"additionalProperties":true},"auth":{"type":"object","description":"Authentication configuration","properties":{"oAuth2ClientCredentialsEnabled":{"type":"boolean","description":"Enables support for OAuth2 client credentials grant type"},"oAuth2PasswordEnabled":{"type":"boolean","description":"Enables support for OAuth2 resource owner password credentials grant type"}},"additionalProperties":false},"mockServer":{"type":"object","description":"Mock server generation configuration","properties":{"disabled":{"type":"boolean","description":"Disables the code generation of the mock server target"}},"additionalProperties":false},"tests":{"type":"object","description":"Test generation configuration","properties":{"generateTests":{"type":"boolean","description":"Enables generation of tests"},"generateNewTests":{"type":"boolean","description":"Enables generation of new tests for any new operations in the OpenAPI specification"},"skipResponseBodyAssertions":{"type":"boolean","description":"Skip asserting that the client got the same response bodies returned by the mock server"}},"additionalProperties":false}}}
</schema>

[User] Provide a JSON object that satisfies the schema "Gen YAML Configuration Schema". Here are the required top‑level fields: configVersion, generation. Return only the valid JSON object.

Gen YAML Configuration Schema

The version of the configuration file

Configuration specific to Go SDK

Configuration specific to TypeScript SDK

Configuration specific to Python SDK

Configuration specific to Java SDK

Configuration specific to C# SDK

Configuration specific to Unity SDK

Configuration specific to PHP SDK

Configuration specific to Ruby SDK

Configuration specific to Postman Collections

Configuration specific to Terraform Providers

Generation configuration

The base URL of the server. This value will be used if global servers are not defined in the spec.

Generated name of the root SDK class

Maintains the order of parameters and fields in the OpenAPI specification

Use class names for array fields instead of the child's schema type

Dev container configuration

Whether dev containers are enabled

Path to the schema file for the dev container

Configuration for usage snippets

Controls how optional properties are rendered in usage snippets

Fixes applied to the SDK generation

Enables name resolution fixes from December 2023

Enables name resolution fixes from February 2025

Enables parameter ordering fixes from February 2024

Enables request and response component naming fixes from February 2024

Authentication configuration

Enables support for OAuth2 client credentials grant type

Enables support for OAuth2 resource owner password credentials grant type

Mock server generation configuration

Disables the code generation of the mock server target

Test generation configuration

Enables generation of tests

Enables generation of new tests for any new operations in the OpenAPI specification

Skip asserting that the client got the same response bodies returned by the mock server

Provide a JSON object that satisfies the schema "Gen YAML Configuration Schema". Here are the required top‑level fields: configVersion, generation. 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":"https://json-schema.org/draft/2020-12/schema","$id":"https://json.schemastore.org/problem_package_generators.json","$defs":{"testgroup":{"type":"object","title":"Test Group","description":"A test group","properties":{"data":{"description":"Commands or dictionaries defining the test data in this test group","oneOf":[{"type":"array","items":{"allOf":[{"$ref":"#/$defs/data_dict"},{"type":"object","maxProperties":1}]}},{"$ref":"#/$defs/data_dict"}]},"include":{"title":"Inclusion","type":"array","description":"Test cases and test groups to be included in this test group from elsewhere.","items":{"type":"string"}},"testdata.yaml":{"$ref":"#/$defs/testdata_settings"},"solution":{"$ref":"#/$defs/solution"},"visualizer":{"$ref":"#/$defs/visualizer"}},"additionalProperties":false},"testdata_settings":{"type":"object","title":"Test data settings","description":"The settings that apply to the test data for this test group. Will be copied to this test group's `testdata.yaml`.","properties":{"on_reject":{"enum":["break","continue"],"default":"break"},"grading":{"enum":["default","custom"]},"grader_flags":{"type":"string","examples":["min","sum"]},"input_validator_args":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}},{"type":"object","patternProperties":{"^([A-Za-z0-9][A-Za-z0-9_-]*[A-Za-z0-9]|[A-Za-z0-9])$":{"type":"string"}}}],"description":"Defines arguments passed to each input validator for the test case/group. If a sequence of strings, then those are the arguments that will be passed to each input validator for this the case/group. If a map, then each key is the name of the input validator and the value is the arguments to pass to that input validator for the test case/group. Validators not present in the map are run without any arguments."},"output_validator_args":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"Defines arguments passed to the output validator for the test case/group."},"input_validator_flags":{"type":"string","deprecated":true,"description":"With 'problem_format_version: 2023-07-draft' in problem.yaml, use input_validator_args instead."},"output_validator_flags":{"type":"string","deprecated":true,"description":"With 'problem_format_version: 2023-07-draft' in problem.yaml, use input_validator_args instead."},"accept_score":{"type":"string"},"reject_score":{"type":"string"},"range":{"type":"string"}}},"data_dict":{"title":"Data Dictionary","description":"Defines the contents of a test group","type":"object","patternProperties":{"^([A-Za-z0-9][A-Za-z0-9_-]*[A-Za-z0-9]|[A-Za-z0-9]|)$":{"oneOf":[{"$ref":"#/$defs/testgroup"},{"$ref":"#/$defs/testcase"}]}},"additionalProperties":false,"minProperties":1},"testcase":{"title":"Test Case","description":"A test case, i.e., a single instance to the problem.","oneOf":[{"$ref":"#/$defs/command"},{"title":"Test case dictionary","description":"Test case creation dictionary.","type":"object","properties":{"generate":{"$ref":"#/$defs/command"},"copy":{"type":"string","title":"Copy","description":"Copy this test case from the given path relative to `/generators/`.","examples":["manual_cases/sample/3"]},"count":{"type":"integer","minimum":1,"maximum":100,"title":"Count","description":"Generate this number of test cases, substituting `{count}` in the `generate:` command with values between 1 and `count`, inclusive."},"in":{"type":"string","title":"Input","description":"Explicit input given as a string"},"ans":{"type":"string","title":"Default Answer","description":"Explicit default answer given as a string"},"out":{"type":"string","title":"Invalid output","description":"Explicit (in)valid output given as a string; can only be given in (in)valid_output"},"desc":{"type":"string","title":"Description","description":"Privileged information explaining the purpose of this test case given as a string"},"hint":{"type":"string","title":"Hint","description":"Feedback shown to the solver about this test case given as a string"},"interaction":{"title":"Sample interaction","description":"Input is prefixed with `<`, output is prefixed with `>`.","examples":["<1 2\n>3\n<4 5\n>9\n<6 7\n>13\n"],"type":"string","pattern":"^([<>][^\\n]*\\n)+$"},"visualizer":{"$ref":"#/$defs/visualizer"},"random_salt":{"$ref":"#/$defs/random_salt"},"solution":{"$ref":"#/$defs/solution"}},"additionalProperties":false}]},"visualizer":{"title":"Visualizer","description":"Absolute path to and arguments for a visualizer. Leave empty to disable visualizion.","examples":["/visualizer","/visualizers/asy.py","/visualizers/vis --large"],"oneOf":[{"type":"string","pattern":"^/([^{}]|\\{name\\})*(\\{seed(:[0-9]+)?\\})?([^{}]|\\{name\\})*$"},{"type":"null"}]},"random_salt":{"title":"Random Salt","type":"string","description":"\u201cSalt\u201d to add to {seed} variables","examples":["abcd"]},"solution":{"$ref":"#/$defs/slashedfilepath","title":"Default Solution","description":"Absolute path to a solution for this problem or test case.","examples":["/submissions/accepted/sol.py"]},"command":{"title":"Generator Invocation","description":"Invocation of a generator to create this test case","examples":["forest --n 40 --connected","path.cpp 20","random {seed}"],"type":"string","pattern":"^([^{}]|\\{name\\}|\\{count\\})*(\\{seed(:[0-9]+)?\\})?([^{}]|\\{name\\}|\\{count\\})*$"},"slashedfilepath":{"type":"string","pattern":"^/([A-Za-z0-9][A-Za-z0-9_-]*[A-Za-z0-9]/)*[A-Za-z0-9][A-Za-z0-9_.-]*[A-Za-z0-9]$"},"unslashedfilepath":{"type":"string","pattern":"^([A-Za-z0-9][A-Za-z0-9_-]*[A-Za-z0-9]/)*[A-Za-z0-9][A-Za-z0-9_.-]*[A-Za-z0-9]$"},"dirpath":{"type":"string","pattern":"^([A-Za-z0-9]([A-Za-z0-9_-]{0,253}[A-Za-z0-9])?/)*[A-Za-z0-9]([A-Za-z0-9_-]{0,253}[A-Za-z0-9])?$"},"path":{"type":"string","anyOf":[{"pattern":"^([A-Za-z0-9]([A-Za-z0-9_-]{0,253}[A-Za-z0-9])?/)*[A-Za-z0-9]([A-Za-z0-9_-]{0,253}[A-Za-z0-9])?$"},{"pattern":"^/?([A-Za-z0-9]([A-Za-z0-9_-]{0,253}[A-Za-z0-9])?/)*[A-Za-z0-9][A-Za-z0-9_.-]{0,253}[A-Za-z0-9]$"}]}},"additionalProperties":true,"description":"Generate test data for this problem. Version 2025-02.","properties":{"solution":{"$ref":"#/$defs/solution"},"visualizer":{"$ref":"#/$defs/visualizer"},"random_salt":{"$ref":"#/$defs/random_salt"},"generators":{"title":"Generators","description":"List of generators for this problem.","type":"object","patternProperties":{"^([A-Za-z0-9][A-Za-z0-9_-]*[A-Za-z0-9]|[A-Za-z0-9])$":{"title":"Generator","type":"array","items":{"$ref":"#/$defs/path"}}},"additionalProperties":false},"data":{"title":"Test data root","description":"The root test group. Must contain the test groups 'sample' and 'secret'.","type":"object","properties":{"sample":{"$ref":"#/$defs/testgroup","title":"Sample inputs","description":"Test cases shown to the solver in the problem statement"},"secret":{"$ref":"#/$defs/testgroup","title":"Secret inputs","description":"The test cases against which submissions are validated"},"invalid_input":{"$ref":"#/$defs/testgroup","title":"Invalid inputs","description":"Test cases whose input files are invalid"},"invalid_answer":{"$ref":"#/$defs/testgroup","title":"Invalid answers","description":"Test cases whose answer files are invalid. Inputs must be valid."},"invalid_output":{"$ref":"#/$defs/testgroup","title":"Invalid outputs","description":"Valid test cases for which the `.out` string is rejected by output validation."},"valid_output":{"$ref":"#/$defs/testgroup","title":"Valid outputs","description":"Valid test cases for which the `.out` must pass output validation."},"testdata.yaml":{"$ref":"#/$defs/testdata_settings"}},"additionalProperties":false,"required":["sample","secret"]}},"required":["data"],"title":"Generator","type":"object"}
</schema>

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

Test Group

A test group

Commands or dictionaries defining the test data in this test group

Inclusion

Test cases and test groups to be included in this test group from elsewhere.

Test data settings

The settings that apply to the test data for this test group. Will be copied to this test group's `testdata.yaml`.

Defines arguments passed to each input validator for the test case/group. If a sequence of strings, then those are the arguments that will be passed to each input validator for this the case/group. If a map, then each key is the name of the input validator and the value is the arguments to pass to that input validator for the test case/group. Validators not present in the map are run without any arguments.

Defines arguments passed to the output validator for the test case/group.

With 'problem_format_version: 2023-07-draft' in problem.yaml, use input_validator_args instead.

Data Dictionary

Defines the contents of a test group

Test Case

A test case, i.e., a single instance to the problem.

Test case dictionary

Test case creation dictionary.

Copy

Copy this test case from the given path relative to `/generators/`.

Count

Generate this number of test cases, substituting `{count}` in the `generate:` command with values between 1 and `count`, inclusive.

Input

Explicit input given as a string

Default Answer

Explicit default answer given as a string

Invalid output

Explicit (in)valid output given as a string; can only be given in (in)valid_output

Description

Privileged information explaining the purpose of this test case given as a string

Hint

Feedback shown to the solver about this test case given as a string

Sample interaction

Input is prefixed with `<`, output is prefixed with `>`.

Visualizer

Absolute path to and arguments for a visualizer. Leave empty to disable visualizion.

/visualizer
/visualizers/asy.py
/visualizers/vis --large

Random Salt

“Salt” to add to {seed} variables

Default Solution

Absolute path to a solution for this problem or test case.

Generator Invocation

Invocation of a generator to create this test case

forest --n 40 --connected
path.cpp 20
random {seed}

Generate test data for this problem. Version 2025-02.

Generators

List of generators for this problem.

Generator

Test data root

The root test group. Must contain the test groups 'sample' and 'secret'.

Sample inputs

Test cases shown to the solver in the problem statement

Secret inputs

The test cases against which submissions are validated

Invalid inputs

Test cases whose input files are invalid

Invalid answers

Test cases whose answer files are invalid. Inputs must be valid.

Invalid outputs

Valid test cases for which the `.out` string is rejected by output validation.

Valid outputs

Valid test cases for which the `.out` must pass output validation.

Generator

Provide a JSON object that satisfies the schema "Generator". Here are the required top‑level fields: data. 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://gherking.github.io/gherking/gherking.schema.json","title":"GherKing configuration","properties":{"$schema":{"type":"string","description":"The explicit schema set. It is optional, as GherKing is supported by schemastore.org, thus most IDE."},"source":{"type":"string","description":"The source folder or glob pattern of the input feature files.","minLength":1},"base":{"type":"string","description":"The base folder of the input feature files.","minLength":1},"destination":{"type":"string","description":"The destination folder to put the output feature files.","minLength":1},"clean":{"type":"boolean","description":"Whether the destination directory should be clean in advance.","default":false},"verbose":{"type":"boolean","description":"Whether some information should be displayed on the screen.","default":false},"install":{"type":"boolean","description":"Whether the missing precompilers (gpc-* packages) should be installed and save to the package.json. Packages will be installed in the current folder, and package.json created if it is not there yet.","default":false},"compilers":{"type":"array","description":"The precompilers to use and their configuration.","items":{"anyOf":[{"$ref":"#/definitions/gpcCustom"},{"$ref":"#/definitions/gpcFilter"},{"$ref":"#/definitions/gpcForLoop"},{"$ref":"#/definitions/gpcLicense"},{"$ref":"#/definitions/gpcMacro"},{"$ref":"#/definitions/gpcRemoveComments"},{"$ref":"#/definitions/gpcRemoveDuplicates"},{"$ref":"#/definitions/gpcReplacer"},{"$ref":"#/definitions/gpcScenarioNumbering"},{"$ref":"#/definitions/gpcScenarioOutlineExpander"},{"$ref":"#/definitions/gpcScenarioOutlineNumbering"},{"$ref":"#/definitions/gpcStepGroups"},{"$ref":"#/definitions/gpcTestData"}]},"minItems":1},"parseConfig":{"$ref":"#/definitions/parseConfig"},"formatOptions":{"$ref":"#/definitions/formatOptions"}},"required":["compilers"],"additionalProperties":false,"definitions":{"gpcCustom":{"title":"custom precompiler","description":"A custom precompiler configuration, implemented either as an object or a PreCompiler class.","type":"object","properties":{"path":{"type":"string","description":"Either the NPM package name to use, or the path to a JS file containing a PreCompiler.","minLength":1},"configuration":{"type":"object","description":"The configuration object, if necessary, to be passed to the custom precompiler class."}},"required":["path"],"additionalProperties":false},"gpcReplacer":{"title":"gpc-replacer","description":"This GherKing Precompiler is responsible to replace keys in feature files with given values.","type":"object","properties":{"path":{"const":"gpc-replacer"},"configuration":{"type":"object","description":"The key-value pairs to replace in the feature files.","minProperties":1,"patternProperties":{"^[a-zA-Z0-9_-]+$":{"type":["string","integer","boolean","number"]}}}},"required":["path","configuration"],"additionalProperties":false},"gpcFilter":{"title":"gpc-filter","description":"The Filter precompiler is responsible for including or excluding the elements of a feature file in the result, which match a cucumber-tag-expression (e.g., has a given tag, does not have a given tag).","type":"object","properties":{"path":{"const":"gpc-filter"},"configuration":{"type":"string","description":"Cucumber-tag-expression the filtering is based on","default":"not @wip","minLength":1,"pattern":"^.*@[^ ]+.*$","$comment":"The pattern must contain at least one cucumber tag."}},"required":["path"],"additionalProperties":false},"gpcForLoop":{"title":"gpc-for-loop","description":"A precompiler of GherKing to loop scenarios and scenario outlines to repeat them.","type":"object","properties":{"path":{"const":"gpc-for-loop"},"configuration":{"type":"object","properties":{"maxValue":{"type":"integer","description":"Maximum value of iteration.","default":10,"minimum":0},"startIndex":{"type":"integer","description":"Starting index of the iteration","default":1,"minimum":0},"tagName":{"type":"string","description":"Tag used to mark scenarios or outlines to be repeated.","default":"loop","pattern":"^[^ ]+$","minLength":1},"format":{"type":"string","description":"Format of the scenario or outline name after repeating. These tokens must be used: ${name}, ${i}.","default":"${name} (${i})","minLength":11,"allOf":[{"pattern":"^.*\\$\\{name\\}.*$"},{"pattern":"^.*\\$\\{i\\}.*$"}]},"limitToMaxValue":{"type":"boolean","description":"Whether higher iteration values than the max should be limited to the max or error should be thrown (false).","default":true},"keepTag":{"type":"boolean","description":"Whether the loop tags should be kept or removed (default).","default":false},"iterations":{"type":"object","description":"An object of iteration name and values (named repeat values),","minProperties":1,"patternProperties":{"^[a-zA-Z0-9_-]+$":{"type":"integer","minimum":0}}}},"additionalProperties":false}},"required":["path"],"additionalProperties":false},"gpcMacro":{"title":"gpc-macro","description":"This precompiler is responsible for defining macros in feature files and then executing them.","type":"object","properties":{"path":{"const":"gpc-macro"}},"required":["path"],"additionalProperties":false},"gpcRemoveComments":{"title":"gpc-remove-comments","description":"This precompiler removes all or particular type of semantic comments from the feature file.","type":"object","properties":{"path":{"const":"gpc-remove-comments"},"configuration":{"type":"object","properties":{"keep":{"type":"array","description":"To set which comment types should be kept, not removed.","items":{"type":"string","enum":["NONE","BEFORE_TAGS","PRECEDING","DESCRIPTION","TAG","ROW","DOC_STRING","STEP","START","END","ALL"]},"minItems":1}},"additionalProperties":false}},"required":["path"],"additionalProperties":false},"gpcRemoveDuplicates":{"title":"gpc-remove-duplicates","description":"The RemoveDuplicates precompiler is responsible for having only a reasonable amount of tags and/or rows in each feature file.","type":"object","properties":{"path":{"const":"gpc-remove-duplicates"},"configuration":{"type":"object","properties":{"processTags":{"type":"boolean","description":"Should tags on the same level and from parent be de-duplicated.","default":true},"processRows":{"type":"boolean","description":"Should table rows be de-duplicated.","default":false}},"additionalProperties":false}},"required":["path"],"additionalProperties":false},"gpcScenarioNumbering":{"title":"gpc-scenario-numbering","description":"The ScenarioNumbering precompiler is responsible for adding an index to all scenarios and scenario outlines.","type":"object","properties":{"path":{"const":"gpc-scenario-numbering"},"configuration":{"type":"object","properties":{"format":{"type":"string","description":"The format, how index should be added to the name of the scenario/scenairo outline. Possible tokens: ${name} the original name, ${i} the index","default":"${i}. ${name}","minLength":11,"allOf":[{"pattern":"^.*\\$\\{name\\}.*$"},{"pattern":"^.*\\$\\{i\\}.*$"}]}},"additionalProperties":false}},"required":["path"],"additionalProperties":false},"gpcScenarioOutlineExpander":{"title":"gpc-scenario-outline-expander","description":"This precompiler is responsible for converting Scenario Outlines to single Scenarios as Cucumber would do and adds the first column as a tag.","type":"object","properties":{"path":{"const":"gpc-scenario-outline-expander"},"configuration":{"type":"object","properties":{"ignoreTag":{"type":"string","description":"Tag used to mark scenarios to be ignored during expanding Scenario Outlines.","default":"@notExpand","minLength":2,"pattern":"^@[^ ]+$"}},"additionalProperties":false}},"required":["path"],"additionalProperties":false},"gpcScenarioOutlineNumbering":{"title":"gpc-scenario-outline-numbering","description":"This precompiler can add numbering column to Examples tables, and apply formatting to the name of the Scenario Outline.","type":"object","properties":{"path":{"const":"gpc-scenario-outline-numbering"},"configuration":{"type":"object","properties":{"addParameters":{"type":"boolean","description":"Should the example parameters be added to the name of the Scenario Outline.","default":false},"parameterDelimiter":{"type":"string","description":"The delimiter to use when adding the parameters to the name of the Scenario Outline.","default":",","minLength":1},"parameterFormat":{"type":"string","description":"The format how the output Scenario Outline name should look with the parameters. Tokens to use: ${name}, ${parameters}","default":"${name} - ${parameters}","minLength":20,"allOf":[{"pattern":"^.*\\$\\{name\\}.*$"},{"pattern":"^.*\\$\\{parameters\\}.*$"}]},"addNumbering":{"type":"boolean","description":"Should an index be added to the name of the Scenario Outline.","default":true},"numberingFormat":{"type":"string","description":"The format how the output Scenario Outline name should look with the index. Tokens to use: ${name}, ${i}","default":"${i} - ${name}","minLength":11,"allOf":[{"pattern":"^.*\\$\\{name\\}.*$"},{"pattern":"^.*\\$\\{i\\}.*$"}]},"strictNaming":{"type":"boolean","description":"Should the existing numbering field (num) block execution (true) or be used for numbering (false).","default":false}},"additionalProperties":false}},"required":["path"],"additionalProperties":false},"gpcStepGroups":{"title":"gpc-step-groups","description":"The StepGroups precompiler is responsible for correcting the gherkin keywords of steps to make the tests more readable.","type":"object","properties":{"path":{"const":"gpc-step-groups"}},"required":["path"],"additionalProperties":false},"gpcTestData":{"title":"gpc-test-data","description":"This precompiler can load external data (JSON, CSV, or XLS/XLSX) into exmaples table.","type":"object","properties":{"path":{"const":"gpc-test-data"},"configuration":{"type":"object","properties":{"keepTag":{"type":"boolean","description":"Whether the load-tags should be kept or removed.","default":false},"defaultValue":{"type":["string","number"],"description":"The default value to be added to the table if a column/value is not found.","default":""},"appendData":{"type":"boolean","description":"Whether the loaded data should be appended to the existing rows of the examples table or overwritten.","default":true},"ignoreKeyCase":{"type":"boolean","description":"Whether the casing of the example columns and data columns should be ignored.","default":true}},"additionalProperties":false}},"required":["path"],"additionalProperties":false},"gpcLicense":{"title":"gpc-license","description":"This precompiler can be used to inject License statement into the feature files.","type":"object","properties":{"path":{"const":"gpc-license"},"configuration":{"type":"object","properties":{"licenseFile":{"type":"string","description":"The file's path where the license is stored.","minLength":1},"licenseText":{"type":"string","description":"The exact license text. It can contain the ${LICENSE} token to set the content of the license file.","minLength":1},"placement":{"type":"string","description":"The place to inject the license text, either in start or end comment.","enum":["start","end"]}},"$comment":"Either licenseFile or licenseText must be set!","additionalProperties":false,"anyOf":[{"required":["licenseFile"]},{"required":["licenseText"]}]}},"required":["path","configuration"],"additionalProperties":false},"parseConfig":{"type":"object","description":"Options to pass to gherkin-ast, on how to parse the input feature files.","properties":{"tagFormat":{"enum":["FUNCTIONAL","ASSIGNMENT","UNDERSCORE","PARAMETERLESS"],"description":"The parametrized tag format.","default":"FUNCTIONAL"}},"additionalProperties":false},"formatOptions":{"type":"object","description":"Options to pass to gherkin-formatter, on how to format the output feature files.","properties":{"oneTagPerLine":{"type":"boolean","description":"Should the tags be rendered separately, one by line?","default":false},"separateStepGroups":{"type":"boolean","description":"Should step groups (when-then) be separated?","default":false},"compact":{"type":"boolean","description":"Should empty lines be skipped, removed from the result?","default":false},"lineBreak":{"type":["string","null"],"description":"The line break character(s).","default":null},"indentation":{"type":"string","description":"The indentation character(s).","default":"  "},"tagFormat":{"enum":["FUNCTIONAL","ASSIGNMENT","UNDERSCORE","PARAMETERLESS"],"description":"The parametrized tag format.","default":"FUNCTIONAL"}},"additionalProperties":false}}}
</schema>

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

GherKing configuration

The explicit schema set. It is optional, as GherKing is supported by schemastore.org, thus most IDE.

The source folder or glob pattern of the input feature files.

The base folder of the input feature files.

The destination folder to put the output feature files.

Whether the destination directory should be clean in advance.

Whether some information should be displayed on the screen.

Whether the missing precompilers (gpc-* packages) should be installed and save to the package.json. Packages will be installed in the current folder, and package.json created if it is not there yet.

The precompilers to use and their configuration.

custom precompiler

A custom precompiler configuration, implemented either as an object or a PreCompiler class.

Either the NPM package name to use, or the path to a JS file containing a PreCompiler.

The configuration object, if necessary, to be passed to the custom precompiler class.

gpc-replacer

This GherKing Precompiler is responsible to replace keys in feature files with given values.

The key-value pairs to replace in the feature files.

gpc-filter

The Filter precompiler is responsible for including or excluding the elements of a feature file in the result, which match a cucumber-tag-expression (e.g., has a given tag, does not have a given tag).

Cucumber-tag-expression the filtering is based on

The pattern must contain at least one cucumber tag.

gpc-for-loop

A precompiler of GherKing to loop scenarios and scenario outlines to repeat them.

Maximum value of iteration.

Starting index of the iteration

Tag used to mark scenarios or outlines to be repeated.

Format of the scenario or outline name after repeating. These tokens must be used: ${name}, ${i}.

Whether higher iteration values than the max should be limited to the max or error should be thrown (false).

Whether the loop tags should be kept or removed (default).

An object of iteration name and values (named repeat values),

gpc-macro

This precompiler is responsible for defining macros in feature files and then executing them.

gpc-remove-comments

This precompiler removes all or particular type of semantic comments from the feature file.

To set which comment types should be kept, not removed.

NONE BEFORE_TAGS PRECEDING DESCRIPTION TAG ROW DOC_STRING STEP START END ALL

gpc-remove-duplicates

The RemoveDuplicates precompiler is responsible for having only a reasonable amount of tags and/or rows in each feature file.

Should tags on the same level and from parent be de-duplicated.

Should table rows be de-duplicated.

gpc-scenario-numbering

The ScenarioNumbering precompiler is responsible for adding an index to all scenarios and scenario outlines.

The format, how index should be added to the name of the scenario/scenairo outline. Possible tokens: ${name} the original name, ${i} the index

gpc-scenario-outline-expander

This precompiler is responsible for converting Scenario Outlines to single Scenarios as Cucumber would do and adds the first column as a tag.

Tag used to mark scenarios to be ignored during expanding Scenario Outlines.

gpc-scenario-outline-numbering

This precompiler can add numbering column to Examples tables, and apply formatting to the name of the Scenario Outline.

Should the example parameters be added to the name of the Scenario Outline.

The delimiter to use when adding the parameters to the name of the Scenario Outline.

The format how the output Scenario Outline name should look with the parameters. Tokens to use: ${name}, ${parameters}

Should an index be added to the name of the Scenario Outline.

The format how the output Scenario Outline name should look with the index. Tokens to use: ${name}, ${i}

Should the existing numbering field (num) block execution (true) or be used for numbering (false).

gpc-step-groups

The StepGroups precompiler is responsible for correcting the gherkin keywords of steps to make the tests more readable.

gpc-test-data

This precompiler can load external data (JSON, CSV, or XLS/XLSX) into exmaples table.

Whether the load-tags should be kept or removed.

The default value to be added to the table if a column/value is not found.

Whether the loaded data should be appended to the existing rows of the examples table or overwritten.

Whether the casing of the example columns and data columns should be ignored.

gpc-license

This precompiler can be used to inject License statement into the feature files.

The file's path where the license is stored.

The exact license text. It can contain the ${LICENSE} token to set the content of the license file.

The place to inject the license text, either in start or end comment.

Either licenseFile or licenseText must be set!

Options to pass to gherkin-ast, on how to parse the input feature files.

FUNCTIONAL ASSIGNMENT UNDERSCORE PARAMETERLESS

The parametrized tag format.

Options to pass to gherkin-formatter, on how to format the output feature files.

Should the tags be rendered separately, one by line?

Should step groups (when-then) be separated?

Should empty lines be skipped, removed from the result?

The line break character(s).

The indentation character(s).

The parametrized tag format.

Provide a JSON object that satisfies the schema "GherKing configuration". 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/gitea-issue-config.json","$comment":"https://docs.gitea.com/usage/issue-pull-request-templates#syntax-for-issue-config","properties":{"blank_issues_enabled":{"description":"Specify whether forms have to be used or blank issue are allowed\nhttps://docs.gitea.com/usage/issue-pull-request-templates#possible-options","type":"boolean"},"contact_links":{"title":"contact links","description":"Contact links\nhttps://docs.gitea.com/usage/issue-pull-request-templates#possible-options","type":"array","minItems":1,"items":{"type":"object","required":["name","url","about"],"properties":{"name":{"description":"The name of your link\nhttps://docs.gitea.com/usage/issue-pull-request-templates#contact-link","type":"string","minLength":1,"examples":["Sample name"]},"url":{"description":"The URL of your Link\nhttps://docs.gitea.com/usage/issue-pull-request-templates#contact-link","type":"string","pattern":"^https?://","examples":["https://sample/url"]},"about":{"description":"A short description of your Link\nhttps://docs.gitea.com/usage/issue-pull-request-templates#contact-link","type":"string","minLength":1,"examples":["Sample description"]}},"additionalProperties":false}}},"additionalProperties":false,"title":"Gitea issue template chooser config file schema","type":"object"}
</schema>

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

Specify whether forms have to be used or blank issue are allowed
https://docs.gitea.com/usage/issue-pull-request-templates#possible-options

contact links

Contact links
https://docs.gitea.com/usage/issue-pull-request-templates#possible-options

The name of your link
https://docs.gitea.com/usage/issue-pull-request-templates#contact-link

The URL of your Link
https://docs.gitea.com/usage/issue-pull-request-templates#contact-link

A short description of your Link
https://docs.gitea.com/usage/issue-pull-request-templates#contact-link

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