[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/azure-containerapp-template.json","description":"Container App versioned application definition.\nDefines the desired state of an immutable revision.\nAny changes to this section Will result in a new revision being created","properties":{"containers":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"args":{"oneOf":[{"type":"array","items":{"type":"string"}},{"type":"string","pattern":"^\\[([^\\[].*)?\\]$","description":"Deployment template expression. See https://aka.ms/arm-template-expressions for more details on the ARM expression syntax."}],"description":"Container start command arguments."},"command":{"oneOf":[{"type":"array","items":{"type":"string"}},{"type":"string","pattern":"^\\[([^\\[].*)?\\]$","description":"Deployment template expression. See https://aka.ms/arm-template-expressions for more details on the ARM expression syntax."}],"description":"Container start command."},"env":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"secretRef":{"type":"string","description":"Name of the Container App secret from which to pull the environment variable value."},"value":{"type":"string","description":"Non-secret environment variable value."}},"description":"Container App container environment variable.","additionalProperties":false}},{"type":"string","pattern":"^\\[([^\\[].*)?\\]$","description":"Deployment template expression. See https://aka.ms/arm-template-expressions for more details on the ARM expression syntax."}],"description":"Container environment variables."},"image":{"type":"string","description":"Container image tag."},"name":{"type":"string","description":"Custom container name."},"probes":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"failureThreshold":{"oneOf":[{"type":"integer"},{"type":"string","pattern":"^\\[([^\\[].*)?\\]$","description":"Deployment template expression. See https://aka.ms/arm-template-expressions for more details on the ARM expression syntax."}],"description":"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1. Maximum value is 10."},"httpGet":{"oneOf":[{"type":"object","properties":{"host":{"type":"string","description":"Host name to connect to, defaults to the pod IP. You probably want to set \"Host\" in httpHeaders instead."},"httpHeaders":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"The header field name"},"value":{"type":"string","description":"The header field value"}},"required":[],"description":"HTTPHeader describes a custom header to be used in HTTP probes","additionalProperties":false}},{"type":"string","pattern":"^\\[([^\\[].*)?\\]$","description":"Deployment template expression. See https://aka.ms/arm-template-expressions for more details on the ARM expression syntax."}],"description":"Custom headers to set in the request. HTTP allows repeated headers."},"path":{"type":"string","description":"Path to access on the HTTP server."},"port":{"oneOf":[{"type":"integer"},{"type":"string","pattern":"^\\[([^\\[].*)?\\]$","description":"Deployment template expression. See https://aka.ms/arm-template-expressions for more details on the ARM expression syntax."}],"description":"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME."},"scheme":{"oneOf":[{"type":"string","enum":["HTTP","HTTPS"]},{"type":"string","pattern":"^\\[([^\\[].*)?\\]$","description":"Deployment template expression. See https://aka.ms/arm-template-expressions for more details on the ARM expression syntax."}],"description":"Scheme to use for connecting to the host. Defaults to HTTP."}},"required":[],"description":"HTTPGet specifies the http request to perform.","additionalProperties":false},{"type":"string","pattern":"^\\[([^\\[].*)?\\]$","description":"Deployment template expression. See https://aka.ms/arm-template-expressions for more details on the ARM expression syntax."}],"description":"HTTPGet specifies the http request to perform."},"initialDelaySeconds":{"oneOf":[{"type":"integer"},{"type":"string","pattern":"^\\[([^\\[].*)?\\]$","description":"Deployment template expression. See https://aka.ms/arm-template-expressions for more details on the ARM expression syntax."}],"description":"Number of seconds after the container has started before liveness probes are initiated. Minimum value is 1. Maximum value is 60."},"periodSeconds":{"oneOf":[{"type":"integer"},{"type":"string","pattern":"^\\[([^\\[].*)?\\]$","description":"Deployment template expression. See https://aka.ms/arm-template-expressions for more details on the ARM expression syntax."}],"description":"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1. Maximum value is 240."},"successThreshold":{"oneOf":[{"type":"integer"},{"type":"string","pattern":"^\\[([^\\[].*)?\\]$","description":"Deployment template expression. See https://aka.ms/arm-template-expressions for more details on the ARM expression syntax."}],"description":"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1. Maximum value is 10."},"tcpSocket":{"oneOf":[{"type":"object","properties":{"host":{"type":"string","description":"Optional: Host name to connect to, defaults to the pod IP."},"port":{"oneOf":[{"type":"integer"},{"type":"string","pattern":"^\\[([^\\[].*)?\\]$","description":"Deployment template expression. See https://aka.ms/arm-template-expressions for more details on the ARM expression syntax."}],"description":"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME."}},"required":[],"description":"TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported.","additionalProperties":false},{"type":"string","pattern":"^\\[([^\\[].*)?\\]$","description":"Deployment template expression. See https://aka.ms/arm-template-expressions for more details on the ARM expression syntax."}],"description":"TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported."},"terminationGracePeriodSeconds":{"$comment":"The value of 'null' is UNDOCUMENTED.","oneOf":[{"type":"integer"},{"type":"null"},{"type":"string","pattern":"^\\[([^\\[].*)?\\]$","description":"Deployment template expression. See https://aka.ms/arm-template-expressions for more details on the ARM expression syntax."}],"description":"Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is an alpha field and requires enabling ProbeTerminationGracePeriod feature gate. Maximum value is 3600 seconds (1 hour)"},"timeoutSeconds":{"oneOf":[{"type":"integer"},{"type":"string","pattern":"^\\[([^\\[].*)?\\]$","description":"Deployment template expression. See https://aka.ms/arm-template-expressions for more details on the ARM expression syntax."}],"description":"Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. Maximum value is 240."},"type":{"oneOf":[{"type":"string","enum":["Liveness","Readiness","Startup"]},{"type":"string","pattern":"^\\[([^\\[].*)?\\]$","description":"Deployment template expression. See https://aka.ms/arm-template-expressions for more details on the ARM expression syntax."}],"description":"The type of probe."}},"description":"Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.","additionalProperties":false}},{"type":"string","pattern":"^\\[([^\\[].*)?\\]$","description":"Deployment template expression. See https://aka.ms/arm-template-expressions for more details on the ARM expression syntax."}],"description":"List of probes for the container."},"resources":{"oneOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"number"},{"type":"string","pattern":"^\\[([^\\[].*)?\\]$","description":"Deployment template expression. See https://aka.ms/arm-template-expressions for more details on the ARM expression syntax."}],"description":"Required CPU in cores, e.g. 0.5"},"memory":{"type":"string","description":"Required memory, e.g. \"250Mb\""},"ephemeralStorage":{"type":"string","description":"UNDOCUMENTED. The total amount of storage available to each replica."}},"description":"Container App container resource requirements.","additionalProperties":false},{"type":"string","pattern":"^\\[([^\\[].*)?\\]$","description":"Deployment template expression. See https://aka.ms/arm-template-expressions for more details on the ARM expression syntax."}],"description":"Container App container resource requirements."},"volumeMounts":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"mountPath":{"type":"string","description":"Path within the container at which the volume should be mounted.Must not contain ':'."},"subPath":{"type":"string","description":"Path within the volume from which the container's volume should be mounted. Defaults to \"\" (volume's root)."},"volumeName":{"type":"string","description":"This must match the Name of a Volume."}},"description":"Volume mount for the Container App.","additionalProperties":false}},{"type":"string","pattern":"^\\[([^\\[].*)?\\]$","description":"Deployment template expression. See https://aka.ms/arm-template-expressions for more details on the ARM expression syntax."}],"description":"Container volume mounts."}},"description":"Container App container definition","additionalProperties":false}},{"type":"string","pattern":"^\\[([^\\[].*)?\\]$","description":"Deployment template expression. See https://aka.ms/arm-template-expressions for more details on the ARM expression syntax."}],"description":"List of container definitions for the Container App."},"initContainers":{"oneOf":[{"type":"null"},{"type":"array","items":{"type":"object","properties":{"args":{"oneOf":[{"type":"array","items":{"type":"string"}},{"type":"string","pattern":"^\\[([^\\[].*)?\\]$","description":"Deployment template expression. See https://aka.ms/arm-template-expressions for more details on the ARM expression syntax."}],"description":"Container start command arguments."},"command":{"oneOf":[{"type":"array","items":{"type":"string"}},{"type":"string","pattern":"^\\[([^\\[].*)?\\]$","description":"Deployment template expression. See https://aka.ms/arm-template-expressions for more details on the ARM expression syntax."}],"description":"Container start command."},"env":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"secretRef":{"type":"string","description":"Name of the Container App secret from which to pull the environment variable value."},"value":{"type":"string","description":"Non-secret environment variable value."}},"description":"Container App container environment variable.","additionalProperties":false}},{"type":"string","pattern":"^\\[([^\\[].*)?\\]$","description":"Deployment template expression. See https://aka.ms/arm-template-expressions for more details on the ARM expression syntax."}],"description":"Container environment variables."},"image":{"type":"string","description":"Container image tag."},"name":{"type":"string","description":"Custom container name."},"resources":{"oneOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"number"},{"type":"string","pattern":"^\\[([^\\[].*)?\\]$","description":"Deployment template expression. See https://aka.ms/arm-template-expressions for more details on the ARM expression syntax."}],"description":"Required CPU in cores, e.g. 0.5"},"memory":{"type":"string","description":"Required memory, e.g. \"250Mb\""}},"description":"Container App container resource requirements.","additionalProperties":false},{"type":"string","pattern":"^\\[([^\\[].*)?\\]$","description":"Deployment template expression. See https://aka.ms/arm-template-expressions for more details on the ARM expression syntax."}],"description":"Container App container resource requirements."},"volumeMounts":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"mountPath":{"type":"string","description":"Path within the container at which the volume should be mounted.Must not contain ':'."},"subPath":{"type":"string","description":"Path within the volume from which the container's volume should be mounted. Defaults to \"\" (volume's root)."},"volumeName":{"type":"string","description":"This must match the Name of a Volume."}},"description":"Volume mount for the Container App.","additionalProperties":false}},{"type":"string","pattern":"^\\[([^\\[].*)?\\]$","description":"Deployment template expression. See https://aka.ms/arm-template-expressions for more details on the ARM expression syntax."}],"description":"Container volume mounts."}},"description":"Container App init container definition","additionalProperties":false}},{"type":"string","pattern":"^\\[([^\\[].*)?\\]$","description":"Deployment template expression. See https://aka.ms/arm-template-expressions for more details on the ARM expression syntax."}],"description":"List of specialized containers that run before app containers."},"revisionSuffix":{"type":"string","description":"User friendly suffix that is appended to the revision name"},"scale":{"oneOf":[{"type":"object","properties":{"maxReplicas":{"oneOf":[{"type":"integer","default":"10"},{"type":"string","pattern":"^\\[([^\\[].*)?\\]$","description":"Deployment template expression. See https://aka.ms/arm-template-expressions for more details on the ARM expression syntax."}],"description":"Optional. Maximum number of container replicas. Defaults to 10 if not set."},"minReplicas":{"$comment":"The value of 'null' is UNDOCUMENTED.","oneOf":[{"type":"integer"},{"type":"null"},{"type":"string","pattern":"^\\[([^\\[].*)?\\]$","description":"Deployment template expression. See https://aka.ms/arm-template-expressions for more details on the ARM expression syntax."}],"description":"Optional. Minimum number of container replicas."},"rules":{"$comment":"The value of 'null' is UNDOCUMENTED.","oneOf":[{"type":"array","items":{"type":"object","properties":{"azureQueue":{"oneOf":[{"type":"object","properties":{"auth":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"secretRef":{"type":"string","description":"Name of the secret from which to pull the auth params."},"triggerParameter":{"type":"string","description":"Trigger Parameter that uses the secret"}},"description":"Auth Secrets for Scale Rule","additionalProperties":false}},{"type":"string","pattern":"^\\[([^\\[].*)?\\]$","description":"Deployment template expression. See https://aka.ms/arm-template-expressions for more details on the ARM expression syntax."}],"description":"Authentication secrets for the queue scale rule."},"queueLength":{"oneOf":[{"type":"integer"},{"type":"string","pattern":"^\\[([^\\[].*)?\\]$","description":"Deployment template expression. See https://aka.ms/arm-template-expressions for more details on the ARM expression syntax."}],"description":"Queue length."},"queueName":{"type":"string","description":"Queue name."}},"description":"Container App container Azure Queue based scaling rule.","additionalProperties":false},{"type":"string","pattern":"^\\[([^\\[].*)?\\]$","description":"Deployment template expression. See https://aka.ms/arm-template-expressions for more details on the ARM expression syntax."}],"description":"Container App container Azure Queue based scaling rule."},"custom":{"oneOf":[{"type":"object","properties":{"auth":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"secretRef":{"type":"string","description":"Name of the secret from which to pull the auth params."},"triggerParameter":{"type":"string","description":"Trigger Parameter that uses the secret"}},"description":"Auth Secrets for Scale Rule","additionalProperties":false}},{"type":"string","pattern":"^\\[([^\\[].*)?\\]$","description":"Deployment template expression. See https://aka.ms/arm-template-expressions for more details on the ARM expression syntax."}],"description":"Authentication secrets for the custom scale rule."},"metadata":{"oneOf":[{"type":"object","additionalProperties":{"type":"string"},"properties":{}},{"type":"string","pattern":"^\\[([^\\[].*)?\\]$","description":"Deployment template expression. See https://aka.ms/arm-template-expressions for more details on the ARM expression syntax."}],"description":"Metadata properties to describe custom scale rule."},"type":{"type":"string","description":"Type of the custom scale rule\neg: azure-servicebus, redis etc."}},"description":"Container App container Custom scaling rule.","additionalProperties":false},{"type":"string","pattern":"^\\[([^\\[].*)?\\]$","description":"Deployment template expression. See https://aka.ms/arm-template-expressions for more details on the ARM expression syntax."}],"description":"Container App container Custom scaling rule."},"http":{"oneOf":[{"type":"object","properties":{"auth":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"secretRef":{"type":"string","description":"Name of the secret from which to pull the auth params."},"triggerParameter":{"type":"string","description":"Trigger Parameter that uses the secret"}},"description":"Auth Secrets for Scale Rule","additionalProperties":false}},{"type":"string","pattern":"^\\[([^\\[].*)?\\]$","description":"Deployment template expression. See https://aka.ms/arm-template-expressions for more details on the ARM expression syntax."}],"description":"Authentication secrets for the custom scale rule."},"metadata":{"oneOf":[{"type":"object","additionalProperties":{"type":"string"},"properties":{}},{"type":"string","pattern":"^\\[([^\\[].*)?\\]$","description":"Deployment template expression. See https://aka.ms/arm-template-expressions for more details on the ARM expression syntax."}],"description":"Metadata properties to describe http scale rule."}},"description":"Container App container Http scaling rule.","additionalProperties":false},{"type":"string","pattern":"^\\[([^\\[].*)?\\]$","description":"Deployment template expression. See https://aka.ms/arm-template-expressions for more details on the ARM expression syntax."}],"description":"Container App container Http scaling rule."},"name":{"type":"string","description":"Scale Rule Name"},"tcp":{"oneOf":[{"type":"object","properties":{"auth":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"secretRef":{"type":"string","description":"Name of the secret from which to pull the auth params."},"triggerParameter":{"type":"string","description":"Trigger Parameter that uses the secret"}},"description":"Auth Secrets for Scale Rule","additionalProperties":false}},{"type":"string","pattern":"^\\[([^\\[].*)?\\]$","description":"Deployment template expression. See https://aka.ms/arm-template-expressions for more details on the ARM expression syntax."}],"description":"Authentication secrets for the tcp scale rule."},"metadata":{"oneOf":[{"type":"object","additionalProperties":{"type":"string"},"properties":{}},{"type":"string","pattern":"^\\[([^\\[].*)?\\]$","description":"Deployment template expression. See https://aka.ms/arm-template-expressions for more details on the ARM expression syntax."}],"description":"Metadata properties to describe tcp scale rule."}},"description":"Container App container Tcp scaling rule.","additionalProperties":false},{"type":"string","pattern":"^\\[([^\\[].*)?\\]$","description":"Deployment template expression. See https://aka.ms/arm-template-expressions for more details on the ARM expression syntax."}],"description":"Container App container Tcp scaling rule."}},"description":"Container App container scaling rule.","additionalProperties":false}},{"type":"null"},{"type":"string","pattern":"^\\[([^\\[].*)?\\]$","description":"Deployment template expression. See https://aka.ms/arm-template-expressions for more details on the ARM expression syntax."}],"description":"Scaling rules."}},"description":"Container App scaling configurations.","additionalProperties":false},{"type":"string","pattern":"^\\[([^\\[].*)?\\]$","description":"Deployment template expression. See https://aka.ms/arm-template-expressions for more details on the ARM expression syntax."}],"description":"Container App scaling configurations."},"serviceBinds":{"$comment":"The value of 'null' is UNDOCUMENTED.","oneOf":[{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Name of the service bind"},"serviceId":{"type":"string","description":"Resource id of the target service"}},"description":"Configuration to bind a ContainerApp to a dev ContainerApp Service","additionalProperties":false}},{"type":"null"},{"type":"string","pattern":"^\\[([^\\[].*)?\\]$","description":"Deployment template expression. See https://aka.ms/arm-template-expressions for more details on the ARM expression syntax."}],"description":"List of container app services bound to the app"},"terminationGracePeriodSeconds":{"oneOf":[{"type":"integer"},{"type":"null"},{"type":"string","pattern":"^\\[([^\\[].*)?\\]$","description":"Deployment template expression. See https://aka.ms/arm-template-expressions for more details on the ARM expression syntax."}],"description":"Optional duration in seconds the Container App Instance needs to terminate gracefully. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). If this value is nil, the default grace period will be used instead. Set this value longer than the expected cleanup time for your process. Defaults to 30 seconds."},"volumes":{"$comment":"The value of 'null' is UNDOCUMENTED.","oneOf":[{"type":"array","items":{"type":"object","properties":{"mountOptions":{"type":"string","description":"Mount options used while mounting the AzureFile. Must be a comma-separated string."},"name":{"type":"string","description":"Volume name."},"secrets":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","description":"Path to project secret to. If no path is provided, path defaults to name of secret listed in secretRef."},"secretRef":{"type":"string","description":"Name of the Container App secret from which to pull the secret value."}},"description":"Secret to be added to volume.","additionalProperties":false}},{"type":"string","pattern":"^\\[([^\\[].*)?\\]$","description":"Deployment template expression. See https://aka.ms/arm-template-expressions for more details on the ARM expression syntax."}],"description":"List of secrets to be added in volume. If no secrets are provided, all secrets in collection will be added to volume."},"storageName":{"type":"string","description":"Name of storage resource. No need to provide for EmptyDir and Secret."},"storageType":{"oneOf":[{"type":"string","enum":["AzureFile","EmptyDir","Secret"]},{"type":"string","pattern":"^\\[([^\\[].*)?\\]$","description":"Deployment template expression. See https://aka.ms/arm-template-expressions for more details on the ARM expression syntax."}],"description":"Storage type for the volume. If not provided, use EmptyDir."}},"description":"Volume definitions for the Container App.","additionalProperties":false}},{"type":"null"},{"type":"string","pattern":"^\\[([^\\[].*)?\\]$","description":"Deployment template expression. See https://aka.ms/arm-template-expressions for more details on the ARM expression syntax."}],"description":"List of volume definitions for the Container App."}},"additionalProperties":true,"type":"object"}
</schema>

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

Container App versioned application definition.
Defines the desired state of an immutable revision.
Any changes to this section Will result in a new revision being created

Deployment template expression. See https://aka.ms/arm-template-expressions for more details on the ARM expression syntax.

Container start command arguments.

Container start command.

Environment variable name.

Name of the Container App secret from which to pull the environment variable value.

Non-secret environment variable value.

Container App container environment variable.

Container environment variables.

Container image tag.

Custom container name.

Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1. Maximum value is 10.

Host name to connect to, defaults to the pod IP. You probably want to set "Host" in httpHeaders instead.

The header field name

The header field value

HTTPHeader describes a custom header to be used in HTTP probes

Custom headers to set in the request. HTTP allows repeated headers.

Path to access on the HTTP server.

Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.

Scheme to use for connecting to the host. Defaults to HTTP.

HTTPGet specifies the http request to perform.

Number of seconds after the container has started before liveness probes are initiated. Minimum value is 1. Maximum value is 60.

How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1. Maximum value is 240.

Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1. Maximum value is 10.

Optional: Host name to connect to, defaults to the pod IP.

Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.

TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported.

Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is an alpha field and requires enabling ProbeTerminationGracePeriod feature gate. Maximum value is 3600 seconds (1 hour)

Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. Maximum value is 240.

The type of probe.

Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.

List of probes for the container.

Required CPU in cores, e.g. 0.5

Required memory, e.g. "250Mb"

UNDOCUMENTED. The total amount of storage available to each replica.

Container App container resource requirements.

Path within the container at which the volume should be mounted.Must not contain ':'.

Path within the volume from which the container's volume should be mounted. Defaults to "" (volume's root).

This must match the Name of a Volume.

Volume mount for the Container App.

Container volume mounts.

Container App container definition

List of container definitions for the Container App.

Container start command arguments.

Container start command.

Environment variable name.

Non-secret environment variable value.

Container environment variables.

Container image tag.

Custom container name.

Required CPU in cores, e.g. 0.5

Required memory, e.g. "250Mb"

This must match the Name of a Volume.

Volume mount for the Container App.

Container volume mounts.

Container App init container definition

List of specialized containers that run before app containers.

User friendly suffix that is appended to the revision name

Optional. Maximum number of container replicas. Defaults to 10 if not set.

Optional. Minimum number of container replicas.

Name of the secret from which to pull the auth params.

Trigger Parameter that uses the secret

Auth Secrets for Scale Rule

Authentication secrets for the queue scale rule.

Queue length.

Queue name.

Container App container Azure Queue based scaling rule.

Trigger Parameter that uses the secret

Auth Secrets for Scale Rule

Authentication secrets for the custom scale rule.

Metadata properties to describe custom scale rule.

Type of the custom scale rule
eg: azure-servicebus, redis etc.

Container App container Custom scaling rule.

Trigger Parameter that uses the secret

Auth Secrets for Scale Rule

Metadata properties to describe http scale rule.

Container App container Http scaling rule.

Scale Rule Name

Trigger Parameter that uses the secret

Auth Secrets for Scale Rule

Authentication secrets for the tcp scale rule.

Metadata properties to describe tcp scale rule.

Container App container Tcp scaling rule.

Container App container scaling rule.

Scaling rules.

Container App scaling configurations.

Container App scaling configurations.

Name of the service bind

Resource id of the target service

Configuration to bind a ContainerApp to a dev ContainerApp Service

List of container app services bound to the app

Optional duration in seconds the Container App Instance needs to terminate gracefully. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). If this value is nil, the default grace period will be used instead. Set this value longer than the expected cleanup time for your process. Defaults to 30 seconds.

