x.enhanced-mule.enhanced-mule-tools-lib.1.4.59.source-code.emule-application.schema.json Maven / Gradle / Ivy
{
"$schema": "http://json-schema.org/draft-07/schema",
"$id": "http://static.enhanced-mule.com/schemas/emule-application.schema.json",
"definitions": {
"pValue": {
"anyOf": [
{
"type": "object",
"properties": {
"value": {
"description": "value",
"type": "string"
},
"encrypted": {
"description": "Indicates if the value is encrypted",
"type": "boolean",
"default": false
}
},
"required": ["value"]
},
{
"type": "string"
}
]
}
},
"title": "Application Provisioning",
"description": "Used to automatically provision all application-related anypoint capabilities",
"type": "object",
"properties": {
"id": {
"description": "Application identifier (defaults to application maven artifactId)",
"type": "string"
},
"name": {
"description": "Application identifier (defaults to application maven name)",
"type": "string"
},
"version": {
"description": "Application version (defaults to application maven version)",
"type": "string"
},
"mule3": {
"description": "Indicates this API is a mule 3 API",
"type": "boolean",
"default": false
},
"properties": {
"type": "object",
"patternProperties": {
".*": {
"type": "object",
"properties": {
"description": {
"type": "string"
},
"secure": {
"description": "Set to true if this contains sensitive information like password. It is generally not recommended to set this to true for usernames and similar credential identifiers",
"type": "boolean",
"default": false
},
"file": {
"description": "If this is set to true, the content of this property will also be made available as a file which will contain the property value Base 64 decoded. The path of that file can be access by a property with the same name is this property with '.file' appended to it",
"type": "boolean",
"default": false
},
"static": {
"description": "If set to true, indicates that the property is used statically and any changes to it will require restarting the application",
"type": "boolean",
"default": false
},
"required": {
"description": "Indicates if this property MUST be assigned for the application to work. Only use if there is no default value",
"type": "boolean",
"default": false
},
"default": {
"description": "Environment-independent default value to be used if not set",
"$ref": "#/definitions/pValue"
},
"values": {
"description": "Environment-dependent values",
"type": "object",
"properties": {
"local": {
"description": "Property to be used when a developer runs the application on their workstation",
"$ref": "#/definitions/pValue"
},
"envType": {
"description": "environment type based properties",
"patternProperties": {
"DESIGN|SANDBOX|PRODUCTION": {
"$ref": "#/definitions/pValue"
}
}
},
"env": {
"description": "environment-specific properties. Key must be a valid environment name or id",
"patternProperties": {
".*": {
"$ref": "#/definitions/pValue"
}
}
}
}
}
}
}
},
"additionalProperties": false
},
"api": {
"description": "API configuration",
"type": "object",
"properties": {
"type": {
"description": "API type",
"type": "string",
"default": "rest",
"enum": [
"rest",
"http",
"REST",
"HTTP"
]
},
"assetCreate": {
"description": "If the asset should be automatically created in exchange. If not set it will default to true if the project has no API spec dependency and an appropriate api spec file named api.[ext] or [artifactId].[ext] is found (in an api/ folder in any of the project's resource paths)",
"type": "boolean"
},
"assetMainFile": {
"description": "specification main file (required if creating asset). If not set it will search for an api spec file named api.[ext] or [artifactId].[ext] is found (in an api/ folder in any of the project's resource paths)",
"type": "string"
},
"assetId": {
"description": "API Exchange Asset Id",
"type": "string"
},
"assetVersion": {
"description": "Asset version",
"type": "string"
},
"name": {
"description": "API Name",
"type": "string"
},
"version": {
"description": "API Version",
"type": "string"
},
"addAutoDiscovery": {
"description": "Add autodiscovery to flows",
"type": "boolean",
"default": true
},
"autoDiscoveryFlow": {
"type": "string",
"default": "api-main"
},
"endpoint": {
"description": "API endpoint",
"type": "string"
},
"implementationUrl": {
"description": "Implementation URL",
"type": "string"
},
"implementationUrlJson": {
"description": "Implementation URL (JSON format). This will override consumerUrl if set",
"type": "object"
},
"consumerUrl": {
"description": "Consumer URL",
"type": "string"
},
"icon": {
"description": "Exchange asset icon",
"type": "object",
"properties": {
"content": {
"description": "Base64 encoded image content",
"type": "string"
},
"mimeType": {
"description": "Image MIME type",
"type": "string"
}
},
"required": [
"content",
"mimeType"
]
},
"fields": {
"description": "Custom fields",
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string",
"description": "Custom field key"
},
"value": {
"type": "object",
"description": "Custom field value"
},
"required": {
"type": "boolean",
"default": false,
"description": "Field is required and provisioning will fail if not defined in root org"
}
},
"required": [
"key",
"value"
]
}
},
"portal": {
"type": "object",
"description": "Portal provisioning",
"properties": {
"pages": {
"type": "array",
"items": {
"description": "Portal page",
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Page name"
},
"path": {
"type": "string",
"description": "Path to the markdown file that contains this page's content"
}
},
"required": [
"name",
"path"
]
}
}
}
},
"policies": {
"description": "Policies that should be assigned to the API. Please note that unless this properties is null or not set, all existing API policies will be removed prior to those being added",
"type": "array",
"uniqueItems": true,
"items": {
"description": "Policy details",
"type": "object",
"properties": {
"groupId": {
"description": "Policy group id",
"type": "string"
},
"assetId": {
"description": "Policy asset id",
"type": "string"
},
"assetVersion": {
"description": "Policy version",
"type": "string"
},
"pointcutData": {
"description": "Pointcuts to apply to apply the policy to",
"type": "array",
"uniqueItems": true,
"items": {
"description": "Pointcut",
"type": "string"
}
},
"policyTemplateId": {
"description": "Policy template id",
"type": "string"
},
"configurationData": {
"description": "Policy configuration data (policy specific so no details can be enforced in schema",
"type": "object"
}
},
"required": [
"groupId",
"assetId",
"assetVersion",
"policyTemplateId",
"configurationData"
]
}
},
"accessedBy": {
"description": "Client applications that should be granted access to this API",
"type": "array",
"uniqueItems": true,
"items": {
"description": "Client application name",
"type": "string"
}
},
"label": {
"description": "API instance label",
"type": "string"
},
"categories": {
"type": "object",
"patternProperties": {
".*": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"slaTiers": {
"description": "SLA Tiers to setup for this API",
"type": "array",
"items": {
"description": "SLA Tier",
"type": "object",
"properties": {
"name": {
"description": "SLA Tier name",
"type": "string"
},
"description": {
"description": "SLA Tier description",
"type": "string"
},
"autoApprove": {
"description": "If access requests using this SLA tier should automatically be approved",
"type": "boolean"
},
"limits": {
"description": "limits to apply to this SLA tier",
"type": "array",
"items": {
"description": "SLA Tier limit",
"type": "object",
"properties": {
"visible": {
"description": "If this limit is visible to end users",
"type": "boolean"
},
"timePeriodInMilliseconds": {
"description": "SLA time period in milliseconds",
"type": "integer"
},
"maximumRequests": {
"description": "Maximum allowed requests within the time period",
"type": "integer"
}
},
"required": [
"visible",
"timePeriodInMilliseconds",
"maximumRequests"
]
}
}
},
"required": [
"name",
"limits"
]
}
},
"assetAPIVersion": {
"description": "DEPRECATED: use 'version' instead",
"type": "string",
"deprecationMessage": "use 'version' instead"
},
"injectApiId": {
"description": "If set to true, the API id will be injected at deployment using the property specified in the 'apiIdProperty' field",
"type": "boolean",
"default": true
},
"apiIdProperty": {
"description": "Name of the property where the API id will be injected into at deployment time",
"type": "string",
"default": "anypoint.api.id"
}
},
"required": [
"name",
"version"
]
},
"client": {
"description": "Client application details",
"type": "object",
"properties": {
"name": {
"description": "Client application name",
"type": "string"
},
"description": {
"description": "Client application description",
"type": "string"
},
"url": {
"description": "Client application url",
"type": "string"
},
"injectClientIdSec": {
"description": "Indicates if the client id and secret should be injected at deployment time",
"type": "boolean",
"default": true
},
"clientIdProperty": {
"description": "Name of property where the client application id will be injected",
"type": "string",
"default": "anypoint.api.client.id"
},
"clientSecretProperty": {
"description": "Name of property where the client application id will be injected",
"type": "string",
"default": "anypoint.api.client.secret"
},
"access": {
"description": "List of APIs that the client application should be granted access to",
"type": "array",
"uniqueItems": true,
"items": {
"type": "object",
"properties": {
"orgId": {
"description": "Organization Id of the API to be accessed (defaults to same org as API if not set)",
"type": "string"
},
"groupId": {
"description": "Exchange group id of the API to be granted access to (if not set defaults to orgId)",
"type": "string"
},
"assetId": {
"description": "Exchange asset id of the API to be granted access to",
"type": "string"
},
"env": {
"description": "Name of the environment of the API to be granted access to (if not set defaults to environment being deployed to)",
"type": "string"
},
"envId": {
"description": "Id of the environment of the API to be granted access to (if this is set, it will ignore the environment set in 'env')",
"type": "string"
},
"assetVersion": {
"description": "Exchange version of the API to be granted access to",
"type": "string"
},
"label": {
"description": "Instance label of the API to be granted access to",
"type": "string"
},
"slaTier": {
"description": "SLA tier to use for the access request",
"type": "string"
}
},
"required": [
"assetId",
"assetVersion"
]
}
}
},
"required": [
"name"
]
}
}
}