[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/mta.json","$comment":"Based on https://github.wdf.sap.corp/mta/spec/blob/master/schemas/v3/v3.3/mta-schema.yaml","definitions":{"generic-memory":{"type":"string","pattern":"^[1-9][0-9]*(M|MB|G|GB|m|mb|g|gb)$"},"properties":{"type":"object"},"properties-metadata":{"type":"object","properties":{"overwritable":{"type":"boolean","default":true},"optional":{"type":"boolean","default":false},"datatype":{"enum":["str","int","float","bool"],"type":"string","default":"str"}}},"parameters":{"type":"object"},"parameters-metadata":{"type":"object","properties":{"overwritable":{"type":"boolean","default":true},"optional":{"type":"boolean","default":false}}},"includes":{"type":"array","description":"It is possible to define parameters in external files. The \"includes\" section is used to point to those files.","items":{"type":"object","required":["name","path"],"properties":{"name":{"description":"The name of an \"includes\" section. This name is used by a builder to generate a parameter section in the deployment descriptor.","type":"string"},"path":{"description":"A path pointing to a file that contains a map of parameters, either in JSON or in YAML format.","type":"string"}}}},"hooks":{"type":"array","items":{"type":"object","required":["name"],"properties":{"name":{"description":"An internal name which can be used for documentation purposes and shown by the deployer.","type":"string","pattern":"^[A-Za-z0-9_\\-\\.]+$"},"type":{"description":"Defines the type of action that should be executed by the deployer.","type":"string","enum":["task"]},"phases":{"description":"A list of strings that define the points at which the hook must be executed.","type":"array","items":{"type":"string","enum":["deploy.application.before-stop","blue-green.application.before-stop.idle","blue-green.application.before-stop.live","deploy.application.after-stop","blue-green.application.after-stop.idle","blue-green.application.after-stop.live","deploy.application.before-unmap-routes","blue-green.application.before-unmap-routes.live","blue-green.application.before-unmap-routes.idle","deploy.application.before-start","blue-green.application.before-start.idle","blue-green.application.before-start.live"]}},"parameters":{"$ref":"#/definitions/hooks-parameters","description":"Configuration parameters that are used when executing the hook to the target runtime environment."},"parameters-metadata":{"$ref":"#/definitions/properties-metadata","description":"Additional information about the hook's parameters."},"requires":{"description":"List of names either matching a resource name or a provided dependency name provided within the same MTA that are required by this hook.","type":"array","items":{"type":"object","required":["name"],"properties":{"name":{"description":"An MTA internal name which must match either a provided name, or a resource name within the same MTA.","type":"string","pattern":"^[A-Za-z0-9_\\-\\.]+$"},"parameters":{"description":"Parameters can be used to influence the behavior of tools which interpret this descriptor. Parameters are not made available to the hook at runtime. Provided property values can be accessed by \"~{<provided-property-name>}\". Such expressions can be part of an arbitrary string","type":"object"},"parameters-metadata":{"$ref":"#/definitions/properties-metadata","description":"Additional information about the hook's parameters."}}}}}}},"hooks-parameters":{"type":"object","required":["command"],"properties":{"name":{"description":"Defines the name of the Cloud Foundry task that should be executed.","type":"string"},"command":{"description":"Defines the actual command that is executed as a Cloud Foundry task.","type":"string"},"memory":{"$ref":"#/definitions/generic-memory","description":"Defines the memory that is available to the Cloud Foundry task."},"disk-quota":{"$ref":"#/definitions/generic-memory","description":"Defines the disk space that is available to the Cloud Foundry task."}}}},"description":"MTA DESCRIPTOR SCHEMA","properties":{"_schema-version":{"description":"The schema version that is being used for authoring a descriptor. The schema version should comply with the semantic versioning standard.","type":"string"},"ID":{"description":"An application ID, that may contain any number of unicode characters and should be unique in the target runtime environment.","type":"string","pattern":"^[A-Za-z0-9_\\-\\.]+$"},"description":{"description":"A free text describing this application.","type":"string"},"version":{"description":"The application version that should comply with the semantic versioning standard.","type":"string","pattern":"^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(-(0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(\\.(0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*)?(\\+[0-9a-zA-Z-]+(\\.[0-9a-zA-Z-]+)*)?$"},"provider":{"description":"The provider or vendor of this application.","type":"string"},"copyright":{"description":"A copyright statement from the provider.","type":"string"},"modules":{"description":"A list of modules.","type":"array","items":{"type":"object","required":["name","type"],"properties":{"name":{"description":"The MTA module name which must be unique and cannot be the same as any provided property set or resource name.","type":"string","pattern":"^[A-Za-z0-9_\\-\\.]+$"},"type":{"description":"The module type that defines the design-time tools for the module.","type":"string"},"description":{"description":"A free text describing this module.","type":"string"},"path":{"description":"The path to a folder that contains the module artifacts.","type":"string"},"deployed-after":{"description":"A list of modules that must be deployed before deploying the current module.","type":"array","items":{"type":"string"}},"properties":{"$ref":"#/definitions/properties","description":"A collection of key-value pairs that are available to the module at runtime."},"properties-metadata":{"$ref":"#/definitions/properties-metadata","description":"Additional information about the module's properties."},"parameters":{"$ref":"#/definitions/parameters","description":"Configuration parameters that are used when deploying the module to the target runtime environment."},"parameters-metadata":{"$ref":"#/definitions/parameters-metadata","description":"Additional information about the module's parameters."},"hooks":{"$ref":"#/definitions/hooks","description":"A list of hooks that will be executed for the module."},"build-parameters":{"description":"The build parameters define how the module is built by the corresponding tool.","type":"object"},"includes":{"type":"array","description":"It is possible to define parameters in external files. The \"includes\" section is used to point to those files.","items":{"type":"object","required":["name","path"],"properties":{"name":{"description":"The name of an \"includes\" section. This name is used by a builder to generate a parameter section in the deployment descriptor.","type":"string"},"path":{"description":"A path pointing to a file that contains a map of parameters, either in JSON or in YAML format.","type":"string"}}}},"provides":{"description":"Used to define the named property sets that other modules and resources can require.","type":"array","items":{"type":"object","required":["name"],"properties":{"name":{"description":"The name of the property set that the module provides. The provided name must be unique and cannot be the same as any resource or module name.","type":"string","pattern":"^[A-Za-z0-9_\\-\\.]+$"},"public":{"description":"Configures the accessibility of the provided property set; if set to \"true\", it is publicly accessible and can be consumed by other MTA projects.","type":"boolean","default":false},"properties":{"$ref":"#/definitions/properties","description":"A list of properties that are included in this property set."},"properties-metadata":{"$ref":"#/definitions/properties-metadata","description":"Additional information about the provided set's properties."}}}},"requires":{"description":"A list of property sets provided by other modules and/or resources (providers) that this module requires.","type":"array","items":{"type":"object","required":["name"],"properties":{"name":{"description":"The name of a provided property set or resource (provider) that this module requires.","type":"string","pattern":"^[A-Za-z0-9_\\-\\.]+$"},"group":{"description":"A \"group\" can be used to combine properties from multiple providers into one runtime lookup object, such as an environment variable. As of schema version 2.1, this property is DEPRECATED.","type":"string"},"list":{"description":"Defines a name for a runtime lookup object, such as an environment variable, if the required property set contains multiple values; for example, if used to consume configuration data from outside this MTA project.","type":"string"},"properties":{"$ref":"#/definitions/properties","description":"Module properties whose values are determined by the provided properties. These properties can be referenced by the tilde notation: \"~{<provided-property-name>}\" "},"properties-metadata":{"$ref":"#/definitions/properties-metadata","description":"Additional information about the modules' properties."},"parameters":{"$ref":"#/definitions/parameters","description":"Configuration parameters that are used when deploying the module to the target runtime environment."},"parameters-metadata":{"$ref":"#/definitions/parameters-metadata","description":"Additional information about the modules' parameters."},"includes":{"type":"array","description":"It is possible to define parameters in external files. The \"includes\" section is used to point to those files.","items":{"type":"object","required":["name","path"],"properties":{"name":{"description":"The name of an \"includes\" section. This name is used by a builder to generate a parameter section in the deployment descriptor.","type":"string"},"path":{"description":"A path pointing to a file that contains a map of parameters, either in JSON or in YAML format.","type":"string"}}}}}}}}}},"resources":{"description":"A list of resources that are required by the modules of this MTA project.","type":"array","items":{"type":"object","required":["name"],"properties":{"name":{"description":"The resource name which must be unique and cannot be the same as any provided property set or module name.","type":"string","pattern":"^[A-Za-z0-9_\\-\\.]+$"},"type":{"description":"A type of resource supported by deployment tools in the target environment.","type":"string"},"description":{"description":"A free text describing this resource.","type":"string"},"properties":{"$ref":"#/definitions/properties","description":"A collection of key-value pairs that can be required by modules and/or other resources as configuration data at runtime."},"properties-metadata":{"$ref":"#/definitions/properties-metadata","description":"Additional information about the resource's properties."},"parameters":{"$ref":"#/definitions/parameters","description":"Configuration parameters that are used when provisioning the resource in the target runtime environment."},"parameters-metadata":{"$ref":"#/definitions/parameters-metadata","description":"Additional information about the resource's parameters."},"includes":{"type":"array","description":"It is possible to define parameters in external files. The \"includes\" section is used to point to those files.","items":{"type":"object","required":["name","path"],"properties":{"name":{"description":"The name of an \"includes\" section. This name is used by a builder to generate a parameter section in the deployment descriptor.","type":"string"},"path":{"description":"A path pointing to a file that contains a map of parameters, either in JSON or in YAML format.","type":"string"}}}},"optional":{"description":"If the resource is set to optional and the deployment tools are unable to allocate it, then the tools will issue a warning and continue the deployment process.","type":"boolean","default":false},"processed-after":{"description":"A list containing the names of the resources that must be processed prior to this one.","type":"array","items":{"type":"string"}},"active":{"description":"If a resource is declared to be inactive, the resource will not be allocated during the deployment process.","type":"boolean","default":true},"requires":{"description":"A list of property sets provided by other modules and/or resources (providers) that this resource requires.","type":"array","items":{"type":"object","required":["name"],"properties":{"name":{"description":"The name of a provided property set or resource (provider) that this resource requires.","type":"string","pattern":"^[A-Za-z0-9_\\-\\.]+$"},"properties":{"$ref":"#/definitions/properties","description":"Resource properties whose values are determined by the provided properties. These properties can be referenced by the tilde notation: \"~{<provided-property-name>}\" "},"properties-metadata":{"$ref":"#/definitions/properties-metadata","description":"Additional information about the required properties."},"parameters":{"$ref":"#/definitions/parameters","description":"Configuration parameters that are used when provisioning the resource in the target runtime environment."},"parameters-metadata":{"$ref":"#/definitions/parameters-metadata","description":"Additional information about the required parameters."},"includes":{"type":"array","description":"It is possible to define parameters in external files. The \"includes\" section is used to point to those files.","items":{"type":"object","required":["name","path"],"properties":{"name":{"description":"The name of an \"includes\" section. This name is used by a builder to generate a parameter section in the deployment descriptor.","type":"string"},"path":{"description":"A path pointing to a file that contains a map of parameters, either in JSON or in YAML format.","type":"string"}}}}}}}}}},"parameters":{"$ref":"#/definitions/parameters","description":"Global parameters that are used when building or deploying the application"},"parameters-metadata":{"$ref":"#/definitions/parameters-metadata","description":"Additional information about the global parameters."},"includes":{"type":"array","description":"It is possible to define parameters in external files. The \"includes\" section is used to point to those files.","items":{"type":"object","required":["name","path"],"properties":{"name":{"description":"The name of an \"includes\" section. This name is used by a builder to generate a parameter section in the deployment descriptor.","type":"string"},"path":{"description":"A path pointing to a file that contains a map of parameters, either in JSON or in YAML format.","type":"string"}}}}},"required":["_schema-version","ID","version"],"title":"com.sap.mta.mta-schema_3.3","type":"object"}
</schema>

[User] Provide a JSON object that satisfies the schema "com.sap.mta.mta-schema_3.3". Here are the required top‑level fields: _schema-version, ID, version. Return only the valid JSON object.

It is possible to define parameters in external files. The "includes" section is used to point to those files.

The name of an "includes" section. This name is used by a builder to generate a parameter section in the deployment descriptor.

A path pointing to a file that contains a map of parameters, either in JSON or in YAML format.

An internal name which can be used for documentation purposes and shown by the deployer.

Defines the type of action that should be executed by the deployer.

A list of strings that define the points at which the hook must be executed.

Configuration parameters that are used when executing the hook to the target runtime environment.

Additional information about the hook's parameters.

List of names either matching a resource name or a provided dependency name provided within the same MTA that are required by this hook.

An MTA internal name which must match either a provided name, or a resource name within the same MTA.

Parameters can be used to influence the behavior of tools which interpret this descriptor. Parameters are not made available to the hook at runtime. Provided property values can be accessed by "~{<provided-property-name>}". Such expressions can be part of an arbitrary string

Defines the name of the Cloud Foundry task that should be executed.

Defines the actual command that is executed as a Cloud Foundry task.

Defines the memory that is available to the Cloud Foundry task.

Defines the disk space that is available to the Cloud Foundry task.

MTA DESCRIPTOR SCHEMA

The schema version that is being used for authoring a descriptor. The schema version should comply with the semantic versioning standard.

An application ID, that may contain any number of unicode characters and should be unique in the target runtime environment.

A free text describing this application.

The application version that should comply with the semantic versioning standard.

The provider or vendor of this application.

A copyright statement from the provider.

A list of modules.

The MTA module name which must be unique and cannot be the same as any provided property set or resource name.

The module type that defines the design-time tools for the module.

A free text describing this module.

The path to a folder that contains the module artifacts.

A list of modules that must be deployed before deploying the current module.

A collection of key-value pairs that are available to the module at runtime.

Additional information about the module's properties.

Configuration parameters that are used when deploying the module to the target runtime environment.

Additional information about the module's parameters.

A list of hooks that will be executed for the module.

The build parameters define how the module is built by the corresponding tool.

Used to define the named property sets that other modules and resources can require.

The name of the property set that the module provides. The provided name must be unique and cannot be the same as any resource or module name.

Configures the accessibility of the provided property set; if set to "true", it is publicly accessible and can be consumed by other MTA projects.

A list of properties that are included in this property set.

Additional information about the provided set's properties.

A list of property sets provided by other modules and/or resources (providers) that this module requires.

The name of a provided property set or resource (provider) that this module requires.

A "group" can be used to combine properties from multiple providers into one runtime lookup object, such as an environment variable. As of schema version 2.1, this property is DEPRECATED.

Defines a name for a runtime lookup object, such as an environment variable, if the required property set contains multiple values; for example, if used to consume configuration data from outside this MTA project.

Module properties whose values are determined by the provided properties. These properties can be referenced by the tilde notation: "~{<provided-property-name>}"

Additional information about the modules' properties.

Additional information about the modules' parameters.

A list of resources that are required by the modules of this MTA project.

The resource name which must be unique and cannot be the same as any provided property set or module name.

A type of resource supported by deployment tools in the target environment.

A free text describing this resource.

A collection of key-value pairs that can be required by modules and/or other resources as configuration data at runtime.

Additional information about the resource's properties.

Configuration parameters that are used when provisioning the resource in the target runtime environment.

Additional information about the resource's parameters.

If the resource is set to optional and the deployment tools are unable to allocate it, then the tools will issue a warning and continue the deployment process.

A list containing the names of the resources that must be processed prior to this one.

If a resource is declared to be inactive, the resource will not be allocated during the deployment process.

A list of property sets provided by other modules and/or resources (providers) that this resource requires.

The name of a provided property set or resource (provider) that this resource requires.

Resource properties whose values are determined by the provided properties. These properties can be referenced by the tilde notation: "~{<provided-property-name>}"

Additional information about the required properties.

Additional information about the required parameters.

Global parameters that are used when building or deploying the application

Additional information about the global parameters.

com.sap.mta.mta-schema_3.3

Provide a JSON object that satisfies the schema "com.sap.mta.mta-schema_3.3". Here are the required top‑level fields: _schema-version, ID, version. Return only the valid JSON object.


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://json.schemastore.org/mtad.json","definitions":{"generic-memory":{"type":"string","pattern":"^[1-9][0-9]*(M|MB|G|GB|m|mb|g|gb)$"},"module-type":{"type":"string","anyOf":[{"enum":["application","binary","business-logging","com.sap.application.content","com.sap.html5.application-content","com.sap.portal.site-content","com.sap.xs.hdi","com.sap.xs.hdi-dynamic","custom","dotnet_core","go","java","java.tomcat","java.tomee","javascript.nodejs","nodejs","php","python","ruby","staticfile"]},{"type":"string"}]},"module-parameters":{"type":"object","properties":{"app-name":{"description":"The name of the application in the Cloud Foundry environment to be deployed for this module, based on the module name.","type":"string"},"apply-namespace":{"description":"Apply namespace to application name.","type":"boolean"},"buildpack":{"description":"The name or the URL of a custom buildpack required by the application.","type":"string"},"buildpacks":{"$ref":"#/definitions/module-parameters-buildpacks","description":"An array of buildpacks. If a buildpack parameter already exists, it will be overwritten by the buildpacks listed in the buildpacks parameter, so that you have to include it in the array."},"command":{"description":"A custom command required to start the application.","type":"string"},"create-service-broker":{"description":"Specifies whether [true|false] a service broker should be registered for the application module; default value is: false.","type":"boolean"},"dependency-type":{"description":"Defines the memory allocated to the application.","type":"string","enum":["hard","soft"]},"disk-quota":{"$ref":"#/definitions/generic-memory","description":"The disk space that will be available to the application. This parameter requires a unit of measurement M, MB, G, or GB in upper or lower case."},"docker":{"$ref":"#/definitions/module-parameters-docker","description":"Creates a module from a docker image. When using a docker image parameter, we do not need to specify the module in the MANIFEST.mf file.When uploading a docker image, the content of a module is not needed."},"domain":{"description":"The domain on which the application will be available later.","type":"string"},"domains":{"$ref":"#/definitions/module-parameters-domains","description":"The domains on which the application will be available later. The resulting application routes will be the Cartesian product of the domains and hosts. That is, a separate route for each host is constructed on each domain."},"enable-ssh":{"description":"Enables use of SSH within an application. Supported for the Diego container runtime environment only.","type":"boolean"},"health-check-type":{"description":"Defines how the module will be monitored for availability.","type":"string","enum":["port","process","http"]},"health-check-timeout":{"description":"The timeout is the amount of time (in seconds) allowed to elapse between starting up an app and the first healthy response.","type":"integer"},"health-check-invocation-timeout":{"description":"The timeout in seconds for individual health check requests for http and port health checks.","type":"integer"},"health-check-http-endpoint":{"description":"A http health check defaults to using '/' as its endpoint, but you can specify a custom endpoint.","type":"string","pattern":"^/.+"},"host":{"description":"The hostname or subdomain where an application is available later.","type":"string"},"hosts":{"$ref":"#/definitions/module-parameters-hosts","description":"The hostnames or subdomain where an application is available later."},"idle-domain":{"description":"The idle domain on which the idle application will be available during blue-green deploy.","type":"string"},"idle-domains":{"$ref":"#/definitions/module-parameters-domains","description":"The domains on which the idle application will be available during blue-green deploy. The resulting application routes will be the Cartesian product of the domains and hosts. That is, a separate route for each host is constructed on each domain."},"idle-host":{"description":"The hostname or subdomain where the idle application will be available during blue-green deploy.","type":"string"},"idle-hosts":{"$ref":"#/definitions/module-parameters-hosts","description":"The hostnames or subdomain where the idle application will be available during blue-green deploy."},"instances":{"description":"The number of application instances that will be started during the deployment.","type":"number","minimum":0},"keep-existing":{"$ref":"#/definitions/module-parameters-keep-existing","description":"Defines the application attributes which will be kept after the deployment or blue-green deployment has finished. The supported attributes which could be kept are application environment, application bindings and application routes. If not specified, the default values are false, which indicates that each application attribute will be updated with the new values presented in the deployment descriptor."},"keep-existing-routes":{"description":"When specified on module level, it indicates if the existing routes of the module's corresponding application should be kept even if they are not defined within the deployment and/or extension descriptors.When specified on global level, under the parameters section of the descriptor, it indicates if the existing routes of all applications within that MTA should be kept.The module-level variant of the parameter has priority over the global parameter.This parameter is typically used when users want to keep the routes they have mapped manually by using the cf map-route command. We discourage this approach, as manual operations could lead to inconsistent deployment results and difficult troubleshooting. We recommend you to define all routes in the deployment and/or extension descriptors, which allows for their automatic management.","type":"boolean"},"memory":{"$ref":"#/definitions/generic-memory","description":"Defines the memory allocated to the application."},"no-route":{"description":"Defines if a route should be assigned to the application.","type":"boolean"},"no-start":{"description":"Start/do not start the application during deployment. This parameter setting overrides the command-line option --no-start. If you explicitly set the no-start to false for the module foo in the example provided, then the module foo is started on deployment, even if you also specify the command-line option --no-start with the cf deploy command.","type":"boolean"},"restart-on-env-change":{"$ref":"#/definitions/module-parameters-restart-on-env-change","description":"Specifies whether an application should be restarted if an environment variable has been changed in one of the following categories: vcap-application, vcap-services, user-provided. If you set these parameters to false, the changes in environment are not consumable by a running instances of the application. If your application depends on the latest environment, it might become outdated."},"routes":{"$ref":"#/definitions/module-parameters-routes","description":"A parameter that lists multiple HTTP routes. It is a combination of the old parameters host, domain, port and route-path, which encompasses the full addresses to which to bind a module. In case the new routes parameter and the old ones are available, the routes value is used and the values of the old parameters are ignored. Each route for the application is created if it does not already exist. A routes parameter consists of one or many HTTP routes following the pattern myhost.my.domain/path"},"service-broker-name":{"description":"The name of the service broker in the Cloud Foundry environment to be created and registered for the specified application module.","type":"string"},"service-broker-password":{"description":"The password used for authentication by the XS controller at the service broker when performing service-related requests. The parameter is mandatory if create-service-broker: true.","type":"string"},"service-broker-space-scoped":{"description":"Makes the service plans of the broker visible only within the targeted space.","type":"boolean"},"service-broker-url":{"description":"Specifies the value of the service broker universal resource locator (URL) to register; service requests are sent to this URL. The parameter is mandatory if create-service-broker: true.","type":"string"},"service-broker-user":{"description":"The name of the user required for authentication by the XS controller at the service broker when performing service-related requests. The parameter is mandatory if create-service-broker: true.","type":"string"},"stack":{"description":"Use this parameter to define which prebuilt root file system (rootfs) you want to use.","type":"string"},"stage-timeout":{"description":"Defines how long, in seconds, your application can take during staging before the MTA operation times out.","type":"number","minimum":0},"start-timeout":{"description":"Defines how long, in seconds, your application can take to start before the MTA operation times out.","type":"number","minimum":0},"tasks":{"$ref":"#/definitions/module-parameters-tasks","description":"Specify tasks, which are available for execution in the current droplet of the application. Also provide use of environment variables which are specified with the env scope."},"task-execution-timeout":{"description":"Defines how long, in seconds, your application can take to execute a task before the MTA operation times out.","type":"number","minimum":0},"upload-timeout":{"description":"Defines how long, in seconds, you can upload your application binary before the MTA operation times out.","type":"number","minimum":0}}},"module-parameters-buildpacks":{"type":"array","items":{"type":"string"}},"module-parameters-domains":{"type":"array","items":{"type":"string"}},"module-parameters-hosts":{"type":"array","items":{"type":"string"}},"module-parameters-routes":{"type":"array","items":{"type":"object","required":["route"],"properties":{"route":{"type":"string"},"protocol":{"type":"string","anyOf":[{"enum":["http1","http2"]}]},"no-hostname":{"type":"boolean"},"apply-namespace":{"description":"Apply namespace to application routes.","type":"boolean"}}}},"module-parameters-tasks":{"type":"array","items":{"type":"object","required":["name","command"],"properties":{"name":{"description":"The task name.","type":"string"},"command":{"description":"The command to be executed.","type":"string"},"memory":{"$ref":"#/definitions/generic-memory","description":"Defines the memory that is available to the Cloud Foundry task."},"disk-quota":{"$ref":"#/definitions/generic-memory","description":"Defines the disk space that is available to the Cloud Foundry task."}}}},"module-parameters-docker":{"type":"object","properties":{"image":{"description":"An image parameter is a docker image from the Docker Hub or somewhere else. eg. cloudfoundry/test-app","type":"string"},"username":{"description":"The username is optional, but if a Docker image from a private repository is uploaded, then it is mandatory.","type":"string"},"password":{"description":"The password is optional, but if a Docker image from a private repository is uploaded, then it is mandatory.","type":"string"}}},"module-parameters-keep-existing":{"type":"object","properties":{"env":{"description":"Keep the existing environment","type":"boolean"},"service-bindings":{"description":"Keep the existing Service bindings","type":"boolean"},"routes":{"description":"Keep the existing routes","type":"boolean"}}},"module-parameters-restart-on-env-change":{"type":"array","items":{"properties":{"vcap-application":{"description":"Restart on vcap-application env change","type":"boolean"},"vcap-services":{"description":"Restart on vcap-services env change","type":"boolean"},"user-provided":{"description":"Restart on user-provided env change","type":"boolean"}}}},"module-requires":{"type":"array","items":{"type":"object","required":["name"],"properties":{"name":{"description":"An MTA internal name which must match either a provided name, a resource name, or a module name within the same MTA.","type":"string","pattern":"^[A-Za-z0-9_\\-\\.]+$"},"list":{"description":"All required and found configuration data sets will be assembled into a JSON array and provided to the module by the lookup name as specified by the value of 'list'.","type":"string"},"properties":{"description":"Required properties can be mapped from provided properties. Provided property values can be accessed by \"~{<provided-property-name>}\". Such expressions can be part of an arbitrary string","type":"object"},"properties-metadata":{"$ref":"#/definitions/properties-metadata","description":"Additional information about the required dependency's properties."},"parameters":{"$ref":"#/definitions/module-requires-parameters","description":"Parameters can be used to influence the behavior of tools which interpret this descriptor. Parameters are not made available to the module at runtime. Provided property values can be accessed by \"~{<provided-property-name>}\". Such expressions can be part of an arbitrary string"},"parameters-metadata":{"$ref":"#/definitions/properties-metadata","description":"Additional information about the required dependency's parameters."}}}},"module-requires-parameters":{"type":"object","properties":{"content-target":{"description":"Specify that the resource would be used as a target for the module content deployment.","type":"boolean"},"binding-name":{"description":"Provide a binding name for the association between an application and a service instance.","type":"string"}}},"module-provides":{"type":"array","items":{"type":"object","required":["name"],"properties":{"name":{"description":"An MTA internal name which can used by a requiring module.","type":"string","pattern":"^[A-Za-z0-9_\\-\\.]+$"},"public":{"description":"Indicates, that the provided properties shall be made publicly available by the deployer. Default value is false.","type":"boolean"},"properties":{"description":"Property names and values make up the configuration data which is to be provided to requiring modules at runtime","type":"object"},"properties-metadata":{"$ref":"#/definitions/properties-metadata","description":"Additional information about the provided dependency's properties."},"parameters":{"$ref":"#/definitions/module-provides-parameters","description":"Parameters can be used to influence the behavior of tools which interpret this descriptor. Parameters are not made available to the module at runtime. Provided property values can be accessed by \"~{<provided-property-name>}\". Such expressions can be part of an arbitrary string"},"parameters-metadata":{"$ref":"#/definitions/properties-metadata","description":"Additional information about the provided dependency's parameters."}}}},"module-provides-parameters":{"type":"object","properties":{"visibility":{"type":"array","items":{"$ref":"#/definitions/resource-configuration-target"}}}},"resource-type":{"type":"string","anyOf":[{"enum":["org.cloudfoundry.managed-service","org.cloudfoundry.existing-service","org.cloudfoundry.existing-service-key","org.cloudfoundry.user-provided-service","configuration"]},{"type":"string"}]},"resource-requires":{"type":"array","items":{"type":"object","required":["name"],"properties":{"name":{"description":"An MTA internal name which must match either a provided name, or a resource name within the same MTA.","type":"string","pattern":"^[A-Za-z0-9_\\-\\.]+$"},"properties":{"description":"Required properties can be mapped from provided properties. Provided property values can be accessed by \"~{<provided-property-name>}\". Such expressions can be part of an arbitrary string","type":"object"},"properties-metadata":{"$ref":"#/definitions/properties-metadata","description":"Additional information about the required dependency's properties."},"parameters":{"description":"Parameters can be used to influence the behavior of tools which interpret this descriptor. Parameters are not made available to the resource at runtime. Provided property values can be accessed by \"~{<provided-property-name>}\". Such expressions can be part of an arbitrary string","type":"object"},"parameters-metadata":{"$ref":"#/definitions/properties-metadata","description":"Additional information about the required dependency's parameters."}}}},"resource-parameters":{"type":"object","properties":{"service":{"description":"Name of the service to create.","type":"string","anyOf":[{"enum":["application-logs","auditlog","rabbitmq","autoscaler","portal-services","fs-storage","hana","jobscheduler","xsuaa","connectivity","destination","feature-flags","redis","ml-foundation-services","mongodb","objectstore","postgresql"]},{"type":"string"}]},"apply-namespace":{"description":"Apply namespace to service name.","type":"boolean"},"service-key-name":{"description":"Used when consuming an existing service key. Specifies the name of the service key. See Consumption of existing service keys for more information.","type":"string"},"service-name":{"description":"Service instance name. Default value is the resource name.","type":"string"},"service-broker":{"description":"The name of the service broker to be used.","type":"string"},"service-plan":{"description":"Name of the service plan to be used.","type":"string"},"service-tags":{"description":"Some services employ a list of custom tags, which provide an easier way for applications to parse <VCAP_SERVICES> for credentials. You can provide custom tags when creating a service instance. For more information, see Service Tags.","type":"array","items":{"type":"string"}},"siteId":{"description":"A globally unique ID (GUID) for your Fiori LaunchPad site.","type":"string"},"config":{"description":"Map value, containing the service creation configuration, for example, url and user credentials (user and password).","type":"object"},"syslog-drain-url":{"description":"URL to which logs for bound applications are streamed.","type":"string"},"skip-service-updates":{"$ref":"#/definitions/resource-skip-service-updates","description":"Map value, containing the service components (parameters, plan, tags) to skip when updating a service."},"fail-on-service-update":{"$ref":"#/definitions/resource-fail-on-service-update","description":"Map value specifying which service components (parameters, plan, tags) should cause the deployment to fail if their update fails."},"provider-nid":{"description":"When used for cross-MTA dependency resolution the provider-nid is always 'mta'.","type":"string","enum":["mta"]},"provider-id":{"description":"The resource from the provider MTA <mta-id>:<mta-provides-dependency-name>.","type":"string"},"version":{"description":"The version of the provider MTA.","type":"string","pattern":"^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(-(0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(\\.(0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*)?(\\+[0-9a-zA-Z-]+(\\.[0-9a-zA-Z-]+)*)?$"},"target":{"$ref":"#/definitions/resource-configuration-target","description":"The name of the organization and space in which the provider MTA is deployed."}}},"resource-skip-service-updates":{"type":"object","properties":{"parameters":{"description":"The configuration parameters which will be passed to the service broker.","type":"boolean"},"plan":{"description":"The service plan.","type":"boolean"},"tags":{"description":"The custom tags for a service instance.","type":"boolean"},"syslog-drain-url":{"description":"URL to which logs for bound applications are streamed.","type":"boolean"}}},"resource-fail-on-service-update":{"type":"object","properties":{"parameters":{"description":"Specifies whether the deployment should fail if updating the service instance parameters fails.","type":"boolean"},"plan":{"description":"Specifies whether the deployment should fail if updating the service plan fails.","type":"boolean"},"tags":{"description":"Specifies whether the deployment should fail if updating the service tags fails.","type":"boolean"}}},"resource-configuration-target":{"type":"object","properties":{"org":{"description":"The org in which the configuration will be looked for","type":"string"},"space":{"description":"The space in which the configuration will be looked for","type":"string"}}},"properties-metadata":{"type":"object","additionalProperties":{"type":"object","properties":{"overwritable":{"description":"Default value is true.","type":"boolean"},"optional":{"description":"Default value is false.","type":"boolean"}}}},"hooks":{"type":"array","items":{"type":"object","required":["name","type"],"properties":{"name":{"description":"An internal name which can be used for documentation purposes and shown by the deployer.","type":"string","pattern":"^[A-Za-z0-9_\\-\\.]+$"},"type":{"description":"Defines the type of action that should be executed by the deployer.","type":"string","default":"task","enum":["task"]},"phases":{"description":"A list of strings that define the points at which the hook must be executed.","type":"array","items":{"type":"string","enum":["deploy.application.before-stop","blue-green.application.before-stop.idle","blue-green.application.before-stop.live","deploy.application.after-stop","blue-green.application.after-stop.idle","blue-green.application.after-stop.live","deploy.application.before-unmap-routes","blue-green.application.before-unmap-routes.live","blue-green.application.before-unmap-routes.idle","deploy.application.before-start","blue-green.application.before-start.idle","blue-green.application.before-start.live"]}},"parameters":{"$ref":"#/definitions/hooks-parameters","description":"Configuration parameters that are used when executing the hook to the target runtime environment."},"parameters-metadata":{"$ref":"#/definitions/properties-metadata","description":"Additional information about the hook's parameters."},"requires":{"description":"List of names either matching a resource name or a provided dependency name provided within the same MTA that are required by this hook.","type":"array","items":{"type":"object","required":["name"],"properties":{"name":{"description":"An MTA internal name which must match either a provided name, or a resource name within the same MTA.","type":"string","pattern":"^[A-Za-z0-9_\\-\\.]+$"},"parameters":{"description":"Parameters can be used to influence the behavior of tools which interpret this descriptor. Parameters are not made available to the hook at runtime. Provided property values can be accessed by \"~{<provided-property-name>}\". Such expressions can be part of an arbitrary string","type":"object"},"parameters-metadata":{"$ref":"#/definitions/properties-metadata","description":"Additional information about the hook's parameters."}}}}}}},"hooks-parameters":{"type":"object","required":["command"],"properties":{"name":{"description":"Defines the name of the Cloud Foundry task that should be executed.","type":"string"},"command":{"description":"Defines the actual command that is executed as a Cloud Foundry task.","type":"string"},"memory":{"$ref":"#/definitions/generic-memory","description":"Defines the memory that is available to the Cloud Foundry task."},"disk-quota":{"$ref":"#/definitions/generic-memory","description":"Defines the disk space that is available to the Cloud Foundry task."}}}},"description":"MTA deployment descriptor schema v3.3. Contains Cloud Foundry specific types and parameters.","properties":{"_schema-version":{"description":"Used to indicate to an MTA processing tool (e.g. a deployer), which schema version was taken as the base when authoring a descriptor.","type":"string","pattern":"^(\\d+\\.)?(\\d+\\.)?(\\*|\\d+)$","default":"3.3.0"},"ID":{"description":"A globally unique ID of this MTA. Unlimited string of unicode characters.","type":"string","pattern":"^[A-Za-z0-9_\\-\\.]+$"},"version":{"description":"Application version. Shall follow the semantic versioning standard.","type":"string","pattern":"^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(-(0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(\\.(0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*)?(\\+[0-9a-zA-Z-]+(\\.[0-9a-zA-Z-]+)*)?$"},"description":{"description":"A non-translatable description of this MTA. This is not a text for application users.","type":"string"},"provider":{"description":"The provider or vendor of this software.","type":"string"},"copyright":{"description":"A copyright statement from the provider.","type":"string"},"parameters":{"description":"Global parameters related to the MTA application.","type":"object"},"parameters-metadata":{"$ref":"#/definitions/properties-metadata","description":"Additional information about the MTA's parameters."},"hooks":{"$ref":"#/definitions/hooks","description":"A list of hooks that will be executed for the MTA."},"modules":{"description":"A list of modules to be deployed by the MTA application.","type":"array","items":{"type":"object","required":["name","type"],"properties":{"name":{"description":"The module name which must be unique and cannot be the same as any provided property set or resource name.","type":"string","pattern":"^[A-Za-z0-9_\\-\\.]+$"},"type":{"$ref":"#/definitions/module-type","description":"The module type that defines the design-time tools for the module."},"description":{"description":"A free text describing this module.","type":"string"},"path":{"description":"The path to a folder that contains the module artifacts.","type":"string"},"deployed-after":{"description":"A list containing the names of the modules that must be deployed prior to this one.","type":"array","items":{"type":"string"}},"properties":{"description":"A collection of key-value pairs that are available to the module at runtime.","type":"object"},"properties-metadata":{"$ref":"#/definitions/properties-metadata","description":"Additional information about the module's properties."},"parameters":{"$ref":"#/definitions/module-parameters","description":"Configuration parameters that are used when deploying the module to the target runtime environment."},"parameters-metadata":{"$ref":"#/definitions/properties-metadata","description":"Additional information about the module's parameters."},"hooks":{"$ref":"#/definitions/hooks","description":"A list of hooks that will be executed for the module."},"requires":{"$ref":"#/definitions/module-requires","description":"List of names either matching a resource name or a name provided by another module within the same MTA that are required by this module."},"provides":{"$ref":"#/definitions/module-provides","description":"List of provided names (MTA internal) to which properties can be attached"}}}},"resources":{"description":"A list of resources to be deployed by the MTA application.","type":"array","items":{"type":"object","required":["name"],"properties":{"name":{"description":"The resource name which must be unique and cannot be the same as any provided property set or resource name.","type":"string","pattern":"^[A-Za-z0-9_\\-\\.]+$"},"type":{"$ref":"#/definitions/resource-type","description":"The resource type that defines the design-time tools for the resource."},"active":{"description":"If a resource is declared to be active, it is allocated and bound according to declared requirements. Default value is true.","type":"boolean"},"optional":{"description":"A resource can be declared to be optional, if the MTA can compensate for its non-existence. Default value is false.","type":"boolean"},"description":{"description":"A free text describing this resource.","type":"string"},"processed-after":{"description":"A list containing the names of the resources that must be processed prior to this one.","type":"array","items":{"type":"string"}},"properties":{"description":"Property names and values make up the configuration data which is to be provided to requiring modules at runtime.","type":"object"},"properties-metadata":{"$ref":"#/definitions/properties-metadata","description":"Additional information about the resource's properties."},"parameters":{"$ref":"#/definitions/resource-parameters","description":"Parameters can be used to influence the behavior of tools which interpret this descriptor. Parameters are not made available to requiring modules at runtime. Untyped resources cannot have parameters."},"parameters-metadata":{"$ref":"#/definitions/properties-metadata","description":"Additional information about the resource's parameters."},"hooks":{"$ref":"#/definitions/hooks","description":"A list of hooks that will be executed for the resource."},"requires":{"$ref":"#/definitions/resource-requires","description":"List of names either matching a resource name or a name provided by another resource within the same MTA that are required by this resource."}}}},"module-types":{"description":"A list of custom module type definitions that will be used by the MTA application.","type":"array","items":{"type":"object","required":["name","extends"],"properties":{"name":{"description":" An MTA internal name of the module type that will be specified in the 'type' element of modules consuming it.","type":"string","pattern":"^[A-Za-z0-9_\\-\\.]+$"},"extends":{"description":"The name of the extended type. Can be another module type defined in this descriptor or one of the default types supported by the deployer.","type":"string"},"properties":{"description":"A collection of key-value pairs that will be inherited by all modules of this type.","type":"object"},"properties-metadata":{"$ref":"#/definitions/properties-metadata","description":"Additional information about the module type's properties."},"parameters":{"description":"Configuration parameters that will be inherited in all modules of this type.","type":"object"},"parameters-metadata":{"$ref":"#/definitions/properties-metadata","description":"Additional information about the module's parameters."}}}},"resource-types":{"description":"A list of custom resource type definitions that will be used by the MTA application.","type":"array","items":{"type":"object","required":["name","extends"],"properties":{"name":{"description":" An MTA internal name of the resource type that will be specified in the 'type' element of resources consuming it.","type":"string","pattern":"^[A-Za-z0-9_\\-\\.]+$"},"extends":{"description":"The name of the extended type. Can be another resource type defined in this descriptor or one of the default types supported by the deployer.","type":"string"},"properties":{"description":"A collection of key-value pairs that will be inherited by all resources of this type.","type":"object"},"properties-metadata":{"$ref":"#/definitions/properties-metadata","description":"Additional information about the resource type's properties."},"parameters":{"description":"Configuration parameters that will be inherited in all resources of this type.","type":"object"},"parameters-metadata":{"$ref":"#/definitions/properties-metadata","description":"Additional information about the resource's parameters."}}}}},"required":["_schema-version","ID","version"],"title":"mtad.yaml v3.3","type":"object"}
</schema>

[User] Provide a JSON object that satisfies the schema "mtad.yaml v3.3". Here are the required top‑level fields: _schema-version, ID, version. Return only the valid JSON object.

The name of the application in the Cloud Foundry environment to be deployed for this module, based on the module name.

Apply namespace to application name.

The name or the URL of a custom buildpack required by the application.

An array of buildpacks. If a buildpack parameter already exists, it will be overwritten by the buildpacks listed in the buildpacks parameter, so that you have to include it in the array.

A custom command required to start the application.

Specifies whether [true|false] a service broker should be registered for the application module; default value is: false.

Defines the memory allocated to the application.

The disk space that will be available to the application. This parameter requires a unit of measurement M, MB, G, or GB in upper or lower case.

Creates a module from a docker image. When using a docker image parameter, we do not need to specify the module in the MANIFEST.mf file.When uploading a docker image, the content of a module is not needed.

The domain on which the application will be available later.

The domains on which the application will be available later. The resulting application routes will be the Cartesian product of the domains and hosts. That is, a separate route for each host is constructed on each domain.

Enables use of SSH within an application. Supported for the Diego container runtime environment only.

Defines how the module will be monitored for availability.

The timeout is the amount of time (in seconds) allowed to elapse between starting up an app and the first healthy response.

The timeout in seconds for individual health check requests for http and port health checks.

A http health check defaults to using '/' as its endpoint, but you can specify a custom endpoint.

The hostname or subdomain where an application is available later.

The hostnames or subdomain where an application is available later.

The idle domain on which the idle application will be available during blue-green deploy.

The domains on which the idle application will be available during blue-green deploy. The resulting application routes will be the Cartesian product of the domains and hosts. That is, a separate route for each host is constructed on each domain.

The hostname or subdomain where the idle application will be available during blue-green deploy.

The hostnames or subdomain where the idle application will be available during blue-green deploy.

The number of application instances that will be started during the deployment.

Defines the application attributes which will be kept after the deployment or blue-green deployment has finished. The supported attributes which could be kept are application environment, application bindings and application routes. If not specified, the default values are false, which indicates that each application attribute will be updated with the new values presented in the deployment descriptor.

When specified on module level, it indicates if the existing routes of the module's corresponding application should be kept even if they are not defined within the deployment and/or extension descriptors.When specified on global level, under the parameters section of the descriptor, it indicates if the existing routes of all applications within that MTA should be kept.The module-level variant of the parameter has priority over the global parameter.This parameter is typically used when users want to keep the routes they have mapped manually by using the cf map-route command. We discourage this approach, as manual operations could lead to inconsistent deployment results and difficult troubleshooting. We recommend you to define all routes in the deployment and/or extension descriptors, which allows for their automatic management.

Defines the memory allocated to the application.

Defines if a route should be assigned to the application.

Start/do not start the application during deployment. This parameter setting overrides the command-line option --no-start. If you explicitly set the no-start to false for the module foo in the example provided, then the module foo is started on deployment, even if you also specify the command-line option --no-start with the cf deploy command.

Specifies whether an application should be restarted if an environment variable has been changed in one of the following categories: vcap-application, vcap-services, user-provided. If you set these parameters to false, the changes in environment are not consumable by a running instances of the application. If your application depends on the latest environment, it might become outdated.

A parameter that lists multiple HTTP routes. It is a combination of the old parameters host, domain, port and route-path, which encompasses the full addresses to which to bind a module. In case the new routes parameter and the old ones are available, the routes value is used and the values of the old parameters are ignored. Each route for the application is created if it does not already exist. A routes parameter consists of one or many HTTP routes following the pattern myhost.my.domain/path

The name of the service broker in the Cloud Foundry environment to be created and registered for the specified application module.

The password used for authentication by the XS controller at the service broker when performing service-related requests. The parameter is mandatory if create-service-broker: true.

Makes the service plans of the broker visible only within the targeted space.

Specifies the value of the service broker universal resource locator (URL) to register; service requests are sent to this URL. The parameter is mandatory if create-service-broker: true.

The name of the user required for authentication by the XS controller at the service broker when performing service-related requests. The parameter is mandatory if create-service-broker: true.

Use this parameter to define which prebuilt root file system (rootfs) you want to use.

Defines how long, in seconds, your application can take during staging before the MTA operation times out.

Defines how long, in seconds, your application can take to start before the MTA operation times out.

Specify tasks, which are available for execution in the current droplet of the application. Also provide use of environment variables which are specified with the env scope.

Defines how long, in seconds, your application can take to execute a task before the MTA operation times out.

Defines how long, in seconds, you can upload your application binary before the MTA operation times out.

Apply namespace to application routes.

The task name.

The command to be executed.

Defines the memory that is available to the Cloud Foundry task.

Defines the disk space that is available to the Cloud Foundry task.

An image parameter is a docker image from the Docker Hub or somewhere else. eg. cloudfoundry/test-app

The username is optional, but if a Docker image from a private repository is uploaded, then it is mandatory.

The password is optional, but if a Docker image from a private repository is uploaded, then it is mandatory.

Keep the existing environment

Keep the existing Service bindings

Keep the existing routes

Restart on vcap-application env change

Restart on vcap-services env change

Restart on user-provided env change

An MTA internal name which must match either a provided name, a resource name, or a module name within the same MTA.

All required and found configuration data sets will be assembled into a JSON array and provided to the module by the lookup name as specified by the value of 'list'.

Required properties can be mapped from provided properties. Provided property values can be accessed by "~{<provided-property-name>}". Such expressions can be part of an arbitrary string

Additional information about the required dependency's properties.

Parameters can be used to influence the behavior of tools which interpret this descriptor. Parameters are not made available to the module at runtime. Provided property values can be accessed by "~{<provided-property-name>}". Such expressions can be part of an arbitrary string

Additional information about the required dependency's parameters.

Specify that the resource would be used as a target for the module content deployment.

Provide a binding name for the association between an application and a service instance.

An MTA internal name which can used by a requiring module.

Indicates, that the provided properties shall be made publicly available by the deployer. Default value is false.

Additional information about the provided dependency's properties.

Additional information about the provided dependency's parameters.

An MTA internal name which must match either a provided name, or a resource name within the same MTA.

Parameters can be used to influence the behavior of tools which interpret this descriptor. Parameters are not made available to the resource at runtime. Provided property values can be accessed by "~{<provided-property-name>}". Such expressions can be part of an arbitrary string

Name of the service to create.

application-logs auditlog rabbitmq autoscaler portal-services fs-storage hana jobscheduler xsuaa connectivity destination feature-flags redis ml-foundation-services mongodb objectstore postgresql

Apply namespace to service name.

Used when consuming an existing service key. Specifies the name of the service key. See Consumption of existing service keys for more information.

Service instance name. Default value is the resource name.

The name of the service broker to be used.

Name of the service plan to be used.

Some services employ a list of custom tags, which provide an easier way for applications to parse <VCAP_SERVICES> for credentials. You can provide custom tags when creating a service instance. For more information, see Service Tags.

A globally unique ID (GUID) for your Fiori LaunchPad site.

Map value, containing the service creation configuration, for example, url and user credentials (user and password).

URL to which logs for bound applications are streamed.

Map value, containing the service components (parameters, plan, tags) to skip when updating a service.

Map value specifying which service components (parameters, plan, tags) should cause the deployment to fail if their update fails.

When used for cross-MTA dependency resolution the provider-nid is always 'mta'.

The resource from the provider MTA <mta-id>:<mta-provides-dependency-name>.

The version of the provider MTA.

The name of the organization and space in which the provider MTA is deployed.

The configuration parameters which will be passed to the service broker.

The service plan.

The custom tags for a service instance.

Specifies whether the deployment should fail if updating the service instance parameters fails.

Specifies whether the deployment should fail if updating the service plan fails.

Specifies whether the deployment should fail if updating the service tags fails.

The org in which the configuration will be looked for

The space in which the configuration will be looked for

Default value is true.

Default value is false.

An internal name which can be used for documentation purposes and shown by the deployer.

Defines the type of action that should be executed by the deployer.

A list of strings that define the points at which the hook must be executed.

Configuration parameters that are used when executing the hook to the target runtime environment.

Additional information about the hook's parameters.

List of names either matching a resource name or a provided dependency name provided within the same MTA that are required by this hook.

Parameters can be used to influence the behavior of tools which interpret this descriptor. Parameters are not made available to the hook at runtime. Provided property values can be accessed by "~{<provided-property-name>}". Such expressions can be part of an arbitrary string

Defines the name of the Cloud Foundry task that should be executed.

Defines the actual command that is executed as a Cloud Foundry task.

Defines the memory that is available to the Cloud Foundry task.

Defines the disk space that is available to the Cloud Foundry task.

MTA deployment descriptor schema v3.3. Contains Cloud Foundry specific types and parameters.

Used to indicate to an MTA processing tool (e.g. a deployer), which schema version was taken as the base when authoring a descriptor.

A globally unique ID of this MTA. Unlimited string of unicode characters.

Application version. Shall follow the semantic versioning standard.

A non-translatable description of this MTA. This is not a text for application users.

The provider or vendor of this software.

A copyright statement from the provider.

Global parameters related to the MTA application.

Additional information about the MTA's parameters.

A list of hooks that will be executed for the MTA.

A list of modules to be deployed by the MTA application.

The module name which must be unique and cannot be the same as any provided property set or resource name.

The module type that defines the design-time tools for the module.

A free text describing this module.

The path to a folder that contains the module artifacts.

A list containing the names of the modules that must be deployed prior to this one.

A collection of key-value pairs that are available to the module at runtime.

Additional information about the module's properties.

Configuration parameters that are used when deploying the module to the target runtime environment.

Additional information about the module's parameters.

A list of hooks that will be executed for the module.

List of names either matching a resource name or a name provided by another module within the same MTA that are required by this module.

List of provided names (MTA internal) to which properties can be attached

A list of resources to be deployed by the MTA application.

The resource name which must be unique and cannot be the same as any provided property set or resource name.

The resource type that defines the design-time tools for the resource.

If a resource is declared to be active, it is allocated and bound according to declared requirements. Default value is true.

A resource can be declared to be optional, if the MTA can compensate for its non-existence. Default value is false.

A free text describing this resource.

A list containing the names of the resources that must be processed prior to this one.

Property names and values make up the configuration data which is to be provided to requiring modules at runtime.

Additional information about the resource's properties.

Parameters can be used to influence the behavior of tools which interpret this descriptor. Parameters are not made available to requiring modules at runtime. Untyped resources cannot have parameters.

Additional information about the resource's parameters.

A list of hooks that will be executed for the resource.

List of names either matching a resource name or a name provided by another resource within the same MTA that are required by this resource.

A list of custom module type definitions that will be used by the MTA application.

An MTA internal name of the module type that will be specified in the 'type' element of modules consuming it.

The name of the extended type. Can be another module type defined in this descriptor or one of the default types supported by the deployer.

A collection of key-value pairs that will be inherited by all modules of this type.

Additional information about the module type's properties.

Configuration parameters that will be inherited in all modules of this type.

Additional information about the module's parameters.

A list of custom resource type definitions that will be used by the MTA application.

An MTA internal name of the resource type that will be specified in the 'type' element of resources consuming it.

The name of the extended type. Can be another resource type defined in this descriptor or one of the default types supported by the deployer.

A collection of key-value pairs that will be inherited by all resources of this type.

Additional information about the resource type's properties.

Configuration parameters that will be inherited in all resources of this type.

mtad.yaml v3.3

Provide a JSON object that satisfies the schema "mtad.yaml v3.3". Here are the required top‑level fields: _schema-version, ID, version. Return only the valid JSON object.


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://json.schemastore.org/mtaext.json","definitions":{"hooks":{"type":"array","items":{"type":"object","required":["name"],"properties":{"name":{"description":"The name of the existing hook that will be modified by this extension.","type":"string","pattern":"^[A-Za-z0-9_\\-\\.]+$"},"parameters":{"description":"Configuration parameters that are used when executing the hook to the target runtime environment.","type":"object"},"requires":{"description":"List of the existing required dependencies that will be modified by this extension.","type":"array","items":{"type":"object","required":["name"],"properties":{"name":{"description":"The name of the existing required dependencies that will be modified.","type":"string","pattern":"^[A-Za-z0-9_\\-\\.]+$"},"parameters":{"description":"Parameters can be used to influence the behavior of tools which interpret this descriptor. Parameters are not made available to the hook at runtime. Provided property values can be accessed by \"~{<provided-property-name>}\". Such expressions can be part of an arbitrary string","type":"object"}}}}}}}},"description":"MTA extension descriptor schema v3.3","properties":{"_schema-version":{"description":"Used to indicate to an MTA processing tool (e.g. a deployer), which schema version was taken as the base when authoring a descriptor.","type":"string","pattern":"^[1-9]\\d*(\\.\\d+){0,2}$","default":"3.3.0"},"ID":{"description":"A globally unique ID of this MTA extension descriptor. Unlimited string of unicode characters.","type":"string","pattern":"^[A-Za-z0-9_\\-\\.]+$"},"extends":{"description":"A globally unique ID of the MTA or the MTA extension which shall be extended by this descriptor.","type":"string","pattern":"^[A-Za-z0-9_\\-\\.]+$"},"description":{"description":"A non-translatable description of this MTA extension. This is not a text for application users.","type":"string"},"provider":{"description":"The provider or vendor.","type":"string"},"parameters":{"description":"Global parameters that will be added to the application.","type":"object"},"hooks":{"$ref":"#/definitions/hooks","description":"A list of the existing hooks that will be modified by the extension."},"modules":{"description":"List of the existing modules that will be modified by the extension.","type":"array","items":{"type":"object","required":["name"],"properties":{"name":{"description":"The module name which must match an existing module defined by the deployment descriptor.","type":"string","pattern":"^[A-Za-z0-9_\\-\\.]+$"},"properties":{"description":"A collection of key-value pairs that are available to the module at runtime.","type":"object"},"parameters":{"description":"Configuration parameters that are used when deploying the module to the target runtime environment.","type":"object"},"hooks":{"$ref":"#/definitions/hooks","description":"A list of the existing hooks that will be modified by the extension."},"requires":{"description":"List of the existing required dependencies that will be modified by the extension.","type":"array","items":{"type":"object","required":["name"],"properties":{"name":{"description":"The dependency name which must match an existing required dependency defined by the deployment descriptor.","type":"string","pattern":"^[A-Za-z0-9_\\-\\.]+$"},"properties":{"description":"Required properties can be mapped from provided properties. Provided property values can be accessed by \"~{<provided-property-name>}\". Such expressions can be part of an arbitrary string","type":"object"},"parameters":{"description":"Parameters can be used to influence the behavior of tools which interpret this descriptor. Parameters are not made available to the module at runtime. Provided property values can be accessed by \"~{<provided-property-name>}\". Such expressions can be part of an arbitrary string","type":"object"}}}},"provides":{"description":"List of the existing provided dependencies that will be modified by the extension.","type":"array","items":{"type":"object","required":["name"],"properties":{"name":{"description":"The dependency name which must match an existing provided dependency defined by the deployment descriptor.","type":"string","pattern":"^[A-Za-z0-9_\\-\\.]+$"},"properties":{"description":"Property names and values make up the configuration data which is to be provided to requiring modules at runtime","type":"object"},"parameters":{"description":"Parameters can be used to influence the behavior of tools which interpret this descriptor. Parameters are not made available to the module at runtime. Provided property values can be accessed by \"~{<provided-property-name>}\". Such expressions can be part of an arbitrary string","type":"object"}}}}}}},"resources":{"description":"List of the existing resources that will be modified by the extension.","type":"array","items":{"type":"object","required":["name"],"properties":{"name":{"description":"The resource name which must match an existing resource defined by the deployment descriptor.","type":"string","pattern":"^[A-Za-z0-9_\\-\\.]+$"},"active":{"description":"If a resource is declared to be active, it is allocated and bound according to declared requirements. Default value is true.","type":"boolean"},"properties":{"description":"Property names and values make up the configuration data which is to be provided to requiring modules at runtime.","type":"object"},"parameters":{"description":"Parameters can be used to influence the behavior of tools which interpret this descriptor. Parameters are not made available to requiring modules at runtime. Untyped resources cannot have parameters.","type":"object"},"hooks":{"$ref":"#/definitions/hooks","description":"List of existing hooks that will be modified by the extension."},"requires":{"description":"List of the existing required dependencies that will be modified by the extension.","type":"array","items":{"type":"object","required":["name"],"properties":{"name":{"description":"The name of the existing required dependency that will be modified.","type":"string","pattern":"^[A-Za-z0-9_\\-\\.]+$"},"properties":{"description":"Required properties can be mapped from provided properties. Provided property values can be accessed by \"~{<provided-property-name>}\". Such expressions can be part of an arbitrary string","type":"object"},"parameters":{"description":"Parameters can be used to influence the behavior of tools which interpret this descriptor. Parameters are not made available to the resource at runtime. Provided property values can be accessed by \"~{<provided-property-name>}\". Such expressions can be part of an arbitrary string","type":"object"}}}}}}},"module-types":{"description":"A list of existing module type definitions that will be modified by the extension.","type":"array","items":{"type":"object","required":["name"],"properties":{"name":{"description":"The name of the existing module type that will be modified.","type":"string","pattern":"^[A-Za-z0-9_\\-\\.]+$"},"properties":{"description":"A collection of key-value pairs that will be inherited by all modules of this type.","type":"object"},"parameters":{"description":"Configuration parameters that will be inherited in all modules of this type.","type":"object"}}}},"resource-types":{"description":"A list of existing resource type definitions that will be modified by the extension.","type":"array","items":{"type":"object","required":["name"],"properties":{"name":{"description":"The name of the existing resource type that will be modified.","type":"string","pattern":"^[A-Za-z0-9_\\-\\.]+$"},"properties":{"description":"A collection of key-value pairs that will be inherited by all modules of this type.","type":"object"},"parameters":{"description":"Configuration parameters that will be inherited in all resources of this type.","type":"object"}}}}},"required":["_schema-version","ID","extends"],"title":".mtaext v3.3","type":"object"}
</schema>

[User] Provide a JSON object that satisfies the schema ".mtaext v3.3". Here are the required top‑level fields: _schema-version, ID, extends. Return only the valid JSON object.

The name of the existing hook that will be modified by this extension.

Configuration parameters that are used when executing the hook to the target runtime environment.

List of the existing required dependencies that will be modified by this extension.

The name of the existing required dependencies that will be modified.

Parameters can be used to influence the behavior of tools which interpret this descriptor. Parameters are not made available to the hook at runtime. Provided property values can be accessed by "~{<provided-property-name>}". Such expressions can be part of an arbitrary string

MTA extension descriptor schema v3.3

Used to indicate to an MTA processing tool (e.g. a deployer), which schema version was taken as the base when authoring a descriptor.

A globally unique ID of this MTA extension descriptor. Unlimited string of unicode characters.

A globally unique ID of the MTA or the MTA extension which shall be extended by this descriptor.

A non-translatable description of this MTA extension. This is not a text for application users.

The provider or vendor.

Global parameters that will be added to the application.

A list of the existing hooks that will be modified by the extension.

List of the existing modules that will be modified by the extension.

The module name which must match an existing module defined by the deployment descriptor.

A collection of key-value pairs that are available to the module at runtime.

Configuration parameters that are used when deploying the module to the target runtime environment.

List of the existing required dependencies that will be modified by the extension.

The dependency name which must match an existing required dependency defined by the deployment descriptor.

Required properties can be mapped from provided properties. Provided property values can be accessed by "~{<provided-property-name>}". Such expressions can be part of an arbitrary string

Parameters can be used to influence the behavior of tools which interpret this descriptor. Parameters are not made available to the module at runtime. Provided property values can be accessed by "~{<provided-property-name>}". Such expressions can be part of an arbitrary string

List of the existing provided dependencies that will be modified by the extension.

The dependency name which must match an existing provided dependency defined by the deployment descriptor.

List of the existing resources that will be modified by the extension.

The resource name which must match an existing resource defined by the deployment descriptor.

If a resource is declared to be active, it is allocated and bound according to declared requirements. Default value is true.

Property names and values make up the configuration data which is to be provided to requiring modules at runtime.

Parameters can be used to influence the behavior of tools which interpret this descriptor. Parameters are not made available to requiring modules at runtime. Untyped resources cannot have parameters.

List of existing hooks that will be modified by the extension.

The name of the existing required dependency that will be modified.

Parameters can be used to influence the behavior of tools which interpret this descriptor. Parameters are not made available to the resource at runtime. Provided property values can be accessed by "~{<provided-property-name>}". Such expressions can be part of an arbitrary string

A list of existing module type definitions that will be modified by the extension.

The name of the existing module type that will be modified.

A collection of key-value pairs that will be inherited by all modules of this type.

Configuration parameters that will be inherited in all modules of this type.

A list of existing resource type definitions that will be modified by the extension.

The name of the existing resource type that will be modified.

Configuration parameters that will be inherited in all resources of this type.

.mtaext v3.3

Provide a JSON object that satisfies the schema ".mtaext v3.3". Here are the required top‑level fields: _schema-version, ID, extends. Return only the valid JSON object.


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$schema":"http://json-schema.org/draft-04/schema#","definitions":{"classification":{"enum":["MyCode","LibraryCode","UnrelatedCode"]},"includes":{"type":"array","items":{"type":"string","minLength":1}}},"id":"https://json.schemastore.org/mycode.json","properties":{"Eval":{"description":"Script that is executed by passing a string to the host-provided eval function.","default":"MyCode","allOf":[{"$ref":"#/definitions/classification"}]},"Function":{"description":"Script that is executed by passing a string to the 'Function' constructor.","default":"LibraryCode","allOf":[{"$ref":"#/definitions/classification"}]},"ScriptBlock":{"description":"Script that is executed by passing a string to the 'setTimeout', 'setImmediate', or 'setInterval' functions.","default":"UnrelatedCode","allOf":[{"$ref":"#/definitions/classification"}]},"MyCode":{"description":"An array of urls or files that are classified as 'MyCode'.","allOf":[{"$ref":"#/definitions/includes"}]},"Libraries":{"description":"An array of urls or files that are classified as 'LibraryCode'.","allOf":[{"$ref":"#/definitions/includes"}]},"Unrelated":{"description":"An array of urls or files that are classified as 'UnrelatedCode'.","allOf":[{"$ref":"#/definitions/includes"}]}},"title":"JSON schema for mycode.js files","type":"object"}
</schema>

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

Script that is executed by passing a string to the host-provided eval function.

Script that is executed by passing a string to the 'Function' constructor.

Script that is executed by passing a string to the 'setTimeout', 'setImmediate', or 'setInterval' functions.

An array of urls or files that are classified as 'MyCode'.

An array of urls or files that are classified as 'LibraryCode'.

An array of urls or files that are classified as 'UnrelatedCode'.

JSON schema for mycode.js files

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