Mount options used while mounting the AzureFile. Must be a comma-separated string.

Volume name.

Path to project secret to. If no path is provided, path defaults to name of secret listed in secretRef.

Name of the Container App secret from which to pull the secret value.

Secret to be added to volume.

List of secrets to be added in volume. If no secrets are provided, all secrets in collection will be added to volume.

Name of storage resource. No need to provide for EmptyDir and Secret.

Storage type for the volume. If not provided, use EmptyDir.

Volume definitions for the Container App.

List of volume definitions for the Container App.

Provide a JSON object that satisfies the schema "azure-containerapp-template". 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/azure-deviceupdate-import-manifest-5.0.json","definitions":{"instructions":{"type":"object","title":"Installation instructions","description":"Update installation instructions.","properties":{"steps":{"type":"array","title":"Installation steps","items":{"anyOf":[{"$ref":"#/definitions/inlineStep"},{"$ref":"#/definitions/referenceStep"}]},"minItems":1,"maxItems":10}},"additionalProperties":false,"required":["steps"]},"stepDescription":{"type":"string","title":"Step description","description":"Optional instruction step description.","minLength":1,"maxLength":64},"inlineStep":{"type":"object","title":"Inline installation step","description":"Installation instruction step that performs code execution.","properties":{"type":{"$ref":"azure-deviceupdate-manifest-definitions-5.0.json#/definitions/inlineStepType"},"description":{"$ref":"#/definitions/stepDescription"},"handler":{"$ref":"azure-deviceupdate-manifest-definitions-5.0.json#/definitions/inlineStepHandler"},"files":{"type":"array","title":"Step update files","description":"Names of update files that agent will pass to handler.","items":{"$ref":"azure-deviceupdate-manifest-definitions-5.0.json#/definitions/filename"},"minItems":1,"maxItems":10},"handlerProperties":{"$ref":"azure-deviceupdate-manifest-definitions-5.0.json#/definitions/inlineStepHandlerProperties"}},"additionalProperties":false,"required":["handler","files"]},"referenceStep":{"type":"object","title":"Reference installation step","description":"Installation instruction step that installs another update.","properties":{"type":{"$ref":"azure-deviceupdate-manifest-definitions-5.0.json#/definitions/referenceStepType"},"description":{"$ref":"#/definitions/stepDescription"},"updateId":{"$ref":"azure-deviceupdate-manifest-definitions-5.0.json#/definitions/updateId"}},"additionalProperties":false,"required":["type","updateId"]}},"description":"Schema for import manifest used for importing an update to Device Update for IoT Hub.","examples":[{"updateId":{"provider":"Microsoft","name":"Toaster","version":"1.0"},"description":"Example update","compatibility":[{"deviceManufacturer":"Microsoft","deviceModel":"Toaster"}],"instructions":{"steps":[{"description":"pre-install script","handler":"microsoft/script:1","handlerProperties":{"arguments":"--pre-install"},"files":["configure.sh"]},{"type":"reference","updateId":{"provider":"Microsoft","name":"Sensor","version":"1.0"}}]},"files":[{"filename":"configure.sh","sizeInBytes":718,"hashes":{"sha256":"mcB5SexMU4JOOzqmlJqKbue9qMskWY3EI/iVjJxCtAs="},"relatedFiles":[{"filename":"in1_in2_deltaupdate.dat","sizeInBytes":102910752,"hashes":{"sha256":"2MIldV8LkdKenjJasgTHuYi+apgtNQ9FeL2xsV3ikHY="},"properties":{"microsoft.sourceFileHashAlgorithm":"sha256","microsoft.sourceFileHash":"YmFYwnEUddq2nZsBAn5v7gCRKdHx+TUntMz5tLwU+24="}}],"downloadHandler":{"id":"microsoft/delta:1"}}],"manifestVersion":"5.0","createdDateTime":"2020-10-02T22:18:04.9446744Z"}],"properties":{"$schema":{"type":"string","description":"JSON schema reference."},"updateId":{"$ref":"azure-deviceupdate-manifest-definitions-5.0.json#/definitions/updateId"},"description":{"type":"string","title":"Update description","description":"Optional update description.","minLength":1,"maxLength":512},"compatibility":{"$ref":"azure-deviceupdate-manifest-definitions-5.0.json#/definitions/compatibility"},"instructions":{"$ref":"#/definitions/instructions"},"files":{"type":"array","title":"Update files","description":"List of update payload files. Sum of all file sizes may not exceed 2 GB. May be empty or null if all instruction steps are reference steps.","items":{"$ref":"azure-deviceupdate-manifest-definitions-5.0.json#/definitions/file"},"minItems":0,"maxItems":10},"manifestVersion":{"type":"string","title":"Import manifest schema version","description":"Import manifest schema version. Must be 5.0.","const":"5.0"},"createdDateTime":{"type":"string","title":"Created date & time","description":"Date & time import manifest was created in ISO 8601 format.","examples":["2020-10-02T22:18:04.9446744Z"]}},"required":["updateId","compatibility","instructions","manifestVersion","createdDateTime"],"title":"JSON Schema for Azure Device Update for IoT Hub 'Import Manifest' version 5.0","type":"object"}
</schema>

[User] Provide a JSON object that satisfies the schema "JSON Schema for Azure Device Update for IoT Hub 'Import Manifest' version 5.0". Here are the required top‑level fields: updateId, compatibility, instructions, manifestVersion, createdDateTime. Return only the valid JSON object.

Installation instructions

Update installation instructions.

Installation steps

Step description

Optional instruction step description.

Inline installation step

Installation instruction step that performs code execution.

Step update files

Names of update files that agent will pass to handler.

Reference installation step

Installation instruction step that installs another update.

Schema for import manifest used for importing an update to Device Update for IoT Hub.

Example update

pre-install script

JSON schema reference.

Update description

Optional update description.

Update files

List of update payload files. Sum of all file sizes may not exceed 2 GB. May be empty or null if all instruction steps are reference steps.

Import manifest schema version

Import manifest schema version. Must be 5.0.

Created date & time

Date & time import manifest was created in ISO 8601 format.

updateId compatibility instructions manifestVersion createdDateTime

Provide a JSON object that satisfies the schema "JSON Schema for Azure Device Update for IoT Hub 'Import Manifest' version 5.0". Here are the required top‑level fields: updateId, compatibility, instructions, manifestVersion, createdDateTime. 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/azure-deviceupdate-update-manifest-5.json","definitions":{"miniUpdateManifest":{"type":"object","title":"Mini update manifest","description":"Manifest containing metadata of the detached, downloadable, complete update manifest.","properties":{"detachedManifestFileId":{"$ref":"#/definitions/fileId"},"files":{"type":"object","title":"Update manifest file","description":"Map of '#/definitions/fileId' to file metadata.","additionalProperties":{"$ref":"azure-deviceupdate-manifest-definitions-5.0.json#/definitions/file"},"minProperties":1,"maxProperties":1}},"required":["detachedManifestFileId","files"]},"fullUpdateManifest":{"type":"object","title":"Complete update manifest.","description":"Full update manifest containing metadata of the update being deployed.","properties":{"compatibility":{"$ref":"azure-deviceupdate-manifest-definitions-5.0.json#/definitions/compatibility"},"instructions":{"type":"object","title":"Installation instructions","properties":{"steps":{"type":"array","title":"Installation steps","items":{"anyOf":[{"$ref":"#/definitions/inlineStep"},{"$ref":"#/definitions/referenceStep"}]},"minItems":1,"maxItems":10}},"required":["steps"]},"files":{"type":"object","title":"Update files","description":"Map of '#/definitions/fileId' to file metadata.","additionalProperties":{"$ref":"azure-deviceupdate-manifest-definitions-5.0.json#/definitions/file"},"minProperties":1,"maxProperties":20},"createdDateTime":{"type":"string","title":"Created date & time","description":"Date & time update was created in ISO 8601 format.","examples":["2020-10-02T22:18:04.9446744Z"]}},"required":["compatibility","instructions","files","createdDateTime"]},"fileId":{"type":"string","title":"Update file id","description":"Server generated file identifier to be used for retrieving file metadata and download URL.","minLength":1},"inlineStep":{"type":"object","title":"Inline installation step","description":"Installation instruction step that performs code execution.","properties":{"type":{"$ref":"azure-deviceupdate-manifest-definitions-5.0.json#/definitions/inlineStepType"},"handler":{"$ref":"azure-deviceupdate-manifest-definitions-5.0.json#/definitions/inlineStepHandler"},"files":{"type":"array","title":"Step update files","description":"'fileId' of update files that agent will pass to handler.","items":{"$ref":"#/definitions/fileId"},"minItems":1,"maxItems":10},"handlerProperties":{"$ref":"azure-deviceupdate-manifest-definitions-5.0.json#/definitions/inlineStepHandlerProperties"}},"additionalProperties":false,"required":["handler","files"]},"referenceStep":{"type":"object","title":"Reference installation step","description":"Installation instruction step that installs another update.","properties":{"type":{"$ref":"azure-deviceupdate-manifest-definitions-5.0.json#/definitions/referenceStepType"},"detachedManifestFileId":{"$ref":"#/definitions/fileId"}},"additionalProperties":false,"required":["type","detachedManifestFileId"]}},"description":"JSON schema of update manifest sent by Device Update for IoT Hub to device agent during deployment.","examples":[{"manifestVersion":"4","updateId":{"provider":"Microsoft","name":"Toaster","version":"1.0"},"compatibility":[{"deviceManufacturer":"Microsoft","deviceModel":"Toaster"}],"instructions":{"steps":[{"handler":"microsoft/script:1","handlerProperties":{"arguments":"--pre-install"},"files":["fileId0"]},{"type":"reference","detachedManifestFileId":"fileId1"}]},"files":{"fileId0":{"filename":"configure.sh","sizeInBytes":718,"hashes":{"sha256":"mcB5SexMU4JOOzqmlJqKbue9qMskWY3EI/iVjJxCtAs="},"relatedFiles":[{"filename":"in1_in2_deltaupdate.dat","sizeInBytes":102910752,"hashes":{"sha256":"2MIldV8LkdKenjJasgTHuYi+apgtNQ9FeL2xsV3ikHY="},"properties":{"microsoft.sourceFileHashAlgorithm":"sha256","microsoft.sourceFileHash":"YmFYwnEUddq2nZsBAn5v7gCRKdHx+TUntMz5tLwU+24="}}],"downloadHandler":{"id":"microsoft/delta:1"}},"fileId1":{"filename":"microsoft.sensor.1.0.updatemanifest.json","sizeInBytes":2048,"hashes":{"sha256":"789s9PDfX4uA9wFUubyC30BWkLFbgmpkpmz1fEdqo2U="}}},"createdDateTime":"2021-09-28T18:32:01.8404544Z"}],"oneOf":[{"$ref":"#/definitions/miniUpdateManifest"},{"$ref":"#/definitions/fullUpdateManifest"}],"properties":{"$schema":{"type":"string","description":"JSON schema reference"},"updateId":{"$ref":"azure-deviceupdate-manifest-definitions-5.0.json#/definitions/updateId"},"manifestVersion":{"type":"string","title":"Update manifest schema version","const":"4"}},"required":["updateId","manifestVersion"],"title":"JSON Schema for Azure Device Update for IoT Hub 'Update Manifest' version 4.0","type":"object"}
</schema>

[User] Provide a JSON object that satisfies the schema "JSON Schema for Azure Device Update for IoT Hub 'Update Manifest' version 4.0". Here are the required top‑level fields: updateId, manifestVersion. Return only the valid JSON object.

Mini update manifest

Manifest containing metadata of the detached, downloadable, complete update manifest.

Update manifest file

Map of '#/definitions/fileId' to file metadata.

Complete update manifest.

Full update manifest containing metadata of the update being deployed.

Installation instructions

Installation steps

Update files

Created date & time

Date & time update was created in ISO 8601 format.

compatibility instructions files createdDateTime

Update file id

Server generated file identifier to be used for retrieving file metadata and download URL.

Inline installation step

Step update files

'fileId' of update files that agent will pass to handler.

Reference installation step

JSON schema of update manifest sent by Device Update for IoT Hub to device agent during deployment.

JSON schema reference

Update manifest schema version

Provide a JSON object that satisfies the schema "JSON Schema for Azure Device Update for IoT Hub 'Update Manifest' version 4.0". Here are the required top‑level fields: updateId, manifestVersion. 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/azure-devops-extension-manifest-1.0.json","definitions":{"Badge":{"description":"A link to external metadata badge.","properties":{"href":{"description":"Link the user navigates to when selecting the badge.","type":"string"},"uri":{"description":"The absolute URL of the badge image to be displayed.","type":"string"},"description":{"description":"Description of the badge, to be displayed on hover.","type":"string"}},"required":["uri"],"title":"badge","type":"object"},"Content":{"description":"A content file that describes the extension to users.","properties":{"path":{"description":"The path to the file in the extension.","type":"string"}},"required":["path"],"title":"content","type":"object"},"Contribution":{"description":"An individual contribution made by an extension","properties":{"constraints":{"description":"List of constraints (filters) that should be applied to the availability of this contribution","items":{"$ref":"#/definitions/ContributionConstraint"},"type":"array"},"description":{"description":"Description of the contribution/type","type":"string"},"id":{"description":"Fully qualified identifier of the contribution/type","type":"string"},"includes":{"description":"Includes is a set of contributions that should have this contribution included in their targets list.","items":{"type":"string"},"type":"array"},"properties":{"description":"Properties/attributes of this contribution"},"restrictedTo":{"description":"List of demanded claims in order for the user to see this contribution (like anonymous, public, member...).","items":{"type":"string"},"type":"array"},"targets":{"description":"The ids of the contribution(s) that this contribution targets. (parent contributions)","items":{"type":"string"},"type":"array"},"type":{"description":"Id of the Contribution Type","type":"string"},"visibleTo":{"description":"VisibleTo can be used to restrict whom can reference a given contribution/type. This value should be a list of publishers or extensions access is restricted too.  Examples: \"ms\" - Means only the \"ms\" publisher can reference this. \"ms.vss-web\" - Means only the \"vss-web\" extension from the \"ms\" publisher can reference this.","items":{"type":"string"},"type":"array"}},"required":["id","targets","type"],"title":"contribution","type":"object"},"ContributionConstraint":{"description":"Specifies a constraint that can be used to dynamically include/exclude a given contribution","properties":{"group":{"description":"An optional property that can be specified to group constraints together. All constraints within a group are AND'd together (all must be evaluate to True in order for the contribution to be included). Different groups of constraints are OR'd (only one group needs to evaluate to True for the contribution to be included).","type":"number"},"id":{"description":"Fully qualified identifier of a shared constraint","type":"string"},"inverse":{"description":"If true, negate the result of the filter (include the contribution if the applied filter returns false instead of true)","type":"boolean"},"name":{"description":"Name of the IContributionFilter plugin","type":"string"},"properties":{"description":"Properties that are fed to the contribution filter class"},"relationships":{"description":"Constraints can be optionally be applied to one or more of the relationships defined in the contribution. If no relationships are defined then all relationships are associated with the constraint. This means the default behaviour will eliminate the contribution from the tree completely if the constraint is applied.","items":{"type":"string"},"type":"array"}},"type":"object"},"ContributionLicensingBehaviorType":{"description":"Represents different ways of including contributions based on licensing","enum":[0,1,2],"type":"number"},"ContributionPropertyDescription":{"description":"Description about a property of a contribution type","properties":{"description":{"description":"Description of the property","type":"string"},"name":{"description":"Name of the property","type":"string"},"required":{"description":"True if this property is required","type":"boolean"},"type":{"$ref":"#/definitions/ContributionPropertyType","description":"The type of value used for this property"}},"type":"object"},"ContributionPropertyType":{"description":"The type of value used for a property","enum":[0,1,128,16,2,256,32,4,512,64,8],"type":"number"},"ContributionType":{"description":"A contribution type, given by a json schema","properties":{"description":{"description":"Description of the contribution/type","type":"string"},"id":{"description":"Fully qualified identifier of the contribution/type","type":"string"},"indexed":{"description":"Controls whether or not contributions of this type have the type indexed for queries. This allows clients to find all extensions that have a contribution of this type.  NOTE: Only TrustedPartners are allowed to specify indexed contribution types.","type":"boolean"},"name":{"description":"Friendly name of the contribution/type","type":"string"},"properties":{"additionalProperties":{"$ref":"#/definitions/ContributionPropertyDescription"},"description":"Describes the allowed properties for this contribution type","type":"object"},"visibleTo":{"description":"VisibleTo can be used to restrict whom can reference a given contribution/type. This value should be a list of publishers or extensions access is restricted too.  Examples: \"ms\" - Means only the \"ms\" publisher can reference this. \"ms.vss-web\" - Means only the \"vss-web\" extension from the \"ms\" publisher can reference this.","items":{"type":"string"},"type":"array"}},"type":"object"},"ExtensionEventCallback":{"description":"Base class for an event callback for an extension","properties":{"uri":{"description":"The uri of the endpoint that is hit when an event occurs","type":"string"}},"type":"object"},"ExtensionEventCallbackCollection":{"description":"Collection of event callbacks - endpoints called when particular extension events occur.","properties":{"postDisable":{"$ref":"#/definitions/ExtensionEventCallback","description":"Optional.  Defines an endpoint that gets called via a POST request to notify that an extension disable has occurred."},"postEnable":{"$ref":"#/definitions/ExtensionEventCallback","description":"Optional.  Defines an endpoint that gets called via a POST request to notify that an extension enable has occurred."},"postInstall":{"$ref":"#/definitions/ExtensionEventCallback","description":"Optional.  Defines an endpoint that gets called via a POST request to notify that an extension install has completed."},"postUninstall":{"$ref":"#/definitions/ExtensionEventCallback","description":"Optional.  Defines an endpoint that gets called via a POST request to notify that an extension uninstall has occurred."},"postUpdate":{"$ref":"#/definitions/ExtensionEventCallback","description":"Optional.  Defines an endpoint that gets called via a POST request to notify that an extension update has occurred."},"preInstall":{"$ref":"#/definitions/ExtensionEventCallback","description":"Optional.  Defines an endpoint that gets called via a POST request to notify that an extension install is about to occur.  Response indicates whether to proceed or abort."},"versionCheck":{"$ref":"#/definitions/ExtensionEventCallback","description":"For multi-version extensions, defines an endpoint that gets called via an OPTIONS request to determine the particular version of the extension to be used"}},"type":"object"},"ExtensionLicensing":{"description":"How an extension should handle including contributions based on licensing","properties":{"overrides":{"description":"A list of contributions which deviate from the default licensing behavior","items":{"$ref":"#/definitions/LicensingOverride"},"type":"array"}},"type":"object"},"File":{"properties":{"path":{"description":"Path to resource on disk, which can be relative to your root directory.","type":"string"},"addressable":{"description":"(optional) Set to true if you want your file to be URL-addressable. Defaults to false.","type":"boolean"},"packagePath":{"description":"(optional) Path to the resource within the package. Defaults to the relative path on disk from your root directory.","type":"string"},"contentType":{"description":"(optional) MIME type of the file. Defaults to a best guess based on the file extension and OS settings.","type":"string"},"assetType":{"description":"(optional) Specify the value of the Type attribute of the asset entry in the VSIX manifest. Can also be an array of strings, in which case multiple asset entries get added for this file. Defaults to the packagePath.","type":"string"},"lang":{"description":"(optional) Language of this asset. Localized files are served based on the Accept-Language header. Leave blank to signify this file is in the default (or fallback) language. Localized versions of the same file should have the same assetType.","type":"string"}},"required":["path"],"title":"file","type":"object"},"LicensingOverride":{"description":"Maps a contribution to a licensing behavior","properties":{"behavior":{"$ref":"#/definitions/ContributionLicensingBehaviorType","description":"How the inclusion of this contribution should change based on licensing"},"id":{"description":"Fully qualified contribution id which we want to define licensing behavior for","type":"string"}},"type":"object"},"Link":{"properties":{"uri":{"description":"The absolute URL of the link.","type":"string"}},"title":"link","type":"object"},"Target":{"properties":{"id":{"type":"string","enum":["Microsoft.VisualStudio.Services","Microsoft.TeamFoundation.Server","Microsoft.VisualStudio.Services.Integration","Microsoft.TeamFoundation.Server.Integration"]}},"required":["id"],"title":"target","type":"object"}},"description":"Base class for extension properties which are shared by the extension manifest and the extension model","properties":{"badges":{"description":"Array of links to external metadata badges like TravisCI, Appveyor, and so on, from the approved badges sites.","type":"array","items":{"$ref":"#/definitions/Badge"}},"baseUri":{"description":"Uri used as base for other relative uri's defined in extension","type":"string"},"branding":{"description":"Dictionary of brand-related properties.","properties":{"color":{"description":"Primary color of the extension or publisher; can be a hex (#ff00ff), RGB (rgb(100,200,50)), or supported HTML color names (blue).","type":"string"},"theme":{"description":"Complements the color; use dark for dark branding colors, or light for lighter branding colors.","type":"string","enum":["dark","light"]}},"title":"branding","type":"object"},"categories":{"description":"Array of strings representing the categories your extension belongs to. At least one category must be provided and there's no limit to how many categories you may include. Valid values: Azure Repos, Azure Boards, Azure Pipelines, Azure Test Plans, and Azure Artifacts.","type":"array","items":{"type":"string","enum":["Azure Repos","Azure Boards","Azure Pipelines","Azure Test Plans","Azure Artifacts"]},"minItems":1},"constraints":{"description":"List of shared constraints defined by this extension","items":{"$ref":"#/definitions/ContributionConstraint"},"type":"array"},"content":{"description":"Dictionary of content files that describe your extension to users.","properties":{"details":{"$ref":"#/definitions/Content"}},"additionalProperties":{"$ref":"#/definitions/Content"},"title":"content","type":"object"},"contributionTypes":{"description":"List of contribution types defined by this extension","items":{"$ref":"#/definitions/ContributionType"},"type":"array"},"contributions":{"description":"List of contributions made by this extension","items":{"$ref":"#/definitions/Contribution"},"type":"array"},"demands":{"description":"List of explicit demands required by this extension","items":{"type":"string"},"type":"array"},"description":{"description":"A few sentences describing the extensions. Limited to 200 characters.","type":"string","maxLength":200},"eventCallbacks":{"$ref":"#/definitions/ExtensionEventCallbackCollection","description":"Collection of endpoints that get called when particular extension events occur"},"fallbackBaseUri":{"description":"Secondary location that can be used as base for other relative uri's defined in extension","type":"string"},"files":{"description":"The files section is where you reference any files you wish to include in your extension.","type":"array","items":{"$ref":"#/definitions/File"}},"icons":{"description":"Dictionary of icons representing the extension.","type":"object","properties":{"default":{"description":"128x128 pixels","type":"string"}},"additionalProperties":{"type":"string"}},"id":{"description":"The extension's identifier.","type":"string"},"language":{"description":"Language Culture Name set by the Gallery","type":"string"},"licensing":{"$ref":"#/definitions/ExtensionLicensing","description":"How this extension behaves with respect to licensing"},"manifestVersion":{"description":"Version of the extension manifest format/content. Should be 1.","type":"number"},"name":{"description":"A short, human-readable name of the extension. Limited to 200 characters.","type":"string","maxLength":200},"links":{"description":"Dictionary of links that help users learn more about your extension, get support, and move.","type":"object","properties":{"getstarted":{"$ref":"#/definitions/Link"},"learn":{"$ref":"#/definitions/Link"},"license":{"$ref":"#/definitions/Link"},"privacypolicy":{"$ref":"#/definitions/Link"},"support":{"$ref":"#/definitions/Link"}},"additionalProperties":{"$ref":"#/definitions/Link"}},"publisher":{"description":"The identifier of the publisher. This identifier must match the identifier the extension is published under.","type":"string"},"repository":{"description":"Dictionary of properties describing the source code repository for the extension.","type":"object","properties":{"type":{"description":"Type of repository. Example: git.","type":"string"},"uri":{"description":"Absolute URL of the repository.","type":"string"}}},"restrictedTo":{"description":"Default user claims applied to all contributions (except the ones which have been specified restrictedTo explicitly) to control the visibility of a contribution.","items":{"type":"string"},"type":"array"},"scopes":{"description":"List of all oauth scopes required by this extension","items":{"type":"string"},"type":"array"},"screenshots":{"description":"Array of images that couldn't be included in your content.","type":"array","items":{"$ref":"#/definitions/Content"}},"serviceInstanceType":{"description":"The ServiceInstanceType(Guid) of the VSTS service that must be available to an account in order for the extension to be installed","type":"string"},"tags":{"description":"Array of string tags to help users find your extension.","type":"array","items":{"type":"string"}},"targets":{"description":"The products and services supported by your integration or extension.","type":"array","items":{"$ref":"#/definitions/Target"},"minItems":1},"version":{"description":"A string specifying the version of an extension. Should be in the format major.minor.patch.","type":"string"}},"type":"object"}
</schema>

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

A link to external metadata badge.

Link the user navigates to when selecting the badge.

The absolute URL of the badge image to be displayed.

Description of the badge, to be displayed on hover.

badge

A content file that describes the extension to users.

The path to the file in the extension.

content

An individual contribution made by an extension

List of constraints (filters) that should be applied to the availability of this contribution

Description of the contribution/type

Fully qualified identifier of the contribution/type

Includes is a set of contributions that should have this contribution included in their targets list.

Properties/attributes of this contribution

List of demanded claims in order for the user to see this contribution (like anonymous, public, member...).

The ids of the contribution(s) that this contribution targets. (parent contributions)

Id of the Contribution Type

VisibleTo can be used to restrict whom can reference a given contribution/type. This value should be a list of publishers or extensions access is restricted too.  Examples: "ms" - Means only the "ms" publisher can reference this. "ms.vss-web" - Means only the "vss-web" extension from the "ms" publisher can reference this.

contribution

Specifies a constraint that can be used to dynamically include/exclude a given contribution

An optional property that can be specified to group constraints together. All constraints within a group are AND'd together (all must be evaluate to True in order for the contribution to be included). Different groups of constraints are OR'd (only one group needs to evaluate to True for the contribution to be included).

Fully qualified identifier of a shared constraint

If true, negate the result of the filter (include the contribution if the applied filter returns false instead of true)

Name of the IContributionFilter plugin

Properties that are fed to the contribution filter class

Constraints can be optionally be applied to one or more of the relationships defined in the contribution. If no relationships are defined then all relationships are associated with the constraint. This means the default behaviour will eliminate the contribution from the tree completely if the constraint is applied.

Represents different ways of including contributions based on licensing

Description about a property of a contribution type

Description of the property

Name of the property

True if this property is required

The type of value used for this property

The type of value used for a property

A contribution type, given by a json schema

Description of the contribution/type

Controls whether or not contributions of this type have the type indexed for queries. This allows clients to find all extensions that have a contribution of this type.  NOTE: Only TrustedPartners are allowed to specify indexed contribution types.

Friendly name of the contribution/type

Describes the allowed properties for this contribution type

Base class for an event callback for an extension

The uri of the endpoint that is hit when an event occurs

Collection of event callbacks - endpoints called when particular extension events occur.

Optional.  Defines an endpoint that gets called via a POST request to notify that an extension disable has occurred.

Optional.  Defines an endpoint that gets called via a POST request to notify that an extension enable has occurred.

Optional.  Defines an endpoint that gets called via a POST request to notify that an extension install has completed.

Optional.  Defines an endpoint that gets called via a POST request to notify that an extension uninstall has occurred.

Optional.  Defines an endpoint that gets called via a POST request to notify that an extension update has occurred.

Optional.  Defines an endpoint that gets called via a POST request to notify that an extension install is about to occur.  Response indicates whether to proceed or abort.

For multi-version extensions, defines an endpoint that gets called via an OPTIONS request to determine the particular version of the extension to be used

How an extension should handle including contributions based on licensing

A list of contributions which deviate from the default licensing behavior

Path to resource on disk, which can be relative to your root directory.

(optional) Set to true if you want your file to be URL-addressable. Defaults to false.

(optional) Path to the resource within the package. Defaults to the relative path on disk from your root directory.

(optional) MIME type of the file. Defaults to a best guess based on the file extension and OS settings.

(optional) Specify the value of the Type attribute of the asset entry in the VSIX manifest. Can also be an array of strings, in which case multiple asset entries get added for this file. Defaults to the packagePath.

(optional) Language of this asset. Localized files are served based on the Accept-Language header. Leave blank to signify this file is in the default (or fallback) language. Localized versions of the same file should have the same assetType.

file

Maps a contribution to a licensing behavior

How the inclusion of this contribution should change based on licensing

Fully qualified contribution id which we want to define licensing behavior for

The absolute URL of the link.

link

target

Base class for extension properties which are shared by the extension manifest and the extension model

Array of links to external metadata badges like TravisCI, Appveyor, and so on, from the approved badges sites.

Uri used as base for other relative uri's defined in extension

Dictionary of brand-related properties.

Primary color of the extension or publisher; can be a hex (#ff00ff), RGB (rgb(100,200,50)), or supported HTML color names (blue).

Complements the color; use dark for dark branding colors, or light for lighter branding colors.

branding

Array of strings representing the categories your extension belongs to. At least one category must be provided and there's no limit to how many categories you may include. Valid values: Azure Repos, Azure Boards, Azure Pipelines, Azure Test Plans, and Azure Artifacts.

Azure Repos
Azure Boards
Azure Pipelines
Azure Test Plans
Azure Artifacts

List of shared constraints defined by this extension

Dictionary of content files that describe your extension to users.

content

List of contribution types defined by this extension

List of contributions made by this extension

List of explicit demands required by this extension

A few sentences describing the extensions. Limited to 200 characters.

Collection of endpoints that get called when particular extension events occur

Secondary location that can be used as base for other relative uri's defined in extension

The files section is where you reference any files you wish to include in your extension.

Dictionary of icons representing the extension.

128x128 pixels

The extension's identifier.

Language Culture Name set by the Gallery

How this extension behaves with respect to licensing

Version of the extension manifest format/content. Should be 1.

A short, human-readable name of the extension. Limited to 200 characters.

Dictionary of links that help users learn more about your extension, get support, and move.

The identifier of the publisher. This identifier must match the identifier the extension is published under.

Dictionary of properties describing the source code repository for the extension.

Type of repository. Example: git.

Absolute URL of the repository.

Default user claims applied to all contributions (except the ones which have been specified restrictedTo explicitly) to control the visibility of a contribution.

List of all oauth scopes required by this extension

Array of images that couldn't be included in your content.

The ServiceInstanceType(Guid) of the VSTS service that must be available to an account in order for the extension to be installed

Array of string tags to help users find your extension.

The products and services supported by your integration or extension.

A string specifying the version of an extension. Should be in the format major.minor.patch.

Provide a JSON object that satisfies the schema "azure-devops-extension-manifest-1.0". 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 "JSON schema for Azure IoT Edge Deployment version 2.0". Here are the required top‑level fields: modulesContent. Return only the valid JSON object.

The configuration for all the modules.

Configuration for the edgeAgent module

schemaVersion runtime systemModules modules

The Edgehub Schema

Configuration for the edgeHub module

Provide a JSON object that satisfies the schema "JSON schema for Azure IoT Edge Deployment version 2.0". Here are the required top‑level fields: modulesContent. Return only the valid JSON object.


[User] Provide a JSON object that satisfies the schema "JSON schema for Azure IoT Edge Deployment Template version 4.0 (Edge Agent schema v1.1 + Edge Hub schema v1.2 )". Here are the required top‑level fields: modulesContent. Return only the valid JSON object.

The configuration for all the modules.

Configuration for the edgeAgent module

The Edgehub Schema

Provide a JSON object that satisfies the schema "JSON schema for Azure IoT Edge Deployment Template version 4.0 (Edge Agent schema v1.1 + Edge Hub schema v1.2 )". Here are the required top‑level fields: modulesContent. Return only the valid JSON object.


[User] Provide a JSON object that satisfies the schema "JSON schema for Azure IoT EdgeAgent Deployment version 1.1". Here are the required top‑level fields: $edgeAgent. Return only the valid JSON object.

Configuration for the edgeAgent module

The Edgehub Schema

Provide a JSON object that satisfies the schema "JSON schema for Azure IoT EdgeAgent Deployment version 1.1". Here are the required top‑level fields: $edgeAgent. Return only the valid JSON object.


[User] Provide a JSON object that satisfies the schema "JSON schema for Azure IoT EdgeHub Deployment version 1.2". Here are the required top‑level fields: $edgeHub. Return only the valid JSON object.

Configuration for the edgeHub module

Provide a JSON object that satisfies the schema "JSON schema for Azure IoT EdgeHub Deployment version 1.2". Here are the required top‑level fields: $edgeHub. 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#","allOf":[{"$ref":"#/definitions/Options"},{"properties":{"env":{"description":"This is an object of keys that represent different environments. For example, you may have: `{ env: { production: { /* specific options */ } } }` which will use those options when the environment variable BABEL_ENV is set to \"production\". If BABEL_ENV isn't set then NODE_ENV will be used, if it's not set then it defaults to \"development\"","type":"object","additionalProperties":{"$ref":"#/definitions/Options"},"default":{}}}}],"definitions":{"Options":{"type":"object","properties":{"ast":{"description":"Include the AST in the returned object","type":"boolean","default":true},"auxiliaryCommentAfter":{"description":"Attach a comment after all non-user injected code.","type":"string"},"auxiliaryCommentBefore":{"description":"Attach a comment before all non-user injected code.","type":"string"},"code":{"description":"Enable code generation","type":"boolean","default":true},"comments":{"description":"Output comments in generated output.","type":"boolean","default":true},"compact":{"description":"Do not include superfluous whitespace characters and line terminators. When set to \"auto\" compact is set to true on input sizes of >500KB.","type":["string","boolean"],"enum":["auto",true,false],"default":"auto"},"extends":{"description":"A path to a .babelrc file to extend","type":"string"},"filename":{"description":"Filename for use in errors etc.","type":"string","default":"unknown"},"filenameRelative":{"description":"Filename relative to sourceRoot (defaults to \"filename\")","type":"string"},"highlightCode":{"description":"ANSI highlight syntax error code frames","type":"boolean"},"ignore":{"description":"Opposite of the \"only\" option","type":["string","array"],"items":{"type":"string"}},"inputSourceMap":{"description":"If true, attempt to load an input sourcemap from the file itself. If an object is provided, it will be treated as the source map object itself.","type":["boolean","object"],"default":true},"keepModuleIdExtensions":{"description":"Keep extensions in module ids","type":"boolean","default":false},"moduleId":{"description":"Specify a custom name for module ids.","type":"string"},"moduleIds":{"description":"If truthy, insert an explicit id for modules. By default, all modules are anonymous. (Not available for common modules)","type":"string","default":false},"moduleRoot":{"description":"Optional prefix for the AMD module formatter that will be prepend to the filename on module definitions. (defaults to \"sourceRoot\")","type":"string"},"only":{"description":"A glob, regex, or mixed array of both, matching paths to only compile. Can also be an array of arrays containing paths to explicitly match. When attempting to compile a non-matching file it's returned verbatim.","type":["string","array"],"items":{"type":"string"}},"plugins":{"description":"List of plugins to load and use","type":"array","items":{"type":["string","array"],"items":[{"description":"The name of the plugin.","type":"string"},{"description":"The options of the plugin.","type":"object"}]}},"presets":{"description":"List of presets (a set of plugins) to load and use","type":"array","items":{"type":["string","array"],"items":[{"description":"The name of the preset.","type":"string"},{"description":"The options of the preset.","type":"object"}]}},"retainLines":{"default":false,"description":"Retain line numbers. This will lead to wacky code but is handy for scenarios where you can't use source maps. NOTE: This will obviously not retain the columns.","type":"boolean"},"sourceFileName":{"description":"Set sources[0] on returned source map. (defaults to \"filenameRelative\")","type":"string"},"sourceMaps":{"default":false,"description":"If truthy, adds a map property to returned output. If set to \"inline\", a comment with a sourceMappingURL directive is added to the bottom of the returned code. If set to \"both\" then a map property is returned as well as a source map comment appended.","type":["string","boolean"],"enum":["both","inline",true,false]},"sourceMapTarget":{"description":"Set file on returned source map. (defaults to \"filenameRelative\")","type":"string"},"sourceRoot":{"description":"The root from which all sources are relative. (defaults to \"moduleRoot\")","type":"string"}}}},"id":"https://json.schemastore.org/babelrc.json","title":"JSON schema for Babel 6+ configuration files","type":"object"}
</schema>

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

This is an object of keys that represent different environments. For example, you may have: `{ env: { production: { /* specific options */ } } }` which will use those options when the environment variable BABEL_ENV is set to "production". If BABEL_ENV isn't set then NODE_ENV will be used, if it's not set then it defaults to "development"

Include the AST in the returned object

Attach a comment after all non-user injected code.

Attach a comment before all non-user injected code.

Enable code generation

Output comments in generated output.

Do not include superfluous whitespace characters and line terminators. When set to "auto" compact is set to true on input sizes of >500KB.

A path to a .babelrc file to extend

Filename for use in errors etc.

Filename relative to sourceRoot (defaults to "filename")

ANSI highlight syntax error code frames

Opposite of the "only" option

If true, attempt to load an input sourcemap from the file itself. If an object is provided, it will be treated as the source map object itself.

Keep extensions in module ids

Specify a custom name for module ids.

If truthy, insert an explicit id for modules. By default, all modules are anonymous. (Not available for common modules)

Optional prefix for the AMD module formatter that will be prepend to the filename on module definitions. (defaults to "sourceRoot")

A glob, regex, or mixed array of both, matching paths to only compile. Can also be an array of arrays containing paths to explicitly match. When attempting to compile a non-matching file it's returned verbatim.

List of plugins to load and use

The name of the plugin.

The options of the plugin.

List of presets (a set of plugins) to load and use

The name of the preset.

The options of the preset.

Retain line numbers. This will lead to wacky code but is handy for scenarios where you can't use source maps. NOTE: This will obviously not retain the columns.

Set sources[0] on returned source map. (defaults to "filenameRelative")

If truthy, adds a map property to returned output. If set to "inline", a comment with a sourceMappingURL directive is added to the bottom of the returned code. If set to "both" then a map property is returned as well as a source map comment appended.

Set file on returned source map. (defaults to "filenameRelative")

The root from which all sources are relative. (defaults to "moduleRoot")

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


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://json.schemastore.org/backportrc.json","additionalProperties":false,"description":"A Backport config schema","properties":{"repoName":{"description":"A repo name for the current project\nhttps://github.com/sqren/backport/blob/main/docs/config-file-options.md#reponame-required","type":"string","minLength":1,"examples":["kibana"]},"repoOwner":{"description":"A repo owner for the current project\nhttps://github.com/sqren/backport/blob/main/docs/config-file-options.md#repoowner-required","type":"string","minLength":1,"examples":["elastic"]},"targetBranchChoices":{"description":"Target branches for the current project\nhttps://github.com/sqren/backport/blob/main/docs/config-file-options.md#targetbranchchoices-required","type":"array","uniqueItems":true,"items":{"description":"A target branch for the current project\nhttps://github.com/sqren/backport/blob/main/docs/config-file-options.md#targetbranchchoices-required","oneOf":[{"type":"string","minLength":1,"examples":["6.2"]},{"title":"target branch","type":"object","required":["name","checked"],"properties":{"name":{"description":"A target branch for the current project\nhttps://github.com/sqren/backport/blob/main/docs/config-file-options.md#targetbranchchoices-required","type":"string","minLength":1,"examples":["6.3"]},"checked":{"description":"Whether to pre-select a target branch for the current project\nhttps://github.com/sqren/backport/blob/main/docs/config-file-options.md#targetbranchchoices-required","type":"boolean"}},"additionalProperties":false}]}},"upstream":{"description":"Identifier for the GitHub project as `{owner}/{repoName}` (deprecated)","type":"string"},"branches":{"description":"Branches to backport to","type":"array","items":{"anyOf":[{"type":"string"},{"type":"object","properties":{"name":{"type":"string"},"checked":{"type":"boolean"}},"required":["name","checked"]}]}},"labels":{"description":"Labels that will be added to the pull request","type":"array","items":{"type":"string"}},"all":{"description":"Whether to only show the current user's commits or commits from anyone","type":"boolean"}},"required":["repoName","repoOwner","targetBranchChoices"],"type":"object"}
</schema>

[User] Provide a JSON object that satisfies the schema "backportrc". Here are the required top‑level fields: repoName, repoOwner, targetBranchChoices. Return only the valid JSON object.

A Backport config schema

A repo name for the current project
https://github.com/sqren/backport/blob/main/docs/config-file-options.md#reponame-required

A repo owner for the current project
https://github.com/sqren/backport/blob/main/docs/config-file-options.md#repoowner-required

Target branches for the current project
https://github.com/sqren/backport/blob/main/docs/config-file-options.md#targetbranchchoices-required

A target branch for the current project
https://github.com/sqren/backport/blob/main/docs/config-file-options.md#targetbranchchoices-required

target branch

Whether to pre-select a target branch for the current project
https://github.com/sqren/backport/blob/main/docs/config-file-options.md#targetbranchchoices-required

Identifier for the GitHub project as `{owner}/{repoName}` (deprecated)

Branches to backport to

Labels that will be added to the pull request

Whether to only show the current user's commits or commits from anyone

Provide a JSON object that satisfies the schema "backportrc". Here are the required top‑level fields: repoName, repoOwner, targetBranchChoices. 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#","additionalProperties":{"$ref":"#/definitions/job"},"definitions":{"deployment":{"type":"object","title":"Deployment projects","description":"A deployment project in Bamboo is a container for holding the software project you are deploying: releases that have been built and tested, and the environments to which releases are deployed","properties":{"name":{"type":"string"},"source-plan":{"type":"string"}}},"docker":{"title":"Docker","description":"Builds and deployments are normally run on the Bamboo agent's native operating system","anyOf":[{"type":"string"},{"type":"object","properties":{"image":{"type":"string"},"volumes":{"type":"object","default":{}},"use-default-volumes":{"type":"boolean","default":false},"docker-run-arguments":{"type":"array","items":{"type":"string"}}},"required":["image"]}]},"events":{"type":"string","enum":["plan-failed","plan-completed","plan-status-changed","plan-comment-added","plan-responsibility-changed","job-completed","job-status-changed","job-failed","job-error","job-first-failed","job-hung","job-queue-timeout","job-queued-without-capable-agents"]},"job":{"title":"Job","description":"A job is a single build unit within a plan and is made up of one or more tasks.","definitions":{"artifact":{"type":"object","title":"Artifact","description":"Artifacts are files created by a job build (e.g. JAR files)","properties":{"location":{"description":"The relative path to find your artifact; it's a path relative to the workspace directory; do not use absolute paths.","type":"string"},"name":{"description":"Name of the artifact; in case artifact is shared, name must be unique within the plan.","type":"string"},"pattern":{"description":"Name or Ant pattern of file(s) to keep.","type":"string"},"required":{"type":"boolean"},"shared":{"type":"boolean","description":"You can share an artifact among other jobs or plans.","default":false}}},"task":{"description":"A task is a small unit of work, such as source code checkout, or running a script","type":"object","properties":{"interpreter":{"type":"string"},"clean":{"type":"object"},"checkout":{"type":"object","properties":{"repository":{"type":"string"},"path":{"type":"string"},"force-clean-build":{"type":"string","default":false}}},"inject-variables":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":false,"properties":{"file":{"type":"string"},"scope":{"type":"string"},"namespace":{"type":"string"}}}]},"test-parser":{"description":"The Test Results Parser task in Bamboo parses test data","anyOf":[{"$ref":"#/definitions/testParser"},{"type":"object","properties":{"type":{"$ref":"#/definitions/testParser"},"ignore-time":{"type":"boolean"},"test-results":{"type":"array","items":{"type":"string"}}},"required":["type"]}]},"scripts":{"type":"array","minItems":1,"items":{"$ref":"#/definitions/script"}}}}},"type":"object","properties":{"docker":{"$ref":"#/definitions/docker"},"final-tasks":{"type":"array"},"key":{"type":"string"},"other":{"type":"object","properties":{"clean-working-dir":{"type":"boolean"}}},"requirements":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"object","patternProperties":{".":{"type":"string"}}}]}},"tasks":{"type":"array","items":{"anyOf":[{"$ref":"#/definitions/predefinedTask"},{"$ref":"#/definitions/script"},{"$ref":"#/definitions/job/definitions/task"}]}}}},"keyValue":{"description":"Variables can be used to make values available when building plans in Bamboo.","type":"object","patternProperties":{"[a-zA-Z0-9_]":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"boolean"},{"type":"number"}]}}},"notification":{"type":"object","properties":{"recipients":{"type":"array","anyOf":[{"type":"object","properties":{"users":{"type":"array","items":{"type":"string"}}}},{"type":"object","properties":{"groups":{"type":"array","items":{"type":"string"}}}}]},"events":{"type":"array","minLength":1,"items":{"$ref":"#/definitions/events"}}}},"permission":{"type":"object","description":"Plan permissions allow a user to control access to the functions of the build plan.","definitions":{"permission":{"description":"Plan permissions allow a user to control access to the functions of the build plan","type":"string","enum":["view","edit","build","admin","clone","deploy"]}},"properties":{"groups":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"permissions":{"anyOf":[{"type":"array","items":{"$ref":"#/definitions/permission/definitions/permission"}},{"$ref":"#/definitions/permission/definitions/permission"}]},"roles":{"type":"array","items":{"type":"string"}},"users":{"type":"array","items":{"type":"string"}}}},"plan":{"description":"A plan defines everything about your continuous integration build process in Bamboo.","type":"object","properties":{"project-key":{"type":"string"},"key":{"type":"string"},"name":{"type":"string"}}},"predefinedTask":{"type":"string","enum":["inject-variables","clean","checkout","artifact-download"]},"releaseNaming":{"type":"object","properties":{"next-version-name":{"type":"string"},"applies-to-branches":{"type":"boolean"},"auto-increment":{"type":"boolean"},"auto-increment-variables":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}}},"script":{"anyOf":[{"type":"string"},{"type":"object","properties":{"script":{"type":"string"}}}]},"stage":{"title":"Stage","description":"Stages group jobs to individual steps within a plan's build process.","type":"object","additionalProperties":false,"properties":{"manual":{"description":"Will await for execution by user","type":"boolean"},"final":{"description":"Will be executed regardless of other stages state (pass or fail)","type":"boolean"},"jobs":{"type":"array","items":{"type":"string"}}}},"task":{"description":"A task is a small unit of work, such as source code checkout, or running a script.","type":"object","definitions":{"trigger":{"anyOf":[{"type":"object","properties":{"stage":{"type":"string"},"branch":{"type":"string"}}},{"type":"object","patternProperties":{"[a-zA-Z0-9\\s+_-]":{"type":"string"}}}]}},"properties":{"source-plan":{"type":"string"},"artifacts":{"type":"array","items":{"$ref":"#/definitions/job/definitions/artifact"}},"triggers":{"type":"array","items":{"type":"object","patternProperties":{"(build|stage|environment)-success":{"$ref":"#/definitions/task/definitions/trigger"}}}},"notifications":{"type":"array","items":{"$ref":"#/definitions/notification"}}}},"testParser":{"type":"string","enum":["junit","mstest","nunit","mocha","testng"]},"triggers":{"type":"array","definitions":{"polling":{"type":"object","additionalProperties":false,"properties":{"polling":{"anyOf":[{"type":"integer"},{"type":"object","additionalProperties":false,"properties":{"period":{"type":"integer"},"conditions":{"type":"array","items":{"type":"object","patternProperties":{"[a-zA-Z0-9\\s+_-]":{"type":"object","additionalProperties":{"type":"boolean"}}}}}}}]}}},"remote":{"type":"object","additionalProperties":false,"properties":{"remote":{"anyOf":[{"type":"string"},{"type":"object","properties":{"ip":{"type":"string"}}}]}}},"cron":{"type":"object","description":"Execute deployment by schedule.","additionalProperties":false,"properties":{"cron":{"oneOf":[{"type":"string"},{"type":"object","properties":{"expression":{"type":"string"}}}]}}}},"items":{"anyOf":[{"$ref":"#/definitions/triggers/definitions/polling"},{"$ref":"#/definitions/triggers/definitions/cron"},{"$ref":"#/definitions/triggers/definitions/remote"},{"type":"string"}]}}},"description":"Full spec reference: https://docs.atlassian.com/bamboo-specs-docs/7.2.4/specs.html","id":"https://json.schemastore.org/bamboo-spec.json","properties":{"default-environment-permissions":{"title":"Default Environment Permissions","description":"These permissions apply to all environments defined in this deployment project","type":"array","items":{"$ref":"#/definitions/permission"}},"deployment":{"title":"Deployment","anyOf":[{"type":"string"},{"$ref":"#/definitions/deployment"}]},"deployment-permissions":{"title":"Deployment Permissions","description":"These permissions apply to the deployment project","type":"array","items":{"$ref":"#/definitions/permission"}},"docker":{"$ref":"#/definitions/docker"},"environment-permissions":{"title":"Environment Permissions","description":"Permissions specific to an environment","type":"array","items":{"type":"object","patternProperties":{"[a-zA-Z0-9\\s+_-]":{"type":"array","items":{"$ref":"#/definitions/permission"}}}}},"environments":{"description":"An environment represents the servers or groups of servers where the software release has been deployed to, and the tasks that are needed for the deployment to work smoothly","type":"array","items":{"type":"string"}},"labels":{"type":"array","items":{"type":"string"}},"notifications":{"type":"array","items":{"type":"object","properties":{"recipients":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"object","properties":{"users":{"type":"array","items":{"type":"string"}},"emails":{"type":"array","items":{"type":"string"}}}}]}},"events":{"type":"array","items":{"anyOf":[{"$ref":"#/definitions/events"},{"type":"object"}]}}}}},"plan":{"$ref":"#/definitions/plan"},"plan-permissions":{"title":"Plan Permissions","type":"array","items":{"$ref":"#/definitions/permission"}},"release-naming":{"description":"You can define how releases should be named when they are created by Bamboo","anyOf":[{"$ref":"#/definitions/releaseNaming"},{"type":"string"}]},"repositories":{"type":"array","items":{"oneOf":[{"type":"string"},{"type":"object","patternProperties":{"[a-zA-Z0-9_]":{"type":"object","properties":{"scope":{"type":"string","enum":["project","global"]},"type":{"type":"string"},"slug":{"type":"string"},"url":{"type":"string"},"branch":{"type":"string"},"viewer":{"type":"string"},"ssh-key":{"type":"string"},"ssh-key-passphrase":{"type":"string"},"username":{"type":"string"},"password":{"type":"string"},"shared-credentials":{"type":"string"},"lfs":{"type":"boolean"},"use-shallow-clones":{"type":"boolean"},"submodules":{"type":"boolean"},"change-detection":{"type":"object","properties":{"quiet-period":{"type":"object","properties":{"quiet-period-seconds":{"type":"integer"},"max-retries":{"type":"integer"}}},"exclude-changeset-pattern":{"type":"string"},"file-filter-type":{"type":"string"},"file-filter-pattern":{"type":"string"}}}}}}}]}},"stages":{"description":"Stages group jobs to individual steps within a plan's build process.","type":"array","items":{"type":"object","patternProperties":{"[a-zA-Z0-9\\s+_-]":{"anyOf":[{"type":"array","items":{"type":"string"}},{"$ref":"#/definitions/stage"}]}}}},"triggers":{"$ref":"#/definitions/triggers"},"variables":{"$ref":"#/definitions/keyValue"},"version":{"type":"integer","default":2},"branch-overrides":{"description":"Overrides for specific branches in the plan","type":"array","items":{"type":"object","patternProperties":{"[a-zA-Z0-9\\s+_-]":{"$ref":"#"}}}},"other":{"type":"object"}},"title":"Bamboo CI Specification","type":"object"}
</schema>

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

Deployment projects

A deployment project in Bamboo is a container for holding the software project you are deploying: releases that have been built and tested, and the environments to which releases are deployed

Docker

Builds and deployments are normally run on the Bamboo agent's native operating system

plan-failed plan-completed plan-status-changed plan-comment-added plan-responsibility-changed job-completed job-status-changed job-failed job-error job-first-failed job-hung job-queue-timeout job-queued-without-capable-agents

Job

A job is a single build unit within a plan and is made up of one or more tasks.

Artifact

Artifacts are files created by a job build (e.g. JAR files)

The relative path to find your artifact; it's a path relative to the workspace directory; do not use absolute paths.

Name of the artifact; in case artifact is shared, name must be unique within the plan.

Name or Ant pattern of file(s) to keep.

You can share an artifact among other jobs or plans.

The Test Results Parser task in Bamboo parses test data

Variables can be used to make values available when building plans in Bamboo.

Plan permissions allow a user to control access to the functions of the build plan.

A plan defines everything about your continuous integration build process in Bamboo.

inject-variables clean checkout artifact-download

Stage

Stages group jobs to individual steps within a plan's build process.

Will await for execution by user

Will be executed regardless of other stages state (pass or fail)

A task is a small unit of work, such as source code checkout, or running a script.

Execute deployment by schedule.

Full spec reference: https://docs.atlassian.com/bamboo-specs-docs/7.2.4/specs.html

Default Environment Permissions

These permissions apply to all environments defined in this deployment project

Deployment

Deployment Permissions

These permissions apply to the deployment project

Environment Permissions

Permissions specific to an environment

An environment represents the servers or groups of servers where the software release has been deployed to, and the tasks that are needed for the deployment to work smoothly

Plan Permissions

You can define how releases should be named when they are created by Bamboo

Overrides for specific branches in the plan

Bamboo CI Specification

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